diff options
author | Frerich Raabe <raabe@froglogic.com> | 2016-06-21 13:35:35 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2016-09-14 07:27:08 +0000 |
commit | fc0b26f4d202776456ceca1be4206739a8be9247 (patch) | |
tree | 0d515b7ed57ff36c0cf55a759bbbb8932cc8ecd7 /src/libs | |
parent | e8af3a5aa0d6141635c4b24b98e1e10b3e85cb8d (diff) |
Make support for modifying installations configurable
This patch introduces support for a new setting 'SupportsModify' in the
config.xml file. This is only relevant for Windows installers.
By default (i.e. when omitting) this setting, it
defaults to 'true' which means that the product supports modifying
(i.e. reconfiguring) an existing installations. As such, the 'Modify'
button show in Windows' list of installed programs will be enabled.
Setting this to 'false' will cause the button to be disabled.
Change-Id: I4105f3f0bce67830aa2ee8ae0e6f6abb25c35b30
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/constants.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 8 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/settings.h | 2 |
4 files changed, 16 insertions, 2 deletions
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index b871e6209..012d0cc53 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -92,6 +92,7 @@ static const QLatin1String scWizardDefaultHeight("WizardDefaultHeight"); static const QLatin1String scUrlQueryString("UrlQueryString"); static const QLatin1String scProductUUID("ProductUUID"); static const QLatin1String scAllUsers("AllUsers"); +static const QLatin1String scSupportsModify("SupportsModify"); const char scRelocatable[] = "@RELOCATABLE_PATH@"; diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 76294ec69..019bbfe78 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -2035,7 +2035,13 @@ void PackageManagerCorePrivate::registerMaintenanceTool() const quint64 limit = std::numeric_limits<quint32>::max(); // maximum 32 bit value if (estimatedSizeKB <= limit) settings.setValue(QLatin1String("EstimatedSize"), static_cast<quint32>(estimatedSizeKB)); - settings.setValue(QLatin1String("NoModify"), 0); + + const bool supportsModify = m_core->value(scSupportsModify, scTrue) == scTrue; + if (supportsModify) + settings.setValue(QLatin1String("NoModify"), 0); + else + settings.setValue(QLatin1String("NoModify"), 1); + settings.setValue(QLatin1String("NoRepair"), 1); #endif } diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 3e933574d..f849404f8 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -261,7 +261,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, << scWizardDefaultWidth << scWizardDefaultHeight << scRepositorySettingsPageVisible << scTargetConfigurationFile << scRemoteRepositories << scTranslations << scUrlQueryString << QLatin1String(scControlScript) - << scCreateLocalRepository << scInstallActionColumnVisible; + << scCreateLocalRepository << scInstallActionColumnVisible << scSupportsModify; Settings s; s.d->m_data.insert(scPrefix, prefix); @@ -743,3 +743,8 @@ QString Settings::controlScript() const { return d->m_data.value(QLatin1String(scControlScript)).toString(); } + +bool Settings::supportsModify() const +{ + return d->m_data.value(scSupportsModify, true).toBool(); +} diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 6c437a72d..9c0920e66 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -157,6 +157,8 @@ public: QString controlScript() const; + bool supportsModify() const; + private: class Private; QSharedDataPointer<Private> d; |