diff options
Diffstat (limited to 'src/libs/installer')
-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; |