diff options
Diffstat (limited to 'src/qmltest')
-rw-r--r-- | src/qmltest/quicktestevent.cpp | 10 | ||||
-rw-r--r-- | src/qmltest/quicktestresult.cpp | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/qmltest/quicktestevent.cpp b/src/qmltest/quicktestevent.cpp index 966a60671d..7a2ec30a5a 100644 --- a/src/qmltest/quicktestevent.cpp +++ b/src/qmltest/quicktestevent.cpp @@ -124,6 +124,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) @@ -133,8 +135,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); @@ -165,12 +169,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 diff --git a/src/qmltest/quicktestresult.cpp b/src/qmltest/quicktestresult.cpp index d311e7810e..02d925d37d 100644 --- a/src/qmltest/quicktestresult.cpp +++ b/src/qmltest/quicktestresult.cpp @@ -46,6 +46,11 @@ #include <QtTest/private/qtestlog_p.h> #include "qtestoptions_p.h" #include <QtTest/qbenchmark.h> +// qbenchmark_p.h pulls windows.h via 3rd party; prevent it from defining +// the min/max macros which would clash with qnumeric_p.h's usage of min()/max(). +#if defined(Q_OS_WIN32) && !defined(NOMINMAX) +# define NOMINMAX +#endif #include <QtTest/private/qbenchmark_p.h> #include <QtCore/qset.h> #include <QtCore/qmap.h> |