diff options
author | Alexander Lenhardt <alexander.lenhardt@nokia.com> | 2012-05-16 11:22:47 +0200 |
---|---|---|
committer | Alexander Lenhardt <alexander.lenhardt@nokia.com> | 2012-05-16 12:06:43 +0200 |
commit | 88eb3c616d6e9eb49158f4b33d7e856742e536be (patch) | |
tree | 5dc90b511bc4cb20ebf080c1780f5147f2a97814 /src | |
parent | f9d1ca46325b5aff6c317b5606e1dece6952fc88 (diff) |
let value() also query the Settings object
if a value can not be found in the m_vars hash, value() will query
the Settings object first before returning the default value.
This allows to specify arbitrary tags to be defined in e.g. config.xml
which can later be accessed by installationscripts.
Change-Id: I881ff961e3647fa32a0219bbfc8bbb89935ff3d4
Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 5 | ||||
-rw-r--r-- | src/libs/installer/settings.h | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 81537814c..fa7e88a04 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1369,7 +1369,10 @@ QString PackageManagerCore::value(const QString &key, const QString &defaultValu return dir; } #endif - return d->m_vars.value(key, defaultValue); + if (d->m_vars.contains(key)) + return d->m_vars.value(key); + + return d->m_settings.value(key, defaultValue).toString(); } /*! @@ -1389,7 +1392,7 @@ void PackageManagerCore::setValue(const QString &key, const QString &value) */ bool PackageManagerCore::containsValue(const QString &key) const { - return d->m_vars.contains(key); + return d->m_vars.contains(key) || d->m_settings.containsValue(key); } void PackageManagerCore::setSharedFlag(const QString &key, bool value) diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 151c412eb..181152646 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -465,6 +465,11 @@ void Settings::addUserRepositories(const QSet<Repository> &repositories) d->m_data.insertMulti(scUserRepositories, QVariant().fromValue(repository)); } +bool Settings::containsValue(const QString &key) const +{ + return d->m_data.contains(key); +} + QVariant Settings::value(const QString &key, const QVariant &defaultValue) const { return d->m_data.value(key, defaultValue); diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index d8864b8ce..ad7ad9e1f 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -115,6 +115,7 @@ public: QStringList certificateFiles() const; bool allowNonAsciiCharacters() const; + bool containsValue(const QString &key) const; QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const; QVariantList values(const QString &key, const QVariantList &defaultValue = QVariantList()) const; |