diff options
author | Tim Jenssen <tim.jenssen@nokia.com> | 2012-05-16 12:11:25 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2012-05-16 13:21:08 +0200 |
commit | dfc9887310118de98146f1a7282198f89fae8c18 (patch) | |
tree | 3fe785db1287863e041e35ffa6258cbd3e191124 /src/libs/installer/setqtcreatorvalueoperation.cpp | |
parent | 089fb8b740d0d56522e5def0af93a10eaa6abddc (diff) |
now the qt creator releated locations are more flexible
- tried to remove or move Qt/Qt Creator related things from the core classes
Change-Id: I168ae3c56785e389ac34b761be98a7782a683de7
Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Diffstat (limited to 'src/libs/installer/setqtcreatorvalueoperation.cpp')
-rw-r--r-- | src/libs/installer/setqtcreatorvalueoperation.cpp | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/libs/installer/setqtcreatorvalueoperation.cpp b/src/libs/installer/setqtcreatorvalueoperation.cpp index a63c46e58..dc5e6fd0a 100644 --- a/src/libs/installer/setqtcreatorvalueoperation.cpp +++ b/src/libs/installer/setqtcreatorvalueoperation.cpp @@ -37,6 +37,7 @@ #include "packagemanagercore.h" #include <QtCore/QSettings> +#include <QDebug> using namespace QInstaller; @@ -65,13 +66,30 @@ bool SetQtCreatorValueOperation::performOperation() return false; } + PackageManagerCore *const core = qVariantValue<PackageManagerCore *>(value(QLatin1String("installer"))); + if (!core) { + setError(UserDefinedError); + setErrorString(tr("Needed installer object in \"%1\" operation is empty.").arg(name())); + return false; + } + const QString &rootInstallPath = args.at(0); //for example "C:\\Nokia_SDK\\" + if (!rootInstallPath.isEmpty()) { + qWarning() << QString::fromLatin1("Because of internal changes the first argument(\"%1\") on %2 "\ + "operation is just ignored, please be aware of that").arg(rootInstallPath, name()); + } const QString &group = groupName(args.at(1)); const QString &key = args.at(2); const QString &settingsValue = args.at(3); { - QSettings settings(rootInstallPath + QLatin1String(QtCreatorSettingsSuffixPath), QSettings::IniFormat); + if (core->value(scQtCreatorInstallerSettingsFile).isEmpty()) { + setError(UserDefinedError); + setErrorString(tr("There is no value set for %1 on the installer object.").arg( + scQtCreatorInstallerSettingsFile)); + return false; + } + QSettings settings(core->value(scQtCreatorInstallerSettingsFile), QSettings::IniFormat); if (!group.isEmpty()) settings.beginGroup(group); @@ -110,11 +128,28 @@ bool SetQtCreatorValueOperation::undoOperation() const QStringList args = arguments(); const QString &rootInstallPath = args.at(0); //for example "C:\\Nokia_SDK\\" + if (!rootInstallPath.isEmpty()) { + qWarning() << QString::fromLatin1("Because of internal changes the first argument(\"%1\") on %2 "\ + "operation is just ignored, please be aware of that").arg(rootInstallPath, name()); + } const QString &group = groupName(args.at(1)); const QString &key = args.at(2); - QSettings settings(rootInstallPath + QLatin1String(QtCreatorSettingsSuffixPath), QSettings::IniFormat); + PackageManagerCore *const core = qVariantValue<PackageManagerCore *>(value(QLatin1String("installer"))); + if (!core) { + setError(UserDefinedError); + setErrorString(tr("Needed installer object in \"%1\" operation is empty.").arg(name())); + return false; + } + + if (core->value(scQtCreatorInstallerSettingsFile).isEmpty()) { + setError(UserDefinedError); + setErrorString(tr("There is no value set for %1 on the installer object.").arg( + scQtCreatorInstallerSettingsFile)); + return false; + } + QSettings settings(core->value(scQtCreatorInstallerSettingsFile), QSettings::IniFormat); if (!group.isEmpty()) settings.beginGroup(group); |