aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltest
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2016-09-28 11:28:49 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2016-10-11 19:58:32 +0000
commitaf002b8df9b084fd7f26e9eead9844aab36bdc4d (patch)
tree856f30012ed9b441732dc2cd67fef4ecd747c893 /src/qmltest
parenta191de3f4dd777e8e60b4d3b5684b59d22be068d (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')
-rw-r--r--src/qmltest/quicktestevent.cpp10
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