UI: Allow to specify modality of ready ModalMessageBoxes

This commit is contained in:
Silent 2019-11-10 23:57:43 +01:00
parent b712cc106b
commit af92a88aa0
No known key found for this signature in database
GPG Key ID: AE53149BB0C45AF1
2 changed files with 27 additions and 14 deletions

View File

@ -19,9 +19,10 @@ ModalMessageBox::ModalMessageBox(QWidget* parent, Qt::WindowModality modality)
static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, const QString& title, static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, const QString& title,
const QString& text, ModalMessageBox::StandardButtons buttons, 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.setIcon(icon);
msg.setWindowTitle(title); msg.setWindowTitle(title);
msg.setText(text); 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, 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, 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, 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, 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);
} }

View File

@ -13,11 +13,15 @@ public:
explicit ModalMessageBox(QWidget* parent, Qt::WindowModality modality = Qt::WindowModal); explicit ModalMessageBox(QWidget* parent, Qt::WindowModality modality = Qt::WindowModal);
static int critical(QWidget* parent, const QString& title, const QString& text, 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, 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, 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, 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);
}; };