summaryrefslogtreecommitdiffstats
path: root/api/logic/launch/LaunchTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/launch/LaunchTask.cpp')
-rw-r--r--api/logic/launch/LaunchTask.cpp20
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);
}
}