diff options
Diffstat (limited to 'logic')
-rw-r--r-- | logic/launch/steps/PostLaunchCommand.cpp | 22 | ||||
-rw-r--r-- | logic/launch/steps/PreLaunchCommand.cpp | 19 |
2 files changed, 34 insertions, 7 deletions
diff --git a/logic/launch/steps/PostLaunchCommand.cpp b/logic/launch/steps/PostLaunchCommand.cpp index c7342188..29a45f1b 100644 --- a/logic/launch/steps/PostLaunchCommand.cpp +++ b/logic/launch/steps/PostLaunchCommand.cpp @@ -34,20 +34,34 @@ void PostLaunchCommand::executeTask() void PostLaunchCommand::on_state(LoggedProcess::State state) { + auto getError = [&]() + { + return tr("Post-Launch command failed with code %1.\n\n").arg(m_process.exitCode()); + }; switch(state) { case LoggedProcess::Aborted: case LoggedProcess::Crashed: case LoggedProcess::FailedToStart: { - QString error = tr("Post-Launch command failed with code %1.\n\n").arg(m_process.exitCode()); - emit logLine(error, MessageLevel::Error); + auto error = getError(); + emit logLine(error, MessageLevel::Fatal); emitFailed(error); + return; } case LoggedProcess::Finished: { - emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::MultiMC); - emitSucceeded(); + if(m_process.exitCode() != 0) + { + auto error = getError(); + emit logLine(error, MessageLevel::Fatal); + emitFailed(error); + } + else + { + emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::MultiMC); + emitSucceeded(); + } } default: break; diff --git a/logic/launch/steps/PreLaunchCommand.cpp b/logic/launch/steps/PreLaunchCommand.cpp index 5d5862d8..47197a82 100644 --- a/logic/launch/steps/PreLaunchCommand.cpp +++ b/logic/launch/steps/PreLaunchCommand.cpp @@ -35,21 +35,34 @@ void PreLaunchCommand::executeTask() void PreLaunchCommand::on_state(LoggedProcess::State state) { + auto getError = [&]() + { + return tr("Pre-Launch command failed with code %1.\n\n").arg(m_process.exitCode()); + }; switch(state) { case LoggedProcess::Aborted: case LoggedProcess::Crashed: case LoggedProcess::FailedToStart: { - QString error = tr("Pre-Launch command failed with code %1.\n\n").arg(m_process.exitCode()); + auto error = getError(); emit logLine(error, MessageLevel::Fatal); emitFailed(error); return; } case LoggedProcess::Finished: { - emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::MultiMC); - emitSucceeded(); + if(m_process.exitCode() != 0) + { + auto error = getError(); + emit logLine(error, MessageLevel::Fatal); + emitFailed(error); + } + else + { + emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::MultiMC); + emitSucceeded(); + } } default: break; |