diff --git a/examples/xml/dombookmarks/mainwindow.cpp b/examples/xml/dombookmarks/mainwindow.cpp index f5320519f29..b28773f1160 100644 --- a/examples/xml/dombookmarks/mainwindow.cpp +++ b/examples/xml/dombookmarks/mainwindow.cpp @@ -4,6 +4,7 @@ #include "mainwindow.h" #include "xbeltree.h" +#include #include #include #include diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp index 58e846b16b9..dde15fbaf33 100644 --- a/src/widgets/dialogs/qmessagebox.cpp +++ b/src/widgets/dialogs/qmessagebox.cpp @@ -30,11 +30,17 @@ #include "private/qabstractbutton_p.h" #include +#include +#include +#include + #ifdef Q_OS_WIN # include #include #endif +#include + QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; @@ -2841,6 +2847,22 @@ void QMessageBoxPrivate::helperDone(QDialog::DialogCode code, QPlatformDialogHel clickedButton = button; } +Q_WIDGETS_EXPORT void _q_requireVersion(int argc, char *argv[], QAnyStringView req) +{ + const auto required = QVersionNumber::fromString(req).normalized(); + const auto current = QVersionNumber::fromString(qVersion()).normalized(); + if (current >= required) + return; + std::unique_ptr application; + if (!qApp) + application = std::make_unique(argc, argv); + const QString message = QApplication::tr("Application \"%1\" requires Qt %2, found Qt %3.") + .arg(qAppName(), required.toString(), current.toString()); + QMessageBox::critical(nullptr, QApplication::tr("Incompatible Qt Library Error"), + message, QMessageBox::Abort); + qFatal("%s", qPrintable(message)); +} + #if QT_DEPRECATED_SINCE(6,2) /*! \deprecated diff --git a/src/widgets/dialogs/qmessagebox.h b/src/widgets/dialogs/qmessagebox.h index 161719e180b..2dee2e9204f 100644 --- a/src/widgets/dialogs/qmessagebox.h +++ b/src/widgets/dialogs/qmessagebox.h @@ -5,17 +5,13 @@ #define QMESSAGEBOX_H #include -#include #include -#include -#include -#include - QT_REQUIRE_CONFIG(messagebox); QT_BEGIN_NAMESPACE +class QAnyStringView; class QLabel; class QMessageBoxPrivate; class QAbstractButton; @@ -319,18 +315,8 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QMessageBox::StandardButtons) [[maybe_unused]] static inline void qRequireVersion(int argc, char *argv[], QAnyStringView req) { - const auto required = QVersionNumber::fromString(req).normalized(); - const auto current = QVersionNumber::fromString(qVersion()).normalized(); - if (current >= required) - return; - std::unique_ptr application; - if (!qApp) - application = std::make_unique(argc, argv); - const QString message = QApplication::tr("Application \"%1\" requires Qt %2, found Qt %3.") - .arg(qAppName(), required.toString(), current.toString()); - QMessageBox::critical(nullptr, QApplication::tr("Incompatible Qt Library Error"), - message, QMessageBox::Abort); - qFatal().noquote() << message; + Q_WIDGETS_EXPORT void _q_requireVersion(int, char *[], QAnyStringView); + _q_requireVersion(argc, argv, req); } #define QT_REQUIRE_VERSION(argc, argv, str) qRequireVersion(argc, argv, str);