From 17a2e7912f49f70273f90ea3f744960a7d08a6b4 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Tue, 20 Jan 2009 02:14:10 +0100 Subject: [PATCH] Make Settings use --configdir (or the default location) Note that the default location on Unix is now ~/.config/quassel-irc.org/quassel{core,client}.conf This follows the XDG standard (Qt and, hence, Quassel honor XDG_CONFIG_HOME as well; but not more sophisticated stuff like .config/user-dirs) --- src/common/settings.cpp | 17 ++++++----------- src/common/settings.h | 15 +++++++++++---- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 07a9e2a1..6b0ce039 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -18,13 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include #include -#ifdef Q_WS_QWS -#include -#endif - #include "settings.h" QHash > Settings::settingsCache; @@ -61,7 +56,7 @@ void Settings::notify(const QString &key, QObject *receiver, const char *slot) { } QStringList Settings::allLocalKeys() { - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(group); QStringList res = s.allKeys(); s.endGroup(); @@ -75,7 +70,7 @@ QStringList Settings::localChildKeys(const QString &rootkey) { else g = QString("%1/%2").arg(group, rootkey); - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(g); QStringList res = s.childKeys(); s.endGroup(); @@ -89,7 +84,7 @@ QStringList Settings::localChildGroups(const QString &rootkey) { else g = QString("%1/%2").arg(group, rootkey); - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(g); QStringList res = s.childGroups(); s.endGroup(); @@ -97,7 +92,7 @@ QStringList Settings::localChildGroups(const QString &rootkey) { } void Settings::setLocalValue(const QString &key, const QVariant &data) { - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(group); s.setValue(key, data); s.endGroup(); @@ -109,7 +104,7 @@ void Settings::setLocalValue(const QString &key, const QVariant &data) { const QVariant &Settings::localValue(const QString &key, const QVariant &def) { if(!isCached(group, key)) { - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(group); setCacheValue(group, key, s.value(key, def)); s.endGroup(); @@ -118,7 +113,7 @@ const QVariant &Settings::localValue(const QString &key, const QVariant &def) { } void Settings::removeLocalKey(const QString &key) { - QSettings s(org(), appName); + QSettings s(fileName(), format()); s.beginGroup(group); s.remove(key); s.endGroup(); diff --git a/src/common/settings.h b/src/common/settings.h index 1d3f28e1..627cb8ab 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -23,9 +23,12 @@ #include #include +#include #include #include +#include "quassel.h" + class SettingsChangeNotifier : public QObject { Q_OBJECT @@ -62,13 +65,17 @@ protected: QString appName; private: - inline QString org() { -#ifdef Q_WS_MAC - return QCoreApplication::organizationDomain(); + inline QSettings::Format format() { +#ifdef Q_WS_WIN + return QSettings::IniFormat; #else - return QCoreApplication::organizationName(); + return QSettings::NativeFormat; #endif } + inline QString fileName() { + return Quassel::configDirPath() + appName + + ((format() == QSettings::NativeFormat) ? QLatin1String(".conf") : QLatin1String(".ini")); + } static QHash > settingsCache; static QHash > settingsChangeNotifier; -- 2.20.1