From a331b7254b272970d107a8a2b9630eb9be61934e Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Mon, 14 Nov 2011 16:45:03 +0100 Subject: calculateComponentsToUninstall shouldn't remove needed dependencies Change-Id: I8d53c0accaa40e6f9f102c86246da4c7ffe564bb Reviewed-by: Tim Jenssen --- installerbuilder/libinstaller/packagemanagercore.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp') 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 componentsToInstall = d->m_orderedComponentsToInstall.toSet(); + QList 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); } -- cgit v1.2.3