- Search plugin interface changed: enum constants to define widget types to allow...
[qtrapids] / src / gui / MainWindow.h
index 275e1dd..715ce23 100644 (file)
 
 #include <QMainWindow>
 #include <QSettings>
+#include <QDir>
+#include <QStringList>
 
+#include "PluginInterface.h"
 #include "QBittorrentSession.h"
 
 class QTabWidget;
@@ -33,13 +36,21 @@ 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);
+               virtual void addPluginWidget(QWidget* widget, PluginWidgetType type = UNKNOWN);
+               virtual void addToolbar(QWidget* widget, PluginWidgetType type = UNKNOWN);
+               virtual void addToolItem(QWidget* widget, PluginWidgetType type = UNKNOWN);
+               virtual void addMenu(QWidget* widget, PluginWidgetType type = UNKNOWN);
+               virtual void addMenuItem(QWidget* widget, PluginWidgetType type = UNKNOWN);
                
        signals:
                void itemSelected(bool enabled);
@@ -57,6 +68,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,10 +78,11 @@ class MainWindow : public QMainWindow {
                SeedView *seedView_;
                PreferencesDialog *preferencesDialog_;
                QSettings settings_;
-               
+               QDir pluginsDir_;
+               QStringList pluginFileNames_;
                //std::vector< std::auto_ptr<QTorrentHandle> const > torrentHandles_;
                
-               QBittorrentSession btSession_;
+               qtrapids::QBittorrentSession btSession_;
                
 
                //bool IsNewTorrent(std::auto_ptr<QTorrentHandle> handlePtr);