summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2014-12-08 11:43:52 +0100
committerKai Koehne <kai.koehne@theqtcompany.com>2014-12-08 12:49:30 +0100
commit7f2c98c8af2f6060728e8c31a85da798a72d13f1 (patch)
tree6101759d5380c0efd20fe9ed5982001ac0e1cd89
parent883f9572e3c1655e4ae831180c43592624d7b911 (diff)
Fix corruption of uninstaller operations after 'soft restart'1.6
After updates have been installed, the user can restart the maintenance tool GUI, and check for updates again. If no updates are found then, availableComponents() will remain empty, letting fetchUpdaterPackages() nuke also all 'updaterComponentsDeps'. This in turn breaks sortOperationsBasedOnComponentDependencies(), which needs the list of components to calculate the order. Work around this by forcing a write of the uninstaller data before the core is re-initialized. This let the soft updater behave like an independent updater run ... if no updates are installed, the uninstaller is not written. Task-number: QTIFW-600 Change-Id: I83659491b8e2c0c7a0478362a6c3a4dfaec542b3 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
-rw-r--r--src/sdk/tabcontroller.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sdk/tabcontroller.cpp b/src/sdk/tabcontroller.cpp
index d0e322251..8c9f2cc0d 100644
--- a/src/sdk/tabcontroller.cpp
+++ b/src/sdk/tabcontroller.cpp
@@ -171,6 +171,11 @@ void TabController::restartWizard()
d->m_core->networkSettingsChanged();
}
+ // Make sure we are writing the .dat file with the list of uninstall operations already now.
+ // Otherwise we will write at the end of the next updater run, with a potentially
+ // empty component list (if no updates are found).
+ d->m_core->writeUninstaller();
+
// restart and switch back to intro page
QTimer::singleShot(0, this, SLOT(init()));
}