From e796857abb73d44b6862687c353ee4977d22cc77 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Wed, 11 Nov 2020 12:28:54 +0100 Subject: 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 --- src/testlib/qtestmouse.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src/testlib/qtestmouse.h') 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(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[] = -- cgit v1.2.3