summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp14
-rw-r--r--src/widgets/dialogs/qmessagebox.h7
2 files changed, 14 insertions, 7 deletions
diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp
index 46a6e871b14..08cf212af4c 100644
--- a/src/widgets/dialogs/qmessagebox.cpp
+++ b/src/widgets/dialogs/qmessagebox.cpp
@@ -49,6 +49,20 @@ HMENU qt_getWindowsSystemMenu(const QWidget *w)
}
#endif
+static_assert(qToUnderlying(QMessageBox::ButtonRole::NRoles) ==
+ qToUnderlying(QDialogButtonBox::ButtonRole::NRoles),
+ "QMessageBox::ButtonRole and QDialogButtonBox::ButtonRole out of sync!");
+
+static_assert(std::is_same_v<std::underlying_type_t<QMessageBox::ButtonRole>,
+ std::underlying_type_t<QDialogButtonBox::ButtonRole>>);
+
+// StandardButton enums have different underlying types
+// => qToUnderlying and std::is_same_v won't work
+// ### Qt 7: make them have the same underlying type
+static_assert(static_cast<int>(QMessageBox::StandardButton::LastButton) ==
+ static_cast<int>(QDialogButtonBox::StandardButton::LastButton),
+ "QMessageBox::StandardButton and QDialogButtonBox::StandardButton out of sync!");
+
enum Button { Old_Ok = 1, Old_Cancel = 2, Old_Yes = 3, Old_No = 4, Old_Abort = 5, Old_Retry = 6,
Old_Ignore = 7, Old_YesAll = 8, Old_NoAll = 9, Old_ButtonMask = 0xFF,
NewButtonMask = 0xFFFFFC00 };
diff --git a/src/widgets/dialogs/qmessagebox.h b/src/widgets/dialogs/qmessagebox.h
index 419fd23af8a..c2e31abc64e 100644
--- a/src/widgets/dialogs/qmessagebox.h
+++ b/src/widgets/dialogs/qmessagebox.h
@@ -60,9 +60,6 @@ public:
NRoles
};
Q_ENUM(ButtonRole)
- static_assert(static_cast<int>(ButtonRole::NRoles) ==
- static_cast<int>(QDialogButtonBox::ButtonRole::NRoles),
- "QMessageBox::ButtonRole and QDialogButtonBox::ButtonRole out of sync!");
enum StandardButton {
// keep this in sync with QDialogButtonBox::StandardButton and QPlatformDialogHelper::StandardButton
@@ -98,10 +95,6 @@ public:
ButtonMask = ~FlagMask // obsolete
};
Q_ENUM(StandardButton);
- static_assert(static_cast<int>(StandardButton::LastButton) ==
- static_cast<int>(QDialogButtonBox::StandardButton::LastButton),
- "QMessageBox::StandardButton and QDialogButtonBox::StandardButton out of sync!");
-
#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
typedef StandardButton Button;