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>
This commit is contained in:
Eike Ziller
2011-11-23 16:56:50 +01:00
parent 6210b0578e
commit 8cc3844038
6 changed files with 22 additions and 10 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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")) {

View File

@@ -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();

View File

@@ -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()

View File

@@ -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();