summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-08-16 13:52:49 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-08-16 14:35:20 +0200
commit32298eb3f252a81d9c817121d2fc46b23eb2eb12 (patch)
treeb913612ac2575e2e80a3864e76db38267bbd7eea /installerbuilder
parent1d62378085a2e193384e2022db834123129df131 (diff)
Filter for unnamed opertions as well.
Change-Id: I698a13c8cdc3c390a37372307c13e187f24e10dc Reviewed-on: http://codereview.qt.nokia.com/3008 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp
index 1d906f87d..b85315f42 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp
@@ -1263,10 +1263,13 @@ void PackageManagerCorePrivate::runPackageUpdater()
}
// Filter out the create target dir undo operation, it's only needed for full uninstall.
- // TODO: Figure out a compat way for old create target dir undo operation (missing name and tag).
- if (operation->value(QLatin1String("uninstall-only")).toBool()) {
- nonRevertedOperations.append(operation);
- continue;
+ // Note: We filter for unnamed operations as well, since old installations had the remove target
+ // dir operation without the "uninstall-only", which will result in an complete uninstallation
+ // during an update for the maintenance tool.
+ if (operation->value(QLatin1String("uninstall-only")).toBool()
+ || operation->value(QLatin1String("component")).toString().isEmpty()) {
+ nonRevertedOperations.append(operation);
+ continue;
}
undoOperations.prepend(operation);