From 6c38a975eeb0ebe06e7146fed6cf4bcdf8499b6c Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Tue, 19 Jun 2018 13:52:24 +0300 Subject: [PATCH] Add property to disable default repository saving By default, all default repositories defined in are saved to maintenancetool.ini -file. When you start maintenancetool, the repositories are read from maintenancetool.ini and those are used. There are cases when we don't want to use the default repositories when running maintenancetol. Change-Id: I4507e16636f2d709aa099eaa865264800591ce0d Reviewed-by: Leena Miettinen Reviewed-by: Jani Heikkinen --- doc/installerfw.qdoc | 5 +++++ src/libs/installer/constants.h | 1 + src/libs/installer/packagemanagercore_p.cpp | 6 ++++-- src/libs/installer/settings.cpp | 15 ++++++++++++++- src/libs/installer/settings.h | 3 +++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc index 669fc66f..22a15983 100644 --- a/doc/installerfw.qdoc +++ b/doc/installerfw.qdoc @@ -324,6 +324,11 @@ \row \li SupportsModify \li Set to \c false if the product does not support modifying an existing installation. + \row + \li SaveDefaultRepositories + \li Set to \c false if default repositories \c should not be saved to \e {MaintenanceToolName}.ini. + By default default repositories are saved. Not saving the repositories means than when you run \e maintenancetool + there are no default repositories in use. \endtable diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index ddfa8c55..0e964673 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -90,6 +90,7 @@ static const QLatin1String scProductUUID("ProductUUID"); static const QLatin1String scAllUsers("AllUsers"); static const QLatin1String scSupportsModify("SupportsModify"); static const QLatin1String scAllowUnstableComponents("AllowUnstableComponents"); +static const QLatin1String scSaveDefaultRepositories("SaveDefaultRepositories"); const char scRelocatable[] = "@RELOCATABLE_PATH@"; diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 62056d90..195c16f3 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -761,8 +761,10 @@ void PackageManagerCorePrivate::writeMaintenanceConfigFiles() cfg.setValue(QLatin1String("Variables"), variables); QVariantList repos; // Do not change either! - foreach (const Repository &repo, m_data.settings().defaultRepositories()) - repos.append(QVariant().fromValue(repo)); + if (m_data.settings().saveDefaultRepositories()) { + foreach (const Repository &repo, m_data.settings().defaultRepositories()) + repos.append(QVariant().fromValue(repo)); + } cfg.setValue(QLatin1String("DefaultRepositories"), repos); cfg.setValue(QLatin1String("FilesForDelayedDeletion"), m_filesForDelayedDeletion); diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 3d5d4b85..5761387c 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -256,7 +256,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, << scWizardDefaultWidth << scWizardDefaultHeight << scRepositorySettingsPageVisible << scTargetConfigurationFile << scRemoteRepositories << scTranslations << scUrlQueryString << QLatin1String(scControlScript) - << scCreateLocalRepository << scInstallActionColumnVisible << scSupportsModify << scAllowUnstableComponents; + << scCreateLocalRepository << scInstallActionColumnVisible << scSupportsModify << scAllowUnstableComponents + << scSaveDefaultRepositories; Settings s; s.d->m_data.insert(scPrefix, prefix); @@ -327,6 +328,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, s.d->m_data.insert(scInstallActionColumnVisible, false); if (!s.d->m_data.contains(scAllowUnstableComponents)) s.d->m_data.insert(scAllowUnstableComponents, false); + if (!s.d->m_data.contains(scSaveDefaultRepositories)) + s.d->m_data.insert(scSaveDefaultRepositories, true); return s; } @@ -754,3 +757,13 @@ void Settings::setAllowUnstableComponents(bool allow) { d->m_data.insert(scAllowUnstableComponents, allow); } + +bool Settings::saveDefaultRepositories() const +{ + return d->m_data.value(scSaveDefaultRepositories, true).toBool(); +} + +void Settings::setSaveDefaultRepositories(bool save) +{ + d->m_data.insert(scSaveDefaultRepositories, save); +} diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 45c4fbcc..bc2db655 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -157,6 +157,9 @@ public: bool allowUnstableComponents() const; void setAllowUnstableComponents(bool allow); + bool saveDefaultRepositories() const; + void setSaveDefaultRepositories(bool save); + private: class Private; QSharedDataPointer d;