adding mainwindow page sources and removing mainwindow sources
[qtrapids] / src / gui / MainWindow.h
index 3f546bb..4094a50 100644 (file)
 
 #include <QMainWindow>
 #include <QSettings>
+#include <QDir>
+#include <QStringList>
 
+#include "PluginInterface.h"
 #include "QBittorrentSession.h"
 
 class QTabWidget;
@@ -33,13 +36,22 @@ 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);
@@ -57,6 +69,9 @@ class MainWindow : public QMainWindow {
                void handleToolBarAction(QAction* action);
                void on_torrentFileSelected(const QString& file);
                void on_alert(std::auto_ptr<Alert> al);
+       
+       private:
+               void LoadPlugins();
                
        private:
                QTabWidget *tabWidget_;
@@ -64,7 +79,8 @@ class MainWindow : public QMainWindow {
                SeedView *seedView_;
                PreferencesDialog *preferencesDialog_;
                QSettings settings_;
-               
+               QDir pluginsDir_;
+               QStringList pluginFileNames_;
                //std::vector< std::auto_ptr<QTorrentHandle> const > torrentHandles_;
                
                qtrapids::QBittorrentSession btSession_;