diff options
Diffstat (limited to 'src/libs/installer')
-rw-r--r-- | src/libs/installer/constants.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 21 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 3 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 2 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 2 |
6 files changed, 29 insertions, 1 deletions
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index cafb10175..7fd2a0eef 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -111,6 +111,7 @@ const char Script[] = "script"; const char CheckUpdates[] = "checkupdates"; const char Updater[] = "updater"; const char ManagePackages[] = "manage-packages"; +const char Uninstaller[] = "uninstaller"; const char NoForceInstallation[] = "no-force-installations"; const char ShowVirtualComponents[] = "show-virtual-components"; const char LoggingRules[] = "logging-rules"; diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 94bb4cd78..5cf251ec3 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -2828,6 +2828,27 @@ bool PackageManagerCore::isPackageManager() const } /*! + Sets the installer magic binary marker based on \a magicMarker and + userSetBinaryMarker to \c true. +*/ +void PackageManagerCore::setUserSetBinaryMarker(qint64 magicMarker) +{ + d->m_magicBinaryMarker = magicMarker; + d->m_userSetBinaryMarker = true; +} + +/*! + Returns \c true if the magic binary marker has been set by user, + for example from a command line argument. + + \sa {installer::isUserSetBinaryMarker}{installer.isUserSetBinaryMarker} +*/ +bool PackageManagerCore::isUserSetBinaryMarker() const +{ + return d->m_userSetBinaryMarker; +} + +/*! Set to use command line instance based on \a commandLineInstance. */ void PackageManagerCore::setCommandLineInstance(bool commandLineInstance) diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 5e1c40ca5..9d4cceaea 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -235,6 +235,9 @@ public: Q_INVOKABLE void setPackageManager(); Q_INVOKABLE bool isPackageManager() const; + void setUserSetBinaryMarker(qint64 magicMarker); + Q_INVOKABLE bool isUserSetBinaryMarker() const; + void setCommandLineInstance(bool commandLineInstance); Q_INVOKABLE bool isCommandLineInstance() const; diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 1e18daf66..b7c03c21a 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -217,6 +217,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core) , m_remoteFileEngineHandler(nullptr) , m_foundEssentialUpdate(false) , m_commandLineInstance(false) + , m_userSetBinaryMarker(false) { } @@ -249,6 +250,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, q , m_remoteFileEngineHandler(new RemoteFileEngineHandler) , m_foundEssentialUpdate(false) , m_commandLineInstance(false) + , m_userSetBinaryMarker(false) { foreach (const OperationBlob &operation, performedOperations) { QScopedPointer<QInstaller::Operation> op(KDUpdater::UpdateOperationFactory::instance() diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h index c9dfde242..961822994 100644 --- a/src/libs/installer/packagemanagercore_p.h +++ b/src/libs/installer/packagemanagercore_p.h @@ -187,6 +187,7 @@ public: bool m_testChecksum; bool m_launchedAsRoot; bool m_commandLineInstance; + bool m_userSetBinaryMarker; bool m_completeUninstall; bool m_needToWriteMaintenanceTool; PackageManagerCoreData m_data; diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 797b5bc7d..05f61ae18 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -1626,7 +1626,7 @@ void IntroductionPage::initializePage() // If we are running maintenance tool and the default uninstaller // marker is not overridden, set the default checked radio button // based on if we have valid repositories available. - if (validRepositoriesAvailable()) { + if (!core->isUserSetBinaryMarker() && validRepositoriesAvailable()) { m_packageManager->setChecked(true); } else { // No repositories available, default to complete uninstallation. |