summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer')
-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;