85
88
QCOMPARE(gotMousePressEvent, shouldGetMousePress);
91
void tst_TouchDispatcher::mouseDoubleClick_data()
93
QTest::addColumn<ulong>("timeBetweenClicks");
94
QTest::addColumn<bool>("shouldSendDoubleClick");
96
QTest::newRow("double click") << static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval() / 10) << true;
97
QTest::newRow("two separate clicks") << static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval() * 2) << false;
100
void tst_TouchDispatcher::mouseDoubleClick()
102
QFETCH(ulong, timeBetweenClicks);
103
QFETCH(bool, shouldSendDoubleClick);
104
DummyItem *dummyItem = new DummyItem(m_view->rootObject());
105
dummyItem->setAcceptedMouseButtons(Qt::LeftButton);
107
TouchDispatcher touchDispatcher;
108
touchDispatcher.setTargetItem(dummyItem);
110
bool gotDoubleClickEvent = false;
111
dummyItem->mouseDoubleClickEventHandler = [&](QMouseEvent *event) {
112
gotDoubleClickEvent = true;
116
dummyItem->touchEventHandler = [&](QTouchEvent *event) {
120
ulong doubleClickInterval = static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval());
122
QList<QTouchEvent::TouchPoint> touchPoints;
124
QTouchEvent::TouchPoint touchPoint;
126
touchPoint.setState(Qt::TouchPointPressed);
127
touchPoints.append(touchPoint);
129
ulong timestamp = 12345;
131
touchDispatcher.dispatch(QEvent::TouchBegin, m_device, Qt::NoModifier, touchPoints, m_view, timestamp);
133
touchPoints[0].setState(Qt::TouchPointReleased);
134
timestamp += doubleClickInterval / 10;
136
touchDispatcher.dispatch(QEvent::TouchEnd, m_device, Qt::NoModifier, touchPoints, m_view, timestamp);
138
touchPoints[0].setId(1);
139
touchPoints[0].setState(Qt::TouchPointPressed);
140
timestamp += timeBetweenClicks;
142
touchDispatcher.dispatch(QEvent::TouchBegin, m_device, Qt::NoModifier, touchPoints, m_view, timestamp);
144
QCOMPARE(gotDoubleClickEvent, shouldSendDoubleClick);
88
147
QTEST_MAIN(tst_TouchDispatcher)
90
149
#include "tst_TouchDispatcher.moc"