summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/packagemanagercore.cpp
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-11-14 16:45:03 +0100
committerTim Jenssen <tim.jenssen@nokia.com>2011-11-21 16:24:15 +0100
commita331b7254b272970d107a8a2b9630eb9be61934e (patch)
tree129547e50d79ca472a32e352fd66be0c42498e2c /installerbuilder/libinstaller/packagemanagercore.cpp
parent51f047e28d479712251b0eb71ae9619ceb0e72c3 (diff)
calculateComponentsToUninstall shouldn't remove needed dependencies
Change-Id: I8d53c0accaa40e6f9f102c86246da4c7ffe564bb Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp
index 9eddd7906..f83d7f426 100644
--- a/installerbuilder/libinstaller/packagemanagercore.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore.cpp
@@ -927,11 +927,16 @@ bool PackageManagerCore::calculateComponentsToUninstall() const
if (runMode() == UpdaterMode)
return true;
+ // hack to avoid removeing needed dependencies
+ QSet<Component*> componentsToInstall = d->m_orderedComponentsToInstall.toSet();
+
QList<Component*> components;
foreach (Component *component, availableComponents()) {
- if (component->uninstallationRequested())
+ if (component->uninstallationRequested() && !componentsToInstall.contains(component))
components.append(component);
}
+
+
d->m_componentsToUninstall.clear();
return d->appendComponentsToUninstall(components);
}