summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/uninstallercalculator.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2022-11-29 14:19:21 +0200
committerKatja Marttila <katja.marttila@qt.io>2022-12-01 10:19:01 +0200
commit853678f811414e7bef5bbffa5a6e7ffcb1e2fa8f (patch)
tree3200cae0faf6cfaf74e3921ae120edd00f683124 /src/libs/installer/uninstallercalculator.cpp
parent7ccada5c9cfaa9916cd73dc9d217670fc9031677 (diff)
Fix replaced removal on update
If component is replaced with a component which is installed as autodependency to other component, the replaced component was not uninstalled on update. Task-number: QTIFW-2887 Change-Id: Ibad04df765191f0e399c6f6020cdf081dba5d803 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer/uninstallercalculator.cpp')
-rw-r--r--src/libs/installer/uninstallercalculator.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libs/installer/uninstallercalculator.cpp b/src/libs/installer/uninstallercalculator.cpp
index 4c07d81e3..2f029630f 100644
--- a/src/libs/installer/uninstallercalculator.cpp
+++ b/src/libs/installer/uninstallercalculator.cpp
@@ -69,7 +69,8 @@ void UninstallerCalculator::appendComponentToUninstall(Component *component)
Component *depComponent = m_core->componentByName(dependencyComponent);
if (!depComponent)
continue;
- if (depComponent->isInstalled() && !m_componentsToUninstall.contains(depComponent)) {
+ if (depComponent->isInstalled() && !m_componentsToUninstall.contains(depComponent)
+ && !m_core->orderedComponentsToInstall().contains(depComponent)) {
appendComponentToUninstall(depComponent);
insertUninstallReason(depComponent, UninstallerCalculator::Dependent, component->name());
}