[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3423: If vidalia.conf doesn't exist in Vidalia's data directory, t (vidalia/trunk/src/vidalia)
Author: edmanm
Date: 2009-01-11 22:33:41 -0500 (Sun, 11 Jan 2009)
New Revision: 3423
Modified:
vidalia/trunk/src/vidalia/vidalia.cpp
vidalia/trunk/src/vidalia/vidalia.h
Log:
If vidalia.conf doesn't exist in Vidalia's data directory, then try to copy
one from the application bundle if one exists there. (OS X only)
Modified: vidalia/trunk/src/vidalia/vidalia.cpp
===================================================================
--- vidalia/trunk/src/vidalia/vidalia.cpp 2009-01-12 03:19:16 UTC (rev 3422)
+++ vidalia/trunk/src/vidalia/vidalia.cpp 2009-01-12 03:33:41 UTC (rev 3423)
@@ -27,6 +27,10 @@
#include <html.h>
#include <stdlib.h>
+#ifdef Q_OS_MACX
+#include <Carbon/Carbon.h>
+#endif
+
#include "vidalia.h"
/* Available command-line arguments. */
@@ -91,6 +95,10 @@
if (_args.contains(ARG_RESET))
VidaliaSettings::reset();
+ /* See if we should load a default configuration file. */
+ if (! VidaliaSettings::settingsFileExists())
+ copyDefaultSettingsFile();
+
/* Handle the -loglevel and -logfile options. */
if (_args.contains(ARG_LOGFILE))
_log.open(_args.value(ARG_LOGFILE));
@@ -428,3 +436,32 @@
return false;
}
+/** Copies a default settings file (if one exists) to Vidalia's data
+ * directory. */
+void
+Vidalia::copyDefaultSettingsFile() const
+{
+#ifdef Q_OS_MACX
+ CFURLRef confUrlRef;
+ CFStringRef pathRef;
+ const char *path;
+
+ confUrlRef = CFBundleCopyResourceURL(CFBundleGetMainBundle(),
+ CFSTR("vidalia"), CFSTR("conf"), NULL);
+ if (confUrlRef == NULL)
+ return;
+
+ pathRef = CFURLCopyFileSystemPath(confUrlRef, kCFURLPOSIXPathStyle);
+ path = CFStringGetCStringPtr(pathRef, CFStringGetSystemEncoding());
+
+ if (path) {
+ QString defaultConfFile = QString::fromLocal8Bit(path);
+ QFileInfo fi(defaultConfFile);
+ if (fi.exists())
+ QFile::copy(defaultConfFile, VidaliaSettings::settingsFile());
+ }
+ CFRelease(confUrlRef);
+ CFRelease(pathRef);
+#endif
+}
+
Modified: vidalia/trunk/src/vidalia/vidalia.h
===================================================================
--- vidalia/trunk/src/vidalia/vidalia.h 2009-01-12 03:19:16 UTC (rev 3422)
+++ vidalia/trunk/src/vidalia/vidalia.h 2009-01-12 03:33:41 UTC (rev 3423)
@@ -128,6 +128,9 @@
bool winEventFilter(MSG *msg, long *result);
#endif
+ /** Copies a default settings file (if one exists) to Vidalia's data
+ * directory. */
+ void copyDefaultSettingsFile() const;
/** Removes all currently installed QTranslators. */
static void removeAllTranslators();