Details
-
Suggestion
-
Resolution: Done
-
P3: Somewhat important
-
None
-
None
-
36c6c1ea57 (qt/qtdeclarative/dev)
Description
After QTBUG-71224, QQuickTest::qWaitForItemPolished() and QQuickTest::qIsPolishScheduled() were added. These are useful, but testing Qt Quick applications could be made even easier by allowing users to check if a window has any items that need to be polished. This information is already present, so it's very efficient to check for.
This would greatly simplify testing of Qt Quick applications, especially now that Qt Quick Layouts using polishing for their layouting, for example.
In terms of naming, we could either be consistent with the existing API:
diff --git a/src/qmltest/quicktest.h b/src/qmltest/quicktest.h index 8e3510c9a5..14d9fb9783 100644 --- a/src/qmltest/quicktest.h +++ b/src/qmltest/quicktest.h @@ -102,7 +102,9 @@ Q_QUICK_TEST_EXPORT int quick_test_main_with_setup(int argc, char **argv, const namespace QQuickTest { Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickItem *item); +Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickWindow *window); Q_QUICK_TEST_EXPORT bool qWaitForItemPolished(const QQuickItem *item, int timeout = 5000); +Q_QUICK_TEST_EXPORT bool qWaitForWindowPolished(const QQuickWindow *window, int timeout = 5000); } QT_END_NAMESPACE
Or take the opportunity to consistently use overloads:
diff --git a/src/qmltest/quicktest.h b/src/qmltest/quicktest.h index 8e3510c9a5..4b796b6a84 100644 --- a/src/qmltest/quicktest.h +++ b/src/qmltest/quicktest.h @@ -102,7 +102,15 @@ Q_QUICK_TEST_EXPORT int quick_test_main_with_setup(int argc, char **argv, const namespace QQuickTest { Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickItem *item); -Q_QUICK_TEST_EXPORT bool qWaitForItemPolished(const QQuickItem *item, int timeout = 5000); +Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickWindow *window); +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) +#if QT_DEPRECATED_SINCE(6, 4) + QT_DEPRECATED_X("Use qWaitForPolish(QQuickItem *) instead") + Q_QUICK_TEST_EXPORT bool qWaitForItemPolished(const QQuickItem *item, int timeout = 5000); +#endif +#endif +Q_QUICK_TEST_EXPORT bool qWaitForPolish(const QQuickItem *item, int timeout = 5000); +Q_QUICK_TEST_EXPORT bool qWaitForPolish(const QQuickWindow *window, int timeout = 5000); } QT_END_NAMESPACE
Or take the opportunity to consistently use distinctly named functions:
diff --git a/src/qmltest/quicktest.h b/src/qmltest/quicktest.h index 8e3510c9a5..80016deb15 100644 --- a/src/qmltest/quicktest.h +++ b/src/qmltest/quicktest.h @@ -101,8 +101,16 @@ Q_QUICK_TEST_EXPORT int quick_test_main_with_setup(int argc, char **argv, const #endif namespace QQuickTest { -Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickItem *item); +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) +#if QT_DEPRECATED_SINCE(6, 4) + QT_DEPRECATED_X("Use qIsItemPolishScheduled() or qIsWindowPolishScheduled() instead") + Q_QUICK_TEST_EXPORT bool qIsPolishScheduled(const QQuickItem *item); +#endif +#endif +Q_QUICK_TEST_EXPORT bool qIsItemPolishScheduled(const QQuickItem *item); +Q_QUICK_TEST_EXPORT bool qIsWindowPolishScheduled(const QQuickWindow *window); Q_QUICK_TEST_EXPORT bool qWaitForItemPolished(const QQuickItem *item, int timeout = 5000); +Q_QUICK_TEST_EXPORT bool qWaitForWindowPolished(const QQuickWindow *window, int timeout = 5000); } QT_END_NAMESPACE
Attachments
Issue Links
- resulted from
-
QTBUG-71224 Add public C++ API for verifying that a QQuickItem was polished
-
- Closed
-