Make alert messages application modal and not window modal,

so assertions cannot be interrupted by terminating the application
This commit is contained in:
Silent 2019-08-01 19:52:28 +02:00
parent c70da390a7
commit 3fe8ef4c1c
No known key found for this signature in database
GPG Key ID: AE53149BB0C45AF1
3 changed files with 4 additions and 4 deletions

View File

@ -39,7 +39,7 @@ static bool QtMsgAlertHandler(const char* caption, const char* text, bool yes_no
Common::MsgType style)
{
std::optional<bool> r = RunOnObject(QApplication::instance(), [&] {
ModalMessageBox message_box(QApplication::activeWindow());
ModalMessageBox message_box(QApplication::activeWindow(), Qt::ApplicationModal);
message_box.setWindowTitle(QString::fromUtf8(caption));
message_box.setText(QString::fromUtf8(text));

View File

@ -6,10 +6,10 @@
#include <QApplication>
ModalMessageBox::ModalMessageBox(QWidget* parent)
ModalMessageBox::ModalMessageBox(QWidget* parent, Qt::WindowModality modality)
: QMessageBox(parent != nullptr ? parent->window() : nullptr)
{
setWindowModality(Qt::WindowModal);
setWindowModality(modality);
setWindowFlags(Qt::Sheet | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
// No parent is still preferable to showing a hidden parent here.

View File

@ -10,7 +10,7 @@
class ModalMessageBox : public QMessageBox
{
public:
explicit ModalMessageBox(QWidget* parent);
explicit ModalMessageBox(QWidget* parent, Qt::WindowModality modality = Qt::WindowModal);
static int critical(QWidget* parent, const QString& title, const QString& text,
StandardButtons buttons = Ok, StandardButton default_button = NoButton);