projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Abuse QSettings to find a sensible config file location
[quassel.git]
/
src
/
common
/
quassel.cpp
diff --git
a/src/common/quassel.cpp
b/src/common/quassel.cpp
index
bd31929
..
bf0cbee
100644
(file)
--- a/
src/common/quassel.cpp
+++ b/
src/common/quassel.cpp
@@
-24,8
+24,10
@@
#include <QCoreApplication>
#include <QDateTime>
#include <QCoreApplication>
#include <QDateTime>
-#include <Q
Object
>
+#include <Q
FileInfo
>
#include <QMetaType>
#include <QMetaType>
+#include <QObject>
+#include <QSettings>
#include "message.h"
#include "identity.h"
#include "message.h"
#include "identity.h"
@@
-125,8
+127,8
@@
void Quassel::registerMetaTypes() {
void Quassel::setupBuildInfo(const QString &generated) {
_buildInfo.applicationName = "Quassel IRC";
void Quassel::setupBuildInfo(const QString &generated) {
_buildInfo.applicationName = "Quassel IRC";
- _buildInfo.coreApplicationName = "
Quassel C
ore";
- _buildInfo.clientApplicationName = "
Quassel C
lient";
+ _buildInfo.coreApplicationName = "
quasselc
ore";
+ _buildInfo.clientApplicationName = "
quasselc
lient";
_buildInfo.organizationName = "Quassel Project";
_buildInfo.organizationDomain = "quassel-irc.org";
_buildInfo.organizationName = "Quassel Project";
_buildInfo.organizationDomain = "quassel-irc.org";
@@
-239,18
+241,20
@@
QString Quassel::configDirPath() {
_configDirPath = Quassel::optionValue("configdir");
} else {
_configDirPath = Quassel::optionValue("configdir");
} else {
- // FIXME use QDesktopServices?
-#ifdef Q_OS_WIN32
- _configDirPath = qgetenv("APPDATA") + "/quassel/";
-#elif defined Q_WS_MAC
- _configDirPath = QDir::homePath() + "/Library/Application Support/Quassel/";
+ // We abuse QSettings to find us a sensible path on all platforms
+#ifdef Q_WS_WIN
+ // don't use the registry
+ QSettings::Format format = QSettings::IniFormat;
#else
#else
-
_configDirPath = QDir::homePath() + "/.quassel/"
;
+
QSettings::Format format = QSettings::NativeFormat
;
#endif
#endif
+ QSettings s(format, QSettings::UserScope, QCoreApplication::organizationDomain(), buildInfo().applicationName);
+ QFileInfo fileInfo(s.fileName());
+ _configDirPath = fileInfo.dir().absolutePath();
}
}
- if(!_configDirPath.endsWith(
'/'
))
- _configDirPath +=
'/'
;
+ if(!_configDirPath.endsWith(
QDir::separator()
))
+ _configDirPath +=
QDir::separator()
;
QDir qDir(_configDirPath);
if(!qDir.exists(_configDirPath)) {
QDir qDir(_configDirPath);
if(!qDir.exists(_configDirPath)) {