From 8cc3844038ebf225f723b8f4c3dc1aa44c6e1bc8 Mon Sep 17 00:00:00 2001 From: Eike Ziller <eike.ziller@nokia.com> Date: Wed, 23 Nov 2011 16:56:50 +0100 Subject: [PATCH] Allow build to specify different settings path. Task-number: QTCREATORBUG-5509 Change-Id: I4541049a1861e83f55106effc536fd50eb233d97 Reviewed-by: Alexander Lenhardt <alexander.lenhardt@nokia.com> Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Daniel Molkentin <daniel.molkentin@nokia.com> --- src/app/app_version.h.in | 7 +++++++ src/app/main.cpp | 11 ++++++++--- src/plugins/coreplugin/mainwindow.cpp | 3 +-- src/plugins/projectexplorer/toolchainmanager.cpp | 4 ++-- .../qt4projectmanager/qt-s60/s60createpackagestep.cpp | 3 ++- src/plugins/qtsupport/qtversionmanager.cpp | 4 ++-- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/app/app_version.h.in b/src/app/app_version.h.in index 222c97ec858..04d9575a525 100644 --- a/src/app/app_version.h.in +++ b/src/app/app_version.h.in @@ -62,6 +62,13 @@ const char * const IDE_REVISION_STR = STRINGIFY(IDE_REVISION); const char * const IDE_REVISION_STR = \"\"; #endif +// changes the path where the settings are saved to +#ifdef IDE_SETTINGSVARIANT +const char * const IDE_SETTINGSVARIANT_STR = STRINGIFY(IDE_SETTINGSVARIANT); +#else +const char * const IDE_SETTINGSVARIANT_STR = \"Nokia\"; +#endif + #undef IDE_VERSION #undef IDE_VERSION_STR #undef STRINGIFY diff --git a/src/app/main.cpp b/src/app/main.cpp index 8920bb95991..5dfe3a748a1 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -181,7 +181,9 @@ static inline QStringList getPluginPaths() // $XDG_DATA_HOME or ~/.local/share/Nokia/qtcreator on Linux // ~/Library/Application Support/Nokia/Qt Creator on Mac pluginPath = QDesktopServices::storageLocation(QDesktopServices::DataLocation); - pluginPath += QLatin1String("/Nokia/"); + pluginPath += QLatin1Char('/') + + QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR) + + QLatin1Char('/'); #if !defined(Q_OS_MAC) pluginPath += QLatin1String("qtcreator"); #else @@ -250,11 +252,14 @@ int main(int argc, char **argv) // Must be done before any QSettings class is created QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, QCoreApplication::applicationDirPath() + QLatin1String(SHARE_PATH)); + QSettings::setDefaultFormat(QSettings::IniFormat); // plugin manager takes control of this settings object QSettings *settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, - QLatin1String("Nokia"), QLatin1String("QtCreator")); + QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR), + QLatin1String("QtCreator")); QSettings *globalSettings = new QSettings(QSettings::IniFormat, QSettings::SystemScope, - QLatin1String("Nokia"), QLatin1String("QtCreator")); + QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR), + QLatin1String("QtCreator")); ExtensionSystem::PluginManager pluginManager; pluginManager.setFileExtension(QLatin1String("pluginspec")); pluginManager.setGlobalSettings(globalSettings); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index d8cc85d2e07..527e75c0efc 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -179,8 +179,7 @@ MainWindow::MainWindow() : #endif QCoreApplication::setApplicationName(QLatin1String("QtCreator")); QCoreApplication::setApplicationVersion(QLatin1String(Core::Constants::IDE_VERSION_LONG)); - QCoreApplication::setOrganizationName(QLatin1String("Nokia")); - QSettings::setDefaultFormat(QSettings::IniFormat); + QCoreApplication::setOrganizationName(QLatin1String(Constants::IDE_SETTINGSVARIANT_STR)); QString baseName = QApplication::style()->objectName(); #ifdef Q_WS_X11 if (baseName == QLatin1String("windows")) { diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp index 9f616eac529..3cf9b1f684e 100644 --- a/src/plugins/projectexplorer/toolchainmanager.cpp +++ b/src/plugins/projectexplorer/toolchainmanager.cpp @@ -111,8 +111,8 @@ ToolChainManager::ToolChainManager(QObject *parent) : void ToolChainManager::restoreToolChains() { // Restore SDK settings first - restoreToolChains(Core::ICore::instance()->resourcePath() - + QLatin1String("/Nokia") + QLatin1String(TOOLCHAIN_FILENAME), true); + QFileInfo systemSettingsFile(Core::ICore::instance()->settings(QSettings::SystemScope)->fileName()); + restoreToolChains(systemSettingsFile.absolutePath() + QLatin1String(TOOLCHAIN_FILENAME), true); // Then auto detect ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp index c8b898ef5d9..ae501342ea1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp @@ -143,7 +143,8 @@ void S60CreatePackageStep::ctor_package() this, SLOT(handleWarnAboutPatching()), Qt::QueuedConnection); m_passphrases = new QSettings(QSettings::IniFormat, QSettings::UserScope, - QLatin1String("Nokia"), QLatin1String("QtCreatorKeys"), this); + QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR), + QLatin1String("QtCreatorKeys"), this); } S60CreatePackageStep::~S60CreatePackageStep() diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index a578718e68d..def45c3f367 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -206,8 +206,8 @@ void QtVersionManager::updateFromInstaller() ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); QList<QtVersionFactory *> factories = pm->getObjects<QtVersionFactory>(); Utils::PersistentSettingsReader reader; - if (!reader.load(Core::ICore::instance()->resourcePath() - + QLatin1String("/Nokia") + QLatin1String(QTVERSION_FILENAME))) + if (!reader.load(QFileInfo(pm->globalSettings()->fileName()).absolutePath() + + QLatin1String(QTVERSION_FILENAME))) return; QVariantMap data = reader.restoreValues(); -- GitLab