[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r4035: Updated build on OSX to include default plugins, load them p (in vidalia/branches/extension-api/src: plugins/TorBrowserBundlePlugin vidalia vidalia/config)
Author: tyree731
Date: 2009-08-13 18:44:19 -0400 (Thu, 13 Aug 2009)
New Revision: 4035
Modified:
vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp
Log:
Updated build on OSX to include default plugins, load them properly. Changed default plugin directory to be more correct. Updated code for TBB
Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp 2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp 2009-08-13 22:44:19 UTC (rev 4035)
@@ -16,16 +16,15 @@
#include "TorBrowserBundlePlugin.h"
+#include <QDir>
#include <QProcess>
#include <QSettings>
#include <QString>
TorBrowserBundlePlugin::TorBrowserBundlePlugin()
{
- 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()
@@ -53,21 +52,66 @@
void
TorBrowserBundlePlugin::start()
{
+ /* Create the executable launchers */
+ _browserProcess = new QProcess(this);
+ _imProcess = new QProcess(this);
+
+ /* Connect their signals */
+
+ /* Set the firefox environment to increase security */
+ QStringList browserEnvironment = QProcess::systemEnvironment();
+ browserEnvironment << "TZ=UTC";
+ browserEnvironment << "MOZ_NO_REMOTE=1";
+
QSettings* tbbSettings = VidaliaPluginInterface::settings();
- QString firefoxExecutable = tbbSettings->value("firefox_executable",
- QString()).toString();
+ /* Launch the browser (firefox) */
+ QString browserExecutable = tbbSettings->value("BrowserExecutable",
+ QString()).toString();
- QString pidginExecutable = tbbSettings->value("pidgin_executable",
+ QString browserDirectory = tbbSettings->value("BrowserDirectory",
QString()).toString();
- /* *** TODO: Arguments? *** */
+ /* If both values are set */
+ if (!browserExecutable.isNull() && !browserDirectory.isNull()) {
+ /* Launch firefox directly? */
- /* If either is null, don't start tbb */
- if (pidginExecutable.isNull() || firefoxExecutable.isNull()) {
- return;
+ /* Executable is located at <browserdir>/Contents/MacOS/<browserexe> */
+ QString browserExecutablePath = QDir::toNativeSeparators(browserDirectory +
+ "/Contents/MacOS" +
+ browserExecutable);
+
+ /* Profile is located at <browserdir>/Contents/Resources/profile */
+ QString profileDir = QDir::toNativeSeparators(browserDirectory +
+ "/Resources/profile");
+
+ /* Construct the profile arguments */
+ QStringList arguments;
+ arguments << "--profile";
+ arguments << profileDir;
+
+ /* Start the browser process */
+ _browserProcess->start(browserExecutablePath, arguments);
}
+ /* Launch the IM client (Pidgin) */
+ QString imExecutable = tbbSettings->value("IMExecutable",
+ QString()).toString();
+
+ QString imDirectory = tbbSettings->value("IMDirectory",
+ QString()).toString();
+
+ /* If both values are set */
+ if (!imExecutable.isNull() && !imDirectory.isNull()) {
+ /* Executable located at <imdir>/Contents/MacOS/imexe> */
+ QString imExecutablePath = QDir::toNativeSeparators(imDirectory +
+ "/Contents/MacOS" +
+ imExecutable);
+
+ /* Start the process */
+ _imProcess->start(imExecutablePath);
+ }
+
delete tbbSettings;
}
Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h 2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h 2009-08-13 22:44:19 UTC (rev 4035)
@@ -41,8 +41,8 @@
void start();
private:
- QProcess* _firefoxProcess;
- QProcess* _pidginProcess;
+ QProcess* _browserProcess;
+ QProcess* _imProcess;
};
#endif
Modified: vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/vidalia/CMakeLists.txt 2009-08-13 22:44:19 UTC (rev 4035)
@@ -302,6 +302,31 @@
${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/
)
+ ## Include the default plugins
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E make_directory
+ ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins
+ )
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/HomePlugin/libhomeplugin.so
+ ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+ )
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/NetworkMapPlugin/libnetworkmapplugin.so
+ ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+ )
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/MessageLogPlugin/libmessagelogplugin.so
+ ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+ )
+
if (USE_MARBLE)
## Copy the Marble data into the bundle
foreach(it ${marble_DATA})
Modified: vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp 2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp 2009-08-13 22:44:19 UTC (rev 4035)
@@ -242,10 +242,21 @@
QString
VidaliaSettings::getPluginDirectory() const
{
- QString defaultPluginsDirectory = Vidalia::dataDirectory();
- defaultPluginsDirectory += "/plugins";
-
- return value(SETTING_PLUGIN_DIRECTORY, defaultPluginsDirectory).toString();
+ QDir defaultPluginsDirectory;
+#if defined(Q_OS_WIN)
+ defaultPluginsDirectory.cd(vApp->applicationDirPath());
+ defaultPluginsDirectory.cd("plugins");
+#elif defined(Q_OS_MAC)
+ defaultPluginsDirectory.cd(vApp->applicationDirPath());
+ defaultPluginsDirectory.cdUp();
+ defaultPluginsDirectory.cd("Resources");
+ defaultPluginsDirectory.cd("plugins");
+#else
+ defaultPluginsDirectory.cd(Vidalia::dataDirectory);
+ defaultPluginsDirectory.cd("plugins");
+#endif
+ return value(SETTING_PLUGIN_DIRECTORY,
+ defaultPluginsDirectory.absolutePath()).toString();
}
/** Returns a fully-qualified path to the proxy server, including the