From 82bef8eb423bc7a9f607fda95cd980a8b2816056 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 14 Jan 2015 17:06:03 +0100 Subject: Introduce ASSERT_ENUMS_MATCH macro For our common use case of compile-time checking enums that we want to keep in sync. Change-Id: I102d737ad986bf3dfff4d11a91afa3f3819a7947 Reviewed-by: Andras Becsi --- src/core/qtwebenginecoreglobal.h | 2 ++ src/core/web_contents_delegate_qt.cpp | 4 ++-- src/webenginewidgets/api/qwebenginepage.cpp | 4 ++-- src/webenginewidgets/api/qwebenginesettings.cpp | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/core/qtwebenginecoreglobal.h b/src/core/qtwebenginecoreglobal.h index 9a222f43f..541406f87 100644 --- a/src/core/qtwebenginecoreglobal.h +++ b/src/core/qtwebenginecoreglobal.h @@ -57,4 +57,6 @@ # define QWEBENGINE_EXPORT #endif +#define ASSERT_ENUMS_MATCH(A, B) Q_STATIC_ASSERT_X(static_cast(A) == static_cast(B), "The enum values must match"); + #endif // QTWEBENGINECOREGLOBAL_H diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index 18b61cd2d..94c6a9a15 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -224,8 +224,8 @@ bool WebContentsDelegateQt::IsFullscreenForTabOrPending(const content::WebConten return m_viewClient->isFullScreen(); } -Q_STATIC_ASSERT_X(static_cast(WebContentsAdapterClient::Open) == static_cast(content::FileChooserParams::Open), "Enums out of sync"); -Q_STATIC_ASSERT_X(static_cast(WebContentsAdapterClient::Save) == static_cast(content::FileChooserParams::Save), "Enums out of sync"); +ASSERT_ENUMS_MATCH(WebContentsAdapterClient::Open, content::FileChooserParams::Open) +ASSERT_ENUMS_MATCH(WebContentsAdapterClient::Save, content::FileChooserParams::Save) void WebContentsDelegateQt::RunFileChooser(content::WebContents *web_contents, const content::FileChooserParams ¶ms) { diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index eafcf114c..991a17fe3 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -950,8 +950,8 @@ QWebEnginePage *QWebEnginePage::createWindow(WebWindowType type) return 0; } -Q_STATIC_ASSERT_X(static_cast(WebContentsAdapterClient::Open) == static_cast(QWebEnginePage::FileSelectOpen), "Enums out of sync"); -Q_STATIC_ASSERT_X(static_cast(WebContentsAdapterClient::OpenMultiple) == static_cast(QWebEnginePage::FileSelectOpenMultiple), "Enums out of sync"); +ASSERT_ENUMS_MATCH(WebContentsAdapterClient::Open, QWebEnginePage::FileSelectOpen) +ASSERT_ENUMS_MATCH(WebContentsAdapterClient::OpenMultiple, QWebEnginePage::FileSelectOpenMultiple) QStringList QWebEnginePage::chooseFiles(FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes) { diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp index 3a0f4fced..e24309153 100644 --- a/src/webenginewidgets/api/qwebenginesettings.cpp +++ b/src/webenginewidgets/api/qwebenginesettings.cpp @@ -115,12 +115,12 @@ QWebEngineSettings *QWebEngineSettings::globalSettings() return globalInstance()->data(); } -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::StandardFont) == static_cast(QWebEngineSettings::StandardFont), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::FixedFont) == static_cast(QWebEngineSettings::FixedFont), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::SerifFont) == static_cast(QWebEngineSettings::SerifFont), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::SansSerifFont) == static_cast(QWebEngineSettings::SansSerifFont), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::CursiveFont) == static_cast(QWebEngineSettings::CursiveFont), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::FantasyFont) == static_cast(QWebEngineSettings::FantasyFont), "The enum values must match"); +ASSERT_ENUMS_MATCH(WebEngineSettings::StandardFont, QWebEngineSettings::StandardFont) +ASSERT_ENUMS_MATCH(WebEngineSettings::FixedFont, QWebEngineSettings::FixedFont) +ASSERT_ENUMS_MATCH(WebEngineSettings::SerifFont, QWebEngineSettings::SerifFont) +ASSERT_ENUMS_MATCH(WebEngineSettings::SansSerifFont, QWebEngineSettings::SansSerifFont) +ASSERT_ENUMS_MATCH(WebEngineSettings::CursiveFont, QWebEngineSettings::CursiveFont) +ASSERT_ENUMS_MATCH(WebEngineSettings::FantasyFont, QWebEngineSettings::FantasyFont) void QWebEngineSettings::setFontFamily(QWebEngineSettings::FontFamily which, const QString &family) { @@ -140,10 +140,10 @@ void QWebEngineSettings::resetFontFamily(QWebEngineSettings::FontFamily which) d->coreSettings->resetFontFamily(static_cast(which)); } -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::DefaultFixedFontSize) == static_cast(QWebEngineSettings::DefaultFixedFontSize), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::DefaultFontSize) == static_cast(QWebEngineSettings::DefaultFontSize), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::MinimumFontSize) == static_cast(QWebEngineSettings::MinimumFontSize), "The enum values must match"); -Q_STATIC_ASSERT_X(static_cast(WebEngineSettings::MinimumLogicalFontSize) == static_cast(QWebEngineSettings::MinimumLogicalFontSize), "The enum values must match"); +ASSERT_ENUMS_MATCH(WebEngineSettings::DefaultFixedFontSize, QWebEngineSettings::DefaultFixedFontSize) +ASSERT_ENUMS_MATCH(WebEngineSettings::DefaultFontSize, QWebEngineSettings::DefaultFontSize) +ASSERT_ENUMS_MATCH(WebEngineSettings::MinimumFontSize, QWebEngineSettings::MinimumFontSize) +ASSERT_ENUMS_MATCH(WebEngineSettings::MinimumLogicalFontSize, QWebEngineSettings::MinimumLogicalFontSize) void QWebEngineSettings::setFontSize(QWebEngineSettings::FontSize type, int size) { -- cgit v1.2.3