- Added rate limit preferences to DBus client/server implementation
[qtrapids] / src / client / MainWindow.h
index 9b55d5b..fb643eb 100644 (file)
@@ -23,6 +23,7 @@
 #include <QMainWindow>
 #include <QSettings>
 
+#include "PluginInterface.h"
 #include "proxy.h"
 
 class QTabWidget;
@@ -37,14 +38,26 @@ class SeedView;
 /**
    @author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
 */
-class MainWindow : public QMainWindow
+class MainWindow : public QMainWindow, public PluginHostInterface 
 {
+
        Q_OBJECT;
 
 public:
 
        MainWindow();
-       ~MainWindow();
+       virtual ~MainWindow();
+
+       // Implemented from PluginHostInterface
+       virtual bool setGui(QWidget* widget, PluginWidgetType type = UNKNOWN_TYPE, qtrapids::PluginInterface* plugin = NULL);
+       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);
+       
+       void RestoreSettings();
 
        void connectToServer() {
                qDBusRegisterMetaType<qtrapids::TorrentState>();
@@ -54,7 +67,7 @@ public:
                        , SIGNAL(alert(qtrapids::TorrentState
                                       , qtrapids::ParamsMap_t))
                        , this
-                       , SLOT(alert(qtrapids::TorrentState
+                       , SLOT(on_alert(qtrapids::TorrentState
                                     , qtrapids::ParamsMap_t)));
                server_.getState();
        }
@@ -70,18 +83,26 @@ private slots:
        void on_preferencesAction_clicked();
        void on_aboutAction_clicked();
        void on_aboutQtAction_clicked();
+       void on_tabWidget_tabCloseRequested(int index);
        void on_downloadItemSelectionChanged();
        void on_seedItemSelectionChanged();
        void handleToolBarAction(QAction* action);
        void on_torrentFileSelected(const QString& file);
-       void alert(qtrapids::TorrentState, qtrapids::ParamsMap_t);
+       void on_alert(qtrapids::TorrentState, qtrapids::ParamsMap_t);
 
 private:
+       void LoadPlugins();
+       void StartTorrentFromBufferData(char const* data, int size);
+               
+private:
        QTabWidget *tabWidget_;
        DownloadView *dlView_;
        SeedView *seedView_;
+       QWidget *searchWidget_;
        PreferencesDialog *preferencesDialog_;
        QSettings settings_;
+       QList<QDir> pluginDirs_;
+       QStringList pluginFileNames_;
 
        //std::vector< std::auto_ptr<QTorrentHandle> const > torrentHandles_;