[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r14948: Patch to Vidalia which starts up IM client Update TBB vidali (in torbrowser/branches/pidgin: build-scripts/config src/current-patches)
Author: sjm217
Date: 2008-06-04 14:38:35 -0400 (Wed, 04 Jun 2008)
New Revision: 14948
Modified:
torbrowser/branches/pidgin/build-scripts/config/vidalia.conf
torbrowser/branches/pidgin/src/current-patches/vidalia-startim.patch
Log:
Patch to Vidalia which starts up IM client
Update TBB vidalia.conf to start Pidgin
Modified: torbrowser/branches/pidgin/build-scripts/config/vidalia.conf
===================================================================
--- torbrowser/branches/pidgin/build-scripts/config/vidalia.conf 2008-06-04 12:51:00 UTC (rev 14947)
+++ torbrowser/branches/pidgin/build-scripts/config/vidalia.conf 2008-06-04 18:38:35 UTC (rev 14948)
@@ -1,5 +1,6 @@
[General]
BrowserExecutable=FirefoxPortable\\FirefoxPortable.exe
+IMExecutable=PidginPortable\\PidginPortable.exe
LanguageCode=en
ProxyExecutable=App\\polipo.exe
ProxyExecutableArguments=-c, Data\\Polipo\\polipo.conf
Modified: torbrowser/branches/pidgin/src/current-patches/vidalia-startim.patch
===================================================================
--- torbrowser/branches/pidgin/src/current-patches/vidalia-startim.patch 2008-06-04 12:51:00 UTC (rev 14947)
+++ torbrowser/branches/pidgin/src/current-patches/vidalia-startim.patch 2008-06-04 18:38:35 UTC (rev 14948)
@@ -1,6 +1,6 @@
Index: src/vidalia/config/vidaliasettings.cpp
===================================================================
---- src/vidalia/config/vidaliasettings.cpp (revision 2643)
+--- src/vidalia/config/vidaliasettings.cpp (revision 2665)
+++ src/vidalia/config/vidaliasettings.cpp (working copy)
@@ -32,6 +32,7 @@
#define SETTING_DATA_DIRECTORY "DataDirectory"
@@ -31,7 +31,7 @@
+}
+
+/** Sets the location and name of the IM client executable to the given string.
-+ * If set to the empty string, the browser will not be started. */
++ * If set to the empty string, the client will not be started. */
+void
+VidaliaSettings::setIMExecutable(const QString &IMExecutable)
+{
@@ -43,7 +43,7 @@
bool
Index: src/vidalia/config/vidaliasettings.h
===================================================================
---- src/vidalia/config/vidaliasettings.h (revision 2643)
+--- src/vidalia/config/vidaliasettings.h (revision 2665)
+++ src/vidalia/config/vidaliasettings.h (working copy)
@@ -68,6 +68,13 @@
* string. If set to the empty string, the browser will not be started. */
@@ -59,9 +59,66 @@
/** Returns true if Vidalia should start a proxy application when it
* starts. */
bool runProxyAtStart();
+Index: src/vidalia/helperprocess.cpp
+===================================================================
+--- src/vidalia/helperprocess.cpp (revision 2665)
++++ src/vidalia/helperprocess.cpp (working copy)
+@@ -50,6 +50,12 @@
+ // Call error handling routine on errors
+ QObject::connect(this, SIGNAL(error(QProcess::ProcessError)),
+ this, SLOT(onError(QProcess::ProcessError)));
++ // Call started handler on successful startup
++ QObject::connect(this, SIGNAL(started()),
++ this, SLOT(onStart()));
++
++ // Mark as not having started
++ _okStart = false;
+ }
+
+ /** Start the specified application. */
+@@ -70,4 +76,16 @@
+ }
+ }
+
++/** Invoked when underlying QProcess starts. */
++void
++HelperProcess::onStart()
++{
++ _okStart = true;
++}
+
++/** Returns true iff process is not running. */
++bool
++HelperProcess::isDone() const
++{
++ return state() == NotRunning;
++}
+Index: src/vidalia/helperprocess.h
+===================================================================
+--- src/vidalia/helperprocess.h (revision 2665)
++++ src/vidalia/helperprocess.h (working copy)
+@@ -53,10 +53,18 @@
+ HelperProcess(QObject *parent = 0);
+ /** Start the specified application. */
+ void start(const QString &app, const QStringList &args);
++ /** Returns true iff process is not running. */
++ bool isDone() const;
+
++private:
++ /** True iff the underlying QProcess has sucessfully started */
++ bool _okStart;
++
+ private slots:
+ /** Invoked when underlying QProcess fails. */
+ void onError(QProcess::ProcessError error);
++ /** Invoked when underlying QProcess starts. */
++ void onStart();
+
+ signals:
+ /** Invoked when start() fails. */
Index: src/vidalia/mainwindow.cpp
===================================================================
---- src/vidalia/mainwindow.cpp (revision 2643)
+--- src/vidalia/mainwindow.cpp (revision 2665)
+++ src/vidalia/mainwindow.cpp (working copy)
@@ -128,10 +128,17 @@
/* Create a new HelperProcess object, used to start the web browser */
@@ -82,8 +139,26 @@
/* Create a new HelperProcess object, used to start the proxy server */
_proxyProcess = new HelperProcess(this);
connect(_proxyProcess, SIGNAL(startFailed(QString)),
-@@ -419,8 +426,8 @@
+@@ -409,26 +416,43 @@
+ #endif
+ }
+
+-/** Starts the web browser, if appropriately configured */
+-void MainWindow::startBrowser()
++/** Starts the web browser and IM client, if appropriately configured */
++void MainWindow::startSubprocesses()
+ {
+ VidaliaSettings settings;
+ QString executable = settings.getBrowserExecutable();
+
+ if (!executable.isEmpty())
_browserProcess->start(executable, QStringList());
++
++ executable = settings.getIMExecutable();
++
++ if (!executable.isEmpty())
++ _imProcess->start(executable, QStringList());
++
}
-/** Called when browser has exited */
@@ -93,8 +168,20 @@
{
Q_UNUSED(exitCode)
Q_UNUSED(exitStatus)
-@@ -428,7 +435,7 @@
- shutdown();
+
+- shutdown();
++ /* Get path to browser and IM client */
++ VidaliaSettings settings;
++ QString browserExecutable = settings.getBrowserExecutable();
++ QString imExecutable = settings.getIMExecutable();
++
++ /* A subprocess is finished if it successfully exited or was never asked to start */
++ bool browserDone = browserExecutable.isEmpty() || _browserProcess->isDone();
++ bool imDone = imExecutable.isEmpty() || _imProcess->isDone();
++
++ /* Exit if both subprocesses are finished */
++ if (browserDone && imDone)
++ shutdown();
}
-/** Called when the web browser, for example, because the path
@@ -102,7 +189,7 @@
* specified to the web browser executable didn't lead to an executable. */
void
MainWindow::onBrowserFailed(QString errmsg)
-@@ -441,6 +448,19 @@
+@@ -441,6 +465,19 @@
VMessageBox::Ok|VMessageBox::Default|VMessageBox::Escape);
}
@@ -122,9 +209,18 @@
/** Starts the proxy server, if appropriately configured */
void MainWindow::startProxy()
{
+@@ -1032,7 +1069,7 @@
+ MainWindow::circuitEstablished()
+ {
+ updateTorStatus(CircuitEstablished);
+- startBrowser();
++ startSubprocesses();
+ }
+
+ /** Checks the status of the current version of Tor to see if it's old,
Index: src/vidalia/mainwindow.h
===================================================================
---- src/vidalia/mainwindow.h (revision 2643)
+--- src/vidalia/mainwindow.h (revision 2665)
+++ src/vidalia/mainwindow.h (working copy)
@@ -101,10 +101,12 @@
void showServerConfigDialog();
@@ -141,6 +237,15 @@
/** Called when the proxy server fails to start */
void onProxyFailed(QString errmsg);
+@@ -137,7 +139,7 @@
+ * previously set TorStatus value. */
+ TorStatus updateTorStatus(TorStatus status);
+ /** Starts the web browser, if appropriately configured */
+- void startBrowser();
++ void startSubprocesses();
+ /** Starts the proxy server, if appropriately configured */
+ void startProxy();
+ /** Converts a TorStatus enum value to a string for debug logging purposes. */
@@ -179,6 +181,8 @@
TorControl* _torControl;
/** A HelperProcess object that manages the web browser */