[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3959: Modify the VidaliaPluginInterface base class to be a subclas (in vidalia/branches/extension-api/src: WebBrowserPlugin vidalia vidalia/DashboardPlugin vidalia/HomePlugin vidalia/MessageLogPlugin vidalia/NetworkMapPlugin)
Author: edmanm
Date: 2009-07-11 21:36:02 -0400 (Sat, 11 Jul 2009)
New Revision: 3959
Modified:
vidalia/branches/extension-api/src/WebBrowserPlugin/WebBrowserPlugin.h
vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h
vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h
vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp
vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h
vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetViewer.cpp
vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h
vidalia/branches/extension-api/src/vidalia/PluginManager.cpp
vidalia/branches/extension-api/src/vidalia/PluginManager.h
vidalia/branches/extension-api/src/vidalia/VidaliaPanel.h
vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.cpp
vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.h
Log:
Modify the VidaliaPluginInterface base class to be a subclass of QObject
so it can have signals and slots, and remove the multiple inheritance from
each of the plugin subclasses. Also, make the help buttons on each of the
panels work again.
Modified: vidalia/branches/extension-api/src/WebBrowserPlugin/WebBrowserPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/WebBrowserPlugin/WebBrowserPlugin.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/WebBrowserPlugin/WebBrowserPlugin.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -23,7 +23,7 @@
#include "WebBrowser.h"
-class WebBrowserPlugin : public QObject, public VidaliaPluginInterface
+class WebBrowserPlugin : public VidaliaPluginInterface
{
Q_OBJECT
Q_INTERFACES(VidaliaPluginInterface)
@@ -37,8 +37,10 @@
VidaliaPanel* panel() const;
/** Hook for Vidalia plugin API to return the name of the plugin. */
QString pluginHumanName() const;
+
private:
WebBrowser* _webBrowser;
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-07-12 01:36:02 UTC (rev 3959)
@@ -195,6 +195,7 @@
ControlPasswordInputDialog.h
PluginManager.h
VidaliaPanel.h
+ VidaliaPluginInterface.h
)
## Specify all the Qt Designer .ui files
Modified: vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -22,7 +22,7 @@
#include <QObject>
-class DashboardPlugin : public QObject, public VidaliaPluginInterface
+class DashboardPlugin : public VidaliaPluginInterface
{
Q_OBJECT
Q_INTERFACES(VidaliaPluginInterface)
@@ -37,3 +37,4 @@
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -24,7 +24,7 @@
#include "HomePanel.h"
-class HomePlugin : public QObject, public VidaliaPluginInterface
+class HomePlugin : public VidaliaPluginInterface
{
Q_OBJECT
Q_INTERFACES(VidaliaPluginInterface)
@@ -44,3 +44,4 @@
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MainWindow.cpp 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/MainWindow.cpp 2009-07-12 01:36:02 UTC (rev 3959)
@@ -125,6 +125,8 @@
connect(_configDialog, SIGNAL(helpRequested(QString)),
this, SLOT(showHelpDialog(QString)));
+ connect(_pluginManager, SIGNAL(helpRequested(QString)),
+ this, SLOT(showHelpDialog(QString)));
/* Create the actions that will go in the tray menu */
createActions();
Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp 2009-07-12 01:36:02 UTC (rev 3959)
@@ -456,6 +456,6 @@
void
MessageLog::help()
{
- emit helpRequested("log");
+ plugin()->showHelpTopic("log");
}
Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -25,7 +25,7 @@
class MessageLog;
-class MessageLogPlugin : public QObject, public VidaliaPluginInterface
+class MessageLogPlugin : public VidaliaPluginInterface
{
Q_OBJECT
Q_INTERFACES(VidaliaPluginInterface)
@@ -51,3 +51,4 @@
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetViewer.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetViewer.cpp 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetViewer.cpp 2009-07-12 01:36:02 UTC (rev 3959)
@@ -326,7 +326,7 @@
void
NetViewer::help()
{
- emit helpRequested("netview");
+ plugin()->showHelpTopic("netview");
}
/** Retrieves a list of all running routers from Tor and their descriptors,
@@ -585,3 +585,4 @@
_map->show();
}
}
+
Modified: vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -25,7 +25,7 @@
/** Plugin for viewer the user's network panel, containing a visual display of
* the Tor network. */
-class NetworkMapPlugin : public QObject, public VidaliaPluginInterface
+class NetworkMapPlugin : public VidaliaPluginInterface
{
Q_OBJECT
Q_INTERFACES(VidaliaPluginInterface)
@@ -49,3 +49,4 @@
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/PluginManager.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/PluginManager.cpp 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/PluginManager.cpp 2009-07-12 01:36:02 UTC (rev 3959)
@@ -98,6 +98,12 @@
}
void
+PluginManager::showHelpTopic(const QString &topic)
+{
+ emit helpRequested(topic);
+}
+
+void
PluginManager::newIdentity()
{
emit newIdentityRequest();
Modified: vidalia/branches/extension-api/src/vidalia/PluginManager.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/PluginManager.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/PluginManager.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -67,6 +67,9 @@
void startProxy();
/** Request MainWindow to stop the proxy server */
void stopProxy();
+ /** Displays the Vidalia help viewer with the current page set to
+ * <b>topic</b>. */
+ void showHelpTopic(const QString &topic);
signals:
/** Sends a signal to MainWindow requesting the Vidalia Help Dialog */
@@ -98,6 +101,7 @@
void proxyStopping();
/** Send a signal signifying that the Proxy server is stopped */
void proxyStopped();
+
private:
/** Emit proxy status signal based on provided status value */
void sendProxyStatus(PMStatus status);
Modified: vidalia/branches/extension-api/src/vidalia/VidaliaPanel.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/VidaliaPanel.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/VidaliaPanel.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -44,12 +44,13 @@
virtual QIcon tabIcon() const = 0;
/** Returns the status widget to be displayed when panel is in focus */
virtual QWidget* statusWidget() const {return 0;}
-signals:
- void helpRequested(const QString& topic);
+
protected:
const VidaliaPluginInterface* const plugin() const {return _parentPlugin;}
+
private:
VidaliaPluginInterface* _parentPlugin;
};
#endif
+
Modified: vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.cpp 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.cpp 2009-07-12 01:36:02 UTC (rev 3959)
@@ -39,3 +39,10 @@
{
_pluginManager = pluginManager;
}
+
+void
+VidaliaPluginInterface::showHelpTopic(const QString &topic) const
+{
+ _pluginManager->showHelpTopic(topic);
+}
+
Modified: vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.h 2009-07-10 04:42:38 UTC (rev 3958)
+++ vidalia/branches/extension-api/src/vidalia/VidaliaPluginInterface.h 2009-07-12 01:36:02 UTC (rev 3959)
@@ -22,6 +22,7 @@
#include "VidaliaPanel.h"
#include "VidaliaWidget.h"
+#include <QObject>
#include <QtPlugin>
#include <QSettings>
#include <QString>
@@ -34,8 +35,10 @@
* included functions in order to display themselves and have menu entries. If
* a plugin does not implement a given function then that functionality will
* not be included for the plugin. */
-class VidaliaPluginInterface
+class VidaliaPluginInterface : public QObject
{
+ Q_OBJECT
+
friend class PluginManager;
public:
@@ -54,7 +57,7 @@
/** Virtual function return a configuration page for a plugin. */
virtual ConfigPage* preferenceMenuEntry() const { return 0; }
/** Virtual function to allow for UI retranslation. */
- virtual void retranslateUI() {}
+ virtual void retranslateUi() {}
/** Virtual function to return a human readable name for a plugin. */
virtual QString name() const = 0;
/** Virtual function return a unique (spaceless) name for a plugin */
@@ -63,14 +66,21 @@
virtual QString description() const { return QString(); }
/** Returns a plugins data directory. */
QString dataDirectory() const;
+
/** Returns a QSettings object for plugins to load and save configurations.
- * Plugin is responsible for managing the QSettings object. */
+ * Plugin is responsible for managing the QSettings object.
+ */
QSettings* settings() const;
-signals:
- void helpRequested(const QString& topic);
+
+ /** Displays Vidalia's Help dialog with the focus set to the specified
+ * <b>topic</b>.
+ */
+ void showHelpTopic(const QString &topic) const;
+
protected:
/** A singleton instance of the plugin manager. */
PluginManager* _pluginManager;
+
private:
/** Allows the Plugin Manager to pass an instance of itself to the plugin. */
void setPluginManager(PluginManager* pluginManager);
@@ -80,3 +90,4 @@
"net.vidalia-project.vidalia.VidaliaPluginInterface/1.0")
#endif
+