[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r17848: {} vidalia-altlauncher.patch is now in the Vidalia alt-launcher (in torbrowser/trunk/src: archived-patches current-patches)



Author: sjm217
Date: 2009-01-02 14:48:55 -0500 (Fri, 02 Jan 2009)
New Revision: 17848

Added:
   torbrowser/trunk/src/archived-patches/vidalia-altlauncher.patch
Removed:
   torbrowser/trunk/src/current-patches/vidalia-altlauncher.patch
Log:
vidalia-altlauncher.patch is now in the Vidalia alt-launcher branch

Copied: torbrowser/trunk/src/archived-patches/vidalia-altlauncher.patch (from rev 17847, torbrowser/trunk/src/current-patches/vidalia-altlauncher.patch)
===================================================================
--- torbrowser/trunk/src/archived-patches/vidalia-altlauncher.patch	                        (rev 0)
+++ torbrowser/trunk/src/archived-patches/vidalia-altlauncher.patch	2009-01-02 19:48:55 UTC (rev 17848)
@@ -0,0 +1,185 @@
+Index: src/common/file.cpp
+===================================================================
+--- src/common/file.cpp	(revision 3023)
++++ src/common/file.cpp	(working copy)
+@@ -64,6 +64,43 @@
+   return true;
+ }
+ 
++/** Recursively copy the contents of one directory to another. The
++ * destination must already exist. Returns true on success, and false
++ * otherwise. */
++bool
++copy_dir(QString source, QString dest)
++{
++  /* Source and destination as QDir's */
++  QDir src(source);
++  QDir dst(dest);
++  
++  /* Get contents of the directory */
++  QFileInfoList contents = src.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
++
++  /* Copy each entry in src to dst */
++  foreach (QFileInfo fileInfo, contents) {
++    /* Get absolute path of source and destination */
++    QString fileName = fileInfo.fileName();
++    QString srcFilePath = src.absoluteFilePath(fileName);
++    QString dstFilePath = dst.absoluteFilePath(fileName);
++
++    if (fileInfo.isDir()) {
++      /* This is a directory, make it and recurse */
++      if (!dst.mkdir(fileName))
++	return false;
++      if (!copy_dir(srcFilePath, dstFilePath))
++	return false;
++    } else if (fileInfo.isFile()) {
++      /* This is a file, copy it */
++      if (!QFile::copy(srcFilePath, dstFilePath))
++	return false;
++    } 
++    /* Ignore special files (e.g. symlinks, devices) */
++
++  }
++  return true;
++}
++
+ /** Expands <b>filename</b> if it starts with "~/". On Windows, this will
+  * expand "%APPDATA%" and "%PROGRAMFILES%". If <b>filename</b> does not
+  * start with a shortcut, <b>filename</b> will be returned unmodified. */
+Index: src/common/file.h
+===================================================================
+--- src/common/file.h	(revision 3023)
++++ src/common/file.h	(working copy)
+@@ -32,6 +32,11 @@
+  * expand "%APPDATA%" and "%PROGRAMFILES%". If <b>filename</b> does not
+  * start with a shortcut, <b>filename</b> will be returned unmodified. */
+ QString expand_filename(QString filename);
++    
++/** Recursively copy the contents of one directory to another. The
++ * destination must already exist. Returns true on success, and false
++ * otherwise. */
++bool copy_dir(QString source, QString dest);
+ 
+ #endif
+ 
+Index: src/vidalia/mainwindow.cpp
+===================================================================
+--- src/vidalia/mainwindow.cpp	(revision 3024)
++++ src/vidalia/mainwindow.cpp	(working copy)
+@@ -29,6 +29,8 @@
+ #include <dangerousversionevent.h>
+ #include <vmessagebox.h>
+ 
++#include "procutil.h"
++
+ #include "mainwindow.h"
+ 
+ #define IMG_BWGRAPH        ":/images/16x16/utilities-system-monitor.png"
+@@ -459,15 +461,32 @@
+   env << "MOZ_NO_REMOTE=1";
+   _browserProcess->setEnvironment(env);
+ 
+-  /* The browser is in DIR/App/Firefox/firefox.exe */
++  /* The browser is in DIR/App/Firefox/tbb-firefox.exe */
+   QString browserExecutable =
+-    QDir::toNativeSeparators(browserDirectory + "/App/Firefox/firefox.exe");
+-  /* The profile is in DIR/Data/Firefox/profile */
++    QDir::toNativeSeparators(browserDirectory + "/App/Firefox/tbb-firefox.exe");
++  /* The profile is in DIR/Data/profile */
+   QString profileDir =
+-    QDir::toNativeSeparators(browserDirectory + "/Data/Firefox/profile");
++    QDir::toNativeSeparators(browserDirectory + "/Data/profile");
+ 
++  /* Copy the profile directory if it's not already there */
++  QDir browserDirObj = QDir(browserDirectory);
++
++  /* Copy the profile directory if it's not already there */
++  if (!browserDirObj.exists("Data/profile")) {
++    browserDirObj.mkdir("Data/profile");
++    copy_dir(browserDirectory + "/App/DefaultData/profile", browserDirectory + "/Data/profile");
++  }
++
++  /* Copy the plugins directory if it's not already there */
++  if (!browserDirObj.exists("Data/plugins")) {
++    browserDirObj.mkdir("Data/plugins");
++    copy_dir(browserDirectory + "/App/DefaultData/plugins", browserDirectory + "/Data/plugins");
++  }
++
+   /* Build the command line arguments */
+   QStringList commandLine;
++  // Is this better or worse than MOZ_NO_REMOTE?
++  //commandLine << "-no-remote";
+   commandLine << "-profile";
+   commandLine << profileDir;
+ 
+@@ -510,17 +529,53 @@
+   /* Get path to browser and IM client */
+   VidaliaSettings settings;
+   QString browserExecutable = settings.getBrowserExecutable();
++  QString browserDirectory = settings.getBrowserDirectory();
+   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 browserDone = (browserExecutable.isEmpty() && browserDirectory.isEmpty()) || _browserProcess->isDone();
+   bool imDone = imExecutable.isEmpty() || _imProcess->isDone();
+ 
+   /* Exit if both subprocesses are finished */
+-  if (browserDone && imDone)
+-    shutdown();
++  if (browserDone && imDone) {
++    if (browserDirectory.isEmpty()) {
++      /* We are using the standard launcher, exit immediately */
++      shutdown();
++    } else {
++      /* We are using the alternate launcher, wait until the browser has really died */
++      QTimer *browserWatcher = new QTimer(this);
++      connect(browserWatcher, SIGNAL(timeout()), this, SLOT(onCheckForBrowser()));
++      browserWatcher->start(2000);
++    }
++  }
+ }
+ 
++/** Called periodically to check if the browser is running. If it is not,
++ * exit Vidalia cleanly */
++void
++MainWindow::onCheckForBrowser()
++{
++/* This only works on Windows for now */
++#if defined(Q_OS_WIN)
++
++  /* Get list of running processes */
++  QHash<qint64, QString> procList = win32_process_list();
++  QHashIterator<qint64, QString> i(procList);
++      
++  /* Loop over all processes or until we find tbb-firefox.exe */
++  while (i.hasNext()) {
++    i.next();
++    if (i.value().toLower() == "tbb-firefox.exe") {
++      /* The browser is still running, so Vidalia should keep running too */
++      return;
++    }
++  }
++
++  /* The browser isn't running, exit Vidalia */
++  shutdown();
++#endif  
++}
++
+ /** Called when the web browser failed to start, for example, because the path
+  * specified to the web browser executable didn't lead to an executable. */
+ void
+Index: src/vidalia/mainwindow.h
+===================================================================
+--- src/vidalia/mainwindow.h	(revision 3024)
++++ src/vidalia/mainwindow.h	(working copy)
+@@ -104,6 +104,9 @@
+   void toggleShowOnStartup(bool checked);
+   /** Called when the web browser or IM client have stopped */
+   void onSubprocessFinished(int exitCode, QProcess::ExitStatus exitStatus);
++  /** Called periodically to check if the browser is running. If it is not,
++   * exit Vidalia cleanly */
++  void onCheckForBrowser();
+   /** Called web the web browser failed to start */
+   void onBrowserFailed(QString errmsg);
+   /** Called web the IM client failed to start */

Deleted: torbrowser/trunk/src/current-patches/vidalia-altlauncher.patch
===================================================================
--- torbrowser/trunk/src/current-patches/vidalia-altlauncher.patch	2009-01-02 16:50:05 UTC (rev 17847)
+++ torbrowser/trunk/src/current-patches/vidalia-altlauncher.patch	2009-01-02 19:48:55 UTC (rev 17848)
@@ -1,185 +0,0 @@
-Index: src/common/file.cpp
-===================================================================
---- src/common/file.cpp	(revision 3023)
-+++ src/common/file.cpp	(working copy)
-@@ -64,6 +64,43 @@
-   return true;
- }
- 
-+/** Recursively copy the contents of one directory to another. The
-+ * destination must already exist. Returns true on success, and false
-+ * otherwise. */
-+bool
-+copy_dir(QString source, QString dest)
-+{
-+  /* Source and destination as QDir's */
-+  QDir src(source);
-+  QDir dst(dest);
-+  
-+  /* Get contents of the directory */
-+  QFileInfoList contents = src.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
-+
-+  /* Copy each entry in src to dst */
-+  foreach (QFileInfo fileInfo, contents) {
-+    /* Get absolute path of source and destination */
-+    QString fileName = fileInfo.fileName();
-+    QString srcFilePath = src.absoluteFilePath(fileName);
-+    QString dstFilePath = dst.absoluteFilePath(fileName);
-+
-+    if (fileInfo.isDir()) {
-+      /* This is a directory, make it and recurse */
-+      if (!dst.mkdir(fileName))
-+	return false;
-+      if (!copy_dir(srcFilePath, dstFilePath))
-+	return false;
-+    } else if (fileInfo.isFile()) {
-+      /* This is a file, copy it */
-+      if (!QFile::copy(srcFilePath, dstFilePath))
-+	return false;
-+    } 
-+    /* Ignore special files (e.g. symlinks, devices) */
-+
-+  }
-+  return true;
-+}
-+
- /** Expands <b>filename</b> if it starts with "~/". On Windows, this will
-  * expand "%APPDATA%" and "%PROGRAMFILES%". If <b>filename</b> does not
-  * start with a shortcut, <b>filename</b> will be returned unmodified. */
-Index: src/common/file.h
-===================================================================
---- src/common/file.h	(revision 3023)
-+++ src/common/file.h	(working copy)
-@@ -32,6 +32,11 @@
-  * expand "%APPDATA%" and "%PROGRAMFILES%". If <b>filename</b> does not
-  * start with a shortcut, <b>filename</b> will be returned unmodified. */
- QString expand_filename(QString filename);
-+    
-+/** Recursively copy the contents of one directory to another. The
-+ * destination must already exist. Returns true on success, and false
-+ * otherwise. */
-+bool copy_dir(QString source, QString dest);
- 
- #endif
- 
-Index: src/vidalia/mainwindow.cpp
-===================================================================
---- src/vidalia/mainwindow.cpp	(revision 3024)
-+++ src/vidalia/mainwindow.cpp	(working copy)
-@@ -29,6 +29,8 @@
- #include <dangerousversionevent.h>
- #include <vmessagebox.h>
- 
-+#include "procutil.h"
-+
- #include "mainwindow.h"
- 
- #define IMG_BWGRAPH        ":/images/16x16/utilities-system-monitor.png"
-@@ -459,15 +461,32 @@
-   env << "MOZ_NO_REMOTE=1";
-   _browserProcess->setEnvironment(env);
- 
--  /* The browser is in DIR/App/Firefox/firefox.exe */
-+  /* The browser is in DIR/App/Firefox/tbb-firefox.exe */
-   QString browserExecutable =
--    QDir::toNativeSeparators(browserDirectory + "/App/Firefox/firefox.exe");
--  /* The profile is in DIR/Data/Firefox/profile */
-+    QDir::toNativeSeparators(browserDirectory + "/App/Firefox/tbb-firefox.exe");
-+  /* The profile is in DIR/Data/profile */
-   QString profileDir =
--    QDir::toNativeSeparators(browserDirectory + "/Data/Firefox/profile");
-+    QDir::toNativeSeparators(browserDirectory + "/Data/profile");
- 
-+  /* Copy the profile directory if it's not already there */
-+  QDir browserDirObj = QDir(browserDirectory);
-+
-+  /* Copy the profile directory if it's not already there */
-+  if (!browserDirObj.exists("Data/profile")) {
-+    browserDirObj.mkdir("Data/profile");
-+    copy_dir(browserDirectory + "/App/DefaultData/profile", browserDirectory + "/Data/profile");
-+  }
-+
-+  /* Copy the plugins directory if it's not already there */
-+  if (!browserDirObj.exists("Data/plugins")) {
-+    browserDirObj.mkdir("Data/plugins");
-+    copy_dir(browserDirectory + "/App/DefaultData/plugins", browserDirectory + "/Data/plugins");
-+  }
-+
-   /* Build the command line arguments */
-   QStringList commandLine;
-+  // Is this better or worse than MOZ_NO_REMOTE?
-+  //commandLine << "-no-remote";
-   commandLine << "-profile";
-   commandLine << profileDir;
- 
-@@ -510,17 +529,53 @@
-   /* Get path to browser and IM client */
-   VidaliaSettings settings;
-   QString browserExecutable = settings.getBrowserExecutable();
-+  QString browserDirectory = settings.getBrowserDirectory();
-   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 browserDone = (browserExecutable.isEmpty() && browserDirectory.isEmpty()) || _browserProcess->isDone();
-   bool imDone = imExecutable.isEmpty() || _imProcess->isDone();
- 
-   /* Exit if both subprocesses are finished */
--  if (browserDone && imDone)
--    shutdown();
-+  if (browserDone && imDone) {
-+    if (browserDirectory.isEmpty()) {
-+      /* We are using the standard launcher, exit immediately */
-+      shutdown();
-+    } else {
-+      /* We are using the alternate launcher, wait until the browser has really died */
-+      QTimer *browserWatcher = new QTimer(this);
-+      connect(browserWatcher, SIGNAL(timeout()), this, SLOT(onCheckForBrowser()));
-+      browserWatcher->start(2000);
-+    }
-+  }
- }
- 
-+/** Called periodically to check if the browser is running. If it is not,
-+ * exit Vidalia cleanly */
-+void
-+MainWindow::onCheckForBrowser()
-+{
-+/* This only works on Windows for now */
-+#if defined(Q_OS_WIN)
-+
-+  /* Get list of running processes */
-+  QHash<qint64, QString> procList = win32_process_list();
-+  QHashIterator<qint64, QString> i(procList);
-+      
-+  /* Loop over all processes or until we find tbb-firefox.exe */
-+  while (i.hasNext()) {
-+    i.next();
-+    if (i.value().toLower() == "tbb-firefox.exe") {
-+      /* The browser is still running, so Vidalia should keep running too */
-+      return;
-+    }
-+  }
-+
-+  /* The browser isn't running, exit Vidalia */
-+  shutdown();
-+#endif  
-+}
-+
- /** Called when the web browser failed to start, for example, because the path
-  * specified to the web browser executable didn't lead to an executable. */
- void
-Index: src/vidalia/mainwindow.h
-===================================================================
---- src/vidalia/mainwindow.h	(revision 3024)
-+++ src/vidalia/mainwindow.h	(working copy)
-@@ -104,6 +104,9 @@
-   void toggleShowOnStartup(bool checked);
-   /** Called when the web browser or IM client have stopped */
-   void onSubprocessFinished(int exitCode, QProcess::ExitStatus exitStatus);
-+  /** Called periodically to check if the browser is running. If it is not,
-+   * exit Vidalia cleanly */
-+  void onCheckForBrowser();
-   /** Called web the web browser failed to start */
-   void onBrowserFailed(QString errmsg);
-   /** Called web the IM client failed to start */