diff options
Diffstat (limited to 'logic/launch/steps/PreLaunchCommand.cpp')
-rw-r--r-- | logic/launch/steps/PreLaunchCommand.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
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; |