diff --git a/src/global.cpp b/src/global.cpp index 604d08365..0851d7646 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -35,16 +35,18 @@ Translator * Global::translator = 0; using namespace Global; -void Global::global_init(const QString & config_path) { - qDebug("global_init"); - - // Translator - translator = new Translator(); - - // settings +void Global::init_settings(const QString & config_path) { if (!config_path.isEmpty()) { Paths::setConfigPath(config_path); } + // fallback mechanism supports xdg directories + #if !defined(PORTABLE_APP) && defined(Q_OS_LINUX) + else { + settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, + QString(PROGRAM), QString(PROGRAM) ); + return; + } + #endif if (Paths::iniPath().isEmpty()) { settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, @@ -55,6 +57,16 @@ void Global::global_init(const QString & config_path) { qDebug("global_init: config file: '%s'", filename.toUtf8().data()); } +} + +void Global::global_init(const QString & config_path) { + qDebug("global_init"); + + // Translator + translator = new Translator(); + + // settings + init_settings(config_path); // Preferences pref = new Preferences(); diff --git a/src/global.h b/src/global.h index 90fdc74dd..a6694839d 100644 --- a/src/global.h +++ b/src/global.h @@ -42,6 +42,7 @@ namespace Global { extern Translator * translator; + void init_settings(const QString & config_path); void global_init(const QString & config_path); void global_end();