summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorFrerich Raabe <raabe@froglogic.com>2016-06-21 13:35:35 +0200
committerKatja Marttila <katja.marttila@qt.io>2016-09-14 07:27:08 +0000
commitfc0b26f4d202776456ceca1be4206739a8be9247 (patch)
tree0d515b7ed57ff36c0cf55a759bbbb8932cc8ecd7 /src/libs
parente8af3a5aa0d6141635c4b24b98e1e10b3e85cb8d (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.h1
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp8
-rw-r--r--src/libs/installer/settings.cpp7
-rw-r--r--src/libs/installer/settings.h2
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;