aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMatthew Cattell <matthew.cattell@nokia.com>2011-09-08 15:58:13 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-09-08 16:02:06 +0200
commite98b19879013b19bfc6dbdcdb4b8a6c3e3746739 (patch)
tree1287e5039ee52dc78b25eb9bcf90fa8d5c5a4aa9 /tests
parent1f4a8f4660ca656afe3d16b562c6340ce8cced28 (diff)
uncomment tests
Change-Id: I8aea71cfddb38fe1a24a74ca736a39e3f8817a5b Reviewed-on: http://codereview.qt-project.org/4464 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp1168
1 files changed, 584 insertions, 584 deletions
diff --git a/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp b/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp
index 0bc4e46ca7..c3f3ba1ed8 100644
--- a/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp
+++ b/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp
@@ -62,23 +62,23 @@ class tst_QSGMouseArea: public QObject
private slots:
void initTestCase();
void cleanupTestCase();
-// void dragProperties();
-// void resetDrag();
- void dragging();
-// void updateMouseAreaPosOnClick();
-// void updateMouseAreaPosOnResize();
-// void noOnClickedWithPressAndHold();
-// void onMousePressRejected();
-// void pressedCanceledOnWindowDeactivate();
-// void doubleClick();
-// void clickTwice();
-// void pressedOrdering();
-// void preventStealing();
-// void clickThrough();
-// void testQtQuick11Attributes();
-// void testQtQuick11Attributes_data();
-// void hoverPosition();
-// void hoverPropagation();
+ void dragProperties();
+ void resetDrag();
+ void dragging();
+ void updateMouseAreaPosOnClick();
+ void updateMouseAreaPosOnResize();
+ void noOnClickedWithPressAndHold();
+ void onMousePressRejected();
+ void pressedCanceledOnWindowDeactivate();
+ void doubleClick();
+ void clickTwice();
+ void pressedOrdering();
+ void preventStealing();
+ void clickThrough();
+ void testQtQuick11Attributes();
+ void testQtQuick11Attributes_data();
+ void hoverPosition();
+ void hoverPropagation();
private:
QSGView *createView();
@@ -94,120 +94,120 @@ void tst_QSGMouseArea::cleanupTestCase()
}
-//void tst_QSGMouseArea::dragProperties()
-//{
-// QSGView *canvas = createView();
-
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
-
-// QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-// QSGDrag *drag = mouseRegion->drag();
-// QVERIFY(mouseRegion != 0);
-// QVERIFY(drag != 0);
-
-// // target
-// QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
-// QVERIFY(blackRect != 0);
-// QVERIFY(blackRect == drag->target());
-// QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
-// QVERIFY(rootItem != 0);
-// QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
-// drag->setTarget(rootItem);
-// QCOMPARE(targetSpy.count(),1);
-// drag->setTarget(rootItem);
-// QCOMPARE(targetSpy.count(),1);
-
-// // axis
-// QCOMPARE(drag->axis(), QSGDrag::XandYAxis);
-// QSignalSpy axisSpy(drag, SIGNAL(axisChanged()));
-// drag->setAxis(QSGDrag::XAxis);
-// QCOMPARE(drag->axis(), QSGDrag::XAxis);
-// QCOMPARE(axisSpy.count(),1);
-// drag->setAxis(QSGDrag::XAxis);
-// QCOMPARE(axisSpy.count(),1);
-
-// // minimum and maximum properties
-// QSignalSpy xminSpy(drag, SIGNAL(minimumXChanged()));
-// QSignalSpy xmaxSpy(drag, SIGNAL(maximumXChanged()));
-// QSignalSpy yminSpy(drag, SIGNAL(minimumYChanged()));
-// QSignalSpy ymaxSpy(drag, SIGNAL(maximumYChanged()));
-
-// QCOMPARE(drag->xmin(), 0.0);
-// QCOMPARE(drag->xmax(), rootItem->width()-blackRect->width());
-// QCOMPARE(drag->ymin(), 0.0);
-// QCOMPARE(drag->ymax(), rootItem->height()-blackRect->height());
-
-// drag->setXmin(10);
-// drag->setXmax(10);
-// drag->setYmin(10);
-// drag->setYmax(10);
-
-// QCOMPARE(drag->xmin(), 10.0);
-// QCOMPARE(drag->xmax(), 10.0);
-// QCOMPARE(drag->ymin(), 10.0);
-// QCOMPARE(drag->ymax(), 10.0);
-
-// QCOMPARE(xminSpy.count(),1);
-// QCOMPARE(xmaxSpy.count(),1);
-// QCOMPARE(yminSpy.count(),1);
-// QCOMPARE(ymaxSpy.count(),1);
-
-// drag->setXmin(10);
-// drag->setXmax(10);
-// drag->setYmin(10);
-// drag->setYmax(10);
-
-// QCOMPARE(xminSpy.count(),1);
-// QCOMPARE(xmaxSpy.count(),1);
-// QCOMPARE(yminSpy.count(),1);
-// QCOMPARE(ymaxSpy.count(),1);
-
-// // filterChildren
-// QSignalSpy filterChildrenSpy(drag, SIGNAL(filterChildrenChanged()));
-
-// drag->setFilterChildren(true);
-
-// QVERIFY(drag->filterChildren());
-// QCOMPARE(filterChildrenSpy.count(), 1);
-
-// drag->setFilterChildren(true);
-// QCOMPARE(filterChildrenSpy.count(), 1);
-
-// delete canvas;
-//}
-
-//void tst_QSGMouseArea::resetDrag()
-//{
-// QSGView *canvas = createView();
-
-// canvas->rootContext()->setContextProperty("haveTarget", QVariant(true));
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
-
-// QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-// QSGDrag *drag = mouseRegion->drag();
-// QVERIFY(mouseRegion != 0);
-// QVERIFY(drag != 0);
-
-// // target
-// QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
-// QVERIFY(blackRect != 0);
-// QVERIFY(blackRect == drag->target());
-// QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
-// QVERIFY(rootItem != 0);
-// QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
-// QVERIFY(drag->target() != 0);
-// canvas->rootContext()->setContextProperty("haveTarget", QVariant(false));
-// QCOMPARE(targetSpy.count(),1);
-// QVERIFY(drag->target() == 0);
-
-// delete canvas;
-//}
+void tst_QSGMouseArea::dragProperties()
+{
+ QSGView *canvas = createView();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+ QSGDrag *drag = mouseRegion->drag();
+ QVERIFY(mouseRegion != 0);
+ QVERIFY(drag != 0);
+
+ // target
+ QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
+ QVERIFY(blackRect != 0);
+ QVERIFY(blackRect == drag->target());
+ QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
+ QVERIFY(rootItem != 0);
+ QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
+ drag->setTarget(rootItem);
+ QCOMPARE(targetSpy.count(),1);
+ drag->setTarget(rootItem);
+ QCOMPARE(targetSpy.count(),1);
+
+ // axis
+ QCOMPARE(drag->axis(), QSGDrag::XandYAxis);
+ QSignalSpy axisSpy(drag, SIGNAL(axisChanged()));
+ drag->setAxis(QSGDrag::XAxis);
+ QCOMPARE(drag->axis(), QSGDrag::XAxis);
+ QCOMPARE(axisSpy.count(),1);
+ drag->setAxis(QSGDrag::XAxis);
+ QCOMPARE(axisSpy.count(),1);
+
+ // minimum and maximum properties
+ QSignalSpy xminSpy(drag, SIGNAL(minimumXChanged()));
+ QSignalSpy xmaxSpy(drag, SIGNAL(maximumXChanged()));
+ QSignalSpy yminSpy(drag, SIGNAL(minimumYChanged()));
+ QSignalSpy ymaxSpy(drag, SIGNAL(maximumYChanged()));
+
+ QCOMPARE(drag->xmin(), 0.0);
+ QCOMPARE(drag->xmax(), rootItem->width()-blackRect->width());
+ QCOMPARE(drag->ymin(), 0.0);
+ QCOMPARE(drag->ymax(), rootItem->height()-blackRect->height());
+
+ drag->setXmin(10);
+ drag->setXmax(10);
+ drag->setYmin(10);
+ drag->setYmax(10);
+
+ QCOMPARE(drag->xmin(), 10.0);
+ QCOMPARE(drag->xmax(), 10.0);
+ QCOMPARE(drag->ymin(), 10.0);
+ QCOMPARE(drag->ymax(), 10.0);
+
+ QCOMPARE(xminSpy.count(),1);
+ QCOMPARE(xmaxSpy.count(),1);
+ QCOMPARE(yminSpy.count(),1);
+ QCOMPARE(ymaxSpy.count(),1);
+
+ drag->setXmin(10);
+ drag->setXmax(10);
+ drag->setYmin(10);
+ drag->setYmax(10);
+
+ QCOMPARE(xminSpy.count(),1);
+ QCOMPARE(xmaxSpy.count(),1);
+ QCOMPARE(yminSpy.count(),1);
+ QCOMPARE(ymaxSpy.count(),1);
+
+ // filterChildren
+ QSignalSpy filterChildrenSpy(drag, SIGNAL(filterChildrenChanged()));
+
+ drag->setFilterChildren(true);
+
+ QVERIFY(drag->filterChildren());
+ QCOMPARE(filterChildrenSpy.count(), 1);
+
+ drag->setFilterChildren(true);
+ QCOMPARE(filterChildrenSpy.count(), 1);
+
+ delete canvas;
+}
+
+void tst_QSGMouseArea::resetDrag()
+{
+ QSGView *canvas = createView();
+
+ canvas->rootContext()->setContextProperty("haveTarget", QVariant(true));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+ QSGDrag *drag = mouseRegion->drag();
+ QVERIFY(mouseRegion != 0);
+ QVERIFY(drag != 0);
+
+ // target
+ QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
+ QVERIFY(blackRect != 0);
+ QVERIFY(blackRect == drag->target());
+ QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
+ QVERIFY(rootItem != 0);
+ QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
+ QVERIFY(drag->target() != 0);
+ canvas->rootContext()->setContextProperty("haveTarget", QVariant(false));
+ QCOMPARE(targetSpy.count(),1);
+ QVERIFY(drag->target() == 0);
+
+ delete canvas;
+}
void tst_QSGMouseArea::dragging()
@@ -278,557 +278,557 @@ QSGView *tst_QSGMouseArea::createView()
return canvas;
}
-//void tst_QSGMouseArea::updateMouseAreaPosOnClick()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::updateMouseAreaPosOnClick()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-// QVERIFY(mouseRegion != 0);
+ QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+ QVERIFY(mouseRegion != 0);
-// QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("ball");
-// QVERIFY(rect != 0);
+ QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("ball");
+ QVERIFY(rect != 0);
-// QCOMPARE(mouseRegion->mouseX(), rect->x());
-// QCOMPARE(mouseRegion->mouseY(), rect->y());
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
-// QMouseEvent event(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &event);
+ QMouseEvent event(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &event);
-// QCOMPARE(mouseRegion->mouseX(), 100.0);
-// QCOMPARE(mouseRegion->mouseY(), 100.0);
+ QCOMPARE(mouseRegion->mouseX(), 100.0);
+ QCOMPARE(mouseRegion->mouseY(), 100.0);
-// QCOMPARE(mouseRegion->mouseX(), rect->x());
-// QCOMPARE(mouseRegion->mouseY(), rect->y());
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
-// delete canvas;
-//}
+ delete canvas;
+}
-//void tst_QSGMouseArea::updateMouseAreaPosOnResize()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::updateMouseAreaPosOnResize()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-// QVERIFY(mouseRegion != 0);
+ QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+ QVERIFY(mouseRegion != 0);
-// QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("brother");
-// QVERIFY(rect != 0);
+ QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("brother");
+ QVERIFY(rect != 0);
-// QCOMPARE(mouseRegion->mouseX(), 0.0);
-// QCOMPARE(mouseRegion->mouseY(), 0.0);
+ QCOMPARE(mouseRegion->mouseX(), 0.0);
+ QCOMPARE(mouseRegion->mouseY(), 0.0);
-// QMouseEvent event(QEvent::MouseButtonPress, rect->pos().toPoint(), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &event);
+ QMouseEvent event(QEvent::MouseButtonPress, rect->pos().toPoint(), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &event);
-// QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
-// QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
+ QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
+ QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
-// QCOMPARE(mouseRegion->property("x1").toInt(), 0);
-// QCOMPARE(mouseRegion->property("y1").toInt(), 0);
+ QCOMPARE(mouseRegion->property("x1").toInt(), 0);
+ QCOMPARE(mouseRegion->property("y1").toInt(), 0);
-// // XXX: is it on purpose that mouseX is real and mouse.x is int?
-// QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
-// QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
+ // XXX: is it on purpose that mouseX is real and mouse.x is int?
+ QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
+ QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
-// QCOMPARE(mouseRegion->mouseX(), rect->x());
-// QCOMPARE(mouseRegion->mouseY(), rect->y());
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
-// delete canvas;
-//}
+ delete canvas;
+}
-//void tst_QSGMouseArea::noOnClickedWithPressAndHold()
-//{
-// {
-// // We handle onPressAndHold, therefore no onClicked
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::noOnClickedWithPressAndHold()
+{
+ {
+ // We handle onPressAndHold, therefore no onClicked
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-// QVERIFY(!canvas->rootObject()->property("held").toBool());
+ QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+ QVERIFY(!canvas->rootObject()->property("held").toBool());
-// QTest::qWait(1000);
+ QTest::qWait(1000);
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-// QVERIFY(canvas->rootObject()->property("held").toBool());
+ QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+ QVERIFY(canvas->rootObject()->property("held").toBool());
-// delete canvas;
-// }
+ delete canvas;
+ }
-// {
-// // We do not handle onPressAndHold, therefore we get onClicked
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/noclickandhold.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
-
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
-
-// QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-
-// QTest::qWait(1000);
-
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
-
-// QVERIFY(canvas->rootObject()->property("clicked").toBool());
-
-// delete canvas;
-// }
-//}
-
-//void tst_QSGMouseArea::onMousePressRejected()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/rejectEvent.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
-// QVERIFY(canvas->rootObject()->property("enabled").toBool());
-
-// QVERIFY(!canvas->rootObject()->property("mr1_pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr2_pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr2_canceled").toBool());
-
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
-
-// QVERIFY(canvas->rootObject()->property("mr1_pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-// QVERIFY(canvas->rootObject()->property("mr2_pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-// QVERIFY(canvas->rootObject()->property("mr2_canceled").toBool());
-
-// QTest::qWait(200);
-
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
-
-// QVERIFY(canvas->rootObject()->property("mr1_released").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-
-// delete canvas;
-//}
-//void tst_QSGMouseArea::pressedCanceledOnWindowDeactivate()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedCanceled.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
-// QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("released").toBool());
-
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
-
-// QVERIFY(canvas->rootObject()->property("pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("released").toBool());
-
-// QTest::qWait(200);
+ {
+ // We do not handle onPressAndHold, therefore we get onClicked
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/noclickandhold.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// QEvent windowDeactivateEvent(QEvent::WindowDeactivate);
-// QApplication::sendEvent(canvas, &windowDeactivateEvent);
-// QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-// QVERIFY(canvas->rootObject()->property("canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("released").toBool());
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QTest::qWait(200);
+ QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-// //press again
-// QApplication::sendEvent(canvas, &pressEvent);
-// QVERIFY(canvas->rootObject()->property("pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-// QVERIFY(!canvas->rootObject()->property("released").toBool());
+ QTest::qWait(1000);
-// QTest::qWait(200);
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// //release
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
-// QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-// QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-// QVERIFY(canvas->rootObject()->property("released").toBool());
+ QVERIFY(canvas->rootObject()->property("clicked").toBool());
-// delete canvas;
-//}
-//void tst_QSGMouseArea::doubleClick()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ delete canvas;
+ }
+}
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+void tst_QSGMouseArea::onMousePressRejected()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/rejectEvent.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
+ QVERIFY(canvas->rootObject()->property("enabled").toBool());
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QVERIFY(!canvas->rootObject()->property("mr1_pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr2_pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr2_canceled").toBool());
-// QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QVERIFY(canvas->rootObject()->property("mr1_pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+ QVERIFY(canvas->rootObject()->property("mr2_pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
+ QVERIFY(canvas->rootObject()->property("mr2_canceled").toBool());
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QTest::qWait(200);
-// QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("doubleClicked").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// delete canvas;
-//}
+ QVERIFY(canvas->rootObject()->property("mr1_released").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-//// QTBUG-14832
-//void tst_QSGMouseArea::clickTwice()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clicktwice.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ delete canvas;
+}
+void tst_QSGMouseArea::pressedCanceledOnWindowDeactivate()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedCanceled.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
+ QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("released").toBool());
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QVERIFY(canvas->rootObject()->property("pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("released").toBool());
-// QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
+ QTest::qWait(200);
-// pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QEvent windowDeactivateEvent(QEvent::WindowDeactivate);
+ QApplication::sendEvent(canvas, &windowDeactivateEvent);
+ QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+ QVERIFY(canvas->rootObject()->property("canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("released").toBool());
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QTest::qWait(200);
-// QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 2);
-// QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
-// QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 2);
+ //press again
+ QApplication::sendEvent(canvas, &pressEvent);
+ QVERIFY(canvas->rootObject()->property("pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+ QVERIFY(!canvas->rootObject()->property("released").toBool());
-// delete canvas;
-//}
+ QTest::qWait(200);
-//void tst_QSGMouseArea::pressedOrdering()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedOrdering.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ //release
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
+ QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+ QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+ QVERIFY(canvas->rootObject()->property("released").toBool());
-// QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("base"));
+ delete canvas;
+}
+void tst_QSGMouseArea::doubleClick()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("toggled"));
+ pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
+ QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("doubleClicked").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
-// delete canvas;
-//}
+ delete canvas;
+}
-//void tst_QSGMouseArea::preventStealing()
-//{
-// QSGView *canvas = createView();
+// QTBUG-14832
+void tst_QSGMouseArea::clickTwice()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clicktwice.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/preventstealing.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QSGFlickable *flickable = qobject_cast<QSGFlickable*>(canvas->rootObject());
-// QVERIFY(flickable != 0);
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// QSGMouseArea *mouseArea = canvas->rootObject()->findChild<QSGMouseArea*>("mousearea");
-// QVERIFY(mouseArea != 0);
+ QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
-// QSignalSpy mousePositionSpy(mouseArea, SIGNAL(positionChanged(QSGMouseEvent*)));
+ pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// // Without preventStealing, mouse movement over MouseArea would
-// // cause the Flickable to steal mouse and trigger content movement.
+ QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 2);
+ QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
+ QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 2);
-// QMouseEvent moveEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+ delete canvas;
+}
-// moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+void tst_QSGMouseArea::pressedOrdering()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedOrdering.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+ QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("base"));
+
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// // We should have received all three move events
-// QCOMPARE(mousePositionSpy.count(), 3);
-// QVERIFY(mouseArea->pressed());
+ QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
-// // Flickable content should not have moved.
-// QCOMPARE(flickable->contentX(), 0.);
-// QCOMPARE(flickable->contentY(), 0.);
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
+ QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("toggled"));
-// // Now allow stealing and confirm Flickable does its thing.
-// canvas->rootObject()->setProperty("stealing", false);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
+ QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
-// // Without preventStealing, mouse movement over MouseArea would
-// // cause the Flickable to steal mouse and trigger content movement.
-// moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+ delete canvas;
+}
-// moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+void tst_QSGMouseArea::preventStealing()
+{
+ QSGView *canvas = createView();
-// moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/preventstealing.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// // We should only have received the first move event
-// QCOMPARE(mousePositionSpy.count(), 4);
-// // Our press should be taken away
-// QVERIFY(!mouseArea->pressed());
+ QSGFlickable *flickable = qobject_cast<QSGFlickable*>(canvas->rootObject());
+ QVERIFY(flickable != 0);
-// // Flickable content should have moved.
-// QCOMPARE(flickable->contentX(), 10.);
-// QCOMPARE(flickable->contentY(), 10.);
+ QSGMouseArea *mouseArea = canvas->rootObject()->findChild<QSGMouseArea*>("mousearea");
+ QVERIFY(mouseArea != 0);
-// QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
+ QSignalSpy mousePositionSpy(mouseArea, SIGNAL(positionChanged(QSGMouseEvent*)));
-// delete canvas;
-//}
+ QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
-//void tst_QSGMouseArea::clickThrough()
-//{
-// //With no handlers defined click, doubleClick and PressAndHold should propagate to those with handlers
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ // Without preventStealing, mouse movement over MouseArea would
+ // cause the Flickable to steal mouse and trigger content movement.
-// QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QMouseEvent moveEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+ moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// QApplication::sendEvent(canvas, &pressEvent);
-// QTest::qWait(1000);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ // We should have received all three move events
+ QCOMPARE(mousePositionSpy.count(), 3);
+ QVERIFY(mouseArea->pressed());
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+ // Flickable content should not have moved.
+ QCOMPARE(flickable->contentX(), 0.);
+ QCOMPARE(flickable->contentY(), 0.);
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
-// pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ // Now allow stealing and confirm Flickable does its thing.
+ canvas->rootObject()->setProperty("stealing", false);
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
-// QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+ QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
-// delete canvas;
+ // Without preventStealing, mouse movement over MouseArea would
+ // cause the Flickable to steal mouse and trigger content movement.
+ moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// //With handlers defined click, doubleClick and PressAndHold should propagate only when explicitly ignored
-// canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough2.qml"));
-// canvas->show();
-// canvas->requestActivateWindow();
-// QVERIFY(canvas->rootObject() != 0);
+ moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
-// releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ // We should only have received the first move event
+ QCOMPARE(mousePositionSpy.count(), 4);
+ // Our press should be taken away
+ QVERIFY(!mouseArea->pressed());
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+ // Flickable content should have moved.
+ QCOMPARE(flickable->contentX(), 10.);
+ QCOMPARE(flickable->contentY(), 10.);
-// QApplication::sendEvent(canvas, &pressEvent);
-// QTest::qWait(1000);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+ delete canvas;
+}
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
+void tst_QSGMouseArea::clickThrough()
+{
+ //With no handlers defined click, doubleClick and PressAndHold should propagate to those with handlers
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
-// pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
+ QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
-
-// canvas->rootObject()->setProperty("letThrough", QVariant(true));
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
-// pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &pressEvent);
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-// releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-// QApplication::sendEvent(canvas, &releaseEvent);
-
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-
-// QApplication::sendEvent(canvas, &pressEvent);
-// QTest::qWait(1000);
-// QApplication::sendEvent(canvas, &releaseEvent);
-
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
-
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
-// pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-
-// QApplication::sendEvent(canvas, &pressEvent);
-// QApplication::sendEvent(canvas, &releaseEvent);
-
-// QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-// QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
-// QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
-// QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
-
-// delete canvas;
-//}
-
-//void tst_QSGMouseArea::testQtQuick11Attributes()
-//{
-// QFETCH(QString, code);
-// QFETCH(QString, warning);
-// QFETCH(QString, error);
-
-// QDeclarativeEngine engine;
-// QObject *obj;
-
-// QDeclarativeComponent valid(&engine);
-// valid.setData("import QtQuick 1.1; MouseArea { " + code.toUtf8() + " }", QUrl(""));
-// obj = valid.create();
-// QVERIFY(obj);
-// QVERIFY(valid.errorString().isEmpty());
-// delete obj;
-
-// QDeclarativeComponent invalid(&engine);
-// invalid.setData("import QtQuick 1.0; MouseArea { " + code.toUtf8() + " }", QUrl(""));
-// QTest::ignoreMessage(QtWarningMsg, warning.toUtf8());
-// obj = invalid.create();
-// QCOMPARE(invalid.errorString(), error);
-// delete obj;
-//}
-
-//void tst_QSGMouseArea::testQtQuick11Attributes_data()
-//{
-// QTest::addColumn<QString>("code");
-// QTest::addColumn<QString>("warning");
-// QTest::addColumn<QString>("error");
-
-// QTest::newRow("preventStealing") << "preventStealing: true"
-// << "QDeclarativeComponent: Component is not ready"
-// << ":1 \"MouseArea.preventStealing\" is not available in QtQuick 1.0.\n";
-//}
-
-//void tst_QSGMouseArea::hoverPosition()
-//{
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPosition.qml"));
-
-// QSGItem *root = canvas->rootObject();
-// QVERIFY(root != 0);
-
-// QCOMPARE(root->property("mouseX").toReal(), qreal(0));
-// QCOMPARE(root->property("mouseY").toReal(), qreal(0));
-
-// QMouseEvent moveEvent(QEvent::MouseMove, QPoint(10, 32), Qt::NoButton, Qt::NoButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
-
-//#ifdef Q_WS_QPA
-// QEXPECT_FAIL("", "QTBUG-21008 fails", Abort);
-//#endif
-// QCOMPARE(root->property("mouseX").toReal(), qreal(10));
-// QCOMPARE(root->property("mouseY").toReal(), qreal(32));
-
-// delete canvas;
-//}
-
-//void tst_QSGMouseArea::hoverPropagation()
-//{
-// //QTBUG-18175, to behave like GV did.
-// QSGView *canvas = createView();
-// canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPropagation.qml"));
-
-// QSGItem *root = canvas->rootObject();
-// QVERIFY(root != 0);
-
-// QCOMPARE(root->property("point1").toBool(), false);
-// QCOMPARE(root->property("point2").toBool(), false);
-
-// QMouseEvent moveEvent(QEvent::MouseMove, QPoint(32, 32), Qt::NoButton, Qt::NoButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent);
-//#ifdef Q_WS_QPA
-// QEXPECT_FAIL("", "QTBUG-21008 fails", Abort);
-//#endif
-// QCOMPARE(root->property("point1").toBool(), true);
-// QCOMPARE(root->property("point2").toBool(), false);
-
-// QMouseEvent moveEvent2(QEvent::MouseMove, QPoint(232, 32), Qt::NoButton, Qt::NoButton, 0);
-// QApplication::sendEvent(canvas, &moveEvent2);
-// QCOMPARE(root->property("point1").toBool(), false);
-// QCOMPARE(root->property("point2").toBool(), true);
-
-// delete canvas;
-//}
+ QApplication::sendEvent(canvas, &pressEvent);
+ QTest::qWait(1000);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+ pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
+ QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+ delete canvas;
+
+ //With handlers defined click, doubleClick and PressAndHold should propagate only when explicitly ignored
+ canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough2.qml"));
+ canvas->show();
+ canvas->requestActivateWindow();
+ QVERIFY(canvas->rootObject() != 0);
+
+ pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
+
+ releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QTest::qWait(1000);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+
+ canvas->rootObject()->setProperty("letThrough", QVariant(true));
+
+ pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &pressEvent);
+
+ releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QTest::qWait(1000);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+ pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+
+ QApplication::sendEvent(canvas, &pressEvent);
+ QApplication::sendEvent(canvas, &releaseEvent);
+
+ QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
+ QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+ delete canvas;
+}
+
+void tst_QSGMouseArea::testQtQuick11Attributes()
+{
+ QFETCH(QString, code);
+ QFETCH(QString, warning);
+ QFETCH(QString, error);
+
+ QDeclarativeEngine engine;
+ QObject *obj;
+
+ QDeclarativeComponent valid(&engine);
+ valid.setData("import QtQuick 1.1; MouseArea { " + code.toUtf8() + " }", QUrl(""));
+ obj = valid.create();
+ QVERIFY(obj);
+ QVERIFY(valid.errorString().isEmpty());
+ delete obj;
+
+ QDeclarativeComponent invalid(&engine);
+ invalid.setData("import QtQuick 1.0; MouseArea { " + code.toUtf8() + " }", QUrl(""));
+ QTest::ignoreMessage(QtWarningMsg, warning.toUtf8());
+ obj = invalid.create();
+ QCOMPARE(invalid.errorString(), error);
+ delete obj;
+}
+
+void tst_QSGMouseArea::testQtQuick11Attributes_data()
+{
+ QTest::addColumn<QString>("code");
+ QTest::addColumn<QString>("warning");
+ QTest::addColumn<QString>("error");
+
+ QTest::newRow("preventStealing") << "preventStealing: true"
+ << "QDeclarativeComponent: Component is not ready"
+ << ":1 \"MouseArea.preventStealing\" is not available in QtQuick 1.0.\n";
+}
+
+void tst_QSGMouseArea::hoverPosition()
+{
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPosition.qml"));
+
+ QSGItem *root = canvas->rootObject();
+ QVERIFY(root != 0);
+
+ QCOMPARE(root->property("mouseX").toReal(), qreal(0));
+ QCOMPARE(root->property("mouseY").toReal(), qreal(0));
+
+ QMouseEvent moveEvent(QEvent::MouseMove, QPoint(10, 32), Qt::NoButton, Qt::NoButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
+
+#ifdef Q_WS_QPA
+ QEXPECT_FAIL("", "QTBUG-21008 fails", Abort);
+#endif
+ QCOMPARE(root->property("mouseX").toReal(), qreal(10));
+ QCOMPARE(root->property("mouseY").toReal(), qreal(32));
+
+ delete canvas;
+}
+
+void tst_QSGMouseArea::hoverPropagation()
+{
+ //QTBUG-18175, to behave like GV did.
+ QSGView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPropagation.qml"));
+
+ QSGItem *root = canvas->rootObject();
+ QVERIFY(root != 0);
+
+ QCOMPARE(root->property("point1").toBool(), false);
+ QCOMPARE(root->property("point2").toBool(), false);
+
+ QMouseEvent moveEvent(QEvent::MouseMove, QPoint(32, 32), Qt::NoButton, Qt::NoButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent);
+#ifdef Q_WS_QPA
+ QEXPECT_FAIL("", "QTBUG-21008 fails", Abort);
+#endif
+ QCOMPARE(root->property("point1").toBool(), true);
+ QCOMPARE(root->property("point2").toBool(), false);
+
+ QMouseEvent moveEvent2(QEvent::MouseMove, QPoint(232, 32), Qt::NoButton, Qt::NoButton, 0);
+ QApplication::sendEvent(canvas, &moveEvent2);
+ QCOMPARE(root->property("point1").toBool(), false);
+ QCOMPARE(root->property("point2").toBool(), true);
+
+ delete canvas;
+}
QTEST_MAIN(tst_QSGMouseArea)