summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-05-15 13:02:28 +0300
committerKatja Marttila <katja.marttila@qt.io>2018-05-15 13:04:50 +0300
commite408037e224c8e362c0bbfc39978705f9b14f03f (patch)
treed4c61dbdcc657df01267fb4102bfb84e2ab742cd /src/libs/installer/packagemanagercore_p.cpp
parenta949acff470ec9e7ea02d6ed75e06291a1c09d20 (diff)
parent1642cd883d7a9a6961122531aa13f33a5f960d6c (diff)
Merge remote-tracking branch 'origin/3.0' into master
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 57f430778..2577f09fc 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);
}
}