diff options
Diffstat (limited to 'api/logic/launch/LaunchTask.cpp')
-rw-r--r-- | api/logic/launch/LaunchTask.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/api/logic/launch/LaunchTask.cpp b/api/logic/launch/LaunchTask.cpp index a006e519..8b9da398 100644 --- a/api/logic/launch/LaunchTask.cpp +++ b/api/logic/launch/LaunchTask.cpp @@ -88,7 +88,7 @@ void LaunchTask::onStepFinished() // end? if(currentStep == m_steps.size() - 1) { - emitSucceeded(); + finalizeSteps(true, QString()); } else { @@ -99,7 +99,23 @@ void LaunchTask::onStepFinished() } else { - emitFailed(step->failReason()); + finalizeSteps(false, step->failReason()); + } +} + +void LaunchTask::finalizeSteps(bool successful, const QString& error) +{ + for(auto step = currentStep; step >= 0; step--) + { + m_steps[step]->finalize(); + } + if(successful) + { + emitSucceeded(); + } + else + { + emitFailed(error); } } |