Test MouseArea in QQuickWidget
Task-number: QTBUG-101736 Pick-to: 6.2 6.4 6.5 Change-Id: Iecbe6b4da75851cb94c4c2bae41bb0cb50f0ed30 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
164d8f66d8
commit
26cd43f027
|
@ -7,8 +7,10 @@ Rectangle {
|
|||
property bool wasClicked: false
|
||||
property bool wasDoubleClicked: false
|
||||
property bool wasMoved: false
|
||||
color: ma.pressed ? "wheat" : "lightsteelblue"
|
||||
|
||||
MouseArea {
|
||||
id: ma
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: wasClicked = true
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <QtQuick/qquickview.h>
|
||||
#include <QtQuick/qquickitem.h>
|
||||
#include <QtQuick/private/qquickitem_p.h>
|
||||
#include <QtQuick/private/qquickmousearea_p.h>
|
||||
#include <QtQuickTestUtils/private/qmlutils_p.h>
|
||||
#include <QtGui/QWindow>
|
||||
#include <QtGui/QScreen>
|
||||
|
@ -123,6 +124,7 @@ private slots:
|
|||
void mouseEventWindowPos();
|
||||
void synthMouseFromTouch_data();
|
||||
void synthMouseFromTouch();
|
||||
void touchTapMouseArea();
|
||||
void tabKey();
|
||||
void resizeOverlay();
|
||||
void controls();
|
||||
|
@ -613,6 +615,7 @@ void tst_qquickwidget::synthMouseFromTouch()
|
|||
QTest::touchEvent(&window, device).move(0, p2, &window);
|
||||
QTest::touchEvent(&window, device).release(0, p2, &window);
|
||||
|
||||
qCDebug(lcTests) << item->m_touchEvents << item->m_mouseEvents;
|
||||
QCOMPARE(item->m_touchEvents.size(), synthMouse ? 0 : (acceptTouch ? 3 : 1));
|
||||
QCOMPARE(item->m_mouseEvents.size(), synthMouse ? 3 : 0);
|
||||
QCOMPARE(childView->m_mouseEvents.size(), 0);
|
||||
|
@ -620,6 +623,33 @@ void tst_qquickwidget::synthMouseFromTouch()
|
|||
QCOMPARE(ev, Qt::MouseEventSynthesizedByQt);
|
||||
}
|
||||
|
||||
void tst_qquickwidget::touchTapMouseArea()
|
||||
{
|
||||
QWidget window;
|
||||
window.resize(100, 100);
|
||||
window.setObjectName("window widget");
|
||||
window.setAttribute(Qt::WA_AcceptTouchEvents);
|
||||
QVERIFY(QCoreApplication::testAttribute(Qt::AA_SynthesizeMouseForUnhandledTouchEvents));
|
||||
QQuickWidget *quick = new QQuickWidget(&window);
|
||||
quick->setSource(testFileUrl("mouse.qml"));
|
||||
quick->move(50, 50);
|
||||
quick->setObjectName("quick widget");
|
||||
window.show();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&window));
|
||||
QQuickItem *rootItem = quick->rootObject();
|
||||
QVERIFY(rootItem);
|
||||
QQuickMouseArea *ma = rootItem->findChild<QQuickMouseArea *>();
|
||||
QVERIFY(ma);
|
||||
|
||||
QPoint p1 = QPoint(70, 70);
|
||||
QTest::touchEvent(&window, device).press(0, p1, &window);
|
||||
QTRY_COMPARE(ma->pressed(), true);
|
||||
QTest::touchEvent(&window, device).move(0, p1, &window);
|
||||
QTest::touchEvent(&window, device).release(0, p1, &window);
|
||||
QTRY_COMPARE(ma->pressed(), false);
|
||||
QVERIFY(rootItem->property("wasClicked").toBool());
|
||||
}
|
||||
|
||||
void tst_qquickwidget::tabKey()
|
||||
{
|
||||
if (QGuiApplication::styleHints()->tabFocusBehavior() != Qt::TabFocusAllControls)
|
||||
|
|
Loading…
Reference in New Issue