1 // Copyright 2019 Dolphin Emulator Project
2 // Licensed under GPLv2+
3 // Refer to the license.txt file included.
4
5 #include "DolphinQt/QtUtils/ModalMessageBox.h"
6
7 #include <QApplication>
8
ModalMessageBox(QWidget * parent,Qt::WindowModality modality)9 ModalMessageBox::ModalMessageBox(QWidget* parent, Qt::WindowModality modality)
10 : QMessageBox(parent != nullptr ? parent->window() : nullptr)
11 {
12 setWindowModality(modality);
13 setWindowFlags(Qt::Sheet | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
14
15 // No parent is still preferable to showing a hidden parent here.
16 if (parent != nullptr && !parent->window()->isVisible())
17 setParent(nullptr);
18 }
19
ExecMessageBox(ModalMessageBox::Icon icon,QWidget * parent,const QString & title,const QString & text,ModalMessageBox::StandardButtons buttons,ModalMessageBox::StandardButton default_button,Qt::WindowModality modality)20 static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, const QString& title,
21 const QString& text, ModalMessageBox::StandardButtons buttons,
22 ModalMessageBox::StandardButton default_button,
23 Qt::WindowModality modality)
24 {
25 ModalMessageBox msg(parent, modality);
26 msg.setIcon(icon);
27 msg.setWindowTitle(title);
28 msg.setText(text);
29 msg.setStandardButtons(buttons);
30 msg.setDefaultButton(default_button);
31
32 return msg.exec();
33 }
34
critical(QWidget * parent,const QString & title,const QString & text,StandardButtons buttons,StandardButton default_button,Qt::WindowModality modality)35 int ModalMessageBox::critical(QWidget* parent, const QString& title, const QString& text,
36 StandardButtons buttons, StandardButton default_button,
37 Qt::WindowModality modality)
38 {
39 return ExecMessageBox(QMessageBox::Critical, parent, title, text, buttons, default_button,
40 modality);
41 }
42
information(QWidget * parent,const QString & title,const QString & text,StandardButtons buttons,StandardButton default_button,Qt::WindowModality modality)43 int ModalMessageBox::information(QWidget* parent, const QString& title, const QString& text,
44 StandardButtons buttons, StandardButton default_button,
45 Qt::WindowModality modality)
46 {
47 return ExecMessageBox(QMessageBox::Information, parent, title, text, buttons, default_button,
48 modality);
49 }
50
question(QWidget * parent,const QString & title,const QString & text,StandardButtons buttons,StandardButton default_button,Qt::WindowModality modality)51 int ModalMessageBox::question(QWidget* parent, const QString& title, const QString& text,
52 StandardButtons buttons, StandardButton default_button,
53 Qt::WindowModality modality)
54 {
55 return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button,
56 modality);
57 }
58
warning(QWidget * parent,const QString & title,const QString & text,StandardButtons buttons,StandardButton default_button,Qt::WindowModality modality)59 int ModalMessageBox::warning(QWidget* parent, const QString& title, const QString& text,
60 StandardButtons buttons, StandardButton default_button,
61 Qt::WindowModality modality)
62 {
63 return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button,
64 modality);
65 }
66