diff options
Diffstat (limited to 'Source/Core/Common/MsgHandler.cpp')
| -rw-r--r-- | Source/Core/Common/MsgHandler.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/Common/MsgHandler.cpp b/Source/Core/Common/MsgHandler.cpp index fa7d246a9d..2cdccd59b7 100644 --- a/Source/Core/Common/MsgHandler.cpp +++ b/Source/Core/Common/MsgHandler.cpp @@ -4,6 +4,7 @@ #include "Common/MsgHandler.h" #include <cstdarg> +#include <cstdlib> #include <string> #ifdef _WIN32 @@ -51,6 +52,7 @@ std::string DefaultStringTranslator(const char* text) MsgAlertHandler s_msg_handler = DefaultMsgHandler; StringTranslator s_str_translator = DefaultStringTranslator; bool s_alert_enabled = true; +bool s_abort_on_panic_alert = false; const char* GetCaption(MsgType style) { @@ -94,6 +96,11 @@ void SetEnableAlert(bool enable) s_alert_enabled = enable; } +void SetAbortOnPanicAlert(bool should_abort) +{ + s_abort_on_panic_alert = should_abort; +} + std::string GetStringT(const char* string) { return s_str_translator(string); @@ -114,6 +121,12 @@ bool MsgAlert(bool yes_no, MsgType style, const char* format, ...) ERROR_LOG_FMT(MASTER_LOG, "{}: {}", caption, buffer); + // Panic alerts. + if (style == MsgType::Warning && s_abort_on_panic_alert) + { + std::abort(); + } + // Don't ignore questions, especially AskYesNo, PanicYesNo could be ignored if (s_msg_handler != nullptr && (s_alert_enabled || style == MsgType::Question || style == MsgType::Critical)) |
