diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2009-11-09 05:43:40 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2009-11-09 05:43:40 (GMT) |
commit | dabc2b4f015ab37d4c7ace4a96b5615722a1efc1 (patch) | |
tree | a31c3f6679a730f0da3cfccafd7897257ca04be9 /tests/auto/declarative | |
parent | d98a7ff511817af137ef21b2c92722156109add6 (diff) | |
parent | 208567d44c5140ca0d4350fde42948e6fca5dc58 (diff) | |
download | Qt-dabc2b4f015ab37d4c7ace4a96b5615722a1efc1.zip Qt-dabc2b4f015ab37d4c7ace4a96b5615722a1efc1.tar.gz Qt-dabc2b4f015ab37d4c7ace4a96b5615722a1efc1.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'tests/auto/declarative')
33 files changed, 2700 insertions, 743 deletions
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 413eb1e..134ae1b 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -25,6 +25,7 @@ SUBDIRS += \ qmlgraphicsitem \ # Cover qmlgraphicsborderimage \ # Cover qmlgraphicsparticles \ # Cover + qmlgraphicspositioners \ # Cover qmlgraphicstext \ # Cover qmlgraphicstextedit \ # Cover qmlgraphicstextinput \ # Cover diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml new file mode 100644 index 0000000..ccc8cfe --- /dev/null +++ b/tests/auto/declarative/layouts/data/layouts.qml @@ -0,0 +1,34 @@ +import Qt 4.6 + +Item { + id: resizable + width:300 + height:300 + + GraphicsObjectContainer { + anchors.fill:parent + + QGraphicsWidget { + size.width:parent.width + size.height:parent.height + + layout: QGraphicsLinearLayout { + spacing: 0 + LayoutItem { + objectName: "left" + minimumSize: "100x100" + maximumSize: "300x300" + preferredSize: "100x100" + Rectangle { objectName: "yellowRect"; color: "yellow"; anchors.fill: parent } + } + LayoutItem { + objectName: "right" + minimumSize: "100x100" + maximumSize: "400x400" + preferredSize: "200x200" + Rectangle { objectName: "greenRect"; color: "green"; anchors.fill: parent } + } + } + } + } +} diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index c0c067a..f619b57 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -41,7 +41,7 @@ #include <QtTest/QtTest> #include <private/qlistmodelinterface_p.h> #include <qmlview.h> -#include <private/qmlgraphicsrectangle_p.h> +#include <private/qmlgraphicslayoutitem_p.h> #include <qmlexpression.h> class tst_QmlGraphicsLayouts : public QObject @@ -51,17 +51,9 @@ public: tst_QmlGraphicsLayouts(); private slots: - void test_horizontal(); - void test_horizontal_spacing(); - void test_horizontal_animated(); - void test_vertical(); - void test_vertical_spacing(); - void test_vertical_animated(); - void test_grid(); - void test_grid_spacing(); - void test_grid_animated(); + void test_qml();//GraphicsLayout set up in Qml + void test_cpp();//GraphicsLayout set up in C++ - void test_repeater(); private: QmlView *createView(const QString &filename); }; @@ -70,385 +62,61 @@ tst_QmlGraphicsLayouts::tst_QmlGraphicsLayouts() { } -void tst_QmlGraphicsLayouts::test_horizontal() +void tst_QmlGraphicsLayouts::test_qml() { - QmlView *canvas = createView(SRCDIR "/data/horizontal.qml"); + QmlView *canvas = createView(SRCDIR "/data/layouts.qml"); canvas->execute(); qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 70.0); - QCOMPARE(three->y(), 0.0); + QmlGraphicsLayoutItem *left = qobject_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("left")); + QVERIFY(left != 0); + + QmlGraphicsLayoutItem *right = qobject_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("right")); + QVERIFY(right != 0); + + qreal gvMargin = 9.0; + //Preferred Size + canvas->root()->setWidth(300 + 2*gvMargin); + canvas->root()->setHeight(300 + 2*gvMargin); + + QCOMPARE(left->x(), gvMargin); + QCOMPARE(left->y(), gvMargin); + QCOMPARE(left->width(), 100.0); + QCOMPARE(left->height(), 300.0); + + QCOMPARE(right->x(), 100.0 + gvMargin); + QCOMPARE(right->y(), 0.0 + gvMargin); + QCOMPARE(right->width(), 200.0); + QCOMPARE(right->height(), 300.0); + + //Minimum Size + canvas->root()->setWidth(10+2*gvMargin); + canvas->root()->setHeight(10+2*gvMargin); + + QCOMPARE(left->x(), gvMargin); + QCOMPARE(left->width(), 100.0); + QCOMPARE(left->height(), 100.0); + + QCOMPARE(right->x(), 100.0 + gvMargin); + QCOMPARE(right->width(), 100.0); + QCOMPARE(right->height(), 100.0); + + //Maximum Size + canvas->root()->setWidth(1000 + 2*gvMargin); + canvas->root()->setHeight(1000 + 2*gvMargin); + + QCOMPARE(left->x(), gvMargin); + QCOMPARE(left->width(), 300.0); + QCOMPARE(left->height(), 300.0); + + QCOMPARE(right->x(), 300.0 + gvMargin); + QCOMPARE(right->width(), 400.0); + QCOMPARE(right->height(), 400.0); } -void tst_QmlGraphicsLayouts::test_horizontal_spacing() +void tst_QmlGraphicsLayouts::test_cpp() { - QmlView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 60.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 90.0); - QCOMPARE(three->y(), 0.0); -} - -void tst_QmlGraphicsLayouts::test_horizontal_animated() -{ - QmlView *canvas = createView(SRCDIR "/data/horizontal-animated.qml"); - - canvas->execute(); - qApp->processEvents(); - - QTest::qWait(0);//Let the animation start - //Note that one and three animate in - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - QCOMPARE(one->x(), -100.0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - QCOMPARE(two->x(), 0.0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - QCOMPARE(three->x(), -100.0); - - QTest::qWait(300);//Let the animation complete - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 50.0); - QCOMPARE(three->y(), 0.0); - - //Add 'two' - two->setOpacity(1.0); - QCOMPARE(two->opacity(), 1.0); - QTest::qWait(0);//Let the animation start - QCOMPARE(two->x(), -100.0); - QCOMPARE(three->x(), 50.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->x(), 50.0); - QCOMPARE(three->x(), 100.0); - - //Remove 'two' - two->setOpacity(0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->x(), 50.0); - QCOMPARE(three->x(), 100.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->x(), 50.0); - QCOMPARE(three->x(), 50.0); -} - -void tst_QmlGraphicsLayouts::test_vertical() -{ - QmlView *canvas = createView(SRCDIR "/data/vertical.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(two->y(), 50.0); - QCOMPARE(three->x(), 0.0); - QCOMPARE(three->y(), 60.0); -} - -void tst_QmlGraphicsLayouts::test_vertical_spacing() -{ - QmlView *canvas = createView(SRCDIR "/data/vertical-spacing.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(two->y(), 60.0); - QCOMPARE(three->x(), 0.0); - QCOMPARE(three->y(), 80.0); -} - -void tst_QmlGraphicsLayouts::test_vertical_animated() -{ - QmlView *canvas = createView(SRCDIR "/data/vertical-animated.qml"); - - canvas->execute(); - qApp->processEvents(); - - QTest::qWait(0);//Let the animation start - //Note that one and three animate in - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - QCOMPARE(one->y(), -100.0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - QCOMPARE(two->y(), 0.0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - QCOMPARE(three->y(), -100.0); - - QTest::qWait(300);//Let the animation complete - - QCOMPARE(one->y(), 0.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(three->y(), 50.0); - QCOMPARE(three->x(), 0.0); - - //Add 'two' - two->setOpacity(1.0); - QCOMPARE(two->opacity(), 1.0); - QTest::qWait(0);//Let the animation start - QCOMPARE(two->y(), -100.0); - QCOMPARE(three->y(), 50.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->y(), 50.0); - QCOMPARE(three->y(), 100.0); - - //Remove 'two' - two->setOpacity(0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->y(), 50.0); - QCOMPARE(three->y(), 100.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->y(), 50.0); - QCOMPARE(three->y(), 50.0); -} - -void tst_QmlGraphicsLayouts::test_grid() -{ - QmlView *canvas = createView("data/grid.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); - QVERIFY(four != 0); - QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); - QVERIFY(five != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 70.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 0.0); - QCOMPARE(four->y(), 50.0); - QCOMPARE(five->x(), 50.0); - QCOMPARE(five->y(), 50.0); -} - -void tst_QmlGraphicsLayouts::test_grid_spacing() -{ - QmlView *canvas = createView("data/grid-spacing.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); - QVERIFY(four != 0); - QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); - QVERIFY(five != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 54.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 78.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 0.0); - QCOMPARE(four->y(), 54.0); - QCOMPARE(five->x(), 54.0); - QCOMPARE(five->y(), 54.0); -} - -void tst_QmlGraphicsLayouts::test_grid_animated() -{ - QmlView *canvas = createView(SRCDIR "/data/grid-animated.qml"); - canvas->execute(); - qApp->processEvents(); - - QTest::qWait(0);//Let the animation start - //Note that all but two animate in - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - QCOMPARE(one->x(), -100.0); - QCOMPARE(one->y(), -100.0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(two->y(), 0.0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - QCOMPARE(three->x(), -100.0); - QCOMPARE(three->y(), -100.0); - - QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); - QVERIFY(four != 0); - QCOMPARE(four->x(), -100.0); - QCOMPARE(four->y(), -100.0); - - QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); - QVERIFY(five != 0); - QCOMPARE(five->x(), -100.0); - QCOMPARE(five->y(), -100.0); - - QTest::qWait(300);//Let the animation complete - - QCOMPARE(one->y(), 0.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(two->x(), 0.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(three->x(), 50.0); - QCOMPARE(four->y(), 0.0); - QCOMPARE(four->x(), 100.0); - QCOMPARE(five->y(), 50.0); - QCOMPARE(five->x(), 0.0); - - //Add 'two' - two->setOpacity(1.0); - QCOMPARE(two->opacity(), 1.0); - QTest::qWait(0);//Let the animation start - QCOMPARE(two->x(), -100.0); - QCOMPARE(two->y(), -100.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(three->x(), 50.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 100.0); - QCOMPARE(four->y(), 0.0); - QCOMPARE(five->x(), 0.0); - QCOMPARE(five->y(), 50.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(three->x(), 100.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 0.0); - QCOMPARE(four->y(), 50.0); - QCOMPARE(five->x(), 50.0); - QCOMPARE(five->y(), 50.0); - - //Remove 'two' - two->setOpacity(0.0); - QCOMPARE(two->opacity(), 0.0); - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(three->x(), 100.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 0.0); - QCOMPARE(four->y(), 50.0); - QCOMPARE(five->x(), 50.0); - QCOMPARE(five->y(), 50.0); - QTest::qWait(300);//Let the animation complete - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(three->x(), 50.0); - QCOMPARE(three->y(), 0.0); - QCOMPARE(four->x(), 100.0); - QCOMPARE(four->y(), 0.0); - QCOMPARE(five->x(), 0.0); - QCOMPARE(five->y(), 50.0); -} - -void tst_QmlGraphicsLayouts::test_repeater() -{ - QmlView *canvas = createView("data/repeater.qml"); - - canvas->execute(); - qApp->processEvents(); - - QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); - QVERIFY(one != 0); - - QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); - QVERIFY(two != 0); - - QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); - QVERIFY(three != 0); - - QCOMPARE(one->x(), 0.0); - QCOMPARE(one->y(), 0.0); - QCOMPARE(two->x(), 50.0); - QCOMPARE(two->y(), 0.0); - QCOMPARE(three->x(), 100.0); - QCOMPARE(three->y(), 0.0); + //TODO: Waiting on QT-2407 to write this test } QmlView *tst_QmlGraphicsLayouts::createView(const QString &filename) diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview-initCurrent.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview-initCurrent.qml new file mode 100644 index 0000000..d9e9f27 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview-initCurrent.qml @@ -0,0 +1,51 @@ +import Qt 4.6 + +Rectangle { + width: 240 + height: 320 + color: "#ffffff" + resources: [ + Component { + id: myDelegate + Rectangle { + id: wrapper + objectName: "wrapper" + width: 80 + height: 60 + border.color: "blue" + Text { + text: index + } + Text { + x: 40 + text: wrapper.x + ", " + wrapper.y + } + Text { + y: 20 + id: textName + objectName: "textName" + text: name + } + Text { + y: 40 + id: textNumber + objectName: "textNumber" + text: number + } + color: GridView.isCurrentItem ? "lightsteelblue" : "white" + } + } + ] + GridView { + id: grid + objectName: "grid" + focus: true + width: 240 + height: 320 + currentIndex: 5 + cellWidth: 80 + cellHeight: 60 + model: testModel + delegate: myDelegate + } +} diff --git a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp index c6ea25a..7c32d14 100644 --- a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp +++ b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp @@ -53,6 +53,7 @@ public: tst_QmlGraphicsGridView(); private slots: + void currentIndex(); void items(); void changed(); void inserted(); @@ -168,15 +169,6 @@ void tst_QmlGraphicsGridView::items() QCOMPARE(number->text(), model.number(i)); } - gridview->moveCurrentIndexRight(); - QCOMPARE(gridview->currentIndex(), 1); - gridview->moveCurrentIndexDown(); - QCOMPARE(gridview->currentIndex(), 4); - gridview->moveCurrentIndexUp(); - QCOMPARE(gridview->currentIndex(), 1); - gridview->moveCurrentIndexLeft(); - QCOMPARE(gridview->currentIndex(), 0); - // set an empty model and confirm that items are destroyed TestModel model2; ctxt->setContextProperty("testModel", &model2); @@ -515,6 +507,107 @@ void tst_QmlGraphicsGridView::moved() delete canvas; } +void tst_QmlGraphicsGridView::currentIndex() +{ + TestModel model; + for (int i = 0; i < 30; i++) + model.addItem("Item" + QString::number(i), QString::number(i)); + + QmlView *canvas = new QmlView(0); + canvas->setFixedSize(240,320); + + QmlContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + QString filename(SRCDIR "/data/gridview-initCurrent.qml"); + QFile file(filename); + file.open(QFile::ReadOnly); + QString qml = file.readAll(); + canvas->setQml(qml, filename); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsGridView *gridview = findItem<QmlGraphicsGridView>(canvas->root(), "grid"); + QVERIFY(gridview != 0); + + QmlGraphicsItem *viewport = gridview->viewport(); + QVERIFY(viewport != 0); + + // current item should be third item + QCOMPARE(gridview->currentIndex(), 5); + QCOMPARE(gridview->currentItem(), findItem<QmlGraphicsItem>(viewport, "wrapper", 5)); + + gridview->moveCurrentIndexRight(); + QCOMPARE(gridview->currentIndex(), 6); + gridview->moveCurrentIndexDown(); + QCOMPARE(gridview->currentIndex(), 9); + gridview->moveCurrentIndexUp(); + QCOMPARE(gridview->currentIndex(), 6); + gridview->moveCurrentIndexLeft(); + QCOMPARE(gridview->currentIndex(), 5); + + // no wrap + gridview->setCurrentIndex(0); + QCOMPARE(gridview->currentIndex(), 0); + + gridview->moveCurrentIndexUp(); + QCOMPARE(gridview->currentIndex(), 0); + + gridview->moveCurrentIndexLeft(); + QCOMPARE(gridview->currentIndex(), 0); + + gridview->setCurrentIndex(model.count()-1); + QTest::qWait(500); + QCOMPARE(gridview->currentIndex(), model.count()-1); + + gridview->moveCurrentIndexRight(); + QCOMPARE(gridview->currentIndex(), model.count()-1); + + gridview->moveCurrentIndexDown(); + QCOMPARE(gridview->currentIndex(), model.count()-1); + + // with wrap + gridview->setWrapEnabled(true); + + gridview->setCurrentIndex(0); + QCOMPARE(gridview->currentIndex(), 0); + QTest::qWait(500); + + gridview->moveCurrentIndexLeft(); + QCOMPARE(gridview->currentIndex(), model.count()-1); + + QTest::qWait(500); + QCOMPARE(gridview->viewportY(), 279.0); + + gridview->moveCurrentIndexRight(); + QCOMPARE(gridview->currentIndex(), 0); + + QTest::qWait(500); + QCOMPARE(gridview->viewportY(), 0.0); + + // Test keys + canvas->show(); + qApp->processEvents(); + + QEvent wa(QEvent::WindowActivate); + QApplication::sendEvent(canvas, &wa); + QFocusEvent fe(QEvent::FocusIn); + QApplication::sendEvent(canvas, &fe); + + QKeyEvent key(QEvent::KeyPress, Qt::Key_Down, Qt::NoModifier, "", false, 1); + QApplication::sendEvent(canvas, &key); + QVERIFY(key.isAccepted()); + QCOMPARE(gridview->currentIndex(), 3); + + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Up, Qt::NoModifier, "", false, 1); + QApplication::sendEvent(canvas, &key); + QVERIFY(key.isAccepted()); + QCOMPARE(gridview->currentIndex(), 0); + + delete canvas; +} + QmlView *tst_QmlGraphicsGridView::createView(const QString &filename) { QmlView *canvas = new QmlView(0); diff --git a/tests/auto/declarative/qmlgraphicslistview/data/itemlist.qml b/tests/auto/declarative/qmlgraphicslistview/data/itemlist.qml new file mode 100644 index 0000000..36d3501 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicslistview/data/itemlist.qml @@ -0,0 +1,43 @@ +// This example demonstrates placing items in a view using +// a VisualItemModel + +import Qt 4.6 + +Rectangle { + color: "lightgray" + width: 240 + height: 320 + + VisualItemModel { + id: itemModel + objectName: "itemModel" + Rectangle { + objectName: "item1" + height: view.height; width: view.width; color: "#FFFEF0" + Text { text: "Page 1"; font.bold: true; anchors.centerIn: parent } + } + Rectangle { + objectName: "item2" + height: view.height; width: view.width; color: "#F0FFF7" + Text { text: "Page 2"; font.bold: true; anchors.centerIn: parent } + } + Rectangle { + objectName: "item3" + height: view.height; width: view.width; color: "#F4F0FF" + Text { text: "Page 3"; font.bold: true; anchors.centerIn: parent } + } + } + + ListView { + id: view + objectName: "view" + anchors.fill: parent + anchors.bottomMargin: 30 + model: itemModel + preferredHighlightBegin: 0 + preferredHighlightEnd: 0 + highlightRangeMode: "StrictlyEnforceRange" + orientation: ListView.Horizontal + flickDeceleration: 2000 + } +} diff --git a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml index 93a3ae3..3ef1be1 100644 --- a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml +++ b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml @@ -32,6 +32,11 @@ Rectangle { text: wrapper.y } color: ListView.isCurrentItem ? "lightsteelblue" : "white" + ListView.onRemove: SequentialAnimation { + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: true } + NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing: "easeInOutQuad" } + PropertyAction { target: wrapper.ListView; property: "delayRemove"; value: false } + } } } ] diff --git a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp index de26635..afef47a 100644 --- a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp +++ b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp @@ -43,6 +43,7 @@ #include <qmlview.h> #include <private/qmlgraphicslistview_p.h> #include <private/qmlgraphicstext_p.h> +#include <private/qmlgraphicsvisualitemmodel_p.h> #include <qmlcontext.h> #include <qmlexpression.h> @@ -53,6 +54,7 @@ public: tst_QmlGraphicsListView(); private slots: + void itemList(); // Test both QListModelInterface and QAbstractItemModel model types void qListModelInterface_items(); void qAbstractItemModel_items(); @@ -844,6 +846,39 @@ void tst_QmlGraphicsListView::currentIndex() delete canvas; } +void tst_QmlGraphicsListView::itemList() +{ + QmlView *canvas = createView(SRCDIR "/data/itemlist.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsListView *listview = findItem<QmlGraphicsListView>(canvas->root(), "view"); + QVERIFY(listview != 0); + + QmlGraphicsItem *viewport = listview->viewport(); + QVERIFY(viewport != 0); + + QmlGraphicsVisualItemModel *model = canvas->root()->findChild<QmlGraphicsVisualItemModel*>("itemModel"); + QVERIFY(model != 0); + + QVERIFY(model->count() == 3); + QCOMPARE(listview->currentIndex(), 0); + + QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "item1"); + QVERIFY(item); + QCOMPARE(item->x(), 0.0); + + listview->setCurrentIndex(2); + QTest::qWait(1000); + + item = findItem<QmlGraphicsItem>(viewport, "item3"); + QVERIFY(item); + QCOMPARE(item->x(), 480.0); + + delete canvas; +} + void tst_QmlGraphicsListView::qListModelInterface_items() { items<TestModel>(); diff --git a/tests/auto/declarative/layouts/data/grid-animated.qml b/tests/auto/declarative/qmlgraphicspositioners/data/grid-animated.qml index 6b128ce..6b128ce 100644 --- a/tests/auto/declarative/layouts/data/grid-animated.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/grid-animated.qml diff --git a/tests/auto/declarative/layouts/data/grid-spacing.qml b/tests/auto/declarative/qmlgraphicspositioners/data/grid-spacing.qml index 5b4a30d..5b4a30d 100644 --- a/tests/auto/declarative/layouts/data/grid-spacing.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/grid-spacing.qml diff --git a/tests/auto/declarative/layouts/data/grid.qml b/tests/auto/declarative/qmlgraphicspositioners/data/grid.qml index 830df6a..830df6a 100644 --- a/tests/auto/declarative/layouts/data/grid.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/grid.qml diff --git a/tests/auto/declarative/layouts/data/horizontal-animated.qml b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal-animated.qml index c29d6df..c29d6df 100644 --- a/tests/auto/declarative/layouts/data/horizontal-animated.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal-animated.qml diff --git a/tests/auto/declarative/layouts/data/horizontal-spacing.qml b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal-spacing.qml index 32bf775..32bf775 100644 --- a/tests/auto/declarative/layouts/data/horizontal-spacing.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal-spacing.qml diff --git a/tests/auto/declarative/layouts/data/horizontal.qml b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal.qml index 06ae151..06ae151 100644 --- a/tests/auto/declarative/layouts/data/horizontal.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/horizontal.qml diff --git a/tests/auto/declarative/layouts/data/repeater.qml b/tests/auto/declarative/qmlgraphicspositioners/data/repeater.qml index 2bc5e94..2bc5e94 100644 --- a/tests/auto/declarative/layouts/data/repeater.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/repeater.qml diff --git a/tests/auto/declarative/layouts/data/vertical-animated.qml b/tests/auto/declarative/qmlgraphicspositioners/data/vertical-animated.qml index fcbc5f7..fcbc5f7 100644 --- a/tests/auto/declarative/layouts/data/vertical-animated.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/vertical-animated.qml diff --git a/tests/auto/declarative/layouts/data/vertical-spacing.qml b/tests/auto/declarative/qmlgraphicspositioners/data/vertical-spacing.qml index 69a8256..69a8256 100644 --- a/tests/auto/declarative/layouts/data/vertical-spacing.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/vertical-spacing.qml diff --git a/tests/auto/declarative/layouts/data/vertical.qml b/tests/auto/declarative/qmlgraphicspositioners/data/vertical.qml index 856c180..856c180 100644 --- a/tests/auto/declarative/layouts/data/vertical.qml +++ b/tests/auto/declarative/qmlgraphicspositioners/data/vertical.qml diff --git a/tests/auto/declarative/qmlgraphicspositioners/qmlgraphicspositioners.pro b/tests/auto/declarative/qmlgraphicspositioners/qmlgraphicspositioners.pro new file mode 100644 index 0000000..d151026 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspositioners/qmlgraphicspositioners.pro @@ -0,0 +1,7 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative +SOURCES += tst_qmlgraphicspositioners.cpp +macx:CONFIG -= app_bundle + +# Define SRCDIR equal to test's source directory +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp new file mode 100644 index 0000000..aca3579 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp @@ -0,0 +1,469 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QtTest/QtTest> +#include <private/qlistmodelinterface_p.h> +#include <qmlview.h> +#include <private/qmlgraphicsrectangle_p.h> +#include <qmlexpression.h> + +class tst_QmlGraphicsPositioners : public QObject +{ + Q_OBJECT +public: + tst_QmlGraphicsPositioners(); + +private slots: + void test_horizontal(); + void test_horizontal_spacing(); + void test_horizontal_animated(); + void test_vertical(); + void test_vertical_spacing(); + void test_vertical_animated(); + void test_grid(); + void test_grid_spacing(); + void test_grid_animated(); + + void test_repeater(); +private: + QmlView *createView(const QString &filename); +}; + +tst_QmlGraphicsPositioners::tst_QmlGraphicsPositioners() +{ +} + +void tst_QmlGraphicsPositioners::test_horizontal() +{ + QmlView *canvas = createView(SRCDIR "/data/horizontal.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 70.0); + QCOMPARE(three->y(), 0.0); +} + +void tst_QmlGraphicsPositioners::test_horizontal_spacing() +{ + QmlView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 60.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 90.0); + QCOMPARE(three->y(), 0.0); +} + +void tst_QmlGraphicsPositioners::test_horizontal_animated() +{ + QmlView *canvas = createView(SRCDIR "/data/horizontal-animated.qml"); + + canvas->execute(); + qApp->processEvents(); + + QTest::qWait(0);//Let the animation start + //Note that one and three animate in + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + QCOMPARE(one->x(), -100.0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + QCOMPARE(two->x(), 0.0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + QCOMPARE(three->x(), -100.0); + + QTest::qWait(300);//Let the animation complete + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 50.0); + QCOMPARE(three->y(), 0.0); + + //Add 'two' + two->setOpacity(1.0); + QCOMPARE(two->opacity(), 1.0); + QTest::qWait(0);//Let the animation start + QCOMPARE(two->x(), -100.0); + QCOMPARE(three->x(), 50.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->x(), 50.0); + QCOMPARE(three->x(), 100.0); + + //Remove 'two' + two->setOpacity(0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->x(), 50.0); + QCOMPARE(three->x(), 100.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->x(), 50.0); + QCOMPARE(three->x(), 50.0); +} + +void tst_QmlGraphicsPositioners::test_vertical() +{ + QmlView *canvas = createView(SRCDIR "/data/vertical.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(two->y(), 50.0); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 60.0); +} + +void tst_QmlGraphicsPositioners::test_vertical_spacing() +{ + QmlView *canvas = createView(SRCDIR "/data/vertical-spacing.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(two->y(), 60.0); + QCOMPARE(three->x(), 0.0); + QCOMPARE(three->y(), 80.0); +} + +void tst_QmlGraphicsPositioners::test_vertical_animated() +{ + QmlView *canvas = createView(SRCDIR "/data/vertical-animated.qml"); + + canvas->execute(); + qApp->processEvents(); + + QTest::qWait(0);//Let the animation start + //Note that one and three animate in + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + QCOMPARE(one->y(), -100.0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + QCOMPARE(two->y(), 0.0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + QCOMPARE(three->y(), -100.0); + + QTest::qWait(300);//Let the animation complete + + QCOMPARE(one->y(), 0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(three->y(), 50.0); + QCOMPARE(three->x(), 0.0); + + //Add 'two' + two->setOpacity(1.0); + QCOMPARE(two->opacity(), 1.0); + QTest::qWait(0);//Let the animation start + QCOMPARE(two->y(), -100.0); + QCOMPARE(three->y(), 50.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->y(), 50.0); + QCOMPARE(three->y(), 100.0); + + //Remove 'two' + two->setOpacity(0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->y(), 50.0); + QCOMPARE(three->y(), 100.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->y(), 50.0); + QCOMPARE(three->y(), 50.0); +} + +void tst_QmlGraphicsPositioners::test_grid() +{ + QmlView *canvas = createView("data/grid.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); + QVERIFY(four != 0); + QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); + QVERIFY(five != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 70.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 0.0); + QCOMPARE(four->y(), 50.0); + QCOMPARE(five->x(), 50.0); + QCOMPARE(five->y(), 50.0); +} + +void tst_QmlGraphicsPositioners::test_grid_spacing() +{ + QmlView *canvas = createView("data/grid-spacing.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); + QVERIFY(four != 0); + QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); + QVERIFY(five != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 54.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 78.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 0.0); + QCOMPARE(four->y(), 54.0); + QCOMPARE(five->x(), 54.0); + QCOMPARE(five->y(), 54.0); +} + +void tst_QmlGraphicsPositioners::test_grid_animated() +{ + QmlView *canvas = createView(SRCDIR "/data/grid-animated.qml"); + canvas->execute(); + qApp->processEvents(); + + QTest::qWait(0);//Let the animation start + //Note that all but two animate in + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + QCOMPARE(one->x(), -100.0); + QCOMPARE(one->y(), -100.0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(two->y(), 0.0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + QCOMPARE(three->x(), -100.0); + QCOMPARE(three->y(), -100.0); + + QmlGraphicsRectangle *four = canvas->root()->findChild<QmlGraphicsRectangle*>("four"); + QVERIFY(four != 0); + QCOMPARE(four->x(), -100.0); + QCOMPARE(four->y(), -100.0); + + QmlGraphicsRectangle *five = canvas->root()->findChild<QmlGraphicsRectangle*>("five"); + QVERIFY(five != 0); + QCOMPARE(five->x(), -100.0); + QCOMPARE(five->y(), -100.0); + + QTest::qWait(300);//Let the animation complete + + QCOMPARE(one->y(), 0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(two->x(), 0.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(three->x(), 50.0); + QCOMPARE(four->y(), 0.0); + QCOMPARE(four->x(), 100.0); + QCOMPARE(five->y(), 50.0); + QCOMPARE(five->x(), 0.0); + + //Add 'two' + two->setOpacity(1.0); + QCOMPARE(two->opacity(), 1.0); + QTest::qWait(0);//Let the animation start + QCOMPARE(two->x(), -100.0); + QCOMPARE(two->y(), -100.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(three->x(), 50.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 100.0); + QCOMPARE(four->y(), 0.0); + QCOMPARE(five->x(), 0.0); + QCOMPARE(five->y(), 50.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(three->x(), 100.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 0.0); + QCOMPARE(four->y(), 50.0); + QCOMPARE(five->x(), 50.0); + QCOMPARE(five->y(), 50.0); + + //Remove 'two' + two->setOpacity(0.0); + QCOMPARE(two->opacity(), 0.0); + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(three->x(), 100.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 0.0); + QCOMPARE(four->y(), 50.0); + QCOMPARE(five->x(), 50.0); + QCOMPARE(five->y(), 50.0); + QTest::qWait(300);//Let the animation complete + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(three->x(), 50.0); + QCOMPARE(three->y(), 0.0); + QCOMPARE(four->x(), 100.0); + QCOMPARE(four->y(), 0.0); + QCOMPARE(five->x(), 0.0); + QCOMPARE(five->y(), 50.0); +} + +void tst_QmlGraphicsPositioners::test_repeater() +{ + QmlView *canvas = createView("data/repeater.qml"); + + canvas->execute(); + qApp->processEvents(); + + QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one"); + QVERIFY(one != 0); + + QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two"); + QVERIFY(two != 0); + + QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three"); + QVERIFY(three != 0); + + QCOMPARE(one->x(), 0.0); + QCOMPARE(one->y(), 0.0); + QCOMPARE(two->x(), 50.0); + QCOMPARE(two->y(), 0.0); + QCOMPARE(three->x(), 100.0); + QCOMPARE(three->y(), 0.0); +} + +QmlView *tst_QmlGraphicsPositioners::createView(const QString &filename) +{ + QmlView *canvas = new QmlView(0); + + QFile file(filename); + file.open(QFile::ReadOnly); + QString xml = file.readAll(); + canvas->setQml(xml, filename); + + return canvas; +} + + +QTEST_MAIN(tst_QmlGraphicsPositioners) + +#include "tst_qmlgraphicspositioners.moc" diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.0.png b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.0.png Binary files differindex 3d5acbc..53a8b42 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.0.png +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.0.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.1.png b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.1.png Binary files differindex bebb1aa..b7efe8c 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.1.png +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.1.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.2.png b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.2.png Binary files differindex d092053..aa6d147 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.2.png +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.2.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.3.png b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.3.png Binary files differindex aa79f8b..9d39713 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.3.png +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.3.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.qml b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.qml index 5464d01..4df180f 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/data/test-flipable.qml @@ -18,47 +18,47 @@ VisualTest { } Frame { msec: 64 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "06d7f0befa7e06972983ffe87c162750" } Frame { msec: 80 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "51dff66a7767e3464fda60f2cf906700" } Frame { msec: 96 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "f8038dc4b67b92ef776a97589240e8c5" } Frame { msec: 112 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "692931f1db6ddf0b37eb64026ca830f8" } Frame { msec: 128 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "f01b7368e42381dda5eadf56482ea993" } Frame { msec: 144 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "9811f823e057882d384f36d7227fa12e" } Frame { msec: 160 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "9b40b6c75af876567ff49688bc710f2a" } Frame { msec: 176 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "e97a5d968da37789c28816608fa262a1" } Frame { msec: 192 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "2cd0627fdc63bb91f8dcac789d7a93b2" } Frame { msec: 208 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "ae2407f8da9a047d2725bcdcf8e568b2" } Frame { msec: 224 - hash: "90fb4e4ba04ac32b52c10b3258431c04" + hash: "da2a1e5e988c27577ceb453cb0383703" } Frame { msec: 240 @@ -70,7 +70,7 @@ VisualTest { } Frame { msec: 272 - hash: "73c06997014af4e008b546b53fe349fb" + hash: "90fb4e4ba04ac32b52c10b3258431c04" } Frame { msec: 288 @@ -78,7 +78,7 @@ VisualTest { } Frame { msec: 304 - hash: "73c06997014af4e008b546b53fe349fb" + hash: "262404c6e55b93c4ab940582a49f7e18" } Frame { msec: 320 @@ -90,139 +90,139 @@ VisualTest { } Frame { msec: 352 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "2d112d040fd425c59b511066737e494d" } Frame { msec: 368 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "769d2724656dbf0e793ecd8e42db3de2" } Frame { msec: 384 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "9e375cb3815723a2c5dda39c79325e96" } Frame { msec: 400 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "b21e92871bf63873b8ae48a2aff47be5" } Frame { msec: 416 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "00d08f4257f35c6236cde0597b0005e4" } Frame { msec: 432 - hash: "845581f8d03f4fe9323fc282e84f919b" + hash: "8048f84221a02e7102cf3272445862a1" } Frame { msec: 448 - hash: "845581f8d03f4fe9323fc282e84f919b" + hash: "f0d7b45f0b01319494616c1893aa940e" } Frame { msec: 464 - hash: "136fb272f4d806927b46a1269b18f63d" + hash: "457fad89140a1dda9e70549d451482e9" } Frame { msec: 480 - hash: "8532ee7ce3488f9e038643e4fa48751d" + hash: "ee0feb79e843cdb2adea72fa37ecab67" } Frame { msec: 496 - hash: "8532ee7ce3488f9e038643e4fa48751d" + hash: "ece02d3590147884e697dd5228dee8c4" } Frame { msec: 512 - hash: "af5f794f73e16a5c3b9e437418c873ee" + hash: "91c4ec19716a0883c8f5c25b9a0d1f42" } Frame { msec: 528 - hash: "af5f794f73e16a5c3b9e437418c873ee" + hash: "a7c9860dd4962b11b92c54370ba156ee" } Frame { msec: 544 - hash: "d75e53f2cea8e9b61a5e50f95060552e" + hash: "a28f2590be1e8cde4cde5219367015ac" } Frame { msec: 560 - hash: "0374aae76f8cfd75f119ff4b86dba817" + hash: "3b641ba58f5e1f0e1f2f528acf38cb28" } Frame { msec: 576 - hash: "d36e1a56078d7cfa246b57f886c230b4" + hash: "d0b0969ad165d4784f763683de42278e" } Frame { msec: 592 - hash: "d36e1a56078d7cfa246b57f886c230b4" + hash: "93968dffda327a101e2bd07b80fff842" } Frame { msec: 608 - hash: "30692e6658ac730670a489c880fd4485" + hash: "08f5db4cd7f27178c67e6d973e4bb023" } Frame { msec: 624 - hash: "3aace4dc5bc503ed0df1b00b444780f0" + hash: "0967cad0a3ae82307a049944e1bcdc3e" } Frame { msec: 640 - hash: "b6936d72cbaff0c6bb64fc08152e8680" + hash: "d70ffd02b434e607bc11a95ca536c19a" } Frame { msec: 656 - hash: "b6936d72cbaff0c6bb64fc08152e8680" + hash: "cd561b4d5e707bb6b9f6d493f9b99512" } Frame { msec: 672 - hash: "8beee45f26f9f7b94b84a807a0c42217" + hash: "58355ca37c6e4e54061664180faa11fb" } Frame { msec: 688 - hash: "80529f6b8d12838b58c4af73c1985792" + hash: "bd873f48c79286c50333c838e57d8ec7" } Frame { msec: 704 - hash: "967f7e4f58a8e29b5d76eac011af643d" + hash: "db89bc0e04ebefe5440748fe85e0bdf7" } Frame { msec: 720 - hash: "395863cffd5440b0a4805975b766a3cf" + hash: "c400bc1e6c02c792cc515a6dd8bbaa9b" } Frame { msec: 736 - hash: "f9c919f45316d93d2c8693b62930850f" + hash: "accf3567a161239cd8c18dd9d4527aaf" } Frame { msec: 752 - hash: "cf8ffc1132935b5df49da90953009fa0" + hash: "2e3bcdf70f160bf8e3f1b77ee472b782" } Frame { msec: 768 - hash: "8e44d6cf4c29313352ad0118db003958" + hash: "929da0d629253478c322360c9a8dfc9e" } Frame { msec: 784 - hash: "31ca6f5b62fd8c08fa17b1008c4e6a22" + hash: "d5d4b7c52ba14e84bc9c34a8b55f84b7" } Frame { msec: 800 - hash: "96773abcace99ba692a5be096df85a54" + hash: "063ce927e9e7c5afb9131302ea5a968c" } Frame { msec: 816 - hash: "e92daff761c739f231ba2c05785c44fb" + hash: "b94b6fff850aacccdaf0f74d4e36ba67" } Frame { msec: 832 - hash: "c1b1056ef06a0454680f2146bb87a56b" + hash: "bac2b9b9be4b71fafe59868506aa8ab9" } Frame { msec: 848 - hash: "dc02f4f6b0ff1572a64fd133819fd794" + hash: "a91fed41a5a07e84424e45477f463aa1" } Frame { msec: 864 - hash: "9f87d4d33942d32a4048ca2b785a1fed" + hash: "370eefd369ef366f1d5930b261340d0b" } Frame { msec: 880 - hash: "57d989f52d8bee06694166bf8bdffef0" + hash: "b04a87997d0eeb6ff2f91fc2f0d016f6" } Frame { msec: 896 @@ -230,15 +230,15 @@ VisualTest { } Frame { msec: 912 - hash: "b075ae21dbd3acef5c4d0f11cadce3c9" + hash: "101e66b9d13b1b0872cfcc497c9d6ae3" } Frame { msec: 928 - hash: "d54b5b295a9ca2bc65131a0775d8d009" + hash: "b5eaf952e40cf90ef32e8cb64ccce7d3" } Frame { msec: 944 - hash: "599b244ff9b4ddceb682a059338f6f97" + hash: "b43b02133ebe5db93e5236c0307939c3" } Frame { msec: 960 @@ -246,103 +246,103 @@ VisualTest { } Frame { msec: 976 - hash: "9fd5a0f023f89511bdd4b7e429f940ab" + hash: "7d1a0ff0eceb80ff64d828c34792a2d5" } Frame { msec: 992 - hash: "ad18f401dc07032ffc52b90fd5581319" + hash: "a7492d8ab6fddb5c1d7af2621078230b" } Frame { msec: 1008 - hash: "b12cbf8e97bc48e12d9543ffc1c578a2" + hash: "2ed3dc7f10cc8279a6fd926914cdb234" } Frame { msec: 1024 - hash: "7c9895dae776c2a4a6d5e1dd50d86336" + hash: "e9f76e419f6f682bcc9052183bb50607" } Frame { msec: 1040 - hash: "ebd8018990ce867c3308121dccbfc1bc" + hash: "fdee6990e101d4a628272e7b09a217a3" } Frame { msec: 1056 - hash: "4818f99e2f71c0ec7636aa777f4df875" + hash: "05e028b2f37a433343d373bc05f73756" } Frame { msec: 1072 - hash: "09371a634d7801742075aadc131b5fb6" + hash: "a9ece04666d17979408dcd8690cd697c" } Frame { msec: 1088 - hash: "e03e96eaa2640cf6d820d9992c0c51f4" + hash: "a5d8c9bee6ac10fb45cedf3bc4325539" } Frame { msec: 1104 - hash: "daf19227a7e51e437d0a13fdf8b1a26f" + hash: "08f1ff1e515ec78f75efa13a39b21f56" } Frame { msec: 1120 - hash: "539ccebf96da504f0c5dfe5496ed95ce" + hash: "f0bc6c649a195e2c433cf84c1b4f5bcb" } Frame { msec: 1136 - hash: "63d851b3a8758e4cd95624b44cf9e7c9" + hash: "2a548614a9b38867cd0fe44985ca443f" } Frame { msec: 1152 - hash: "8ee67f06977858444a775ca8c5109411" + hash: "8c8272fc028ce5b403e636b4061351d3" } Frame { msec: 1168 - hash: "44849e7b8cc8d187da234daba784bc6e" + hash: "df11678b255cc3f624fed24d7e6a24af" } Frame { msec: 1184 - hash: "ec9892a5602892ba5a2075b61672d91b" + hash: "7dd5ce1cce200d7eede0f248f150873c" } Frame { msec: 1200 - hash: "b12aec87daa7c09276ae5d4b619276a1" + hash: "e5cb8e0e588854dce5e7572fd1e3a445" } Frame { msec: 1216 - hash: "816d9d278fecde0867efadae2c4b5839" + hash: "71937cd7d319174232797d05fe28bda5" } Frame { msec: 1232 - hash: "65daf0b21f860cb87c28a11c3d947f3b" + hash: "021c3a598b008991114b25b26191e8ef" } Frame { msec: 1248 - hash: "f3bc5c605ac0cb287e8c1d1cb58d85ca" + hash: "b372131d6fc29e7dbffc2c5f4e269ad7" } Frame { msec: 1264 - hash: "2988cc8030891abd7493294fc2c6964c" + hash: "2120fc188aed6888eba85e9d49139000" } Frame { msec: 1280 - hash: "cbfc98561559f3aa8bdec7c40da559c0" + hash: "0523499bb4f4c6d0c3d2cd28fbac7056" } Frame { msec: 1296 - hash: "636335822b15f32861696439773e1794" + hash: "19d1fc79802728d6b0af222050b59463" } Frame { msec: 1312 - hash: "3fbb7a8920ff95fce7bfefcb540c6de8" + hash: "f48686053780376c7ab2e6481e3fd0ad" } Frame { msec: 1328 - hash: "4036080b6aafa72e5310ce33615ff8f8" + hash: "0f7c5ca70fec90e7e8b2fd50b791fd2e" } Frame { msec: 1344 - hash: "48fb5685e63e81f1790f5481bc06dac4" + hash: "93cd129be7cfebaa2ea8a074a77aaa7c" } Frame { msec: 1360 - hash: "f1f58f0eebbffc3b389c6669c5419081" + hash: "e6b149da031b1c0b842b1b7872bd2d91" } Frame { msec: 1376 @@ -350,19 +350,19 @@ VisualTest { } Frame { msec: 1392 - hash: "efbf81fc1db57a6020fcfe97077233b7" + hash: "23bb444b6248901da3eb6a2e805438cb" } Frame { msec: 1408 - hash: "67ff11e6143718c95418f4851265081e" + hash: "1c9feb1c3ae76d4015c99d005ecfed60" } Frame { msec: 1424 - hash: "a403ec3d25e73b557ba08aa903cb9006" + hash: "41e5345dc90fd48476f35ceeab281948" } Frame { msec: 1440 - hash: "293b9f1cc31af93f22b4c1369567c4ba" + hash: "89682a955a00e68031571ac765f9f5e3" } Frame { msec: 1456 @@ -370,31 +370,31 @@ VisualTest { } Frame { msec: 1472 - hash: "cd8d4484158d7dcdc7662ea8c8daea07" + hash: "67a73129d828e8a05b1efc768cf40146" } Frame { msec: 1488 - hash: "b991e62a7d6751bdd3e2d690e690821c" + hash: "0800a78c97c92c697e44ded54fdcf934" } Frame { msec: 1504 - hash: "c60aca5007dadc628f242db9d593cf1f" + hash: "d5d51263367f0c53b8d94a03d83338d9" } Frame { msec: 1520 - hash: "e78af45d2042130a9d34b654157a9ada" + hash: "ab749885f356683e17ca52f904ae582d" } Frame { msec: 1536 - hash: "cc35b2fcc585191d3f46840fdcacc94f" + hash: "7f5a56f30222a9886d1e9d014b4f5cab" } Frame { msec: 1552 - hash: "9e33a9f73e1019e7d694d108fd95f2ad" + hash: "10c5e64eff104dce59f54f70c5564959" } Frame { msec: 1568 - hash: "f08adfe4286703702c9393a905ec01d2" + hash: "38b00c7544648ef06705acc2e9eca1f5" } Frame { msec: 1584 @@ -402,31 +402,31 @@ VisualTest { } Frame { msec: 1600 - hash: "da3b8e41b9639bb71cf95b671d8a2c63" + hash: "ea5349d337e397b3ee5e0db0c296f5e5" } Frame { msec: 1616 - hash: "92855bf2208369f361b677bc66e9c79d" + hash: "6bd784ca760edba5a6f0b4212237e1e8" } Frame { msec: 1632 - hash: "e5403ff384dca3c10b091e166160624f" + hash: "77e7888a37a7724bded817903cbe777e" } Frame { msec: 1648 - hash: "932b5ebeaa4576575179b04a4c131ef5" + hash: "55213bdb2f1f2d25b5680db95e79bbac" } Frame { msec: 1664 - hash: "37a23d4a895fa83226f66736caa87281" + hash: "6d62c7f7f76cc1d4e33c152234000da0" } Frame { msec: 1680 - hash: "f6926e493dfd7deee613cf9bb7529f5e" + hash: "0f6aa29c172054887e4ddb6512ae43b1" } Frame { msec: 1696 - hash: "338e40ae3e047cf7731377fc1b4d3cb7" + hash: "75fd94508b77bbdde34a61b74ff49e12" } Frame { msec: 1712 @@ -434,19 +434,19 @@ VisualTest { } Frame { msec: 1728 - hash: "4487366ee7ec1e0fdafc88cfa82e7977" + hash: "4f895ee983424c164be3e2db488a4e51" } Frame { msec: 1744 - hash: "28f0b7824b5bb311d46c94afa7d7bb66" + hash: "974fd5f390d33afb779ac754f0e30b2a" } Frame { msec: 1760 - hash: "34b15e5a3602fd7bf2f217c308fa5d09" + hash: "fd40e22c7d3cfceeee7dc668d1cf0a12" } Frame { msec: 1776 - hash: "667b9286f32fe43a0cb5d65cdfa965cd" + hash: "4e3c04b35bcc43a4295582da1674da2e" } Frame { msec: 1792 @@ -454,31 +454,31 @@ VisualTest { } Frame { msec: 1808 - hash: "9afbd09687efa09eb3b03570bf8be531" + hash: "9a92c68cfad54c313d24e38240ea072f" } Frame { msec: 1824 - hash: "0e1dac5b9d2a0acab1516d01a286a0ec" + hash: "3e27569d19670ec99f11bfa46099456a" } Frame { msec: 1840 - hash: "dd058795bd3957d02dc296419c17819c" + hash: "5d4be9ed8c4ba7faefde5427cdbffc73" } Frame { msec: 1856 - hash: "158618e8529cba8531183b2f72e90340" + hash: "232d4e03a57edf0386b06884482f9730" } Frame { msec: 1872 - hash: "c9062e6405b3b7fd0b2a794119220b1d" + hash: "c45f959fd81ac08add219326cb6a8bfc" } Frame { msec: 1888 - hash: "8dadb6da9f12dac689406a43e7e61bea" + hash: "349111e36190f77afd53c50ee2e9ba94" } Frame { msec: 1904 - hash: "fd66704ce98410a7b1dd69f7cd6ddd26" + hash: "ea5ed48b2bcdfd2a711a3a71a4ae37c3" } Frame { msec: 1920 @@ -486,23 +486,23 @@ VisualTest { } Frame { msec: 1936 - hash: "d4a21104b4f8044486fbe6516e4ae7b5" + hash: "ae4e35413e462221b8cb48dd0350f873" } Frame { msec: 1952 - hash: "20fd373c13d4d06b9105c80ed6f4edb7" + hash: "63cc3851236d5de613c85a2971ef7145" } Frame { msec: 1968 - hash: "ff9bc1aa538b69e72ed1a501ea0d56de" + hash: "45d5fdb92107a7074d56d97bda34756f" } Frame { msec: 1984 - hash: "3f3d5f3ca770b84e86fea3188e082493" + hash: "f74d9a3b53a629f7fccfdd255fdbba62" } Frame { msec: 2000 - hash: "fe7de3d2083208993e527b13ae7edadd" + hash: "60c6a30e15ed4ad61c14f15f9f1f3790" } Frame { msec: 2016 @@ -510,163 +510,163 @@ VisualTest { } Frame { msec: 2032 - hash: "c80d37b370a4ada6217c81f5e82ecd6f" + hash: "98558c7135fa84fa08d457c6064b8653" } Frame { msec: 2048 - hash: "84051de621753e12e3e11316d14dfe73" + hash: "2858e39a9b39739bb5c0c1ce23e83b20" } Frame { msec: 2064 - hash: "fd238f83a26ed8c2cee3e3d042af903b" + hash: "0b174f04215131cfa32b5d1a32170ac3" } Frame { msec: 2080 - hash: "949d2ed3e1d1c674e77ef3c8a6b779ba" + hash: "67e3618bab95519a034ed6c8c1543212" } Frame { msec: 2096 - hash: "42f602bcd7b517cf16554a88998d16a8" + hash: "2012c5310f198022a3878c9ded08523d" } Frame { msec: 2112 - hash: "318bd97d726826398887ff218e61df32" + hash: "1cb6a1f6d873d2bfde457828c17b4886" } Frame { msec: 2128 - hash: "5a0699f422475f0d3f17cddb606b4715" + hash: "be3f28bd56d9d985408e32cc0aab0623" } Frame { msec: 2144 - hash: "3eb8e765ff9f38fd56a69a8bc2d534c3" + hash: "4aa07c4887f873f0f034930bd681f9dc" } Frame { msec: 2160 - hash: "dd548f565a0787789ec13e141f808b11" + hash: "adeae071187b590aa0a142c27098d2f4" } Frame { msec: 2176 - hash: "a78a6a9f014b8c2e7a202b80e6c2e09f" + hash: "d777aaccd6143c2c1000bbfabdbefeb2" } Frame { msec: 2192 - hash: "3d0ff083b6f1f994caa660016245876d" + hash: "7b4785b9e6610f02c52b4c824bea8ecd" } Frame { msec: 2208 - hash: "ce6a7491571ce3d5799791579428b615" + hash: "c539b3638272e46120edbe4a58e1d894" } Frame { msec: 2224 - hash: "67e700035648fd5354ec0806a412be89" + hash: "ae466024a1dd731b6730dda255e68eb8" } Frame { msec: 2240 - hash: "b03f1bfe2bdbf52aae0dff6ae4821914" + hash: "f844a288b009cc4c6c28eb30d799c397" } Frame { msec: 2256 - hash: "4d75ac3064288c3a56e9fd6ed6022fc6" + hash: "4fc8ca1992802f97dd431783db89c725" } Frame { msec: 2272 - hash: "dc6677725f6bf0bdcab25287a096a0e6" + hash: "79b899461efae97b65b8c24c8820f348" } Frame { msec: 2288 - hash: "827e5e274fb331c6f9997172894b1f4d" + hash: "cb1ce87ddc372e24e37b60c013310549" } Frame { msec: 2304 - hash: "c3cf3b3968441b735684fc6e55ebb1ce" + hash: "c8937aea34fd299c151706598828be6f" } Frame { msec: 2320 - hash: "01eebde46aff9d7484cffb0b0d27c415" + hash: "ed5c3a904dc3b72937c6eea475514b2d" } Frame { msec: 2336 - hash: "614ad3481a993b5ff5ec008aa3d4751f" + hash: "09043e74a3ac60d05122675a1b253320" } Frame { msec: 2352 - hash: "614ad3481a993b5ff5ec008aa3d4751f" + hash: "57677a33d8c60a45c64aea10a695e8d0" } Frame { msec: 2368 - hash: "2f253dcdbe2fabc768cdd5bfa8004a36" + hash: "496fe0b0e420356e4205537fdf3adc2f" } Frame { msec: 2384 - hash: "90b130853f8e28a01c90825c412f98b9" + hash: "f4146ce8db5cf2c3da15715820c9f62f" } Frame { msec: 2400 - hash: "567bf7684e4b2f76715bcc588a2b7dfb" + hash: "b80bc46468695b874d401c4c9bd68932" } Frame { msec: 2416 - hash: "63412cfccdd8646530ebdb37eba16ee9" + hash: "b0cf0021232ab917301206614f61f0bf" } Frame { msec: 2432 - hash: "63412cfccdd8646530ebdb37eba16ee9" + hash: "b0abdf5b86e3fcb22a9254ac5b522380" } Frame { msec: 2448 - hash: "e1c5381a621dfe50e4b04d881ce2c4b7" + hash: "c1624cb7e90ea26ab0c37cfe9919ca36" } Frame { msec: 2464 - hash: "553bff0aa031ed1279170c19bf024539" + hash: "0ffd6a3b3e5f6db5a3a8df756caf713e" } Frame { msec: 2480 - hash: "2b8c079d8526ce4d0640014cca38c6b8" + hash: "1604ad8e7a4aa4fa8dff1f37fc8c51d7" } Frame { msec: 2496 - hash: "2b8c079d8526ce4d0640014cca38c6b8" + hash: "5bbca0b79c42e263162926e5c2fd3d82" } Frame { msec: 2512 - hash: "ac356478635b5d34001a50997eb3c82c" + hash: "9436b4f2ab902673ed067de55da5003e" } Frame { msec: 2528 - hash: "ac356478635b5d34001a50997eb3c82c" + hash: "3c7b5fa0970242a2ad308c72d761713b" } Frame { msec: 2544 - hash: "93d64e7bec7d9e254066d79c0db41f28" + hash: "15e451c53e8f5c70614f87f33fe0a2e6" } Frame { msec: 2560 - hash: "010ec13762826006a1dbf60b8c4660c9" + hash: "7e8cbe203306d2f267a42fed1e4790ed" } Frame { msec: 2576 - hash: "010ec13762826006a1dbf60b8c4660c9" + hash: "db21ae28564614b58a7dd5ccd97082e6" } Frame { msec: 2592 - hash: "2f882016d4e3e29ec6689cfa1189e00e" + hash: "ff52e198874de749c46f9b34cfe40cfc" } Frame { msec: 2608 - hash: "2f882016d4e3e29ec6689cfa1189e00e" + hash: "916d92d24a81ced07a54d68c46299d4c" } Frame { msec: 2624 - hash: "676f8aba3379c9935b9bd269bd140cf2" + hash: "2f6cf122e5f15fc5f5d3c92d92ca1384" } Frame { msec: 2640 - hash: "676f8aba3379c9935b9bd269bd140cf2" + hash: "6f328038e5d505c402651423c44986a5" } Frame { msec: 2656 - hash: "78e0dca60c04d3defbd90457685dbab3" + hash: "6f328038e5d505c402651423c44986a5" } Frame { msec: 2672 @@ -674,7 +674,7 @@ VisualTest { } Frame { msec: 2688 - hash: "0ff9fd6b09fc14abacb794353b9500f6" + hash: "b915de1be0c1779e06fb9eea8237f91d" } Frame { msec: 2704 @@ -682,11 +682,11 @@ VisualTest { } Frame { msec: 2720 - hash: "0ff9fd6b09fc14abacb794353b9500f6" + hash: "5a1c9cd9da5492a61a3a1bc6ad37ef17" } Frame { msec: 2736 - hash: "6d813ee777a5900c65aca5939c004d0c" + hash: "4c4a72eb4105903802de56a4a62d86cc" } Frame { msec: 2752 @@ -694,7 +694,7 @@ VisualTest { } Frame { msec: 2768 - hash: "0acaa3ece071ad4461cf4a79d65a0f03" + hash: "6d813ee777a5900c65aca5939c004d0c" } Frame { msec: 2784 @@ -706,15 +706,15 @@ VisualTest { } Frame { msec: 2816 - hash: "0acaa3ece071ad4461cf4a79d65a0f03" + hash: "f5cf7e68edc5fcd9dd91882d3f9ba380" } Frame { msec: 2832 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "51f8508eddffbac2fad22bd3e8040c69" } Frame { msec: 2848 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "a09746c72df5330f6ca2a93d9b8e79f6" } Frame { msec: 2864 @@ -726,23 +726,23 @@ VisualTest { } Frame { msec: 2896 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "ae76d183491834e2b1d0371420d51ce5" } Frame { msec: 2912 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "b19d89aa671cc3a773f64a7bae21adb6" } Frame { msec: 2928 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "08eb7bd2e49fe600e922e49a3aa56e93" } Frame { msec: 2944 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "1e3a7bdd0bd9d5b84c2cb5b646d7fb45" } Frame { msec: 2960 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "be9f5091197899c0b89823e4403358f3" } Frame { msec: 2976 @@ -770,43 +770,43 @@ VisualTest { } Frame { msec: 3072 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "be9f5091197899c0b89823e4403358f3" } Frame { msec: 3088 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "be9f5091197899c0b89823e4403358f3" } Frame { msec: 3104 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "1e3a7bdd0bd9d5b84c2cb5b646d7fb45" } Frame { msec: 3120 - hash: "1daeebce8e7eef80b135d2e4f83f780b" + hash: "b19d89aa671cc3a773f64a7bae21adb6" } Frame { msec: 3136 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "e7ed4449b5ea3288d5e8fecb33a4a422" } Frame { msec: 3152 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "186a2c1af03e7fa590ff3cd7422285e3" } Frame { msec: 3168 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "373141f99bc88c40ead161502c9750e9" } Frame { msec: 3184 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "0221e2ef4cf809ebfeba466206a77cce" } Frame { msec: 3200 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "51f8508eddffbac2fad22bd3e8040c69" } Frame { msec: 3216 - hash: "b2ef52b66896649413b3852bcf642e1c" + hash: "f5cf7e68edc5fcd9dd91882d3f9ba380" } Frame { msec: 3232 @@ -818,7 +818,7 @@ VisualTest { } Frame { msec: 3264 - hash: "0acaa3ece071ad4461cf4a79d65a0f03" + hash: "6d813ee777a5900c65aca5939c004d0c" } Frame { msec: 3280 @@ -830,7 +830,7 @@ VisualTest { } Frame { msec: 3312 - hash: "6d813ee777a5900c65aca5939c004d0c" + hash: "5a1c9cd9da5492a61a3a1bc6ad37ef17" } Frame { msec: 3328 @@ -842,123 +842,123 @@ VisualTest { } Frame { msec: 3360 - hash: "78e0dca60c04d3defbd90457685dbab3" + hash: "6f328038e5d505c402651423c44986a5" } Frame { msec: 3376 - hash: "78e0dca60c04d3defbd90457685dbab3" + hash: "6f328038e5d505c402651423c44986a5" } Frame { msec: 3392 - hash: "78e0dca60c04d3defbd90457685dbab3" + hash: "dd04a76df90f27358f4162fd85cfa4cd" } Frame { msec: 3408 - hash: "676f8aba3379c9935b9bd269bd140cf2" + hash: "12df495b5e8bfd2c9dd13fbeccc69e08" } Frame { msec: 3424 - hash: "676f8aba3379c9935b9bd269bd140cf2" + hash: "4b6f9dcde7d5d88b9c3eff3187378036" } Frame { msec: 3440 - hash: "2f882016d4e3e29ec6689cfa1189e00e" + hash: "712f3850c0efe45c60a3761f1354b90b" } Frame { msec: 3456 - hash: "2f882016d4e3e29ec6689cfa1189e00e" + hash: "22215981f00790d7a409230eb730abca" } Frame { msec: 3472 - hash: "010ec13762826006a1dbf60b8c4660c9" + hash: "a4a26f9736282ceb307f0f97735002eb" } Frame { msec: 3488 - hash: "93d64e7bec7d9e254066d79c0db41f28" + hash: "b41d7a18d84a8b220e99464cab86882d" } Frame { msec: 3504 - hash: "93d64e7bec7d9e254066d79c0db41f28" + hash: "c7c1961120f128cd0fcd6a7b61c98197" } Frame { msec: 3520 - hash: "ac356478635b5d34001a50997eb3c82c" + hash: "e56e7ba603d2620afb0fab6b19aff33e" } Frame { msec: 3536 - hash: "ac356478635b5d34001a50997eb3c82c" + hash: "1a258bed9a7a38452a746d7641016e73" } Frame { msec: 3552 - hash: "2b8c079d8526ce4d0640014cca38c6b8" + hash: "a237b9c187bbbcb79f624d74def15db2" } Frame { msec: 3568 - hash: "553bff0aa031ed1279170c19bf024539" + hash: "34a7afdebb7352ca65e0eaec61632d12" } Frame { msec: 3584 - hash: "e1c5381a621dfe50e4b04d881ce2c4b7" + hash: "a5a98e932a30418bae62bb006afc1048" } Frame { msec: 3600 - hash: "e1c5381a621dfe50e4b04d881ce2c4b7" + hash: "2ee25374cb9fef01e78d02c4131010b7" } Frame { msec: 3616 - hash: "63412cfccdd8646530ebdb37eba16ee9" + hash: "7956b07b848ba89905e5c609657503e2" } Frame { msec: 3632 - hash: "567bf7684e4b2f76715bcc588a2b7dfb" + hash: "0949a2b13f6475b3f11be04321c953a1" } Frame { msec: 3648 - hash: "90b130853f8e28a01c90825c412f98b9" + hash: "5a1ff901ecc7c3cd7f39cd07e0273dd4" } Frame { msec: 3664 - hash: "90b130853f8e28a01c90825c412f98b9" + hash: "44fcd7209b9f5b1c28c21e9aae408097" } Frame { msec: 3680 - hash: "2f253dcdbe2fabc768cdd5bfa8004a36" + hash: "bee94f395239aebb0bacca3dbbee95e5" } Frame { msec: 3696 - hash: "614ad3481a993b5ff5ec008aa3d4751f" + hash: "bd26b7e2b07bbcee3819fdacc35eea8d" } Frame { msec: 3712 - hash: "01eebde46aff9d7484cffb0b0d27c415" + hash: "d3707b90c5cd0d1061db4b97b6fcb96a" } Frame { msec: 3728 - hash: "c3cf3b3968441b735684fc6e55ebb1ce" + hash: "6f6ed6c7553b3f909d53e2146b3831d5" } Frame { msec: 3744 - hash: "827e5e274fb331c6f9997172894b1f4d" + hash: "a3a1a03617d1cb5660c51bf2f18088bc" } Frame { msec: 3760 - hash: "dc6677725f6bf0bdcab25287a096a0e6" + hash: "6d4646f0a53800ad60d173ab9cb9010a" } Frame { msec: 3776 - hash: "4d75ac3064288c3a56e9fd6ed6022fc6" + hash: "126cae232e2fe49e3188393c2798065b" } Frame { msec: 3792 - hash: "b03f1bfe2bdbf52aae0dff6ae4821914" + hash: "e1fa758d333ffe5208365c0babff33a0" } Frame { msec: 3808 - hash: "67e700035648fd5354ec0806a412be89" + hash: "f2a6156f7d6013bd4234b35c21adb074" } Frame { msec: 3824 - hash: "ce6a7491571ce3d5799791579428b615" + hash: "0271f66eb6d9b91a3ab8da2d728b9581" } Frame { msec: 3840 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 3856 - hash: "a78a6a9f014b8c2e7a202b80e6c2e09f" + hash: "e18635d7c6c5de361e7406c2db357aca" } Frame { msec: 3872 - hash: "dd548f565a0787789ec13e141f808b11" + hash: "56100e9ca8d1eb7e6334e5a05ef2b94d" } Frame { msec: 3888 - hash: "3eb8e765ff9f38fd56a69a8bc2d534c3" + hash: "3d15b8d662d3df82dd78590c43794337" } Frame { msec: 3904 @@ -982,167 +982,167 @@ VisualTest { } Frame { msec: 3920 - hash: "5a0699f422475f0d3f17cddb606b4715" + hash: "ccb8b51084cc1ef3d201887b824fb1ac" } Frame { msec: 3936 - hash: "318bd97d726826398887ff218e61df32" + hash: "d9dc9d240a6f89603a54bccd66361530" } Frame { msec: 3952 - hash: "42f602bcd7b517cf16554a88998d16a8" + hash: "0e52d92455c263493d32ffe93f242739" } Frame { msec: 3968 - hash: "fd238f83a26ed8c2cee3e3d042af903b" + hash: "695ab932722844b975097779e26df55c" } Frame { msec: 3984 - hash: "84051de621753e12e3e11316d14dfe73" + hash: "da285cba2e11db1e87d1d180e376ff8e" } Frame { msec: 4000 - hash: "0c6d27488abbfd4f1ee4570a33a2c89e" + hash: "54bd12888fc4526d310fa0a66b5ba3be" } Frame { msec: 4016 - hash: "c80d37b370a4ada6217c81f5e82ecd6f" + hash: "c3e3db473bdb96fd619b078f0f6b3ceb" } Frame { msec: 4032 - hash: "fe7de3d2083208993e527b13ae7edadd" + hash: "acfd8aaf0bb52ad3ef3116bb99f3656a" } Frame { msec: 4048 - hash: "e5b616cefec125e8ad714d0c739ff902" + hash: "c5a0877ce86c26b30b642818e83d6118" } Frame { msec: 4064 - hash: "3f3d5f3ca770b84e86fea3188e082493" + hash: "b187fde9af2bad37f84f6324afcbb303" } Frame { msec: 4080 - hash: "20fd373c13d4d06b9105c80ed6f4edb7" + hash: "0dfe035424d7f31dda88be3b4bb30c8a" } Frame { msec: 4096 - hash: "2d6f6cf66bbd50a6546bc54e5aa91fb8" + hash: "893bddc95fbf6e452ba61b06eab1a8c5" } Frame { msec: 4112 - hash: "d4a21104b4f8044486fbe6516e4ae7b5" + hash: "35fb89ea579819f4b3416ff1c1b1cc9d" } Frame { msec: 4128 - hash: "fd66704ce98410a7b1dd69f7cd6ddd26" + hash: "316371649f9a1e12e336c5823408eaf9" } Frame { msec: 4144 - hash: "33dcba73c46fa6513d4241e9cc75c417" + hash: "ade751c6e497c73a920baf18f0752908" } Frame { msec: 4160 - hash: "c9062e6405b3b7fd0b2a794119220b1d" + hash: "86720fa1eeae374c6cc67e107d27e23a" } Frame { msec: 4176 - hash: "c1663c9ad895d67981a170f6b67a5331" + hash: "1a6f080227f1ccd03b6c4093b9fdadb3" } Frame { msec: 4192 - hash: "dd058795bd3957d02dc296419c17819c" + hash: "f7d7398edba69716ec8c0699d5472dca" } Frame { msec: 4208 - hash: "7cf357d1eb96e65f30a0cb4b7315b2f7" + hash: "9e62c9dd25abb203f5c06c7bff0d8363" } Frame { msec: 4224 - hash: "9afbd09687efa09eb3b03570bf8be531" + hash: "fd90404238b458fc86a4a17e6a976f9b" } Frame { msec: 4240 - hash: "321d29c57276959e095c5cb9366daf03" + hash: "e39668dc347318fc61a365f9006aab3c" } Frame { msec: 4256 - hash: "238c029a6be60ca4e1909d4f1de5633b" + hash: "c40f41f635f10f5f9b04b42ba2dc5bb1" } Frame { msec: 4272 - hash: "667b9286f32fe43a0cb5d65cdfa965cd" + hash: "c0f971c75b7237de7e9b2f25cc3f34b2" } Frame { msec: 4288 - hash: "51bcca29caecbd92264f271818c400b8" + hash: "a1c79481fd1632cfdc396aefb3592534" } Frame { msec: 4304 - hash: "4487366ee7ec1e0fdafc88cfa82e7977" + hash: "6eee76f40fc7ec1a1e3d77c849321740" } Frame { msec: 4320 - hash: "f3cafcdab8b47c44dcc2222b9021f253" + hash: "0a36746ab17caef5946731c31af3823f" } Frame { msec: 4336 - hash: "e8d25d1b5ea3f580cb46be911ea73556" + hash: "863dedd22df4e1d14e73eaeb851e9b66" } Frame { msec: 4352 - hash: "f6926e493dfd7deee613cf9bb7529f5e" + hash: "318e8751f7056bb6a004c8a7ce7be870" } Frame { msec: 4368 - hash: "44e2f675f37feb23b53e58fc356a17aa" + hash: "8fb2809a366f42c86fad7aa5db3ff22c" } Frame { msec: 4384 - hash: "384478653302b604590c137d1e7289fe" + hash: "8aaea666640cb3b27e3374f756fe411b" } Frame { msec: 4400 - hash: "fccc582ba920db36e797bdd7c4c329e5" + hash: "1f552095d26a8d145584e36237630916" } Frame { msec: 4416 - hash: "92855bf2208369f361b677bc66e9c79d" + hash: "cd5aa55715786cac0f7efc90c7c4b9d6" } Frame { msec: 4432 - hash: "9fc85a4e179b73bb5e92ed982ee13ee7" + hash: "7a3153d9309ec338dce3437ecf667646" } Frame { msec: 4448 - hash: "46e199e3311bf5643e4da28c1f1c687a" + hash: "c7fa40e69148f1c5ec494ad159b6ce6c" } Frame { msec: 4464 - hash: "9d8a56893bf62535654fadd8b8a04977" + hash: "e131bc8ca25ddc4b7dd6582ff034fe14" } Frame { msec: 4480 - hash: "b97e5629f4e9e2617e69361a0ca7f84a" + hash: "3174c672e62dae0341d5849e23031280" } Frame { msec: 4496 - hash: "eea82c42aa4eb22b2a3c5f1eb5a78d53" + hash: "0b25fb7d33708a3292ede7c66e25a3d7" } Frame { msec: 4512 - hash: "49d9c74894e3f1a5b03c126963296ecb" + hash: "84b3cf92b3abc2f5acf07cfccf3c0202" } Frame { msec: 4528 - hash: "e78af45d2042130a9d34b654157a9ada" + hash: "fafbd14d296e4954bce7816d811ddd89" } Frame { msec: 4544 - hash: "831fbf842a9107100ed7c91d664edaff" + hash: "865018d8408863b741a7082a962236dc" } Frame { msec: 4560 - hash: "d1af7a53eef0b7dcb3da095bba7cdc12" + hash: "f626082691429565b55ce9e04b14a665" } Frame { msec: 4576 @@ -1154,31 +1154,31 @@ VisualTest { } Frame { msec: 4608 - hash: "f91c42910b17cb19be33a277b03e1cd2" + hash: "b31470b0ac4a593317abc365acb2b281" } Frame { msec: 4624 - hash: "67ff11e6143718c95418f4851265081e" + hash: "efd00c43b1b8bbc4bc5496dcfa58c6b0" } Frame { msec: 4640 - hash: "e8dc4593c974902337ea7d58f26bae4c" + hash: "498cf6c20aeca609e9d9cea78f0cc6a3" } Frame { msec: 4656 - hash: "9176a3f857d73d626bfba01878c5f213" + hash: "b55661b5d9632bc0d7fc7ff3a421a2e7" } Frame { msec: 4672 - hash: "08c7f417093c9e9da70c027ee12b0840" + hash: "2f1e402c5e4a0615528f91dd2e183ddd" } Frame { msec: 4688 - hash: "48fb5685e63e81f1790f5481bc06dac4" + hash: "d1c166cc7932e72ba22a73637cad65d6" } Frame { msec: 4704 - hash: "71e51c2b97140eb7810e489e6d809437" + hash: "374b703e0059fc80b67480113d584754" } Frame { msec: 4720 @@ -1186,19 +1186,19 @@ VisualTest { } Frame { msec: 4736 - hash: "636335822b15f32861696439773e1794" + hash: "6a9d033b332f0c0285284fdaddf3bbdb" } Frame { msec: 4752 - hash: "ebd6d5f535f5356201aae297839777a6" + hash: "640c227fb62e40c666035e7465ac5c4e" } Frame { msec: 4768 - hash: "ebc8a639c3ef849d47d79b6a91d940fd" + hash: "9cf7dc6507befd6ae54f380a7d87a207" } Frame { msec: 4784 - hash: "2988cc8030891abd7493294fc2c6964c" + hash: "d1c7b2160c08e03e7a98d7d2db0116f7" } Frame { msec: 4800 @@ -1206,55 +1206,55 @@ VisualTest { } Frame { msec: 4816 - hash: "816d9d278fecde0867efadae2c4b5839" + hash: "6e48e605ea1aed4028e02476328f182b" } Frame { msec: 4832 - hash: "b40795c967d37d8cb6b73049a30f40cc" + hash: "2dfa5fdfd07e7000caee6abf5fe84378" } Frame { msec: 4848 - hash: "ec9892a5602892ba5a2075b61672d91b" + hash: "2b0c2f019b07f1f8b4e5af9a520ab061" } Frame { msec: 4864 - hash: "38bd188beb6633cfe979f6881820c15d" + hash: "33cb1aaeb7dafc2475e4337be7cc7892" } Frame { msec: 4880 - hash: "8ee67f06977858444a775ca8c5109411" + hash: "91290d1435bedb5010ba135a7f99c0a2" } Frame { msec: 4896 - hash: "d3603c86488b02dc0136cc2588d00d7b" + hash: "df7434eb6c6e5d45935d6c6fd03f06d1" } Frame { msec: 4912 - hash: "539ccebf96da504f0c5dfe5496ed95ce" + hash: "48dfe78dcdd65242132071454fb9ea33" } Frame { msec: 4928 - hash: "b60450e46a2566d1feaf9749e897fa8b" + hash: "1b288012e123cb6051bfa180ea2a2bc0" } Frame { msec: 4944 - hash: "daf19227a7e51e437d0a13fdf8b1a26f" + hash: "84b23d92987f59df336d9b269e3b7bbc" } Frame { msec: 4960 - hash: "09371a634d7801742075aadc131b5fb6" + hash: "c413ca53240df702c3ba0c7f4dacca3b" } Frame { msec: 4976 - hash: "40b2a59c83f1223025eca6e2e19a87d8" + hash: "339c06a2e1fc05ebfd3732097b9c5242" } Frame { msec: 4992 - hash: "4818f99e2f71c0ec7636aa777f4df875" + hash: "f1e647e274ac8c8458d2c1e576623688" } Frame { msec: 5008 - hash: "7c9895dae776c2a4a6d5e1dd50d86336" + hash: "a70dc2f51ecfc164595cfef61c1da245" } Frame { msec: 5024 @@ -1262,163 +1262,163 @@ VisualTest { } Frame { msec: 5040 - hash: "b12cbf8e97bc48e12d9543ffc1c578a2" + hash: "26c25a031944c677b30f69c8498ac6ce" } Frame { msec: 5056 - hash: "9fd5a0f023f89511bdd4b7e429f940ab" + hash: "ebc2328766e8736eac989e309968d8f9" } Frame { msec: 5072 - hash: "39ed52571b12a9cea5409d5efc80c283" + hash: "41d55f53bfc74e614c906d3f6b813704" } Frame { msec: 5088 - hash: "2dc05cabc6eb3e73e9946ebafed99fd4" + hash: "135e97adb3f19aa19d746ece1b2b3d02" } Frame { msec: 5104 - hash: "599b244ff9b4ddceb682a059338f6f97" + hash: "85c4454dbe9a39b3005f32fd7a06b1b2" } Frame { msec: 5120 - hash: "d54b5b295a9ca2bc65131a0775d8d009" + hash: "7561e0dd6970f7c81bcb53c9371d4405" } Frame { msec: 5136 - hash: "b075ae21dbd3acef5c4d0f11cadce3c9" + hash: "c9961d5abf700a06ed294ce7aecb6147" } Frame { msec: 5152 - hash: "57d989f52d8bee06694166bf8bdffef0" + hash: "29acf87effa3c21322334080776c566e" } Frame { msec: 5168 - hash: "9f87d4d33942d32a4048ca2b785a1fed" + hash: "04990a79d5ff5cb41dcd48d3e3bf5b11" } Frame { msec: 5184 - hash: "dc02f4f6b0ff1572a64fd133819fd794" + hash: "f40c78c37a26249ecb161af778631f7b" } Frame { msec: 5200 - hash: "c1b1056ef06a0454680f2146bb87a56b" + hash: "eddacaeae7c47d063db737f678896da1" } Frame { msec: 5216 - hash: "e92daff761c739f231ba2c05785c44fb" + hash: "5ae523dc1115fd0904875718e05aa2a5" } Frame { msec: 5232 - hash: "96773abcace99ba692a5be096df85a54" + hash: "f09c299412a9e2fd353c4937ad959f25" } Frame { msec: 5248 - hash: "31ca6f5b62fd8c08fa17b1008c4e6a22" + hash: "9caeae0abd3bc665bd307997baea6a48" } Frame { msec: 5264 - hash: "8e44d6cf4c29313352ad0118db003958" + hash: "e9d222c9d23773488b64b0a6323c1095" } Frame { msec: 5280 - hash: "cf8ffc1132935b5df49da90953009fa0" + hash: "ad34c46ab3d418a2af7bffc59e720868" } Frame { msec: 5296 - hash: "f9c919f45316d93d2c8693b62930850f" + hash: "ff0d8cfd272fca5be34b663a7e52f283" } Frame { msec: 5312 - hash: "395863cffd5440b0a4805975b766a3cf" + hash: "55f95277276217de16b6b43090bbb807" } Frame { msec: 5328 - hash: "967f7e4f58a8e29b5d76eac011af643d" + hash: "387fadf4140d335c0b05cfee0c37a413" } Frame { msec: 5344 - hash: "80529f6b8d12838b58c4af73c1985792" + hash: "10a1a5a91c11aa8279ae4e57e4d3946b" } Frame { msec: 5360 - hash: "80529f6b8d12838b58c4af73c1985792" + hash: "414f7bf3a3ec05a9840cd104a13d5504" } Frame { msec: 5376 - hash: "8beee45f26f9f7b94b84a807a0c42217" + hash: "e027716402ead36450732c8350e614b5" } Frame { msec: 5392 - hash: "b6936d72cbaff0c6bb64fc08152e8680" + hash: "0190f59275f01429ee6761b39ce99fc1" } Frame { msec: 5408 - hash: "3aace4dc5bc503ed0df1b00b444780f0" + hash: "7f99dd337561f006a7c56babe3c10c38" } Frame { msec: 5424 - hash: "30692e6658ac730670a489c880fd4485" + hash: "4bbb76393e56b5da723c1f33a7694013" } Frame { msec: 5440 - hash: "30692e6658ac730670a489c880fd4485" + hash: "00eedf86916629fe90f3c2f36e0c689e" } Frame { msec: 5456 - hash: "d36e1a56078d7cfa246b57f886c230b4" + hash: "84d1f5a6604b75371f2fa7b60a59299b" } Frame { msec: 5472 - hash: "0374aae76f8cfd75f119ff4b86dba817" + hash: "00488220a460746be6d7d1b66d15c392" } Frame { msec: 5488 - hash: "d75e53f2cea8e9b61a5e50f95060552e" + hash: "cae5a6d45425d641228210a47c5ee5f6" } Frame { msec: 5504 - hash: "d75e53f2cea8e9b61a5e50f95060552e" + hash: "670a2132e65564ca2cfd58ec9842ba93" } Frame { msec: 5520 - hash: "af5f794f73e16a5c3b9e437418c873ee" + hash: "212b6cc9fa130bec9579cf218e1f7eeb" } Frame { msec: 5536 - hash: "af5f794f73e16a5c3b9e437418c873ee" + hash: "b159e67541b5b1b5071f6cd041c62293" } Frame { msec: 5552 - hash: "8532ee7ce3488f9e038643e4fa48751d" + hash: "8c4e62d26e19c32200772edefd329db3" } Frame { msec: 5568 - hash: "136fb272f4d806927b46a1269b18f63d" + hash: "1ff120d0444e398cc79190012b548b4b" } Frame { msec: 5584 - hash: "136fb272f4d806927b46a1269b18f63d" + hash: "1c75bccd5e19ee9a2644585b726db048" } Frame { msec: 5600 - hash: "845581f8d03f4fe9323fc282e84f919b" + hash: "bc16aff96b1f9cfe3807e95e371a8f26" } Frame { msec: 5616 - hash: "845581f8d03f4fe9323fc282e84f919b" + hash: "35a5fdb20bdbaf0122cac4cad60e7bb8" } Frame { msec: 5632 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "ea7ac72c81abff8af260be508b6cf117" } Frame { msec: 5648 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "2d112d040fd425c59b511066737e494d" } Frame { msec: 5664 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "769d2724656dbf0e793ecd8e42db3de2" } Frame { msec: 5680 @@ -1426,7 +1426,7 @@ VisualTest { } Frame { msec: 5696 - hash: "451a9408b04826ab35749d9120efd6bb" + hash: "760a103d4524f8b665c6ff42185a8ce7" } Frame { msec: 5712 @@ -1434,11 +1434,11 @@ VisualTest { } Frame { msec: 5728 - hash: "451a9408b04826ab35749d9120efd6bb" + hash: "3fad6b23b0b78f844e02fe307e20d376" } Frame { msec: 5744 - hash: "73c06997014af4e008b546b53fe349fb" + hash: "451a9408b04826ab35749d9120efd6bb" } Frame { msec: 5760 @@ -1454,19 +1454,19 @@ VisualTest { } Frame { msec: 5808 - hash: "90fb4e4ba04ac32b52c10b3258431c04" + hash: "da2a1e5e988c27577ceb453cb0383703" } Frame { msec: 5824 - hash: "90fb4e4ba04ac32b52c10b3258431c04" + hash: "ae2407f8da9a047d2725bcdcf8e568b2" } Frame { msec: 5840 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "ae2407f8da9a047d2725bcdcf8e568b2" } Frame { msec: 5856 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "e97a5d968da37789c28816608fa262a1" } Frame { msec: 5872 @@ -1474,27 +1474,27 @@ VisualTest { } Frame { msec: 5888 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "9811f823e057882d384f36d7227fa12e" } Frame { msec: 5904 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "1e7a308d18851db0a430542178944c67" } Frame { msec: 5920 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "692931f1db6ddf0b37eb64026ca830f8" } Frame { msec: 5936 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "2117c775960234c297187ea2e9d51e73" } Frame { msec: 5952 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "f8038dc4b67b92ef776a97589240e8c5" } Frame { msec: 5968 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "51dff66a7767e3464fda60f2cf906700" } Frame { msec: 5984 @@ -1518,48 +1518,48 @@ VisualTest { } Frame { msec: 6064 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "51dff66a7767e3464fda60f2cf906700" } Frame { msec: 6080 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "f8038dc4b67b92ef776a97589240e8c5" } Frame { msec: 6096 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "2117c775960234c297187ea2e9d51e73" } Frame { msec: 6112 - hash: "7e16e6360fc2e9db67dbf11d58042745" + hash: "692931f1db6ddf0b37eb64026ca830f8" } Frame { msec: 6128 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "f01b7368e42381dda5eadf56482ea993" } Frame { msec: 6144 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "9811f823e057882d384f36d7227fa12e" } Frame { msec: 6160 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "9b40b6c75af876567ff49688bc710f2a" } Frame { msec: 6176 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "e97a5d968da37789c28816608fa262a1" } Frame { msec: 6192 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "2cd0627fdc63bb91f8dcac789d7a93b2" } Frame { msec: 6208 - hash: "9becb90d9f8a61f5afacdc53d137ebcb" + hash: "ae2407f8da9a047d2725bcdcf8e568b2" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -1578,7 +1578,7 @@ VisualTest { } Frame { msec: 6272 - hash: "73c06997014af4e008b546b53fe349fb" + hash: "90fb4e4ba04ac32b52c10b3258431c04" } Frame { msec: 6288 @@ -1586,7 +1586,7 @@ VisualTest { } Frame { msec: 6304 - hash: "73c06997014af4e008b546b53fe349fb" + hash: "451a9408b04826ab35749d9120efd6bb" } Frame { msec: 6320 @@ -1594,7 +1594,7 @@ VisualTest { } Frame { msec: 6336 - hash: "451a9408b04826ab35749d9120efd6bb" + hash: "3fad6b23b0b78f844e02fe307e20d376" } Frame { msec: 6352 @@ -1602,22 +1602,22 @@ VisualTest { } Frame { msec: 6368 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "769d2724656dbf0e793ecd8e42db3de2" } Frame { msec: 6384 - hash: "1c25b3d65e8590f8c213afa76b722e97" + hash: "9e375cb3815723a2c5dda39c79325e96" } Frame { msec: 6400 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "77a245991ed8e40163bd0224eb15f20e" } Frame { msec: 6416 - hash: "e64fa5eba05f81e6f263dc8543f21b1a" + hash: "e6936f1122c8c0a76b0eb61ad086a9f1" } Frame { msec: 6432 - hash: "845581f8d03f4fe9323fc282e84f919b" + hash: "8048f84221a02e7102cf3272445862a1" } } diff --git a/tests/auto/declarative/visual/qmlgraphicsflipable/test-flipable.qml b/tests/auto/declarative/visual/qmlgraphicsflipable/test-flipable.qml index ba2e93f..64adb61 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflipable/test-flipable.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflipable/test-flipable.qml @@ -16,12 +16,10 @@ Rectangle { id: flipable width: 200; height: 200 - property int angle: 0 - transform: Rotation { + id: rotation; angle: 0 origin.x: 100; origin.y: 100 axis.x: 0; axis.y: 1; axis.z: 0 - angle: flipable.angle } front: Rectangle { @@ -34,7 +32,7 @@ Rectangle { states: State { name: "back" - PropertyChanges { target: flipable; angle: 180 } + PropertyChanges { target: rotation; angle: 180 } } transitions: Transition { @@ -46,12 +44,10 @@ Rectangle { id: flipable2 x: 200; width: 200; height: 200 - property int angle: 0 - transform: Rotation { + id: rotation2; angle: 0 origin.x: 100; origin.y: 100 axis.x: 1; axis.z: 0 - angle: flipable2.angle } front: Rectangle { @@ -64,7 +60,7 @@ Rectangle { states: State { name: "back" - PropertyChanges { target: flipable2; angle: 180 } + PropertyChanges { target: rotation2; angle: 180 } } transitions: Transition { diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.0.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.0.png Binary files differnew file mode 100644 index 0000000..442ba9f --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.0.png diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.1.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.1.png Binary files differnew file mode 100644 index 0000000..fa689f7 --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.1.png diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.2.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.2.png Binary files differnew file mode 100644 index 0000000..157bb99 --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.2.png diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.3.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.3.png Binary files differnew file mode 100644 index 0000000..8c49acb --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.3.png diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.4.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.4.png Binary files differnew file mode 100644 index 0000000..eb2bf54 --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.4.png diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.qml b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.qml new file mode 100644 index 0000000..837e0cc --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview.qml @@ -0,0 +1,1495 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 32 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 48 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 64 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 80 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 96 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 112 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 128 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 144 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 160 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 176 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 192 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 208 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 224 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 240 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 256 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 272 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 288 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 304 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 320 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 336 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 352 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 368 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 384 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 400 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 416 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 432 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 448 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 464 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 480 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 496 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 512 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 528 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 544 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 560 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 576 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 592 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 608 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 624 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 640 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 656 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 672 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 688 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 704 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 720 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 736 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 752 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 768 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 784 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 800 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 816 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 832 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 848 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 864 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 880 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 896 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 912 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 928 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 944 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 960 + image: "test-pathview.0.png" + } + Frame { + msec: 976 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 992 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1008 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1024 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1040 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1056 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1072 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1088 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1104 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1120 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1136 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 734; y: 177 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1152 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Frame { + msec: 1168 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 732; y: 177 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1184 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 726; y: 179 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1200 + hash: "89bb697bb7b7fab38d3ff56e23e43959" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 716; y: 183 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1216 + hash: "42c141399fda1cbb2ae117788d87092a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 700; y: 190 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1232 + hash: "4d44343eb91838e3eb73e2e5326b5ac2" + } + Frame { + msec: 1248 + hash: "4d44343eb91838e3eb73e2e5326b5ac2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 677; y: 200 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "15aaccb4f7961a4e3e6fe57260779d00" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 651; y: 209 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1280 + hash: "5628fa3ac9893f5c9690013aad4b881a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 619; y: 219 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "384db58b6de773ac39ae81e6af4d547d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 579; y: 229 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "2a15a27a138b9d3d646b827d026e8843" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 535; y: 237 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 535; y: 237 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "098176f48a148eb2bc5ef67c307baa1c" + } + Frame { + msec: 1344 + hash: "098176f48a148eb2bc5ef67c307baa1c" + } + Frame { + msec: 1360 + hash: "f838ab4301bf9d3106cec529f855cecd" + } + Frame { + msec: 1376 + hash: "9725322067a04f83717b059d4970d610" + } + Frame { + msec: 1392 + hash: "3605cfbebc3a9eb4460efb2d4b9b6da2" + } + Frame { + msec: 1408 + hash: "4503a368d8db25d112503dbc3934541d" + } + Frame { + msec: 1424 + hash: "80894cc06c82264bf527398ea235da12" + } + Frame { + msec: 1440 + hash: "d4f9b90f886fc667309b33c9a296410c" + } + Frame { + msec: 1456 + hash: "889d01025cff679b61bff182a1ac9cbc" + } + Frame { + msec: 1472 + hash: "6147bc4455e7cb5ae55cd47be8dc4ad6" + } + Frame { + msec: 1488 + hash: "ddd10a294eb6b19698c4e9fe4f1508fe" + } + Frame { + msec: 1504 + hash: "748e8d9c1971f6258acee5133b7f114b" + } + Frame { + msec: 1520 + hash: "1ef3f32ec9ef950588266bacbe3554a0" + } + Frame { + msec: 1536 + hash: "57853ff47b65aba9e76f90b2efec4f8f" + } + Frame { + msec: 1552 + hash: "3985fea21d89d223c1461d5e96364c76" + } + Frame { + msec: 1568 + hash: "cb5f6a3caeeaed12e91efe43867f2c1f" + } + Frame { + msec: 1584 + hash: "cdd4176776d5969373e0fc9a117e3c87" + } + Frame { + msec: 1600 + hash: "3bac2e7506472db2ae11734240f1c3f4" + } + Frame { + msec: 1616 + hash: "bb572659d79ebda7134c039e40cf2633" + } + Frame { + msec: 1632 + hash: "e610181bfa17a85281f9c7417088f04f" + } + Frame { + msec: 1648 + hash: "eb23ff021909589b6d8ce47ebff2c3ed" + } + Frame { + msec: 1664 + hash: "c321dda3878c4b97cc63246c47368224" + } + Frame { + msec: 1680 + hash: "6a65cdfd50e1455356040d4cbc09905e" + } + Frame { + msec: 1696 + hash: "f2a44b12e4e5bae8283c4d227949e4e8" + } + Frame { + msec: 1712 + hash: "55418d661f3257b5b79a7dbb172b5b70" + } + Frame { + msec: 1728 + hash: "483d7111c86951918746d6ebe0dd9655" + } + Frame { + msec: 1744 + hash: "85c83ac3a294a9320bb04a6721ecf7d5" + } + Frame { + msec: 1760 + hash: "0d658b897b8e03397ddd8ffe475c2fc0" + } + Frame { + msec: 1776 + hash: "6ed9d7ea344b3c1b1d9196ee36b2f89a" + } + Frame { + msec: 1792 + hash: "6a1e7f6c03769c2c88e6343fb6c1a2a4" + } + Frame { + msec: 1808 + hash: "9dc51f46e072eac4494d7318f2ecb39b" + } + Frame { + msec: 1824 + hash: "59e833981c3fcd8a71f4a16d1c454b3a" + } + Frame { + msec: 1840 + hash: "29b953efdda00548d8cf6fb49fa60d13" + } + Frame { + msec: 1856 + hash: "fd4611f703f94ebefcc64781993ca85c" + } + Frame { + msec: 1872 + hash: "aa4789ede618963157b40f099ce84987" + } + Frame { + msec: 1888 + hash: "8a326b46ec536a67626ee2d2bc06aa9f" + } + Frame { + msec: 1904 + hash: "011ff557672d47591e4f0f5c5ee418f1" + } + Frame { + msec: 1920 + image: "test-pathview.1.png" + } + Frame { + msec: 1936 + hash: "69e854e8ac7f1bc1972588ffa01728b6" + } + Frame { + msec: 1952 + hash: "49182b7ae9ef5fb4b9234969abd05960" + } + Frame { + msec: 1968 + hash: "53de60f682574b7a9e6ffaee175fc9ff" + } + Frame { + msec: 1984 + hash: "2de74fe5b8848c5c781b796146871f45" + } + Frame { + msec: 2000 + hash: "33c87146d8c24dd9c2271d16a8ff5b53" + } + Frame { + msec: 2016 + hash: "fdb29214e20d744d9776907061f50358" + } + Frame { + msec: 2032 + hash: "8c7c920416c9b775e790e6da24c32927" + } + Frame { + msec: 2048 + hash: "86b456059e4701379447fffaf9e072f0" + } + Frame { + msec: 2064 + hash: "f92cc485ee03ef5bce3c4cdc35e00318" + } + Frame { + msec: 2080 + hash: "2fad58883cb20273cfd79ebca345a66d" + } + Frame { + msec: 2096 + hash: "84505ebbc6e12817f11f64aa6f61a0bf" + } + Frame { + msec: 2112 + hash: "ded83cacb89838cc0f3ba14bcc69b66b" + } + Frame { + msec: 2128 + hash: "5bb37e75bb45eaa6067c604b83ae13d7" + } + Frame { + msec: 2144 + hash: "4ee9e4c90c40dbc25a0ce884d9c2c37f" + } + Frame { + msec: 2160 + hash: "cb7148ff6f611038c29af36c8552b8c2" + } + Frame { + msec: 2176 + hash: "a591d8cb42570272dd264d5f1ce595ab" + } + Frame { + msec: 2192 + hash: "4e61657405d32dbcd39d3637f8af0958" + } + Frame { + msec: 2208 + hash: "9c7c1411dd5d3c1c8fb78e63e14061fe" + } + Frame { + msec: 2224 + hash: "ae83a37e99b578fa0872ed6bc2776bc0" + } + Frame { + msec: 2240 + hash: "e8cb5a8a40c1e78c87c616f77d8de270" + } + Frame { + msec: 2256 + hash: "9df093e4bcfa32be5924a0ca70bdaa3b" + } + Frame { + msec: 2272 + hash: "40c358066d508143bee1446d12fe7b89" + } + Frame { + msec: 2288 + hash: "a929ed6efc7fc68b38635f3c74242f52" + } + Frame { + msec: 2304 + hash: "86ff721a3178b689ea47b6bc274a2b41" + } + Frame { + msec: 2320 + hash: "ed1f680f6d05f54ceb75c9bae3a0716a" + } + Frame { + msec: 2336 + hash: "3f09a565df2beb51f366a1b3fb6adfe9" + } + Frame { + msec: 2352 + hash: "13468347bd26bab60f1db826fb17631c" + } + Frame { + msec: 2368 + hash: "9f7d085fea5788a457098973f17c36cb" + } + Frame { + msec: 2384 + hash: "4114b93246155b3434200831b2995330" + } + Frame { + msec: 2400 + hash: "487171bd1430f74e3d51b5e215c34b5c" + } + Frame { + msec: 2416 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2432 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2448 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2464 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2480 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2496 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2512 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2528 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2544 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2560 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2576 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2592 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2608 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2624 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2640 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2656 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2672 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2688 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2704 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2720 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2736 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2752 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2768 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2784 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2800 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2816 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2832 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2848 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2864 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2880 + image: "test-pathview.2.png" + } + Frame { + msec: 2896 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2912 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2928 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2944 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2960 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2976 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 2992 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3008 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3024 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3040 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3056 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3072 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3088 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 728; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3104 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3120 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Frame { + msec: 3136 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 727; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3152 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 723; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3168 + hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 717; y: 184 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3184 + hash: "6dcec6cdaa35eba74607ba64d6ea2ec0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 705; y: 188 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3200 + hash: "16b7b4847fe86b25d8d6136106a4c400" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 686; y: 197 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3216 + hash: "d946d55b19c99fa25bf1c04f2b71026a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 661; y: 207 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3232 + hash: "96f40f5071365cde769c733fd1ef5a24" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 626; y: 221 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3248 + hash: "7004058b95b7eab3ebba5c80c0923982" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 582; y: 235 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3264 + hash: "2c78880237c414182f97f1709f1eef0f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 532; y: 246 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3280 + hash: "c90a15ec9f88008ca8b0ec0185444d71" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 532; y: 246 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "c90a15ec9f88008ca8b0ec0185444d71" + } + Frame { + msec: 3312 + hash: "36461e2a4cd860cac32223b8ee73c657" + } + Frame { + msec: 3328 + hash: "5f9b3ad9202fb02a4c6fea28c248ad22" + } + Frame { + msec: 3344 + hash: "d0d23c4e1ddb2d9ffa0ecc38030ae15c" + } + Frame { + msec: 3360 + hash: "8e2e2d3eaf557c453f34016b6614e495" + } + Frame { + msec: 3376 + hash: "7402c747fa7276293a0a72d48d342782" + } + Frame { + msec: 3392 + hash: "6090c30e4d722a32c083a25171fb11ff" + } + Frame { + msec: 3408 + hash: "f770d940cf287fec4b0803f7310292a8" + } + Frame { + msec: 3424 + hash: "558e4ce32df69357b70a8285b00fe347" + } + Frame { + msec: 3440 + hash: "8814168503c9a72ea8d3fa1e503f33d9" + } + Frame { + msec: 3456 + hash: "6f5513d22e545096fadc6f5c4112902e" + } + Frame { + msec: 3472 + hash: "43f11d8ac16fd3e8199e555528817e14" + } + Frame { + msec: 3488 + hash: "d64bafdbd26878a323dae918d5e0a36d" + } + Frame { + msec: 3504 + hash: "1c70bdddfc3751ae3864f008170f8b06" + } + Frame { + msec: 3520 + hash: "bb7a18691fcd371e9d382b5bba4a0573" + } + Frame { + msec: 3536 + hash: "547e15f5dea2d9aa3ed44640b25028b9" + } + Frame { + msec: 3552 + hash: "c11b86a256fac6be10b9a54564903d6f" + } + Frame { + msec: 3568 + hash: "0ada2dc586894d5e37de2632d2b37b15" + } + Frame { + msec: 3584 + hash: "0ae1a39ea196a0e734d80dbdea67b285" + } + Frame { + msec: 3600 + hash: "3cb70e64f9ab8aad841326dc2d2f1615" + } + Frame { + msec: 3616 + hash: "a8f8b5ff19df9163ea628b589b675a5e" + } + Frame { + msec: 3632 + hash: "26fcc73f477db0ea731bc18b00b4c791" + } + Frame { + msec: 3648 + hash: "8702e49f3f26e1e21970e78c8aa4040a" + } + Frame { + msec: 3664 + hash: "1a482a39d02779d8733e348b713f2312" + } + Frame { + msec: 3680 + hash: "c728cc4a8e4d0a8d983514f86a92eae0" + } + Frame { + msec: 3696 + hash: "82360ab373b08bf6a5d9e9ea9d0d18aa" + } + Frame { + msec: 3712 + hash: "6231a4bce6cfc1e26a9606cc041acdbc" + } + Frame { + msec: 3728 + hash: "6e3b48862fc749f15aa2dec1c17d1de0" + } + Frame { + msec: 3744 + hash: "6c9e79a5692a3810b2a9058790f54cd7" + } + Frame { + msec: 3760 + hash: "0652c67fedda0d5e55858ddefff2da9e" + } + Frame { + msec: 3776 + hash: "3b058c0efeb3a9da54a1de72a1792a83" + } + Frame { + msec: 3792 + hash: "96e6fb39c8dbfe4a00bf116bf80aac4d" + } + Frame { + msec: 3808 + hash: "979c0c78c41e0f337cfe1b384fbbe51a" + } + Frame { + msec: 3824 + hash: "8be0d6987a6d12864f30336b249e4b16" + } + Frame { + msec: 3840 + image: "test-pathview.3.png" + } + Frame { + msec: 3856 + hash: "31e665f804a52a4dc88eab5dba78ae5a" + } + Frame { + msec: 3872 + hash: "b7d4cf5a6a3ac79da3be101b50b38bc2" + } + Frame { + msec: 3888 + hash: "559b1b8467b611cdeb7f2ae660e3bf51" + } + Frame { + msec: 3904 + hash: "66abb5af85e793569382efb04744d0de" + } + Frame { + msec: 3920 + hash: "b64eff8bbea5a953d146333363825724" + } + Frame { + msec: 3936 + hash: "47b794c971c4d47baf15e1d63d65ac03" + } + Frame { + msec: 3952 + hash: "b3882fa14f3cb7428c660737656d7ea2" + } + Frame { + msec: 3968 + hash: "a6bd71c7d3a0f3f53674ea8e1334e560" + } + Frame { + msec: 3984 + hash: "0926d3cd53aabb789686e34d91ef23dc" + } + Frame { + msec: 4000 + hash: "914c4fa7264111b4a42c82a60701d652" + } + Frame { + msec: 4016 + hash: "84c1fa22440a61126b79c38605b6f9ca" + } + Frame { + msec: 4032 + hash: "b684fcf9f4725cfc02af0187454dfaf8" + } + Frame { + msec: 4048 + hash: "2e94c1ca74af4eb836a0c505d131f263" + } + Frame { + msec: 4064 + hash: "5f04912674e1bcdb16176976d10ce995" + } + Frame { + msec: 4080 + hash: "aaf0bcef4a15aa1c699eaa1ce817c8ed" + } + Frame { + msec: 4096 + hash: "97fd5bdcfa367191fbd3689658ab3273" + } + Frame { + msec: 4112 + hash: "d76d6c59411636a0e9ac2e0c847b3fe3" + } + Frame { + msec: 4128 + hash: "9cb88a76c962623b1a9cf4e7093d6e54" + } + Frame { + msec: 4144 + hash: "ec3d7075680296905b1bdd6fdd9fcc40" + } + Frame { + msec: 4160 + hash: "43c70dabc45ed059e8b876eb2ba5c66e" + } + Frame { + msec: 4176 + hash: "8f97ca5c3092a20009c5d00139105a22" + } + Frame { + msec: 4192 + hash: "d0f225d4b03495218f7916698e254338" + } + Frame { + msec: 4208 + hash: "f8725467353a8f27bc5570af157c93c7" + } + Frame { + msec: 4224 + hash: "749c8ca5c0a7774c81805b792e6b70e3" + } + Frame { + msec: 4240 + hash: "d353c4a8a5eecb1dce30f4a5b85b1ef4" + } + Frame { + msec: 4256 + hash: "a7105f3f1ddace730d0b4a12a3560208" + } + Frame { + msec: 4272 + hash: "918f480af8a35f6074ff1e202dae2660" + } + Frame { + msec: 4288 + hash: "ed98d08eb30db1b41aaf2a58f3b59398" + } + Frame { + msec: 4304 + hash: "c362cf053b3749a44d1fc33483f9952b" + } + Frame { + msec: 4320 + hash: "9b01b2c771ef86ff4a8ee3f6a4676e3c" + } + Frame { + msec: 4336 + hash: "70ccec3c9db95206b5589d43dcd52b13" + } + Frame { + msec: 4352 + hash: "57e7397c6aadd0d4d5c9d9d5fcdd8fde" + } + Frame { + msec: 4368 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4384 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4400 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4416 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4432 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4448 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4464 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4480 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4496 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4512 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4528 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4544 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4560 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4576 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4592 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4608 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4624 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4640 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4656 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4672 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4688 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4704 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4720 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4736 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4752 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4768 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4784 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4800 + image: "test-pathview.4.png" + } + Frame { + msec: 4816 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4832 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4848 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4864 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4880 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4896 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4912 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4928 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4944 + hash: "299b24eae7720e1711744b23335bca8c" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 4960 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4976 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 4992 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5008 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5024 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5040 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5056 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5072 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5088 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5104 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5120 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5136 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5152 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5168 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5184 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5200 + hash: "299b24eae7720e1711744b23335bca8c" + } + Frame { + msec: 5216 + hash: "299b24eae7720e1711744b23335bca8c" + } +} diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview.qml b/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview.qml new file mode 100644 index 0000000..1ffbe15 --- /dev/null +++ b/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview.qml @@ -0,0 +1,60 @@ +import Qt 4.6 + +Rectangle { + width: 800; height: 450 + + ListModel { + id: rssModel + ListElement { lColor: "red" } + ListElement { lColor: "green" } + ListElement { lColor: "yellow" } + ListElement { lColor: "blue" } + ListElement { lColor: "purple" } + ListElement { lColor: "gray" } + ListElement { lColor: "brown" } + ListElement { lColor: "thistle" } + } + + Component { + id: photoDelegate + Rectangle { + id: wrapper + width: 85; height: 85; color: lColor + scale: wrapper.PathView.scale + + transform: Rotation { + id: itemRotation; origin.x: wrapper.width/2; origin.y: wrapper.height/2 + axis.y: 1; axis.z: 0; angle: wrapper.PathView.angle + } + } + } + + PathView { + id: photoPathView; model: rssModel; delegate: photoDelegate + y: 100; width: 800; height: 330; pathItemCount: 10; z: 1 + path: Path { + startX: -50; startY: 40; + + PathAttribute { name: "scale"; value: 0.5 } + PathAttribute { name: "angle"; value: -45 } + + PathCubic { + x: 400; y: 220 + control1X: 140; control1Y: 40 + control2X: 210; control2Y: 220 + } + + PathAttribute { name: "scale"; value: 1.2 } + PathAttribute { name: "angle"; value: 0 } + + PathCubic { + x: 850; y: 40 + control2X: 660; control2Y: 40 + control1X: 590; control1Y: 220 + } + + PathAttribute { name: "scale"; value: 0.5 } + PathAttribute { name: "angle"; value: 45 } + } + } +} |