X-Git-Url: http://git.maemo.org/git/?p=qtrapids;a=blobdiff_plain;f=src%2Fclient%2FMainWindow.h;h=b84a655bb0e6dfff9a8db50768caa40f00bba1ba;hp=0cef789d43c62db2af8653804051611037916527;hb=b9b88af21df2623d984784d007327c8e9733f7ae;hpb=d27c2db830de9a65d6a419479ee598cbf3697746 diff --git a/src/client/MainWindow.h b/src/client/MainWindow.h index 0cef789..b84a655 100644 --- a/src/client/MainWindow.h +++ b/src/client/MainWindow.h @@ -23,6 +23,7 @@ #include #include +#include "PluginInterface.h" #include "proxy.h" class QTabWidget; @@ -37,59 +38,83 @@ class SeedView; /** @author Lassi Väätämöinen */ -class MainWindow : public QMainWindow +class MainWindow : public QMainWindow, public PluginHostInterface { - Q_OBJECT; -public: - - MainWindow(); - ~MainWindow(); + Q_OBJECT; - void connectToServer() - { - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); +public: - connect(&server_ - , SIGNAL(alert(qtrapids::TorrentState - , qtrapids::ParamsMap_t)) - , this - , SLOT(alert(qtrapids::TorrentState - , qtrapids::ParamsMap_t))); - server_.getState(); - } + 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(); + qDBusRegisterMetaType(); + + connect(&server_ + , SIGNAL(alert(qtrapids::TorrentState + , qtrapids::ParamsMap_t)) + , this + , SLOT(on_alert(qtrapids::TorrentState + , qtrapids::ParamsMap_t))); + // Request server state. + // NOTE: This call starts qtrapids-server automatically with the GUI, + // if the .service file is in /usr/share/dbus-1/services/ + server_.getState(); + } signals: - void itemSelected(bool enabled); + 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_torrentFileSelected(const QString& file); - void alert(qtrapids::TorrentState, qtrapids::ParamsMap_t); + void on_openAction_clicked(); + void on_removeAction_clicked(); + void on_quitAction_clicked(); + void on_stopDaemonAction_clicked(); + void on_columnsAction_clicked(); + 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 on_alert(qtrapids::TorrentState, qtrapids::ParamsMap_t); private: - QTabWidget *tabWidget_; - DownloadView *dlView_; - SeedView *seedView_; - PreferencesDialog *preferencesDialog_; - QSettings settings_; + void LoadPlugins(); + void StartTorrentFromBufferData(char const* data, int size); + +private: + QTabWidget *tabWidget_; + DownloadView *dlView_; + SeedView *seedView_; + QWidget *searchWidget_; + PreferencesDialog *preferencesDialog_; + QSettings settings_; + QList pluginDirs_; + QStringList pluginFileNames_; - //std::vector< std::auto_ptr const > torrentHandles_; + //std::vector< std::auto_ptr const > torrentHandles_; - QtRapidsServer server_; + QtRapidsServer server_; - //bool IsNewTorrent(std::auto_ptr handlePtr); + //bool IsNewTorrent(std::auto_ptr handlePtr); }; } // namespace qtrapids