diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-11-11 12:28:54 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-11-12 15:25:06 +0100 |
commit | e796857abb73d44b6862687c353ee4977d22cc77 (patch) | |
tree | 7333e869e5d9c778d1518d8047dabd64a5b913e8 /src/testlib/qtestmouse.h | |
parent | 03e03d7ceb6da284f217fddd76b35d0c2b002af7 (diff) |
Stop copying events in tests
It's unnecessary, and copying QEvents is a bad practice since it's a
polymorphic class.
Change-Id: Ieb6de106084f838c5e6c8a0643c54fd3c7f4a7a8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/testlib/qtestmouse.h')
-rw-r--r-- | src/testlib/qtestmouse.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index be68606bb2..865b967b34 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -208,21 +208,21 @@ namespace QTest stateKey &= static_cast<unsigned int>(Qt::KeyboardModifierMask); - QMouseEvent me(QEvent::User, QPointF(), Qt::LeftButton, QTestPrivate::qtestMouseButtons, stateKey, QPointingDevice::primaryPointingDevice()); + QEvent::Type meType; + Qt::MouseButton meButton; switch (action) { case MousePress: - me = QMouseEvent(QEvent::MouseButtonPress, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice()); - me.setTimestamp(++lastMouseTimestamp); + meType = QEvent::MouseButtonPress; + meButton = button; break; case MouseRelease: - me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, Qt::MouseButton(), stateKey, QPointingDevice::primaryPointingDevice()); - me.setTimestamp(++lastMouseTimestamp); - lastMouseTimestamp += mouseDoubleClickInterval; // avoid double clicks being generated + meType = QEvent::MouseButtonRelease; + meButton = Qt::MouseButton(); break; case MouseDClick: - me = QMouseEvent(QEvent::MouseButtonDblClick, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice()); - me.setTimestamp(++lastMouseTimestamp); + meType = QEvent::MouseButtonDblClick; + meButton = button; break; case MouseMove: QCursor::setPos(widget->mapToGlobal(pos)); @@ -235,6 +235,11 @@ namespace QTest default: QTEST_ASSERT(false); } + QMouseEvent me(meType, pos, widget->mapToGlobal(pos), button, meButton, stateKey, QPointingDevice::primaryPointingDevice()); + me.setTimestamp(++lastMouseTimestamp); + if (action == MouseRelease) // avoid double clicks being generated + lastMouseTimestamp += mouseDoubleClickInterval; + QSpontaneKeyEvent::setSpontaneous(&me); if (!qApp->notify(widget, &me)) { static const char *const mouseActionNames[] = |