[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)
 {