diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-05-28 13:48:26 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-06-01 09:39:31 +0000 |
commit | cb159728b68e7f0d799e77570fb1d92b86abb6ce (patch) | |
tree | 921b5125f9adb4ad94fe8ddda56576a6836ea86e | |
parent | 40a0fdde6208687df7c7e81a2255363d3524110f (diff) |
CLI: Do not run updater if there are no updates for selected components
Task-number: QTIFW-1818
Change-Id: I13dceeeaf294c689a90fbe5fe74586d7a117ea50
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 10 | ||||
-rw-r--r-- | tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 8f282bf9d..885604135 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -2272,11 +2272,11 @@ bool PackageManagerCore::updateComponentsSilently(const QStringList &componentsT essentialUpdatesFound = true; } if (!essentialUpdatesFound) { - int componentToUpdateCount = componentsToUpdate.count(); + const bool userSelectedComponents = !componentsToUpdate.isEmpty(); QList<Component*> componentsToBeUpdated; //Mark components to be updated foreach (Component *comp, componentList) { - if (componentToUpdateCount == 0) { // No components given, update all + if (!userSelectedComponents) { // No components given, update all comp->setCheckState(Qt::Checked); } else { //Collect the componets to list which we want to update @@ -2288,6 +2288,12 @@ bool PackageManagerCore::updateComponentsSilently(const QStringList &componentsT } } } + // No updates for selected components, do not run updater + if (userSelectedComponents && componentsToBeUpdated.isEmpty()) { + qCDebug(QInstaller::lcInstallerInstallLog) + << "No updates available for selected components."; + return false; + } foreach (Component *componentToUpdate, componentsToBeUpdated) componentToUpdate->setCheckState(Qt::Checked); } diff --git a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp index 78ee7b5b6..bf6d8729a 100644 --- a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp +++ b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp @@ -81,6 +81,12 @@ private slots: << "installcontentB.txt" << "installcontentD.txt"); } + void testUpdateNoUpdatesForSelectedPackage() + { + setRepository(":///data/installPackagesRepositoryUpdate"); + QVERIFY(!core->updateComponentsSilently(QStringList() << "componentInvalid")); + } + void testUpdateTwoPackageSilently() { setRepository(":///data/installPackagesRepository"); |