[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r4015: Dynamic plugins now load correctly. Need to convert old stat (in vidalia/branches/extension-api: . src src/plugins src/plugins/HerdictWebReporterPlugin src/plugins/TorBrowserBundlePlugin src/vidalia src/vidalia/DashboardPlugin src/vidalia/HomePlugin src/vidalia/MessageLogPlugin src/vidalia/NetworkMapPlugin)
Author: tyree731
Date: 2009-08-06 20:27:04 -0400 (Thu, 06 Aug 2009)
New Revision: 4015
Added:
vidalia/branches/extension-api/src/plugins/VidaliaPlugin.cpp
vidalia/branches/extension-api/src/plugins/VidaliaPlugin.h
Modified:
vidalia/branches/extension-api/CMakeLists.txt
vidalia/branches/extension-api/src/CMakeLists.txt
vidalia/branches/extension-api/src/plugins/CMakeLists.txt
vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/CMakeLists.txt
vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h
vidalia/branches/extension-api/src/plugins/PluginManager.cpp
vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/CMakeLists.txt
vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
vidalia/branches/extension-api/src/plugins/VidaliaPluginInterface.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/MessageLogPlugin/MessageLogPlugin.h
vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h
vidalia/branches/extension-api/src/vidalia/main.cpp
Log:
Dynamic plugins now load correctly. Need to convert old static plugins to dynamic ones so they load as well.
Modified: vidalia/branches/extension-api/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -54,7 +54,7 @@
set(QT_USE_QTSCRIPT true)
set(QT_USE_QTDBUS true)
endif(USE_MARBLE)
-include(${QT_USE_FILE})
+include( ${QT_USE_FILE} )
include(${CMAKE_SOURCE_DIR}/cmake/VidaliaMacros.cmake)
include(CheckIncludeFile)
include(CheckIncludeFileCXX)
Modified: vidalia/branches/extension-api/src/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -34,8 +34,6 @@
endif(NOT QT_CONFIG MATCHES "static")
endif(WIN32)
-add_definitions(-DQT_STATICPLUGIN)
-
if (USE_MINIUPNPC)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/miniupnpc)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/miniupnpc)
Modified: vidalia/branches/extension-api/src/plugins/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/plugins/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -10,16 +10,21 @@
## the terms described in the LICENSE file.
##
+include_directories(
+# ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+)
add_definitions(-DVIDALIA_PLUGIN_LIBRARY=1)
set(plugin_SRCS
PluginManager.cpp
VidaliaPluginInterface.cpp
+ VidaliaPlugin.cpp
)
qt4_wrap_cpp(plugin_SRCS
PluginManager.h
VidaliaPanel.h
- VidaliaPluginInterface.h
+ VidaliaPlugin.h
ConfigPage.h
)
Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -40,7 +40,7 @@
HerdictWebReporterPlugin.qrc
)
-add_library(herdictwebreporterplugin STATIC ${herdictwebreporterplugin_SRCS})
+add_library(herdictwebreporterplugin MODULE ${herdictwebreporterplugin_SRCS})
target_link_libraries(herdictwebreporterplugin
${QT_LIBRARIES}
vidaliaplugin
Modified: vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/HerdictWebReporterPlugin/HerdictWebReporterPlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -17,17 +17,16 @@
#ifndef _HERDICTWEBREPORTERPLUGIN_H
#define _HERDICTWEBREPORTERPLUGIN_H
-#include <plugins/VidaliaPluginInterface.h>
+#include <plugins/VidaliaPlugin.h>
#include <QObject>
#include <QString>
#include "HerdictWebReporterPanel.h"
-class HerdictWebReporterPlugin : public VidaliaPluginInterface
+class HerdictWebReporterPlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
HerdictWebReporterPlugin();
Modified: vidalia/branches/extension-api/src/plugins/PluginManager.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/PluginManager.cpp 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/PluginManager.cpp 2009-08-07 00:27:04 UTC (rev 4015)
@@ -50,7 +50,7 @@
pluginInstance->setPluginManager(this);
_pluginList.push_back(pluginInstance);
} else {
- /* Invalid plugin type? */
+ qDebug() << "Plugin Loading error: Static plugin not of type VidaliaPluginInterface\n";
}
}
@@ -61,11 +61,12 @@
QPluginLoader loader(applicationPluginsDir.absoluteFilePath(fileName));
VidaliaPluginInterface* pluginInstance =
qobject_cast<VidaliaPluginInterface*>(loader.instance());
+
if (pluginInstance) {
pluginInstance->setPluginManager(this);
_pluginList.push_back(pluginInstance);
} else {
- /* Either not a plugin file or not a vidaliaplugininterface plugin */
+ qDebug() << "Plugin loading error: " << loader.errorString() << "\n";
}
}
Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -22,7 +22,7 @@
TorBrowserBundlePlugin.h
)
-add_library(torbrowserbundleplugin SHARED ${torbrowserbundleplugin_SRCS})
+add_library(torbrowserbundleplugin MODULE ${torbrowserbundleplugin_SRCS})
target_link_libraries(torbrowserbundleplugin
${QT_LIBRARIES}
vidaliaplugin
Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp 2009-08-07 00:27:04 UTC (rev 4015)
@@ -25,7 +25,7 @@
qDebug() << "TBB: It works!";
/* Listen for the TorStarted() signal to begin TBB */
- connect(_pluginManager, SIGNAL(torStarted()), this, SLOT(start()));
+ // connect(_pluginManager, SIGNAL(torStarted()), this, SLOT(start()));
}
TorBrowserBundlePlugin::~TorBrowserBundlePlugin()
Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -17,15 +17,16 @@
#ifndef _TORBROWSERBUNDLEPLUGIN_H
#define _TORBROWSERBUNDLEPLUGIN_H
-#include <plugins/VidaliaPluginInterface.h>
+#include <plugins/VidaliaPlugin.h>
+#include <QObject>
+
class QProcess;
class QString;
-class TorBrowserBundlePlugin : public VidaliaPluginInterface
+class TorBrowserBundlePlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
TorBrowserBundlePlugin();
Added: vidalia/branches/extension-api/src/plugins/VidaliaPlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/VidaliaPlugin.cpp (rev 0)
+++ vidalia/branches/extension-api/src/plugins/VidaliaPlugin.cpp 2009-08-07 00:27:04 UTC (rev 4015)
@@ -0,0 +1,21 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If you
+** did not receive the LICENSE file with this file, you may obtain it from the
+** Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to the
+** terms described in the LICENSE file.
+*/
+
+/*
+** \file VidaliaPluginInterface.cpp
+** \version $Id$
+** \brief Defines the Vidalia plugin interface.
+*/
+
+#include "VidaliaPlugin.h"
+
+VidaliaPlugin::VidaliaPlugin()
+{
+}
Property changes on: vidalia/branches/extension-api/src/plugins/VidaliaPlugin.cpp
___________________________________________________________________
Added: svn:keywords
+ id
Added: svn:eol-style
+ native
Added: vidalia/branches/extension-api/src/plugins/VidaliaPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/VidaliaPlugin.h (rev 0)
+++ vidalia/branches/extension-api/src/plugins/VidaliaPlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -0,0 +1,41 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If you
+** did not receive the LICENSE file with this file, you may obtain it from the
+** Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to the
+** terms described in the LICENSE file.
+*/
+
+/*
+** \file VidaliaPluginInterface.h
+** \version $Id$
+** \brief Defines the Vidalia plugin interface.
+*/
+
+#ifndef _VIDALIAPLUGIN_H
+#define _VIDALIAPLUGIN_H
+
+#include "VidaliaPluginInterface.h"
+
+/** API for vidalia plugins. Plugins have the ability to implement the various
+ * 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 VIDALIA_PLUGIN_EXPORT VidaliaPlugin : public QObject,
+ public VidaliaPluginInterface
+{
+ Q_OBJECT
+ Q_INTERFACES(VidaliaPluginInterface)
+
+public:
+ /** Superclass constructor for plugins */
+ VidaliaPlugin();
+ /** Virtual destructor */
+ virtual ~VidaliaPlugin() {}
+
+};
+
+#endif
+
Property changes on: vidalia/branches/extension-api/src/plugins/VidaliaPlugin.h
___________________________________________________________________
Added: svn:keywords
+ id
Added: svn:eol-style
+ native
Modified: vidalia/branches/extension-api/src/plugins/VidaliaPluginInterface.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/VidaliaPluginInterface.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/plugins/VidaliaPluginInterface.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -23,7 +23,6 @@
#include "ConfigPage.h"
#include "plugin_export.h"
-#include <QObject>
#include <QtPlugin>
#include <QSettings>
#include <QString>
@@ -36,10 +35,8 @@
* 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 VIDALIA_PLUGIN_EXPORT VidaliaPluginInterface : public QObject
+class VIDALIA_PLUGIN_EXPORT VidaliaPluginInterface
{
- Q_OBJECT
-
friend class PluginManager;
public:
Modified: vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-08-07 00:27:04 UTC (rev 4015)
@@ -393,7 +393,7 @@
dashboardplugin
messagelogplugin
networkmapplugin
- herdictwebreporterplugin
+# herdictwebreporterplugin
)
if (USE_MINIUPNPC)
target_link_libraries(${vidalia_BIN} miniupnpc)
Modified: vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/DashboardPlugin/DashboardPlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -18,14 +18,13 @@
#define _DASHBOARDPLUGIN_H
#include <PluginManager.h>
-#include <VidaliaPluginInterface.h>
+#include <VidaliaPlugin.h>
#include <QObject>
-class DashboardPlugin : public VidaliaPluginInterface
+class DashboardPlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
DashboardPlugin();
Modified: vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/HomePlugin/HomePlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -17,17 +17,16 @@
#ifndef _HOMEPLUGIN_H
#define _HOMEPLUGIN_H
-#include <VidaliaPluginInterface.h>
+#include <VidaliaPlugin.h>
#include <QObject>
#include <QString>
#include "HomePanel.h"
-class HomePlugin : public VidaliaPluginInterface
+class HomePlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
HomePlugin();
Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLogPlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -17,7 +17,7 @@
#ifndef _MESSAGELOGPLUGIN_H
#define _MESSAGELOGPLUGIN_H
-#include <plugins/VidaliaPluginInterface.h>
+#include <VidaliaPlugin.h>
#include <QObject>
@@ -25,10 +25,9 @@
class MessageLog;
-class MessageLogPlugin : public VidaliaPluginInterface
+class MessageLogPlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
MessageLogPlugin();
Modified: vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/NetworkMapPlugin/NetworkMapPlugin.h 2009-08-07 00:27:04 UTC (rev 4015)
@@ -21,14 +21,13 @@
#include <QObject>
-#include <plugins/VidaliaPluginInterface.h>
+#include <plugins/VidaliaPlugin.h>
/** Plugin for viewer the user's network panel, containing a visual display of
* the Tor network. */
-class NetworkMapPlugin : public VidaliaPluginInterface
+class NetworkMapPlugin : public VidaliaPlugin
{
Q_OBJECT
- Q_INTERFACES(VidaliaPluginInterface)
public:
NetworkMapPlugin();
Modified: vidalia/branches/extension-api/src/vidalia/main.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/main.cpp 2009-08-06 01:17:42 UTC (rev 4014)
+++ vidalia/branches/extension-api/src/vidalia/main.cpp 2009-08-07 00:27:04 UTC (rev 4015)
@@ -32,12 +32,6 @@
#include <signal.h>
#endif
-
-Q_IMPORT_PLUGIN(homeplugin)
-Q_IMPORT_PLUGIN(networkmapplugin)
-Q_IMPORT_PLUGIN(messagelogplugin)
-Q_IMPORT_PLUGIN(herdictwebreporterplugin)
-
extern "C" void
signal_handler(int signal)
{