summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2013-01-31 14:46:51 +0100
committerTim Jenssen <tim.jenssen@digia.com>2013-01-31 14:48:53 +0100
commit3ac17e35080b5fde3b7ff6cad4a718c4e9f69f7c (patch)
tree1e906f007bfa2270ecd1b6ba871725fadd3a789c /src
parentf8a0ef7cb9300a243f8b22f6ef96c6a0671eff6b (diff)
Fix "Retry" on uninstallation
During uninstallation 'Retry' click the code checks the error value, however the error code of undo operation is nerver reset after retry. Check success return value of performOperationThreaded instead. Change-Id: Iee44d144fa1e9a3d1999ec3f46d35cab796935c6 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 78c192946..44806f106 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -1956,13 +1956,14 @@ void PackageManagerCorePrivate::runUndoOperations(const OperationList &undoOpera
connectOperationToInstaller(undoOperation, progressSize);
qDebug() << "undo operation=" << undoOperation->name();
- performOperationThreaded(undoOperation, PackageManagerCorePrivate::Undo);
+
+ bool ignoreError = false;
+ bool ok = performOperationThreaded(undoOperation, PackageManagerCorePrivate::Undo);
const QString componentName = undoOperation->value(QLatin1String("component")).toString();
- if (undoOperation->error() != Operation::NoError) {
- if (!componentName.isEmpty()) {
- bool run = true;
- while (run && m_core->status() != PackageManagerCore::Canceled) {
+
+ if (!componentName.isEmpty()) {
+ while (!ok && !ignoreError && m_core->status() != PackageManagerCore::Canceled) {
const QMessageBox::StandardButton button =
MessageBoxHandler::warning(MessageBoxHandler::currentBestSuitParent(),
QLatin1String("installationErrorWithRetry"), tr("Installer Error"),
@@ -1970,14 +1971,11 @@ void PackageManagerCorePrivate::runUndoOperations(const OperationList &undoOpera
QMessageBox::Retry | QMessageBox::Ignore, QMessageBox::Retry);
if (button == QMessageBox::Retry) {
- performOperationThreaded(undoOperation, Undo);
- if (undoOperation->error() == Operation::NoError)
- run = false;
+ ok = performOperationThreaded(undoOperation, Undo);
} else if (button == QMessageBox::Ignore) {
- run = false;
+ ignoreError = true;
}
}
- }
}
if (!componentName.isEmpty()) {