[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3878: Fixed code to better conform to coding standards. Added code (in vidalia/branches/extension-api/src: plugins/HomePlugin plugins/WebBrowserPlugin vidalia)
Author: tyree731
Date: 2009-06-22 18:59:00 -0400 (Mon, 22 Jun 2009)
New Revision: 3878
Modified:
vidalia/branches/extension-api/src/plugins/HomePlugin/HomePlugin.cpp
vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.cpp
vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.h
vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowserPlugin.cpp
vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
vidalia/branches/extension-api/src/vidalia/MainWindow.h
vidalia/branches/extension-api/src/vidalia/PluginManager.cpp
vidalia/branches/extension-api/src/vidalia/PluginManager.h
Log:
Fixed code to better conform to coding standards. Added code for returning and using plugins.
Modified: vidalia/branches/extension-api/src/plugins/HomePlugin/HomePlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/HomePlugin/HomePlugin.cpp 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/plugins/HomePlugin/HomePlugin.cpp 2009-06-22 22:59:00 UTC (rev 3878)
@@ -24,7 +24,8 @@
{
}
-QString HomePlugin::pluginHumanName() const
+QString
+HomePlugin::pluginHumanName() const
{
return QString("Home Panel");
}
Modified: vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.cpp 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.cpp 2009-06-22 22:59:00 UTC (rev 3878)
@@ -33,17 +33,20 @@
WebBrowser::~WebBrowser() {
}
-QString WebBrowser::tabLabel() const
+QString
+WebBrowser::tabLabel() const
{
return QString("Web Browser");
}
-QIcon WebBrowser::tabIcon() const
+QIcon
+WebBrowser::tabIcon() const
{
return QIcon();
}
-void WebBrowser::loadURL()
+void
+WebBrowser::loadURL()
{
ui.webView->load(ui.lineUrlEntry->displayText());
}
Modified: vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.h 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowser.h 2009-06-22 22:59:00 UTC (rev 3878)
@@ -46,12 +46,12 @@
/** tabIcon provides a hook for the Vidalia plugin API to populate a given
* panel's tab with an icon. */
QIcon tabIcon() const;
+private:
+ /** Required to use Qt Designer object */
+ Ui::WebBrowser ui;
private slots:
/** Loads the URL inside of the URL entry box. */
void loadURL();
-private:
- /** Required to use Qt Designer object */
- Ui::WebBrowser ui;
};
#endif
Modified: vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowserPlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowserPlugin.cpp 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/plugins/WebBrowserPlugin/WebBrowserPlugin.cpp 2009-06-22 22:59:00 UTC (rev 3878)
@@ -26,12 +26,14 @@
delete _webBrowser;
}
-QString WebBrowserPlugin::pluginHumanName() const
+QString
+WebBrowserPlugin::pluginHumanName() const
{
return QString("Web Browser");
}
-VidaliaPanel* WebBrowserPlugin::panel() const
+VidaliaPanel*
+WebBrowserPlugin::panel() const
{
return _webBrowser;
}
Modified: vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MainWindow.cpp 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/vidalia/MainWindow.cpp 2009-06-22 22:59:00 UTC (rev 3878)
@@ -140,11 +140,14 @@
setContentsMargins(-12, -12, -12, -12);
ui.vboxLayout->setContentsMargins(-12, -12, -12, -12);
- /* Add the default panels to the tab bar */
+ /* Populate the tab bar with plugins */
+ populateTabs(_pluginManager->plugins());
+#if 0
ui.tabMainPanel->addTab(_homePanel, tr("Home Panel"));
ui.tabMainPanel->addTab(_dashboard, tr("Dashboard"));
ui.tabMainPanel->addTab(_netViewer, tr("Network Viewer"));
ui.tabMainPanel->addTab(_messageLog, tr("Message Log"));
+#endif
ui.tabMainPanel->removeTab(0);
ui.tabMainPanel->removeTab(0);
@@ -638,6 +641,18 @@
_browserProcess->start(browserExecutable, commandLine);
}
+/** Loads plugin's VidaliaPanel's into the main tab widget. */
+void
+MainWindow::populateTabs(QList<VidaliaPluginInterface*> plugins)
+{
+ foreach (VidaliaPluginInterface* plugin, plugins) {
+ if (plugin->panel()) {
+ ui.tabMainPanel->addTab(plugin->panel(), plugin->panel()->tabIcon(),
+ plugin->panel()->tabLabel());
+ }
+ }
+}
+
/** Starts the web browser and IM client, if appropriately configured */
void
MainWindow::startSubprocesses()
Modified: vidalia/branches/extension-api/src/vidalia/MainWindow.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MainWindow.h 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/vidalia/MainWindow.h 2009-06-22 22:59:00 UTC (rev 3878)
@@ -23,7 +23,6 @@
#include "VidaliaWindow.h"
#include "HelperProcess.h"
#include "TrayIcon.h"
-#include "PluginManager.h"
#include "AboutDialog.h"
#include "MessageLog.h"
#include "BandwidthGraph.h"
@@ -33,6 +32,9 @@
#include "HomePanel.h"
#include "NetViewer.h"
+#include "PluginManager.h"
+#include "VidaliaPluginInterface.h"
+
#include "TorControl.h"
#include "BootstrapStatusEvent.h"
@@ -44,6 +46,7 @@
#include "UPNPControl.h"
#endif
+#include <QList>
#include <QMainWindow>
#include <QTimer>
#include <QTabBar>
@@ -184,9 +187,9 @@
TorStatus updateTorStatus(TorStatus status);
/** Start a web browser when given the directory containing the executable and profile */
void launchBrowserFromDirectory();
- /** Searches for and loads plugins either compiled in statically or
- * dynamically linked plugins stored in the plugins/ directory. */
- void loadPlugins();
+ /** Takes a list of plugin instances and populates the main tab widget with
+ * the plugin's VidaliaPanel if it has one. */
+ void populateTabs(QList<VidaliaPluginInterface*> plugins);
/** Starts the web browser, if appropriately configured */
void startSubprocesses();
/** Starts the proxy server, if appropriately configured */
Modified: vidalia/branches/extension-api/src/vidalia/PluginManager.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/PluginManager.cpp 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/vidalia/PluginManager.cpp 2009-06-22 22:59:00 UTC (rev 3878)
@@ -28,18 +28,17 @@
{
}
-void PluginManager::loadPlugins(QString applicationDirectory,
- QString dataDirectory)
+void
+PluginManager::loadPlugins(QString applicationDirectory, QString dataDirectory)
{
foreach (QObject *plugin, QPluginLoader::staticInstances()) {
VidaliaPluginInterface* pluginInstance =
qobject_cast<VidaliaPluginInterface*>(plugin);
if (pluginInstance) {
_pluginList.push_back(pluginInstance);
+ } else {
+ /* Invalid plugin type? */
}
- else {
- /** Invalid plugin type? */
- }
}
QDir dataPluginsDir = QDir(dataDirectory);
@@ -53,17 +52,16 @@
#endif
applicationPluginsDir.cd("Plugins");
- /** I'll fix the copy-paste later. */
+ /* I'll fix the copy-paste later. */
foreach (QString fileName, applicationPluginsDir.entryList(QDir::Files)) {
QPluginLoader loader(applicationPluginsDir.absoluteFilePath(fileName));
VidaliaPluginInterface* pluginInstance =
qobject_cast<VidaliaPluginInterface*>(loader.instance());
if (pluginInstance) {
_pluginList.push_back(pluginInstance);
+ } else {
+ /* Either not a plugin file or not a vidaliaplugininterface plugin */
}
- else {
- /** Either not a plugin file or not a vidaliaplugininterface plugin */
- }
}
foreach (QString fileName, dataPluginsDir.entryList(QDir::Files)) {
@@ -72,9 +70,15 @@
qobject_cast<VidaliaPluginInterface*>(loader.instance());
if (pluginInstance) {
_pluginList.push_back(pluginInstance);
+ } else {
+ /* Either not a plugin file or not a vidaliaplugininterface plugin */
}
- else {
- /** Either not a plugin file or not a vidaliaplugininterface plugin */
- }
}
}
+
+
+QList<VidaliaPluginInterface*>
+PluginManager::plugins() const
+{
+ return _pluginList;
+}
Modified: vidalia/branches/extension-api/src/vidalia/PluginManager.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/PluginManager.h 2009-06-22 03:39:30 UTC (rev 3877)
+++ vidalia/branches/extension-api/src/vidalia/PluginManager.h 2009-06-22 22:59:00 UTC (rev 3878)
@@ -33,6 +33,8 @@
~PluginManager();
/** Loads all included static and dynamic plugins. */
void loadPlugins(QString applicationDirectory, QString dataDirectory);
+ /** Returns a QList of all loaded plugin instances. */
+ QList<VidaliaPluginInterface*> plugins() const;
private:
QList<VidaliaPluginInterface*> _pluginList;
};