diff options
Diffstat (limited to 'src/manager-lib/packagemanager.cpp')
-rw-r--r-- | src/manager-lib/packagemanager.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/manager-lib/packagemanager.cpp b/src/manager-lib/packagemanager.cpp index 7b73f5b0..30731f83 100644 --- a/src/manager-lib/packagemanager.cpp +++ b/src/manager-lib/packagemanager.cpp @@ -1254,9 +1254,7 @@ void PackageManager::executeNextTask() AsynchronousTask *task = d->incomingTaskList.takeFirst(); - if (task->hasFailed()) { - task->setState(AsynchronousTask::Failed); - + if (task->state() == AsynchronousTask::Failed) { handleFailure(task); task->deleteLater(); @@ -1285,11 +1283,10 @@ void PackageManager::executeNextTask() }); connect(task, &AsynchronousTask::finished, this, [this, task]() { - task->setState(task->hasFailed() ? AsynchronousTask::Failed : AsynchronousTask::Finished); - - if (task->hasFailed()) { + if (task->state() == AsynchronousTask::Failed) { handleFailure(task); } else { + task->setState(AsynchronousTask::Finished); qCDebug(LogInstaller) << "emit finished" << task->id(); emit taskFinished(task->id()); } |