diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2016-09-28 11:28:49 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2016-10-11 19:58:32 +0000 |
commit | af002b8df9b084fd7f26e9eead9844aab36bdc4d (patch) | |
tree | 856f30012ed9b441732dc2cd67fef4ecd747c893 /src/qmltest/quicktestevent.cpp | |
parent | a191de3f4dd777e8e60b4d3b5684b59d22be068d (diff) |
testlib: Add timestamp to mouse click events
Timestamp is necessary for testing custom mouse event handlers e.g. what
Qt WebEngine uses for handling triple and quadruple mouse clicks.
Based on Qt Base commit 181ee8f9ffacc51265ccc3a0005bf146f230cf85
Task-number: QTBUG-56223
Change-Id: I84d0ca40767d0b1dccb33da1fb1f6ff5721d1096
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/qmltest/quicktestevent.cpp')
-rw-r--r-- | src/qmltest/quicktestevent.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/qmltest/quicktestevent.cpp b/src/qmltest/quicktestevent.cpp index e71b4f8f54..b26d463445 100644 --- a/src/qmltest/quicktestevent.cpp +++ b/src/qmltest/quicktestevent.cpp @@ -118,6 +118,8 @@ namespace QtQuickTest { enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDoubleClick, MouseMove, MouseDoubleClickSequence }; + int lastMouseTimestamp = 0; + static void mouseEvent(MouseAction action, QWindow *window, QObject *item, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPointF _pos, int delay=-1) @@ -127,8 +129,10 @@ namespace QtQuickTest if (delay == -1 || delay < QTest::defaultMouseDelay()) delay = QTest::defaultMouseDelay(); - if (delay > 0) + if (delay > 0) { QTest::qWait(delay); + lastMouseTimestamp += delay; + } if (action == MouseClick) { mouseEvent(MousePress, window, item, button, stateKey, _pos); @@ -159,12 +163,16 @@ namespace QtQuickTest { case MousePress: me = QMouseEvent(QEvent::MouseButtonPress, pos, window->mapToGlobal(pos), button, button, stateKey); + me.setTimestamp(++lastMouseTimestamp); break; case MouseRelease: me = QMouseEvent(QEvent::MouseButtonRelease, pos, window->mapToGlobal(pos), button, 0, stateKey); + me.setTimestamp(++lastMouseTimestamp); + lastMouseTimestamp += 500; // avoid double clicks being generated break; case MouseDoubleClick: me = QMouseEvent(QEvent::MouseButtonDblClick, pos, window->mapToGlobal(pos), button, button, stateKey); + me.setTimestamp(++lastMouseTimestamp); break; case MouseMove: // with move event the button is NoButton, but 'buttons' holds the currently pressed buttons |