- Search plugin parses opensearch.xml files and adds them to combobox
[qtrapids] / src / gui / MainWindow.h
index 4bae579..6f104d2 100644 (file)
 #define MAINWINDOW_H
 
 #include <QMainWindow>
+#include <QSettings>
+#include <QDir>
+#include <QStringList>
 
+#include "PluginInterface.h"
+#include "QBittorrentSession.h"
 
 class QTabWidget;
 class DownloadView;
 class SeedView;
-
-class AlertWaiterThread;
+class PreferencesDialog;
 
 /**
        @author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
 */
-class MainWindow : public QMainWindow {
+class MainWindow : public QMainWindow, public qtrapids::PluginHostInterface {
        Q_OBJECT
                        
        public:
     MainWindow();
 
-    ~MainWindow();
+    virtual ~MainWindow();
+               
+               // Implemented from PluginHostInterface
+               virtual bool setGui(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual void addPluginWidget(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual void addToolbar(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual void addToolItem(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual void addMenu(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual void addMenuItem(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE);
+               virtual bool eventRequest(QVariant param, PluginRequest req = UNKNOWN_REQUEST);
+               
+       signals:
+               void itemSelected(bool enabled);
                
        public slots:
        private slots:
+               void on_openAction_clicked();
+               void on_removeAction_clicked();
+               void on_quitAction_clicked();
+               void on_preferencesAction_clicked();
                void on_aboutAction_clicked();
                void on_aboutQtAction_clicked();
+               void on_downloadItemSelectionChanged();
+               void on_seedItemSelectionChanged();
                void handleToolBarAction(QAction* action);
-               
-               void on_alert();
+               void on_torrentFileSelected(const QString& file);
+               void on_alert(std::auto_ptr<Alert> al);
+       
+       private:
+               void LoadPlugins();
                
        private:
                QTabWidget *tabWidget_;
                DownloadView *dlView_;
                SeedView *seedView_;
+               PreferencesDialog *preferencesDialog_;
+               QSettings settings_;
+               QList<QDir> pluginDirs_;
+               QStringList pluginFileNames_;
+               //std::vector< std::auto_ptr<QTorrentHandle> const > torrentHandles_;
+               
+               qtrapids::QBittorrentSession btSession_;
                
-               AlertWaiterThread *alertWaiter_;
+
+               //bool IsNewTorrent(std::auto_ptr<QTorrentHandle> handlePtr);
 };
 
 #endif