summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp')
-rw-r--r--Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp
new file mode 100644
index 0000000000..25d10de729
--- /dev/null
+++ b/Source/Core/DolphinQt/QtUtils/ModalMessageBox.cpp
@@ -0,0 +1,54 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include "DolphinQt/QtUtils/ModalMessageBox.h"
+
+#include <QApplication>
+
+ModalMessageBox::ModalMessageBox(QWidget* parent) : QMessageBox(parent)
+{
+ setWindowModality(Qt::WindowModal);
+
+ // No parent is still preferable to showing a hidden parent here.
+ if (parent != nullptr && !parent->isVisible())
+ setParent(nullptr);
+}
+
+static inline int ExecMessageBox(ModalMessageBox::Icon icon, QWidget* parent, const QString& title,
+ const QString& text, ModalMessageBox::StandardButtons buttons,
+ ModalMessageBox::StandardButton default_button)
+{
+ ModalMessageBox msg(parent);
+ msg.setIcon(icon);
+ msg.setWindowTitle(title);
+ msg.setText(text);
+ msg.setStandardButtons(buttons);
+ msg.setDefaultButton(default_button);
+
+ return msg.exec();
+}
+
+int ModalMessageBox::critical(QWidget* parent, const QString& title, const QString& text,
+ StandardButtons buttons, StandardButton default_button)
+{
+ return ExecMessageBox(QMessageBox::Critical, parent, title, text, buttons, default_button);
+}
+
+int ModalMessageBox::information(QWidget* parent, const QString& title, const QString& text,
+ StandardButtons buttons, StandardButton default_button)
+{
+ return ExecMessageBox(QMessageBox::Information, parent, title, text, buttons, default_button);
+}
+
+int ModalMessageBox::question(QWidget* parent, const QString& title, const QString& text,
+ StandardButtons buttons, StandardButton default_button)
+{
+ return ExecMessageBox(QMessageBox::Critical, parent, title, text, buttons, default_button);
+}
+
+int ModalMessageBox::warning(QWidget* parent, const QString& title, const QString& text,
+ StandardButtons buttons, StandardButton default_button)
+{
+ return ExecMessageBox(QMessageBox::Warning, parent, title, text, buttons, default_button);
+}