diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-04-26 19:28:05 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-05-03 06:41:57 +0000 |
commit | 82e2ad0d82b3afccbda2677385364cfdb65f5ab2 (patch) | |
tree | b593b9724c25b0c8fd37b65d81fc5c32c24743bf /src/libs/installer/packagemanagercore_p.cpp | |
parent | 7b196800edd6e89a15f2c237d3b4e430802d6818 (diff) |
Fix nested autodependency uninstall
Previous commit worked only when --show-virtual-components was uses.
Task-number: QTIFW-1114 QTBUG-67106
Change-Id: I6d0649a37095b10ec9fd3a079e020f6a70345c94
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index b21b32832..1cd7811c7 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -378,11 +378,15 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c // now we can preselect components in the tree foreach (QInstaller::Component *component, components) { // set the checked state for all components without child (means without tristate) + // set checked state also for installed virtual tristate componets as otherwise + // those will be uninstalled if (component->isCheckable() && !component->isTristate()) { if (component->isDefault() && isInstaller()) component->setCheckState(Qt::Checked); else if (component->isInstalled()) component->setCheckState(Qt::Checked); + } else if (component->isVirtual() && component->isInstalled() && component->isTristate()) { + component->setCheckState(Qt::Checked); } } |