diff options
Diffstat (limited to 'src/gui/kernel/qtestsupport_gui.cpp')
-rw-r--r-- | src/gui/kernel/qtestsupport_gui.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/gui/kernel/qtestsupport_gui.cpp b/src/gui/kernel/qtestsupport_gui.cpp index 47c69f8b74..869eddce49 100644 --- a/src/gui/kernel/qtestsupport_gui.cpp +++ b/src/gui/kernel/qtestsupport_gui.cpp @@ -29,7 +29,7 @@ QT_BEGIN_NAMESPACE \note Since focus is an exclusive property, \a window may loose its focus to another window at any time - even after the method has returned \c true. - \sa qWaitForWindowExposed(), QWindow::isActive() + \sa qWaitForWindowExposed(), qWaitForWindowFocused(), QWindow::isActive() */ Q_GUI_EXPORT bool QTest::qWaitForWindowActive(QWindow *window, int timeout) { @@ -45,6 +45,27 @@ Q_GUI_EXPORT bool QTest::qWaitForWindowActive(QWindow *window, int timeout) } /*! + \since 6.7 + + Returns \c true, if \a window is the focus window within \a timeout. Otherwise returns \c false. + + The method is useful in tests that call QWindow::show() and rely on the window + having focus (for receiving keyboard events e.g.) before proceeding. + + \note The method will time out and return \c false if another window prevents \a window from + becoming focused. + + \note Since focus is an exclusive property, \a window may loose its focus to another window at + any time - even after the method has returned \c true. + + \sa qWaitForWindowExposed(), qWaitForWindowActive(), QGuiApplication::focusWindow() +*/ +Q_GUI_EXPORT bool QTest::qWaitForWindowFocused(QWindow *window, QDeadlineTimer timeout) +{ + return QTest::qWaitFor([&]() { return qGuiApp->focusWindow() == window; }, timeout); +} + +/*! \since 5.0 Returns \c true, if \a window is exposed within \a timeout milliseconds. Otherwise returns \c false. @@ -102,7 +123,7 @@ bool QTouchEventSequence::commit(bool processEvents) { if (points.isEmpty()) return false; - QThread::msleep(1); + QThread::sleep(std::chrono::milliseconds{1}); bool ret = false; if (targetWindow) ret = qt_handleTouchEventv2(targetWindow, device, points.values()); |