X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fgui%2FMainWindow.h;h=a4335ac683f3d850994612d46fd20c6afe64fcbb;hb=HEAD;hp=3f546bbcfbc7e45e0b570ef3813aabb5f8ce58dd;hpb=d3d85653bf84dadcf6c2890cc2ddf9f629ee7619;p=qtrapids diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h index 3f546bb..a4335ac 100644 --- a/src/gui/MainWindow.h +++ b/src/gui/MainWindow.h @@ -1,11 +1,9 @@ /*************************************************************************** - * Copyright (C) 2009 by Lassi Väätämöinen * - * lassi.vaatamoinen@ixonos.com * + * Copyright (C) 2010 by Ixonos Plc * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * the Free Software Foundation; version 2 of the License. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -22,24 +20,37 @@ #include #include +#include +#include +#include "PluginInterface.h" #include "QBittorrentSession.h" class QTabWidget; class DownloadView; class SeedView; class PreferencesDialog; +class PluginInterface; /** @author Lassi Väätämöinen */ -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, 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); signals: void itemSelected(bool enabled); @@ -52,19 +63,27 @@ class MainWindow : public QMainWindow { 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(std::auto_ptr al); + + private: + void LoadPlugins(); + void RestoreSettings(); + 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_; qtrapids::QBittorrentSession btSession_;