From af92a88aa083c4cecf3486bb3b8108b8059b1904 Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 10 Nov 2019 23:57:43 +0100 Subject: [PATCH] UI: Allow to specify modality of ready ModalMessageBoxes --- .../DolphinQt/QtUtils/ModalMessageBox.cpp | 29 ++++++++++++------- .../Core/DolphinQt/QtUtils/ModalMessageBox.h | 12 +++++--- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp index 752cfb3af7..462a0295f7 100644 --- a/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp +++ b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp @@ -19,9 +19,10 @@ ModalMessageBox::ModalMessageBox(QWidget* parent, Qt::WindowModality modality) static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, const QString& title, const QString& text, ModalMessageBox::StandardButtons buttons, - ModalMessageBox::StandardButton default_button) + ModalMessageBox::StandardButton default_button, + Qt::WindowModality modality) { - ModalMessageBox msg(parent); + ModalMessageBox msg(parent, modality); msg.setIcon(icon); msg.setWindowTitle(title); msg.setText(text); @@ -32,25 +33,33 @@ static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, co } int ModalMessageBox::critical(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons, StandardButton default_button) + StandardButtons buttons, StandardButton default_button, + Qt::WindowModality modality) { - return ExecMessageBox(QMessageBox::Critical, parent, title, text, buttons, default_button); + return ExecMessageBox(QMessageBox::Critical, parent, title, text, buttons, default_button, + modality); } int ModalMessageBox::information(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons, StandardButton default_button) + StandardButtons buttons, StandardButton default_button, + Qt::WindowModality modality) { - return ExecMessageBox(QMessageBox::Information, parent, title, text, buttons, default_button); + return ExecMessageBox(QMessageBox::Information, parent, title, text, buttons, default_button, + modality); } int ModalMessageBox::question(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons, StandardButton default_button) + StandardButtons buttons, StandardButton default_button, + Qt::WindowModality modality) { - return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button); + return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button, + modality); } int ModalMessageBox::warning(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons, StandardButton default_button) + StandardButtons buttons, StandardButton default_button, + Qt::WindowModality modality) { - return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button); + return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button, + modality); } diff --git a/Source/Core/DolphinQt/QtUtils/ModalMessageBox.h b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.h index 14a7838968..ff329865ae 100644 --- a/Source/Core/DolphinQt/QtUtils/ModalMessageBox.h +++ b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.h @@ -13,11 +13,15 @@ public: 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); + StandardButtons buttons = Ok, StandardButton default_button = NoButton, + Qt::WindowModality modality = Qt::WindowModal); static int information(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons = Ok, StandardButton default_button = NoButton); + StandardButtons buttons = Ok, StandardButton default_button = NoButton, + Qt::WindowModality modality = Qt::WindowModal); static int question(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons = Yes | No, StandardButton default_button = NoButton); + StandardButtons buttons = Yes | No, StandardButton default_button = NoButton, + Qt::WindowModality modality = Qt::WindowModal); static int warning(QWidget* parent, const QString& title, const QString& text, - StandardButtons buttons = Ok, StandardButton default_button = NoButton); + StandardButtons buttons = Ok, StandardButton default_button = NoButton, + Qt::WindowModality modality = Qt::WindowModal); };