diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-02 01:00:10 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-03-02 01:00:10 +0100 |
commit | 6cf3428a43c5744096db0c849aa975c4cb06bd31 (patch) | |
tree | f7961a992461793ea40781516903c5dd629fe1e5 /src/testlib | |
parent | 529cb7217c0162c31ef6f309730e93612b9798d3 (diff) | |
parent | b3e91b66b9175c1c3ff5f73f3ac231f74f9bf932 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I42ec9e6aafc203465cbeb88af70c7af26b7df8ed
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qtestcase.cpp | 6 | ||||
-rw-r--r-- | src/testlib/qtestmouse.h | 26 |
2 files changed, 24 insertions, 8 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 497470464f..7e9c03dbd4 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -268,6 +268,11 @@ static bool isValidSlot(const QMetaMethod &sl) || name == "init" || name == "cleanup"); } +namespace QTestPrivate +{ + Q_TESTLIB_EXPORT Qt::MouseButtons qtestMouseButtons = Qt::NoButton; +} + namespace QTest { class WatchDog; @@ -1074,6 +1079,7 @@ bool TestMethods::invokeTest(int index, const char *data, WatchDog *watchDog) co QTestDataSetter s(curDataIndex >= dataCount ? static_cast<QTestData *>(0) : table.testData(curDataIndex)); + QTestPrivate::qtestMouseButtons = Qt::NoButton; if (watchDog) watchDog->beginTest(); invokeTestOnData(index); diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index fa524fd8ca..e2835828a1 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -68,11 +68,16 @@ Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *window, const QPointF &local, con Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type type, Qt::KeyboardModifiers mods, int timestamp); +namespace QTestPrivate +{ + extern Q_TESTLIB_EXPORT Qt::MouseButtons qtestMouseButtons; +} + namespace QTest { enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove }; - extern Q_TESTLIB_EXPORT Qt::MouseButton lastMouseButton; + extern Q_TESTLIB_EXPORT Qt::MouseButton lastMouseButton; // ### unsued extern Q_TESTLIB_EXPORT int lastMouseTimestamp; // This value is used to emulate timestamps to avoid creating double clicks by mistake. @@ -117,30 +122,35 @@ namespace QTest QPointF global = window->mapToGlobal(pos); QPointer<QWindow> w(window); + using namespace QTestPrivate; switch (action) { case MouseDClick: - qt_handleMouseEvent(w, pos, global, button, button, QEvent::MouseButtonPress, + qtestMouseButtons.setFlag(button, true); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress, stateKey, ++lastMouseTimestamp); - qt_handleMouseEvent(w, pos, global, Qt::NoButton, button, QEvent::MouseButtonRelease, + qtestMouseButtons.setFlag(button, false); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease, stateKey, ++lastMouseTimestamp); Q_FALLTHROUGH(); case MousePress: case MouseClick: - qt_handleMouseEvent(w, pos, global, button, button, QEvent::MouseButtonPress, + qtestMouseButtons.setFlag(button, true); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonPress, stateKey, ++lastMouseTimestamp); - lastMouseButton = button; + lastMouseButton = button; // ### unsued if (action == MousePress) break; Q_FALLTHROUGH(); case MouseRelease: - qt_handleMouseEvent(w, pos, global, Qt::NoButton, button, QEvent::MouseButtonRelease, + qtestMouseButtons.setFlag(button, false); + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, button, QEvent::MouseButtonRelease, stateKey, ++lastMouseTimestamp); lastMouseTimestamp += mouseDoubleClickInterval; // avoid double clicks being generated - lastMouseButton = Qt::NoButton; + lastMouseButton = Qt::NoButton; // ### unsued break; case MouseMove: - qt_handleMouseEvent(w, pos, global, lastMouseButton, Qt::NoButton, QEvent::MouseMove, + qt_handleMouseEvent(w, pos, global, qtestMouseButtons, Qt::NoButton, QEvent::MouseMove, stateKey, ++lastMouseTimestamp); break; default: |