Move qActiveFocusFailureMessage into a Private namespace

Addresses header review feedback:

https://codereview.qt-project.org/c/qt/qtdeclarative/+/651782/1/src/qmltest/quicktest.h#86

Amends 386e085114.

Task-number: QTBUG-137478
Pick-to: 6.10
Change-Id: Ie16fcac17b29280e47ef9e4362b877f3b4c61b74
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
Mitch Curtis 2025-07-01 13:34:24 +08:00
parent 2c2e585771
commit f51fda1f1e
5 changed files with 12 additions and 8 deletions

View File

@ -748,7 +748,7 @@ int quick_test_main_with_setup(int argc, char **argv, const char *name, const ch
\include macro-usage-limitation.qdocinc
*/
QByteArray QQuickTest::qActiveFocusFailureMessage(const QQuickItem *item)
QByteArray QQuickTest::Private::qActiveFocusFailureMessage(const QQuickItem *item)
{
QByteArray message;
QDebug debug(&message);

View File

@ -80,20 +80,22 @@ Q_QMLTEST_EXPORT bool qIsPolishScheduled(const QQuickWindow *window);
Q_QMLTEST_EXPORT bool qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout);
Q_QMLTEST_EXPORT bool qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout);
namespace Private {
// These are "private" functions that we need in the public macros and hence
// can't live in private headers. This is the same as what qtestcase.h does with e.g. qCaught.
// controlstestutils_p.h has an overload for QQuickPopup.
[[nodiscard]] Q_QMLTEST_EXPORT QByteArray qActiveFocusFailureMessage(const QQuickItem *item);
}
} // namespace Private
} // namespace QQuickTest
#define QVERIFY_ACTIVE_FOCUS(item) \
do { \
QVERIFY2(item->hasActiveFocus(), QQuickTest::qActiveFocusFailureMessage(item).constData()); \
QVERIFY2(item->hasActiveFocus(), QQuickTest::Private::qActiveFocusFailureMessage(item).constData()); \
} while (false)
#define QTRY_VERIFY_ACTIVE_FOCUS(item) \
do { \
QTRY_VERIFY2(item->hasActiveFocus(), QQuickTest::qActiveFocusFailureMessage(item).constData()); \
QTRY_VERIFY2(item->hasActiveFocus(), QQuickTest::Private::qActiveFocusFailureMessage(item).constData()); \
} while (false)
QT_END_NAMESPACE

View File

@ -224,7 +224,7 @@ bool QQuickControlsTestUtils::arePopupWindowsSupported()
#endif
}
QByteArray QQuickTest::qActiveFocusFailureMessage(QQuickPopup *popup)
QByteArray QQuickTest::Private::qActiveFocusFailureMessage(QQuickPopup *popup)
{
QByteArray message;
QDebug debug(&message);

View File

@ -112,9 +112,11 @@ namespace QQuickControlsTestUtils
namespace QQuickTest
{
namespace Private {
// Overload of the one in quicktest.h.
[[nodiscard]] QByteArray qActiveFocusFailureMessage(QQuickPopup *popup);
}
} // namespace Private
} // namespace QQuickTest
#define VERIFY_VISUAL_FOCUS(control) \
do { \

View File

@ -43,12 +43,12 @@ void tst_ActiveFocus::failureMessage()
auto *item = window->property("item").value<QQuickItem*>();
QVERIFY(item);
const QByteArray failureMessageWithWindow = QQuickTest::qActiveFocusFailureMessage(item);
const QByteArray failureMessageWithWindow = QQuickTest::Private::qActiveFocusFailureMessage(item);
QVERIFY2(QRegularExpression("item: .* focusPolicy: .* window's activeFocusItem: .*")
.match(failureMessageWithWindow).hasMatch(), ("Failure message: " + failureMessageWithWindow).constData());
item->setParentItem(nullptr);
const QByteArray failureMessageWithoutWindow = QQuickTest::qActiveFocusFailureMessage(item);
const QByteArray failureMessageWithoutWindow = QQuickTest::Private::qActiveFocusFailureMessage(item);
QVERIFY2(QRegularExpression("item: .* focusPolicy: .* window's activeFocusItem: \\(unknown; item has no window\\)")
.match(failureMessageWithoutWindow).hasMatch(), ("Failure message: " + failureMessageWithoutWindow).constData());
}