From d81b40f2ae2e0519aabc69fc177bbc82a74c87b3 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 12:30:25 +1000 Subject: test multiple-windows --- .../qmlgraphicswebview/data/newwindows.html | 16 +++++++++++ .../qmlgraphicswebview/data/newwindows.qml | 32 ++++++++++++++++++++++ .../qmlgraphicswebview/tst_qmlgraphicswebview.cpp | 12 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 tests/auto/declarative/qmlgraphicswebview/data/newwindows.html create mode 100644 tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html new file mode 100644 index 0000000..dd541f9 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html @@ -0,0 +1,16 @@ + + + + +

Multiple windows...

+ +Popup! diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml new file mode 100644 index 0000000..9d13715 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml @@ -0,0 +1,32 @@ +// Demonstrates opening new WebViews from HTML + +import Qt 4.6 + +Grid { + columns: 3 + id: pages + height: 300; width: 600 + property int total: 0 + + Component { + id: webViewPage + Rectangle { + width: webView.width + height: webView.height + border.color: "gray" + + WebView { + id: webView + newWindowComponent: webViewPage + newWindowParent: pages + url: "newwindows.html" + Timer { + interval: 10; running: total<4; repeat: false; + onTriggered: {total++; webView.evaluateJavaScript("clickTheLink()")} + } + } + } + } + + Loader { sourceComponent: webViewPage } +} diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp index 44319c1..9032300 100644 --- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp +++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -57,6 +58,7 @@ public: private slots: void basicProperties(); void historyNav(); + void multipleWindows(); void loadError(); void setHtml(); void javaScript(); @@ -218,6 +220,16 @@ void tst_qmlgraphicswebview::historyNav() QVERIFY(!wv->stopAction()->isEnabled()); } +void tst_qmlgraphicswebview::multipleWindows() +{ + QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/newwindows.qml")); + checkNoErrors(component); + + QmlGraphicsGrid *grid = qobject_cast(component.create()); + QVERIFY(grid != 0); + QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews +} + void tst_qmlgraphicswebview::loadError() { QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/loadError.qml")); -- cgit v0.12 From cc20b7616daad7fc1c8db1609002dcb778ed9fce Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 12:30:44 +1000 Subject: look nicer --- examples/declarative/webview/newwindows.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/declarative/webview/newwindows.qml b/examples/declarative/webview/newwindows.qml index e2ed58f..5dd4cd5 100644 --- a/examples/declarative/webview/newwindows.qml +++ b/examples/declarative/webview/newwindows.qml @@ -5,9 +5,10 @@ import Qt 4.6 -Row { +Grid { + columns: 3 id: pages - height: 200; width: 500 + height: 300; width: 600 Component { id: webViewPage -- cgit v0.12 From 8768193ce3a3dc26508a911e189a084ed72d019a Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 13:40:16 +1000 Subject: Autotests. --- src/declarative/extra/qmlnumberformatter.cpp | 2 +- src/declarative/extra/qmlxmllistmodel.cpp | 2 +- tests/auto/declarative/layouts/data/layouts.qml | 2 +- tests/auto/declarative/layouts/tst_layouts.cpp | 13 ++++-- .../numberformatter/tst_numberformatter.cpp | 2 + .../qmlxmllistmodel/data/roleErrors.qml | 10 +++++ .../qmlxmllistmodel/tst_qmlxmllistmodel.cpp | 49 ++++++++++++++++++++++ 7 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp index 4007d95..b09be5b 100644 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ b/src/declarative/extra/qmlnumberformatter.cpp @@ -108,7 +108,7 @@ QString QmlNumberFormatter::text() const } /*! - \qmlproperty qreal NumberFormatter::number + \qmlproperty real NumberFormatter::number A single point precision number. (Doubles are not yet supported) diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index 4f213a8..3d90b44 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -463,7 +463,7 @@ QHash QmlXmlListModel::data(int index, const QList &roles) co for (int i = 0; i < roles.size(); ++i) { int role = roles.at(i); int roleIndex = d->roles.indexOf(role); - rv.insert(role, d->data.at(roleIndex).at(index)); + rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); } return rv; } diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml index b0ee63b..00d785d 100644 --- a/tests/auto/declarative/layouts/data/layouts.qml +++ b/tests/auto/declarative/layouts/data/layouts.qml @@ -6,7 +6,7 @@ Item { height:300 GraphicsObjectContainer { - anchors.fill:parent + anchors.fill: parent synchronizedResizing: true QGraphicsWidget { diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index 1c2330d..0f832bf 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -43,6 +43,7 @@ #include #include #include +#include class tst_QmlGraphicsLayouts : public QObject { @@ -74,7 +75,12 @@ void tst_QmlGraphicsLayouts::test_qml() QmlGraphicsLayoutItem *right = static_cast(canvas->root()->findChild("right")); QVERIFY(right != 0); - qreal gvMargin = 9.0; + qreal l = QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin); + qreal r = QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin); + qreal t = QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin); + qreal b = QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin); + QVERIFY2(l == r && r == t && t == b, "Test assumes equal margins."); + qreal gvMargin = l; //Preferred Size canvas->root()->setWidth(300 + 2*gvMargin); canvas->root()->setHeight(300 + 2*gvMargin); @@ -116,6 +122,7 @@ void tst_QmlGraphicsLayouts::test_qml() QCOMPARE(right->width(), 400.0); QCOMPARE(right->height(), 300.0); + delete canvas; } void tst_QmlGraphicsLayouts::test_cpp() @@ -129,8 +136,8 @@ QmlView *tst_QmlGraphicsLayouts::createView(const QString &filename) QFile file(filename); file.open(QFile::ReadOnly); - QString xml = file.readAll(); - canvas->setQml(xml, filename); + QString qml = file.readAll(); + canvas->setQml(qml, filename); return canvas; } diff --git a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp index 152d6e3..1d68f35 100644 --- a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp +++ b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp @@ -212,6 +212,8 @@ void tst_numberformat::text() QCOMPARE(formatter->format(), format); QCOMPARE(formatter->text(), text); + + delete formatter; } QTEST_MAIN(tst_numberformat) diff --git a/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml new file mode 100644 index 0000000..26c533f --- /dev/null +++ b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml @@ -0,0 +1,10 @@ +import Qt 4.6 + +XmlListModel { + source: "model.xml" + query: "/Pets/Pet" + XmlRole { name: "name"; query: "/name/string()" } //starts with '/' + XmlRole { name: "type"; query: "type" } //no type + XmlRole { name: "age"; query: "age/" } //ends with '/' + XmlRole { name: "size"; query: "size/number()" } //wrong type +} diff --git a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp index 4898686..71bc4f9 100644 --- a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp +++ b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp @@ -56,6 +56,8 @@ private slots: void missingFields(); void cdata(); void attributes(); + void roles(); + void roleErrors(); private: QmlEngine engine; @@ -76,6 +78,8 @@ void tst_qmlxmllistmodel::buildModel() QCOMPARE(data.value(Qt::UserRole+1).toString(), QLatin1String("Dog")); QCOMPARE(data.value(Qt::UserRole+2).toInt(), 9); QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String("Medium")); + + delete listModel; } void tst_qmlxmllistmodel::missingFields() @@ -95,6 +99,8 @@ void tst_qmlxmllistmodel::missingFields() data = listModel->data(7, roles); QVERIFY(data.count() == 5); QCOMPARE(data.value(Qt::UserRole+2).toString(), QLatin1String("")); + + delete listModel; } void tst_qmlxmllistmodel::cdata() @@ -109,6 +115,8 @@ void tst_qmlxmllistmodel::cdata() QHash data = listModel->data(2, roles); QVERIFY(data.count() == 1); QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String(""))); + + delete listModel; } void tst_qmlxmllistmodel::attributes() @@ -123,8 +131,49 @@ void tst_qmlxmllistmodel::attributes() QHash data = listModel->data(2, roles); QVERIFY(data.count() == 1); QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Vegetable Soup")); + + delete listModel; +} + +void tst_qmlxmllistmodel::roles() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/model.qml")); + QmlXmlListModel *listModel = qobject_cast(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList roles = listModel->roles(); + QCOMPARE(roles.count(), 4); + QCOMPARE(listModel->toString(roles.at(0)), QLatin1String("name")); + QCOMPARE(listModel->toString(roles.at(1)), QLatin1String("type")); + QCOMPARE(listModel->toString(roles.at(2)), QLatin1String("age")); + QCOMPARE(listModel->toString(roles.at(3)), QLatin1String("size")); + + delete listModel; } +void tst_qmlxmllistmodel::roleErrors() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/roleErrors.qml")); + QTest::ignoreMessage(QtWarningMsg, "QML QmlXmlListModelRole (file://" SRCDIR "/data/roleErrors.qml:6:5) An XmlRole query must not start with '/'"); + //### make sure we receive all expected warning messages. + QmlXmlListModel *listModel = qobject_cast(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList roles; + roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3; + QHash data = listModel->data(3, roles); + QVERIFY(data.count() == 4); + + //### should any of these return valid values? + QCOMPARE(data.value(Qt::UserRole), QVariant()); + QCOMPARE(data.value(Qt::UserRole+1), QVariant()); + QCOMPARE(data.value(Qt::UserRole+2), QVariant()); + QCOMPARE(data.value(Qt::UserRole+3), QVariant()); + + delete listModel; +} QTEST_MAIN(tst_qmlxmllistmodel) -- cgit v0.12 From b54b0e55449b1b15dcdd3601b7ee176ee67abe27 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 14:28:47 +1000 Subject: Visual animation tests. Move them to a common directory, add a new one, and fix a failing one. --- .../bindinganimation/bindinganimation.qml | 40 + .../bindinganimation/data/bindinganimation.0.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.1.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.2.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.3.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.4.png | Bin 0 -> 814 bytes .../bindinganimation/data/bindinganimation.5.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.6.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.qml | 1655 ++++++++++++++++++++ .../animation/colorAnimation/colorAnimation.qml | 41 + .../colorAnimation/data/colorAnimation.0.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.1.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.2.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.qml | 951 +++++++++++ .../visual/animation/easing/data/easing.0.png | Bin 0 -> 3393 bytes .../visual/animation/easing/data/easing.1.png | Bin 0 -> 3381 bytes .../visual/animation/easing/data/easing.2.png | Bin 0 -> 3101 bytes .../visual/animation/easing/data/easing.3.png | Bin 0 -> 16542 bytes .../visual/animation/easing/data/easing.qml | 779 +++++++++ .../declarative/visual/animation/easing/easing.qml | 193 +++ .../visual/animation/easing/pics/qtlogo.png | Bin 0 -> 2738 bytes .../parallelAnimation/data/parallelAnimation.0.png | Bin 0 -> 774 bytes .../parallelAnimation/data/parallelAnimation.1.png | Bin 0 -> 762 bytes .../parallelAnimation/data/parallelAnimation.2.png | Bin 0 -> 773 bytes .../parallelAnimation/data/parallelAnimation.qml | 463 ++++++ .../parallelAnimation/parallelAnimation.qml | 43 + .../animation/parentAction/data/parentAction.0.png | Bin 0 -> 1652 bytes .../animation/parentAction/data/parentAction.1.png | Bin 0 -> 1492 bytes .../animation/parentAction/data/parentAction.2.png | Bin 0 -> 1424 bytes .../animation/parentAction/data/parentAction.3.png | Bin 0 -> 1583 bytes .../animation/parentAction/data/parentAction.4.png | Bin 0 -> 1640 bytes .../animation/parentAction/data/parentAction.5.png | Bin 0 -> 1640 bytes .../animation/parentAction/data/parentAction.qml | 1207 ++++++++++++++ .../visual/animation/parentAction/parentAction.qml | 55 + .../pauseAnimation/data/pauseAnimation.0.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.1.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.2.png | Bin 0 -> 3209 bytes .../pauseAnimation/data/pauseAnimation.3.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.4.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.5.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.qml | 1619 +++++++++++++++++++ .../animation/pauseAnimation/pauseAnimation.qml | 30 + .../animation/pauseAnimation/pics/qtlogo.png | Bin 0 -> 2738 bytes .../propertyAction/data/propertyAction.0.png | Bin 0 -> 1418 bytes .../propertyAction/data/propertyAction.1.png | Bin 0 -> 1430 bytes .../propertyAction/data/propertyAction.2.png | Bin 0 -> 1431 bytes .../propertyAction/data/propertyAction.qml | 939 +++++++++++ .../animation/propertyAction/propertyAction.qml | 34 + .../animation/scriptAction/data/scriptAction.0.png | Bin 0 -> 1418 bytes .../animation/scriptAction/data/scriptAction.1.png | Bin 0 -> 1431 bytes .../animation/scriptAction/data/scriptAction.qml | 535 +++++++ .../visual/animation/scriptAction/scriptAction.qml | 35 + .../visual/bindinganimation/bindinganimation.qml | 40 - .../bindinganimation/data/bindinganimation.0.png | Bin 817 -> 0 bytes .../bindinganimation/data/bindinganimation.1.png | Bin 815 -> 0 bytes .../bindinganimation/data/bindinganimation.qml | 659 -------- .../visual/colorAnimation/colorAnimation.qml | 41 - .../colorAnimation/data/colorAnimation.0.png | Bin 610 -> 0 bytes .../colorAnimation/data/colorAnimation.1.png | Bin 610 -> 0 bytes .../colorAnimation/data/colorAnimation.2.png | Bin 610 -> 0 bytes .../visual/colorAnimation/data/colorAnimation.qml | 951 ----------- .../declarative/visual/easing/data/easing.0.png | Bin 3393 -> 0 bytes .../declarative/visual/easing/data/easing.1.png | Bin 3381 -> 0 bytes .../declarative/visual/easing/data/easing.2.png | Bin 3101 -> 0 bytes .../declarative/visual/easing/data/easing.3.png | Bin 16542 -> 0 bytes .../auto/declarative/visual/easing/data/easing.qml | 779 --------- tests/auto/declarative/visual/easing/easing.qml | 193 --- .../auto/declarative/visual/easing/pics/qtlogo.png | Bin 2738 -> 0 bytes .../visual/parentAction/data/parentAction.0.png | Bin 1652 -> 0 bytes .../visual/parentAction/data/parentAction.1.png | Bin 1492 -> 0 bytes .../visual/parentAction/data/parentAction.2.png | Bin 1424 -> 0 bytes .../visual/parentAction/data/parentAction.3.png | Bin 1583 -> 0 bytes .../visual/parentAction/data/parentAction.4.png | Bin 1640 -> 0 bytes .../visual/parentAction/data/parentAction.5.png | Bin 1640 -> 0 bytes .../visual/parentAction/data/parentAction.qml | 1207 -------------- .../visual/parentAction/parentAction.qml | 55 - .../pauseAnimation/data/pauseAnimation.0.png | Bin 3211 -> 0 bytes .../pauseAnimation/data/pauseAnimation.1.png | Bin 3214 -> 0 bytes .../pauseAnimation/data/pauseAnimation.2.png | Bin 3209 -> 0 bytes .../pauseAnimation/data/pauseAnimation.3.png | Bin 3211 -> 0 bytes .../pauseAnimation/data/pauseAnimation.4.png | Bin 3214 -> 0 bytes .../pauseAnimation/data/pauseAnimation.5.png | Bin 3214 -> 0 bytes .../visual/pauseAnimation/data/pauseAnimation.qml | 1619 ------------------- .../visual/pauseAnimation/pauseAnimation.qml | 30 - .../visual/pauseAnimation/pics/qtlogo.png | Bin 2738 -> 0 bytes .../propertyAction/data/propertyAction.0.png | Bin 1418 -> 0 bytes .../propertyAction/data/propertyAction.1.png | Bin 1430 -> 0 bytes .../propertyAction/data/propertyAction.2.png | Bin 1431 -> 0 bytes .../visual/propertyAction/data/propertyAction.qml | 939 ----------- .../visual/propertyAction/propertyAction.qml | 34 - .../visual/scriptAction/data/scriptAction.0.png | Bin 1418 -> 0 bytes .../visual/scriptAction/data/scriptAction.1.png | Bin 1431 -> 0 bytes .../visual/scriptAction/data/scriptAction.qml | 535 ------- .../visual/scriptAction/scriptAction.qml | 35 - 94 files changed, 8619 insertions(+), 7117 deletions(-) create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.0.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.1.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.2.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.3.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.qml create mode 100644 tests/auto/declarative/visual/animation/easing/easing.qml create mode 100644 tests/auto/declarative/visual/animation/easing/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml create mode 100644 tests/auto/declarative/visual/animation/parentAction/parentAction.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml create mode 100644 tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml create mode 100644 tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml delete mode 100644 tests/auto/declarative/visual/bindinganimation/bindinganimation.qml delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml delete mode 100644 tests/auto/declarative/visual/colorAnimation/colorAnimation.qml delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml delete mode 100644 tests/auto/declarative/visual/easing/data/easing.0.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.1.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.2.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.3.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.qml delete mode 100644 tests/auto/declarative/visual/easing/easing.qml delete mode 100644 tests/auto/declarative/visual/easing/pics/qtlogo.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.0.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.1.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.2.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.3.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.4.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.5.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.qml delete mode 100644 tests/auto/declarative/visual/parentAction/parentAction.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.qml delete mode 100644 tests/auto/declarative/visual/propertyAction/propertyAction.qml delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.qml delete mode 100644 tests/auto/declarative/visual/scriptAction/scriptAction.qml diff --git a/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml new file mode 100644 index 0000000..eabba73 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml @@ -0,0 +1,40 @@ +import Qt 4.6 + +Rectangle { + color: "blue" + width: 320 + height: 240 + id: Page + Rectangle { + id: MyRectangle + width: 100 + height: 100 + color: "red" + x: 10 + } + states: [ + State { + name: "hello" + PropertyChanges { + target: MyRectangle + x: 100 + } + PropertyChanges { + target: MyMouseRegion + onClicked: Page.state = '' + } + } + ] + transitions: [ + Transition { + NumberAnimation { + matchProperties: "x" + } + } + ] + MouseRegion { + id: MyMouseRegion + anchors.fill: parent + onClicked: { Page.state= 'hello' } + } +} diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png new file mode 100644 index 0000000..f3074fc Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png new file mode 100644 index 0000000..e2560e0 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png new file mode 100644 index 0000000..bba04a9 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png new file mode 100644 index 0000000..f3074fc Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml new file mode 100644 index 0000000..a90f99e --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml @@ -0,0 +1,1655 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 32 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 48 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 64 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 80 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 96 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 112 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 128 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 144 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 160 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 176 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 192 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 208 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 224 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 240 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 256 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 272 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 288 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 304 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 320 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 336 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 352 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 368 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 384 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 400 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 416 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 432 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 448 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 464 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 480 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 496 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 512 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 528 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 544 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 560 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 576 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 592 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 608 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 624 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 640 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 656 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 672 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 688 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 704 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 720 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 736 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 752 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 768 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 784 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 800 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 816 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 832 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 848 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 864 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 880 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 896 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 912 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 928 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 944 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 960 + image: "bindinganimation.0.png" + } + Frame { + msec: 976 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 992 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1008 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1024 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1040 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1056 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1072 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1088 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1104 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1120 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1136 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1152 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 136; y: 174 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1168 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1184 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1200 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1216 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1232 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1248 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1264 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1280 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 136; y: 174 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1312 + hash: "a78c9394bf3b81f192f42710cd7218b1" + } + Frame { + msec: 1328 + hash: "7f08e8170feb1d02373c9ab42b6e882d" + } + Frame { + msec: 1344 + hash: "967fbad8ac664400a3efbe66617d62aa" + } + Frame { + msec: 1360 + hash: "abc2ec0bc7a93e75b5823310e6284db1" + } + Frame { + msec: 1376 + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + } + Frame { + msec: 1392 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 1408 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 1424 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 1440 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 1456 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 1472 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 1488 + hash: "f9f74a2e38b52c9266f33e428b6acd9d" + } + Frame { + msec: 1504 + hash: "25152412c4ea2aec6caf89486c073484" + } + Frame { + msec: 1520 + hash: "ba403842ba3128b1cdf6a9cb28c90751" + } + Frame { + msec: 1536 + hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + } + Frame { + msec: 1552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1632 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1648 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1664 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1680 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1696 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1712 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1728 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1744 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1760 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1776 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1792 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1808 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1824 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1840 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1856 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1872 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1888 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1904 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1920 + image: "bindinganimation.1.png" + } + Frame { + msec: 1936 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1952 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1968 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1984 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2000 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2016 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2032 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2048 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2064 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2080 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2096 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2112 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2128 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2144 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2160 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2176 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2192 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2208 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2224 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2240 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2256 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2272 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2288 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2304 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2320 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2336 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2352 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2384 + hash: "adc501a3a2b8aaf72f58ba985b57424e" + } + Frame { + msec: 2400 + hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + } + Frame { + msec: 2416 + hash: "ffa8471f57765b49fcdb9155393251e5" + } + Frame { + msec: 2432 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 2448 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 2464 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 2480 + hash: "17c46242c17983478f34cb49cb91ca6e" + } + Frame { + msec: 2496 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 2512 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 2528 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 2544 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 2560 + hash: "a39c80859a7643c9879da9c77b644703" + } + Frame { + msec: 2576 + hash: "16fe17b15900ff0464ab20ea921e5b1f" + } + Frame { + msec: 2592 + hash: "bc5c83b2014b7260900587ae3637598f" + } + Frame { + msec: 2608 + hash: "96c077e3a572edff04fa9b2f7020ffd0" + } + Frame { + msec: 2624 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2640 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2656 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2672 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2688 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2704 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2720 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2736 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2752 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2768 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2784 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2800 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2816 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2832 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2848 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2864 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2880 + image: "bindinganimation.2.png" + } + Frame { + msec: 2896 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2912 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2928 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2944 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2960 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2976 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2992 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3008 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3024 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3040 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3056 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3072 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3088 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3104 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3120 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3136 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3152 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3168 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3184 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3200 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3216 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3232 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3248 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3264 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3280 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3312 + hash: "a78c9394bf3b81f192f42710cd7218b1" + } + Frame { + msec: 3328 + hash: "7f08e8170feb1d02373c9ab42b6e882d" + } + Frame { + msec: 3344 + hash: "967fbad8ac664400a3efbe66617d62aa" + } + Frame { + msec: 3360 + hash: "abc2ec0bc7a93e75b5823310e6284db1" + } + Frame { + msec: 3376 + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + } + Frame { + msec: 3392 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 3408 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 3424 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 3440 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 3456 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 3472 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3488 + hash: "f9f74a2e38b52c9266f33e428b6acd9d" + } + Frame { + msec: 3504 + hash: "25152412c4ea2aec6caf89486c073484" + } + Frame { + msec: 3520 + hash: "ba403842ba3128b1cdf6a9cb28c90751" + } + Frame { + msec: 3536 + hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + } + Frame { + msec: 3552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3632 + hash: "adc501a3a2b8aaf72f58ba985b57424e" + } + Frame { + msec: 3648 + hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + } + Frame { + msec: 3664 + hash: "ffa8471f57765b49fcdb9155393251e5" + } + Frame { + msec: 3680 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 3696 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 3728 + hash: "17c46242c17983478f34cb49cb91ca6e" + } + Frame { + msec: 3744 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 3760 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 3776 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 3792 + hash: "4f58226bdbda7339d972eca065f75766" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 3824 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 3840 + image: "bindinganimation.3.png" + } + Frame { + msec: 3856 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 3872 + hash: "4f41101378a104e72228eeb4ba395ca8" + } + Frame { + msec: 3888 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 3904 + hash: "f4fe2cc93d65e086ba8ded1438269eb2" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3920 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 3936 + hash: "72a0c017a2fa90a4aeadfa6e552ff573" + } + Frame { + msec: 3952 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 3968 + hash: "0b0c6419e1e5b016d9c22bd98fd452b1" + } + Frame { + msec: 3984 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4000 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4016 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Frame { + msec: 4032 + hash: "a21aa1984f068650cce2a124a82c12be" + } + Frame { + msec: 4048 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4064 + hash: "a2cebc35e5c2c709a2cd83e1df6eaeab" + } + Frame { + msec: 4080 + hash: "07f751ea4cf877ba72fbb36f9da268d7" + } + Frame { + msec: 4096 + hash: "72731478d80f024076ea639b55152360" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4112 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 4128 + hash: "ed47684a0b21836cd27549e0989e96dd" + } + Frame { + msec: 4144 + hash: "772396bb23c713f34ea5c23bfbcb115e" + } + Frame { + msec: 4160 + hash: "d9af30557f99b086bb1a185a946b580d" + } + Frame { + msec: 4176 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Frame { + msec: 4192 + hash: "2e3f134664df8204a291af2c9f81239a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4208 + hash: "2e3f134664df8204a291af2c9f81239a" + } + Frame { + msec: 4224 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 4240 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 4256 + hash: "82363265ed2b611a54f8d48b2af22f11" + } + Frame { + msec: 4272 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4288 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4304 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4320 + hash: "56125a260a79bc38bb0ef44fd65ba49b" + } + Frame { + msec: 4336 + hash: "07f751ea4cf877ba72fbb36f9da268d7" + } + Frame { + msec: 4352 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 4368 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4384 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4400 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4416 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 4432 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 4448 + hash: "dafcce427161a70c3513841ac22aea00" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4464 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4480 + hash: "b08811b237ce7a460c80d285f04d53d8" + } + Frame { + msec: 4496 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 4512 + hash: "772396bb23c713f34ea5c23bfbcb115e" + } + Frame { + msec: 4528 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 4544 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4560 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Frame { + msec: 4576 + hash: "d9af30557f99b086bb1a185a946b580d" + } + Frame { + msec: 4592 + hash: "82363265ed2b611a54f8d48b2af22f11" + } + Frame { + msec: 4608 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4624 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 4640 + hash: "56c72b5da44bd5efdc47c3b9c3eac409" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4656 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 4672 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 4688 + hash: "72a0c017a2fa90a4aeadfa6e552ff573" + } + Frame { + msec: 4704 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 4720 + hash: "0b0c6419e1e5b016d9c22bd98fd452b1" + } + Frame { + msec: 4736 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4752 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4768 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4784 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 4800 + image: "bindinganimation.4.png" + } + Frame { + msec: 4816 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4832 + hash: "dafcce427161a70c3513841ac22aea00" + } + Frame { + msec: 4848 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4864 + hash: "b08811b237ce7a460c80d285f04d53d8" + } + Frame { + msec: 4880 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4896 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 4912 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 4928 + hash: "ffeb3db6d3f177acf6f92049359a9025" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4944 + hash: "ffeb3db6d3f177acf6f92049359a9025" + } + Frame { + msec: 4960 + hash: "527b1f9e7a222483134675a73f9cf5b7" + } + Frame { + msec: 4976 + hash: "5edaad77f334e6a01982ee89a733b1f8" + } + Frame { + msec: 4992 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 5008 + hash: "4f41101378a104e72228eeb4ba395ca8" + } + Frame { + msec: 5024 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 5040 + hash: "f4fe2cc93d65e086ba8ded1438269eb2" + } + Frame { + msec: 5056 + hash: "d245b288eb3eb7067c25f4475c47d2f7" + } + Frame { + msec: 5072 + hash: "7f465a99fca50503736e470a0b4e1c7a" + } + Frame { + msec: 5088 + hash: "1d5cd86ab732da3705a7bb1deab77923" + } + Frame { + msec: 5104 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 5120 + hash: "a21aa1984f068650cce2a124a82c12be" + } + Frame { + msec: 5136 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Frame { + msec: 5152 + hash: "48eb78c29227a399f9c1c95c7d77c9d9" + } + Frame { + msec: 5168 + hash: "51f228440001d23e294da1dde07a1577" + } + Frame { + msec: 5184 + hash: "0d59ac57f8790fe741a31d12c3438abf" + } + Frame { + msec: 5200 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5216 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5232 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5248 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5264 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5280 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5296 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5312 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5328 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5344 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5360 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5376 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5392 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5408 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5424 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5440 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5456 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5472 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5488 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5504 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5520 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5536 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5632 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5648 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5664 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5680 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5696 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5712 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5728 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5744 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5760 + image: "bindinganimation.5.png" + } + Frame { + msec: 5776 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5792 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5808 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5824 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5840 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5856 + hash: "383ba6b9efcc58fca512982a207631f6" + } +} diff --git a/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml new file mode 100644 index 0000000..0e98d7e --- /dev/null +++ b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml @@ -0,0 +1,41 @@ +import Qt 4.6 + +Rectangle { + id: mainrect + width: 200; height: 200 + state: "first" + states: [ + State { + name: "first" + PropertyChanges { + target: mainrect + color: "red" + } + }, + State { + name: "second" + PropertyChanges { + target: mainrect + color: "blue" + } + } + ] + transitions: [ + Transition { + from: "first" + to: "second" + reversible: true + SequentialAnimation { + ColorAnimation { + duration: 2000 + target: mainrect + property: "color" + } + } + } + ] + MouseRegion { + anchors.fill: parent + onClicked: { mainrect.state = 'second' } + } +} diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml new file mode 100644 index 0000000..900bf5c --- /dev/null +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml @@ -0,0 +1,951 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 32 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 48 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 64 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 80 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 96 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 112 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 128 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 144 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 160 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 176 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 192 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 208 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 224 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 240 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 256 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 272 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 288 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 304 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 320 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 336 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 352 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 368 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 384 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 400 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 416 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 432 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 448 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 464 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 480 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 496 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 512 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 93; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 528 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 544 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 560 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 576 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 592 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 93; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 608 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 624 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 640 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 656 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 672 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 688 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 704 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 720 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 736 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 752 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 768 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 784 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 800 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 816 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 832 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 848 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 864 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 880 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 896 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 912 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 928 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 944 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 960 + image: "colorAnimation.0.png" + } + Frame { + msec: 976 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 992 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1008 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1024 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1040 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1056 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1072 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1088 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1104 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1120 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1136 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1152 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1168 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1184 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1200 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1216 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1232 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1248 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1264 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1280 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1296 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1312 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1328 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1344 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1360 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1376 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1392 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1408 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1424 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1440 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1456 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1472 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1488 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1504 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1520 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1536 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1552 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1568 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1584 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1600 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1616 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1632 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1648 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1664 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1680 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1696 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1712 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1728 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1744 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1760 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1776 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1792 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1808 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1824 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1840 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1856 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1872 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1888 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1904 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1920 + image: "colorAnimation.1.png" + } + Frame { + msec: 1936 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1952 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1968 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1984 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2000 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2016 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2032 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2048 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2064 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2080 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2096 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2112 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2128 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2144 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2160 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2176 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2192 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2208 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2224 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2240 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2256 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2272 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2288 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2304 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2320 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2336 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2352 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2368 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2384 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2400 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2416 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2432 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2448 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2464 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2480 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2496 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2512 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2528 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2544 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2560 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2576 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2592 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2608 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2624 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2640 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2656 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2672 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2688 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2704 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2720 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2736 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2752 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2768 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2784 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2800 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2816 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2832 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2848 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2864 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2880 + image: "colorAnimation.2.png" + } + Frame { + msec: 2896 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2912 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2928 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2944 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2960 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2976 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2992 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3008 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3024 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3040 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3056 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3072 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3088 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3104 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3120 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3136 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3152 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3168 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3184 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3200 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3216 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3232 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3248 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3264 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3280 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3296 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3312 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3328 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3344 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3360 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3376 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3392 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3408 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3424 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3440 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3456 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3472 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3488 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3504 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3520 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3536 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3552 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3568 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3584 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3600 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3616 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3632 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Key { + type: 6 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 3648 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3664 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3680 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } +} diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.0.png b/tests/auto/declarative/visual/animation/easing/data/easing.0.png new file mode 100644 index 0000000..4f75bfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.0.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.1.png b/tests/auto/declarative/visual/animation/easing/data/easing.1.png new file mode 100644 index 0000000..dc17765 Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.1.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.2.png b/tests/auto/declarative/visual/animation/easing/data/easing.2.png new file mode 100644 index 0000000..7f83548 Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.2.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.3.png b/tests/auto/declarative/visual/animation/easing/data/easing.3.png new file mode 100644 index 0000000..c68e0fa Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.3.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.qml b/tests/auto/declarative/visual/animation/easing/data/easing.qml new file mode 100644 index 0000000..d8e8688 --- /dev/null +++ b/tests/auto/declarative/visual/animation/easing/data/easing.qml @@ -0,0 +1,779 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 32 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 48 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 64 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 80 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 96 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 112 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 128 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 144 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 160 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 176 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 192 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 208 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 224 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 240 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 256 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 272 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 111; y: 419 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 288 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 304 + hash: "8f4c40d2e2b4f064bcb77c5ae43928c6" + } + Frame { + msec: 320 + hash: "8b65094a9b7d5394fc67f92ea058627f" + } + Frame { + msec: 336 + hash: "da450826b471a60ba98dabc581631ba1" + } + Frame { + msec: 352 + hash: "e820fb4f1bc97152aa940b07db549f1b" + } + Frame { + msec: 368 + hash: "b7d8186beca2fa0e37099f72419350f4" + } + Frame { + msec: 384 + hash: "8500b93774f214e5e4789e25500262b8" + } + Frame { + msec: 400 + hash: "277e1dff70285cca536b3e1fc2590688" + } + Frame { + msec: 416 + hash: "b05b18f92c2089c681661566117ae0f5" + } + Frame { + msec: 432 + hash: "6fec9c6b6ac3e3ea4126e3824a8d7566" + } + Frame { + msec: 448 + hash: "53c6c90dd1eb7ca47721fc116474aebf" + } + Frame { + msec: 464 + hash: "cf729c4a31414af3d2705878ba615738" + } + Frame { + msec: 480 + hash: "f146b8a68960d507f893ef001189220e" + } + Frame { + msec: 496 + hash: "18ff56b870bb048af246f928ee42a9b0" + } + Frame { + msec: 512 + hash: "beee98f73fe7e878ada37b3070fa0c1d" + } + Frame { + msec: 528 + hash: "435d389082912950a0be2b5dff480319" + } + Frame { + msec: 544 + hash: "dc39b080eaddeaf4e309b90b7d97a835" + } + Frame { + msec: 560 + hash: "666b1cde53f78d7db9c81e21adbe406a" + } + Frame { + msec: 576 + hash: "c5c9627f4329e48aa96ebfbc982b6ba6" + } + Frame { + msec: 592 + hash: "a583042052e5da7e80a4956337d6d1ff" + } + Frame { + msec: 608 + hash: "a4a5df787e15da6f28275a12898e7620" + } + Frame { + msec: 624 + hash: "02cacec2ccc803ebc03c5540484cbcaa" + } + Frame { + msec: 640 + hash: "00600df1f006f358feaf43bfae9d32a5" + } + Frame { + msec: 656 + hash: "737c884ba0d6d38b66252f4b97a36c33" + } + Frame { + msec: 672 + hash: "7eeeade8100c84a6b56efa51cf597baf" + } + Frame { + msec: 688 + hash: "18ab79d495097f0103dcf14db1897a88" + } + Frame { + msec: 704 + hash: "21d3b0da00c46a101e09048928cd8027" + } + Frame { + msec: 720 + hash: "a5995b0341872c275ffbc5aaee6eb853" + } + Frame { + msec: 736 + hash: "bb4a37c1bd5e412ebce54d9539017723" + } + Frame { + msec: 752 + hash: "63dcde9e2751ca94ed7d739feb359221" + } + Frame { + msec: 768 + hash: "5790c8407e2e4d1a6a937d86d57d8edb" + } + Frame { + msec: 784 + hash: "3a1c77abf6822030db60a036027dc86e" + } + Frame { + msec: 800 + hash: "2a13c573ab9846cce60384dd7138b2b4" + } + Frame { + msec: 816 + hash: "98983c2525265830033495b61071a5aa" + } + Frame { + msec: 832 + hash: "26d2bba3d77053b410715afb497d4063" + } + Frame { + msec: 848 + hash: "fd65d954c16acee425d9de65af68ef40" + } + Frame { + msec: 864 + hash: "094fcc18d28b19ac6b452dd8106d813b" + } + Frame { + msec: 880 + hash: "160105f6f99a960763535e4d51990ef6" + } + Frame { + msec: 896 + hash: "0d5d1e6a66fc1f49f1106f01fb5a1c52" + } + Frame { + msec: 912 + hash: "f6abc32680865783a4d94ecb738f9ff6" + } + Frame { + msec: 928 + hash: "350509eceb134d5b18647e5ad07dbb47" + } + Frame { + msec: 944 + hash: "a84e4e7c5385dc1f24ca219f45d529a5" + } + Frame { + msec: 960 + image: "easing.0.png" + } + Frame { + msec: 976 + hash: "efcc5ae79da3fa2f4c7d6eaa35e32d33" + } + Frame { + msec: 992 + hash: "ff4afce604c8ecb4f08d1ddef8552534" + } + Frame { + msec: 1008 + hash: "e2e63e12e9a5f8459720dd8b023ed17b" + } + Frame { + msec: 1024 + hash: "991a01f92bcfa9cd9fe98e3f39d192fc" + } + Frame { + msec: 1040 + hash: "bc3d2f0f3fac650c981457f3694c2518" + } + Frame { + msec: 1056 + hash: "ee39fc9b1a602bf813d9118aa21901ac" + } + Frame { + msec: 1072 + hash: "42120d098f2adf1e331332b33442dd3e" + } + Frame { + msec: 1088 + hash: "1660c69b77b800d1ab57b93f0fc12aa5" + } + Frame { + msec: 1104 + hash: "0630a3d6b8cb5dece5dc660f05036ec6" + } + Frame { + msec: 1120 + hash: "9163f0bd9c5888794d7a09d3359bf1e5" + } + Frame { + msec: 1136 + hash: "e0b7ad4883f679948c852ff152ba7907" + } + Frame { + msec: 1152 + hash: "f748fc44f99b706e42b899cb18dbaaf7" + } + Frame { + msec: 1168 + hash: "c84442f0cb1cf0bb50dae7d1c701aaf8" + } + Frame { + msec: 1184 + hash: "d7b41567e3f3aa9576fe2793872134b7" + } + Frame { + msec: 1200 + hash: "a1d10ff1adb85000902486fc8e4faa8d" + } + Frame { + msec: 1216 + hash: "44b7b5d77068e360ead3af84e7d80232" + } + Frame { + msec: 1232 + hash: "486c0b19c1379d9eefdf575a085e2875" + } + Frame { + msec: 1248 + hash: "1d474472856d4740d960eb2f788ca5a6" + } + Frame { + msec: 1264 + hash: "c74082553ab0f4ee00f5044e3369580b" + } + Frame { + msec: 1280 + hash: "89fcd5514f336075ad32cae69518c1e5" + } + Frame { + msec: 1296 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1312 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1328 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1344 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1360 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1376 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1392 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1408 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1424 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1440 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1456 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1472 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1488 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1504 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1520 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1536 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1552 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1568 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1584 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1600 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 111; y: 419 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1632 + hash: "b77240f32e83d4f332d815c626f1e560" + } + Frame { + msec: 1648 + hash: "7d89669231224cf8e02d75338c37c278" + } + Frame { + msec: 1664 + hash: "a8cf7c179011ee8187a8e1111683e52e" + } + Frame { + msec: 1680 + hash: "3e87a57e05da09a8260801320431b922" + } + Frame { + msec: 1696 + hash: "a2b0d99c8a232715fe03e8772a36634c" + } + Frame { + msec: 1712 + hash: "5b4634cd495ae7bb9c69a5c9c346189e" + } + Frame { + msec: 1728 + hash: "492f8f2b84af355ef41c1a7cda3a8a73" + } + Frame { + msec: 1744 + hash: "88e4eb08520fb5acc3d88ac4f0900542" + } + Frame { + msec: 1760 + hash: "0c09cdcb906b4ce9840fd7502c39e5b9" + } + Frame { + msec: 1776 + hash: "b054083bdd212cc03167a90df2d7eac5" + } + Frame { + msec: 1792 + hash: "83971c2d37616ab92680364d6ac288a6" + } + Frame { + msec: 1808 + hash: "a73951d25e2cb7c1d04c88c86dfa0e4d" + } + Frame { + msec: 1824 + hash: "31fc8b20302abac97e506c37a14bbb7e" + } + Frame { + msec: 1840 + hash: "f760ccd7339e01a9423da7b592498291" + } + Frame { + msec: 1856 + hash: "24dfcd5553f854908396de751fb15b88" + } + Frame { + msec: 1872 + hash: "1daf38a6e6199f980e9494a3eb480047" + } + Frame { + msec: 1888 + hash: "a39e2de1090209e5dbc8cc26577ec97d" + } + Frame { + msec: 1904 + hash: "f4edc780b063e34461263ed3b753be88" + } + Frame { + msec: 1920 + image: "easing.1.png" + } + Frame { + msec: 1936 + hash: "a19b0353604491f56f72be0d20d76955" + } + Frame { + msec: 1952 + hash: "9a70f109eebfcede2311ef77ceb50a44" + } + Frame { + msec: 1968 + hash: "7b28313d6860aeefd4a4e136d38d62f8" + } + Frame { + msec: 1984 + hash: "95d84f38473159fe6b38f84ffe371714" + } + Frame { + msec: 2000 + hash: "07f91261794edb0ac1fde9bb4ff36011" + } + Frame { + msec: 2016 + hash: "f9a4a6b92a9c2d265688f1bfac18fa0a" + } + Frame { + msec: 2032 + hash: "cdec7cc00380fde4f73be997a992251a" + } + Frame { + msec: 2048 + hash: "a52b34f84e98fcd8babb1d39979fc9c7" + } + Frame { + msec: 2064 + hash: "bf05b3c79a9616f2e6c33d348b30e0ba" + } + Frame { + msec: 2080 + hash: "c5931785685b4f4854d3ddfff5dd5466" + } + Frame { + msec: 2096 + hash: "bae163e02b860a9ca19d1bcb60ac1f8e" + } + Frame { + msec: 2112 + hash: "a36295a1ebb35e538f8899ae3ae3b36a" + } + Frame { + msec: 2128 + hash: "b6448d61803d9b2c05b438aa8ce8bcd5" + } + Frame { + msec: 2144 + hash: "631bf4caff2d93ef96a426100ffc5b32" + } + Frame { + msec: 2160 + hash: "a8777c84a03996493f719f5fcfc80d00" + } + Frame { + msec: 2176 + hash: "86e1759df103ef776bb03f24941f49da" + } + Frame { + msec: 2192 + hash: "01a790ea60adeaf368c66bd53aa8fcb3" + } + Frame { + msec: 2208 + hash: "79e5aca8ef6b9764f7f99cdfb51222ae" + } + Frame { + msec: 2224 + hash: "82d10cc01b9be4683c5aa76096bd462c" + } + Frame { + msec: 2240 + hash: "95d961a92c597e432611947f7480796a" + } + Frame { + msec: 2256 + hash: "e8ee89b5313c7e2c66741fe1c2090029" + } + Frame { + msec: 2272 + hash: "2e3e8cf25dc1a3f09e7bf2a086f8e3bb" + } + Frame { + msec: 2288 + hash: "68ca8ad381f48db23d2bc5da9da0c17a" + } + Frame { + msec: 2304 + hash: "e29f2411667049e8fae6c080f61c5869" + } + Frame { + msec: 2320 + hash: "5b0a6fadedf3024e8ecb7f2c73a2277d" + } + Frame { + msec: 2336 + hash: "af2eac625ef1fd928093ccd60bc0058e" + } + Frame { + msec: 2352 + hash: "8a1ff780ebdc9e416e60ea0940e8f2d6" + } + Frame { + msec: 2368 + hash: "7eb316c51cfd8ad972b7040247a651eb" + } + Frame { + msec: 2384 + hash: "1bac7075c10c87a69e71c3859f0db41d" + } + Frame { + msec: 2400 + hash: "0f16f40567729065cf9ecfcc15395a7b" + } + Frame { + msec: 2416 + hash: "719f4e776776f0db5c68ae7c6177e9b7" + } + Frame { + msec: 2432 + hash: "75172dbf31fd8d706f54748c59099845" + } + Frame { + msec: 2448 + hash: "d730b550e05167b05350e0e6636dd97d" + } + Frame { + msec: 2464 + hash: "e1f33eb5f023d9d42a99f8bc23223c45" + } + Frame { + msec: 2480 + hash: "8a4b0df5bed6c7be73c194ce2bb6a271" + } + Frame { + msec: 2496 + hash: "44a9ea371f12d4ac3a569121a995ae16" + } + Frame { + msec: 2512 + hash: "14747e2e9e072210b9d6db50b4f704a1" + } + Frame { + msec: 2528 + hash: "eea52abf430f8cc1adc37e7180036584" + } + Frame { + msec: 2544 + hash: "0a9f6b14bc02e929a45bf4ebb736f9d3" + } + Frame { + msec: 2560 + hash: "a68a6eef0fc8754564c47c88b60d9a2a" + } + Frame { + msec: 2576 + hash: "eeb469e2fbda131d83538055e88ecdf7" + } + Frame { + msec: 2592 + hash: "0f7b673472050e807c9d935fde5afd83" + } + Frame { + msec: 2608 + hash: "80c90cce66bdd2324ca98bc591c22b44" + } + Frame { + msec: 2624 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2640 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2656 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2672 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2688 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2704 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2720 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2736 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2752 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2768 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2784 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2800 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2816 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2832 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2848 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2864 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2880 + image: "easing.2.png" + } + Frame { + msec: 2896 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2912 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2928 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2944 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2960 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2976 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2992 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 3008 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 3024 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } +} diff --git a/tests/auto/declarative/visual/animation/easing/easing.qml b/tests/auto/declarative/visual/animation/easing/easing.qml new file mode 100644 index 0000000..1e8e907 --- /dev/null +++ b/tests/auto/declarative/visual/animation/easing/easing.qml @@ -0,0 +1,193 @@ +import Qt 4.6 + +Rectangle { + id: item + width: 600 + height: layout.height + color: "white" + resources: [ + ListModel { + id: easingtypes + ListElement { + type: "easeLinear" + } + ListElement { + type: "easeInQuad" + } + ListElement { + type: "easeOutQuad" + } + ListElement { + type: "easeInOutQuad" + } + ListElement { + type: "easeOutInQuad" + } + ListElement { + type: "easeInCubic" + } + ListElement { + type: "easeOutCubic" + } + ListElement { + type: "easeInOutCubic" + } + ListElement { + type: "easeOutInCubic" + } + ListElement { + type: "easeInQuart" + } + ListElement { + type: "easeOutQuart" + } + ListElement { + type: "easeInOutQuart" + } + ListElement { + type: "easeOutInQuart" + } + ListElement { + type: "easeInQuint" + } + ListElement { + type: "easeOutQuint" + } + ListElement { + type: "easeInOutQuint" + } + ListElement { + type: "easeOutInQuint" + } + ListElement { + type: "easeInSine" + } + ListElement { + type: "easeOutSine" + } + ListElement { + type: "easeInOutSine" + } + ListElement { + type: "easeOutInSine" + } + ListElement { + type: "easeInExpo" + } + ListElement { + type: "easeOutExpo" + } + ListElement { + type: "easeInOutExpo" + } + ListElement { + type: "easeOutInExpo" + } + ListElement { + type: "easeInCirc" + } + ListElement { + type: "easeOutCirc" + } + ListElement { + type: "easeInOutCirc" + } + ListElement { + type: "easeOutInCirc" + } + ListElement { + type: "easeInElastic" + } + ListElement { + type: "easeOutElastic" + } + ListElement { + type: "easeInOutElastic" + } + ListElement { + type: "easeOutInElastic" + } + ListElement { + type: "easeInBack" + } + ListElement { + type: "easeOutBack" + } + ListElement { + type: "easeInOutBack" + } + ListElement { + type: "easeOutInBack" + } + ListElement { + type: "easeOutBounce" + } + ListElement { + type: "easeInBounce" + } + ListElement { + type: "easeInOutBounce" + } + ListElement { + type: "easeOutInBounce" + } + } + ] + Column { + id: layout + anchors.left: item.left + anchors.right: item.right + Repeater { + model: easingtypes + Component { + Rectangle { + id: block + Text { + text: type + anchors.centerIn: parent + font.italic: true + color: index & 1 ? "black" : "white" + opacity: 0 // 1 for debugging + } + width: 120 + height: 18 + color: index & 1 ? "red" : "blue" + states: [ + State { + name: "from" + when: !mouse.pressed + PropertyChanges { + target: block + x: 0 + } + }, + State { + name: "to" + when: mouse.pressed + PropertyChanges { + target: block + x: item.width-block.width + } + } + ] + transitions: [ + Transition { + from: "*" + to: "to" + reversible: true + NumberAnimation { + matchProperties: "x" + easing: type + duration: 1000 + } + } + ] + } + } + } + } + MouseRegion { + id: mouse + anchors.fill: layout + } +} diff --git a/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png new file mode 100644 index 0000000..399bd0b Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png new file mode 100644 index 0000000..82c18d7 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png new file mode 100644 index 0000000..b9a3b89 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png new file mode 100644 index 0000000..789615b Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml new file mode 100644 index 0000000..5f5b8fc --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml @@ -0,0 +1,463 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 32 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 48 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 64 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 80 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 96 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 112 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 128 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 144 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 160 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 176 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 192 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 208 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 224 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 240 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 256 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 272 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 288 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 304 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 320 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 336 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 352 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 368 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 384 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 400 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 416 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 432 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 448 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 464 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 480 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 496 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 512 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 528 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 544 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 560 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 576 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 592 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 608 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 624 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 640 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 656 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 672 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 688 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 704 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 720 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 736 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 752 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 137; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 768 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 784 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 800 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 816 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 832 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 848 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 864 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 137; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 880 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 896 + hash: "0fada111cb977c4de8c7499e44714f38" + } + Frame { + msec: 912 + hash: "1817e010332117dcddc1a1b1a2caf52d" + } + Frame { + msec: 928 + hash: "e4add6bf93479c9bca571419fe2fabf9" + } + Frame { + msec: 944 + hash: "d8812e206d2cbf434d58db6a35439a44" + } + Frame { + msec: 960 + image: "parallelAnimation.0.png" + } + Frame { + msec: 976 + hash: "a238178c584aaf2563d29bff927d5bab" + } + Frame { + msec: 992 + hash: "f583e9fe8feda02e796a61c5fed7b0eb" + } + Frame { + msec: 1008 + hash: "b3a1a4fd85912831e551a8c07da1a561" + } + Frame { + msec: 1024 + hash: "f7c111ee4a04af6c1da958f8b56c28ee" + } + Frame { + msec: 1040 + hash: "f53fa374817d81ee44fb98e64e464b36" + } + Frame { + msec: 1056 + hash: "547ddef13cbcaaf57bb1f4e2bb7bc822" + } + Frame { + msec: 1072 + hash: "8b10ccfef926103a6d67d68eee250f83" + } + Frame { + msec: 1088 + hash: "008bbb50dc659e6f5eea15290680edd7" + } + Frame { + msec: 1104 + hash: "0217e3230d3df44363a023d0d7defc5f" + } + Frame { + msec: 1120 + hash: "ab9907a92452de6878f4c346febe705c" + } + Frame { + msec: 1136 + hash: "7bce31f347a7f0598d2d64026c702f3e" + } + Frame { + msec: 1152 + hash: "032080184907bc5b01db7675802d7dbe" + } + Frame { + msec: 1168 + hash: "2cba43a2e5febcc44bfd1379b9cb2591" + } + Frame { + msec: 1184 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1200 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1216 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1232 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1248 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1264 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1280 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1296 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1312 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1328 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1344 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1360 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1376 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1392 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1408 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1424 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1440 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1456 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1472 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1488 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1504 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 1520 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1536 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1552 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1568 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1584 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1600 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1616 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1632 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1648 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1664 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1680 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1696 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1712 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1728 + hash: "b901a51b5605621adff7b34c61f8f320" + } +} diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml new file mode 100644 index 0000000..9e0422f --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml @@ -0,0 +1,43 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 200 + Rectangle { + id: redRect + width: 100; height: 100 + color: "red" + } + Rectangle { + id: redRect2 + width: 100; height: 100 + y: 100 + color: "red" + } + + MouseRegion { + anchors.fill: parent + onClicked: parent.state = "state1" + } + + states: State { + name: "state1" + PropertyChanges { + target: redRect + x: 300 + color: "purple" + } + PropertyChanges { + target: redRect2 + x: 300 + color: "purple" + } + } + + transitions: Transition { + PropertyAnimation { matchTargets: redRect; matchProperties: "x,color"; duration: 300 } + ParallelAnimation { + NumberAnimation { matchTargets: redRect2; matchProperties: "x"; duration: 300 } + ColorAnimation { matchTargets: redRect2; matchProperties: "color"; duration: 300 } + } + } +} diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png new file mode 100644 index 0000000..a0032f8 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png new file mode 100644 index 0000000..958b6af Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png new file mode 100644 index 0000000..3a1811f Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png new file mode 100644 index 0000000..36064c2 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png new file mode 100644 index 0000000..c493a1d Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png new file mode 100644 index 0000000..c493a1d Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml new file mode 100644 index 0000000..de27af7 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml @@ -0,0 +1,1207 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 32 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 48 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 64 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 80 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 96 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 112 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 128 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 144 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 160 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 176 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 192 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 208 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 224 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 240 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 256 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 272 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 288 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 304 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 320 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 336 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 352 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 368 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 384 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 400 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 416 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 432 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 448 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 464 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 480 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 496 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 512 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 528 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 544 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 560 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 576 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 150; y: 274 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 592 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 608 + hash: "a7bb3d44c8bcf403906afa86f5bc3062" + } + Frame { + msec: 624 + hash: "2b366e6009e70fa0227a1fee662fe1bf" + } + Frame { + msec: 640 + hash: "c12869fb8002aa36c3bfad7fd0979240" + } + Frame { + msec: 656 + hash: "56c583e77b5e0a8707e977dc937c2acf" + } + Frame { + msec: 672 + hash: "6b191d57a45a3f2d010a7f44064e409a" + } + Frame { + msec: 688 + hash: "9457ee33c999a63fa4bd4db5c3ceac8b" + } + Frame { + msec: 704 + hash: "446b23b662640ad6ad8c456f956fe73a" + } + Frame { + msec: 720 + hash: "23c59708069406486e4979c7d59f3f4a" + } + Frame { + msec: 736 + hash: "c9ce43ddca79b5b6f26af2c2259dc071" + } + Frame { + msec: 752 + hash: "e838229ba70c30112918f19bb471fa34" + } + Frame { + msec: 768 + hash: "0cbaeddb2ff6408a37a68fc685e2bca0" + } + Frame { + msec: 784 + hash: "616b4ec719586b151ba3d709e51038bf" + } + Frame { + msec: 800 + hash: "89b2c709f5c3083c204a9450e605c1d4" + } + Frame { + msec: 816 + hash: "427a5c2d13631d899ff2d673e762f114" + } + Frame { + msec: 832 + hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb" + } + Frame { + msec: 848 + hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4" + } + Frame { + msec: 864 + hash: "5607ea54f9990f3232d6f56080e1ef15" + } + Frame { + msec: 880 + hash: "600682467c55288b9d5e65299637dd72" + } + Frame { + msec: 896 + hash: "bc7a238611574a13650f854ceac35032" + } + Frame { + msec: 912 + hash: "e5f6b19b3685a96d4d0c3b8384513643" + } + Frame { + msec: 928 + hash: "d5d23b0fc09136fd1ae121e311866cc3" + } + Frame { + msec: 944 + hash: "5099e5edd1a6bd37f5f6c836a6ca7644" + } + Frame { + msec: 960 + image: "parentAction.0.png" + } + Frame { + msec: 976 + hash: "97dd20f7774cfd8379e1d1b44f8ddc7b" + } + Frame { + msec: 992 + hash: "ab2deea9e4f8c43ed58b5a355800ecda" + } + Frame { + msec: 1008 + hash: "88ec383ce368259d3cc18612b6f5b941" + } + Frame { + msec: 1024 + hash: "f84b20b849a77e50717f99b9d844240e" + } + Frame { + msec: 1040 + hash: "6c042360c2d24ad56cec32d01ce82d6b" + } + Frame { + msec: 1056 + hash: "c86b464720192f3e039fa5d8ab5f09bb" + } + Frame { + msec: 1072 + hash: "35ec432fdf91fcd1dfcd945cfe785b09" + } + Frame { + msec: 1088 + hash: "27a2ec28e4fef006622e8211fd709853" + } + Frame { + msec: 1104 + hash: "8454d1f5ed89551e2a403c869885116a" + } + Frame { + msec: 1120 + hash: "7e33aed53dc4338c168274d972c8e711" + } + Frame { + msec: 1136 + hash: "e0192ea2049d6bae6012f00406630a92" + } + Frame { + msec: 1152 + hash: "a2ea5489a373084169024035a0f69e71" + } + Frame { + msec: 1168 + hash: "6947a72c4d959b90dafdaddcac815b3e" + } + Frame { + msec: 1184 + hash: "0e22cc3c96d0934095b7254f0f28b18b" + } + Frame { + msec: 1200 + hash: "72529ddc6f2678a783aedf445d7038a4" + } + Frame { + msec: 1216 + hash: "38f03c0ee50488ffd23a2fb3d3445461" + } + Frame { + msec: 1232 + hash: "b441721ed30c787874a2a71a94e1ba44" + } + Frame { + msec: 1248 + hash: "1e37f26d78590414b2ef01c72ad136a9" + } + Frame { + msec: 1264 + hash: "88e4af80d068485ebd8c3d51f9bbfe8d" + } + Frame { + msec: 1280 + hash: "107707216c16c629d8409cf006f9f2dc" + } + Frame { + msec: 1296 + hash: "f56f3f4f140ac072f7df47eddfc76844" + } + Frame { + msec: 1312 + hash: "41239a9d8ed793c24967875aabeae8a5" + } + Frame { + msec: 1328 + hash: "30035e37320dae4f9ead01a30895eb38" + } + Frame { + msec: 1344 + hash: "fb2f535b42b862b65f8adb3ad1a46779" + } + Frame { + msec: 1360 + hash: "e10ba7f74d52fc963e20a4647ff0d620" + } + Frame { + msec: 1376 + hash: "5abf5388566bed2fdb71afc8cd7cfe9b" + } + Frame { + msec: 1392 + hash: "91990471563e3c8292e8e8325a1d17a2" + } + Frame { + msec: 1408 + hash: "59a6293a48f83a9197adcffed3f32f15" + } + Frame { + msec: 1424 + hash: "db3e75df318e9f0d239ce9b76e92eff3" + } + Frame { + msec: 1440 + hash: "3b5c64bc64a701edb5c2e40b23443bc3" + } + Frame { + msec: 1456 + hash: "9db08c0375148b2317427591b5f43608" + } + Frame { + msec: 1472 + hash: "2d761f1530846eff87a7625a120e0afd" + } + Frame { + msec: 1488 + hash: "c5460f8c58b83c2ac15842ddb023ad4f" + } + Frame { + msec: 1504 + hash: "0efb51810a2dc359c7964268c98ea8eb" + } + Frame { + msec: 1520 + hash: "b92a42012df57eb261badf1f518b8e67" + } + Frame { + msec: 1536 + hash: "8d348bae62af2d35bdfee806a1c39910" + } + Frame { + msec: 1552 + hash: "762d9bb4ed11d249bfd902a541129d60" + } + Frame { + msec: 1568 + hash: "bddbd9f64a9f7156984feccd5fa94093" + } + Frame { + msec: 1584 + hash: "353a98e1573b0518941ff22bf2776244" + } + Frame { + msec: 1600 + hash: "1765aed97e29f25dee93a77a06557b82" + } + Frame { + msec: 1616 + hash: "73b5c2bdb7f268f7a33e129c8ba44013" + } + Frame { + msec: 1632 + hash: "46ac1976fb9932d0ef6e0b5927386ad9" + } + Frame { + msec: 1648 + hash: "90b5b5b46c9c352e8be41cc74f96133a" + } + Frame { + msec: 1664 + hash: "0efe0036577c890fd45cd7dd53014616" + } + Frame { + msec: 1680 + hash: "7f32df17481abf40ccb33afe6d17085d" + } + Frame { + msec: 1696 + hash: "1fa8544c48a476764f4f8278c14b651d" + } + Frame { + msec: 1712 + hash: "f8f06ece30f690deeba5999ce63bf40b" + } + Frame { + msec: 1728 + hash: "885b230f4b2fe380c7cf68955940d206" + } + Frame { + msec: 1744 + hash: "d0fc5aa4df46099bb46a1d7db30baa09" + } + Frame { + msec: 1760 + hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740" + } + Frame { + msec: 1776 + hash: "aa3b3b03460daf54f085551e1a46c08b" + } + Frame { + msec: 1792 + hash: "35a1728a2430027a9474fb7d61090643" + } + Frame { + msec: 1808 + hash: "2b1cff3986b8b03f1061176a4722b0f9" + } + Frame { + msec: 1824 + hash: "8047be1b35ee3d5078a68c6cdc35eeb7" + } + Frame { + msec: 1840 + hash: "7f7afa48bb7d612b354c8488e72c8339" + } + Frame { + msec: 1856 + hash: "691a876caefce9aa0f5140c17059b8f4" + } + Frame { + msec: 1872 + hash: "903bec66e47db766dc431f060726988c" + } + Frame { + msec: 1888 + hash: "f13593fc891f0b050c01b61963019da1" + } + Frame { + msec: 1904 + hash: "aa00de965bdb370a5974b195c3fb38af" + } + Frame { + msec: 1920 + image: "parentAction.1.png" + } + Frame { + msec: 1936 + hash: "168d3e27261c0943e6262b6be27adfb0" + } + Frame { + msec: 1952 + hash: "6fafebd0b396e7c0a78c767c6af936ba" + } + Frame { + msec: 1968 + hash: "827e3a3fcd6fd8588e9fcc043769b3a8" + } + Frame { + msec: 1984 + hash: "155329bf1c1a6f6c37bf7e6e8a92c59b" + } + Frame { + msec: 2000 + hash: "d3008d1e7cee5170171699ef6fb9aa81" + } + Frame { + msec: 2016 + hash: "5c1244e7806e131a6063f22a66e4eb12" + } + Frame { + msec: 2032 + hash: "fcd6b372229a6cf14face81e9d614456" + } + Frame { + msec: 2048 + hash: "bf1a375a81bf43c5671cccc62e9a0462" + } + Frame { + msec: 2064 + hash: "0e22404508470baaa6621f37361951fa" + } + Frame { + msec: 2080 + hash: "45046f28c103caa161e41861f71731c4" + } + Frame { + msec: 2096 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2112 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2128 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2144 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2160 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2176 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2192 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2208 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2224 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2240 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2256 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2272 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2288 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2304 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2320 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2336 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2352 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2368 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2384 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2400 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2416 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2432 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2448 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2464 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2480 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2496 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2512 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2528 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2544 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2560 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2576 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2592 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2608 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2624 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2640 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2656 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2672 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2688 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2704 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2720 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2736 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2752 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 150; y: 274 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2784 + hash: "44a0b46c21bd4c76d44883ba146e3614" + } + Frame { + msec: 2800 + hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9" + } + Frame { + msec: 2816 + hash: "ea9c05c0295a300e21aacbdfd5b4968e" + } + Frame { + msec: 2832 + hash: "e630e2893f89a6ae536bcbd1a084af07" + } + Frame { + msec: 2848 + hash: "af56f1e79eb3746efb9e4bcbc3fbced8" + } + Frame { + msec: 2864 + hash: "96be8c3ba0d7a85c6f6df877b869b563" + } + Frame { + msec: 2880 + image: "parentAction.2.png" + } + Frame { + msec: 2896 + hash: "603d8684cb6f097e3ab2a2e5ef053112" + } + Frame { + msec: 2912 + hash: "0433d242d1dd40a3792f55f807ebbff4" + } + Frame { + msec: 2928 + hash: "1190067cacc7361f6cfe09f153c7a07e" + } + Frame { + msec: 2944 + hash: "98e917880471511122847ad8a406e3a3" + } + Frame { + msec: 2960 + hash: "fff06869074a3a6c5823ed3fb6fa7a43" + } + Frame { + msec: 2976 + hash: "602d95daee8f160a0fd784931d0a06bd" + } + Frame { + msec: 2992 + hash: "f7e466bbd52f40e88ff567758f4db835" + } + Frame { + msec: 3008 + hash: "54417a4c4fb71d458439ad2e2126f8e1" + } + Frame { + msec: 3024 + hash: "fe150dd5056b9dbf1cd0b196e9a7a47b" + } + Frame { + msec: 3040 + hash: "1384c871bead85916f7bfcdebc370697" + } + Frame { + msec: 3056 + hash: "5f13339cc0e604b75a9d1d85342fa717" + } + Frame { + msec: 3072 + hash: "655069d61b7a44e729a2cbb33d683c3e" + } + Frame { + msec: 3088 + hash: "2324e9e4a02e41855b066983dbf0e61d" + } + Frame { + msec: 3104 + hash: "0217baf091325b95c033ba073bd68ce5" + } + Frame { + msec: 3120 + hash: "c27854c3af5b58db85846a1762ab18ba" + } + Frame { + msec: 3136 + hash: "45246ee6383ceb6260f84571a885ba90" + } + Frame { + msec: 3152 + hash: "d82ded86f093d1a376994cacf43d0343" + } + Frame { + msec: 3168 + hash: "c9179d30f80c6101bca2bed40d6a859f" + } + Frame { + msec: 3184 + hash: "a63e032d20a9d985c6c345434d98a364" + } + Frame { + msec: 3200 + hash: "fc7d6797ce15edf7fadb9dae691ecd5c" + } + Frame { + msec: 3216 + hash: "76cf37ad8c50fed8b1900784b647819c" + } + Frame { + msec: 3232 + hash: "256aab3690c9ba928bb4d4dd3bbfc756" + } + Frame { + msec: 3248 + hash: "90cab52fdefbae4e7d0f0f93b46ebeb0" + } + Frame { + msec: 3264 + hash: "badb5103bf826dc467f6e620cc2b47be" + } + Frame { + msec: 3280 + hash: "e7d0e437de5ebc0fa07b2a4ef11159cb" + } + Frame { + msec: 3296 + hash: "5931b1c3932ab91446324165d7e2603a" + } + Frame { + msec: 3312 + hash: "ce1808db90ba955ab3cb845500f4c013" + } + Frame { + msec: 3328 + hash: "142f8a440d1fe2d868f47ba3006de9d7" + } + Frame { + msec: 3344 + hash: "10d32a6cc90319ea66d7f2c1241590ce" + } + Frame { + msec: 3360 + hash: "7f633559d715396e6de451b3dd2fadbd" + } + Frame { + msec: 3376 + hash: "d44590ae51ceef5e082747c44bc41be9" + } + Frame { + msec: 3392 + hash: "2b498181668fb1fbf65294d575654929" + } + Frame { + msec: 3408 + hash: "7efeeffd08e4de440da83511313de729" + } + Frame { + msec: 3424 + hash: "8de2331393d1e712192d11ed096836d3" + } + Frame { + msec: 3440 + hash: "fa9381ef2e295865a9b8cb9b36a0eacf" + } + Frame { + msec: 3456 + hash: "97debc4432c5ecb7f606a81e5411b02c" + } + Frame { + msec: 3472 + hash: "eb4c1bb1f4398e3c18182c28a015be76" + } + Frame { + msec: 3488 + hash: "a976aa509f4c6f309d9a6011eeae02aa" + } + Frame { + msec: 3504 + hash: "457de7ee05e0ef0ef120a3d4e371c02e" + } + Frame { + msec: 3520 + hash: "0c01f9f150fe33155fa20703735a6d27" + } + Frame { + msec: 3536 + hash: "5af4f80624082a264010247ea8630a1a" + } + Frame { + msec: 3552 + hash: "b23a1191d149549fa29a61b6dc70f037" + } + Frame { + msec: 3568 + hash: "e00fb32cb13b1347e4b7b9fdbcca68e5" + } + Frame { + msec: 3584 + hash: "fef0503c82f253f8bc3fb3e705a98aa7" + } + Frame { + msec: 3600 + hash: "7a9beca28340d2aa89da5e05f5ac2a55" + } + Frame { + msec: 3616 + hash: "f3c57ea07ab486ffa1f46da60de0b8f1" + } + Frame { + msec: 3632 + hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f" + } + Frame { + msec: 3648 + hash: "1b317a9eb4ce022f005d551546c688a4" + } + Frame { + msec: 3664 + hash: "628e912a4a26800b9b7b5e60e60e3a7d" + } + Frame { + msec: 3680 + hash: "3587b75e4d834a88729754d2c2a4b193" + } + Frame { + msec: 3696 + hash: "084bc1360a38123589baec5aae15b4ff" + } + Frame { + msec: 3712 + hash: "47f0f6c3cdf456826a6fd6846e58dcc8" + } + Frame { + msec: 3728 + hash: "ed982c4c3ebd132baaaf43efad40a3f7" + } + Frame { + msec: 3744 + hash: "d7ddce47c23fada4c69d53d934582d71" + } + Frame { + msec: 3760 + hash: "74f2f911bee26c4c551f4c70596753ae" + } + Frame { + msec: 3776 + hash: "3ed7cbf10dfce3a485d7878766cf9da6" + } + Frame { + msec: 3792 + hash: "87a74257551ab6c7fcfe05e815482ae9" + } + Frame { + msec: 3808 + hash: "4f63e4904e97d4ce832b20b7317a9958" + } + Frame { + msec: 3824 + hash: "f912da8781e547c6e28890655c1b8884" + } + Frame { + msec: 3840 + image: "parentAction.3.png" + } + Frame { + msec: 3856 + hash: "faa640ccf993324400254ffb862ac279" + } + Frame { + msec: 3872 + hash: "b67f342424d1b9a364b09da8994fcd6b" + } + Frame { + msec: 3888 + hash: "b2407732194c1e0c2a9bfb379b94b562" + } + Frame { + msec: 3904 + hash: "55733608d0302ef90c124322ac6d8dc6" + } + Frame { + msec: 3920 + hash: "734f5b628a26d3d7c91ee84fb26d5b5f" + } + Frame { + msec: 3936 + hash: "27839fefa4a218cd77843358392bb874" + } + Frame { + msec: 3952 + hash: "8cac19559d37bd2b581cef0a4c707753" + } + Frame { + msec: 3968 + hash: "91422870aa1471571e7dd8ff5103f76c" + } + Frame { + msec: 3984 + hash: "7156166d5f8d13483467ef515627c95d" + } + Frame { + msec: 4000 + hash: "6028e8374c2ce42a9a9e85b4a8b53027" + } + Frame { + msec: 4016 + hash: "17c99592be58d2e03f9f173c47c0649b" + } + Frame { + msec: 4032 + hash: "6084b53186c6a7eda38ac7fa34bf45ce" + } + Frame { + msec: 4048 + hash: "e82131a8a5a06519f49308bbc25738cf" + } + Frame { + msec: 4064 + hash: "77bdb69cbe55d9c503c6aa1c0f974d87" + } + Frame { + msec: 4080 + hash: "b2346ec5d376651347281d5fb00fc4d7" + } + Frame { + msec: 4096 + hash: "36a3b72c9d7f09795c546855a269801d" + } + Frame { + msec: 4112 + hash: "4e5478b33baca797f3f8f72c2c6c51ad" + } + Frame { + msec: 4128 + hash: "e59d12be3ed1f58de010d385ddfe78e5" + } + Frame { + msec: 4144 + hash: "9674106a146effd47c2724a2dd82ae84" + } + Frame { + msec: 4160 + hash: "862cec781f169f713032e6d52d3616ce" + } + Frame { + msec: 4176 + hash: "c8d47bdfb6518ef4827677023313d559" + } + Frame { + msec: 4192 + hash: "19413931b3e788067dfaef39b47d30ff" + } + Frame { + msec: 4208 + hash: "600e426532c0348cd622257b0773efd5" + } + Frame { + msec: 4224 + hash: "6d975e259d4efa108375d271451531c1" + } + Frame { + msec: 4240 + hash: "50b0da4848564c063694202ce16ea808" + } + Frame { + msec: 4256 + hash: "0a9450739031f680735b5210e6a30c3f" + } + Frame { + msec: 4272 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4288 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4304 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4320 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4336 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4352 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4368 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4384 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4400 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4416 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4432 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4448 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4464 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4480 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4496 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4512 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4528 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4544 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 4560 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4576 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4592 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4608 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4624 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4640 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4656 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4672 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4688 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4704 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } +} diff --git a/tests/auto/declarative/visual/animation/parentAction/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml new file mode 100644 index 0000000..e69d234 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml @@ -0,0 +1,55 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Item { + scale: .5 + rotation: 15 + transformOrigin: "Center" + x: 10; y: 10 + Rectangle { + id: MyRect + x: 5 + width: 100; height: 100 + transformOrigin: "BottomLeft" + color: "red" + } + } + MouseRegion { + id: Clickable + anchors.fill: parent + } + + Item { + x: 200; y: 200 + rotation: 52; + scale: 2 + Item { + id: newParent + x: 100; y: 100 + } + } + + states: State { + name: "moved" + when: Clickable.pressed + ParentChange { + target: MyRect + parent: newParent + } + PropertyChanges { + target: MyRect + rotation: -52 + scale: 1 + color: "blue" + } + } + + transitions: Transition { + SequentialAnimation { + ColorAnimation { duration: 500} + ParentAction {} + NumberAnimation { matchProperties: "rotation, scale"; duration: 1000 } + } + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png new file mode 100644 index 0000000..693a794 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png new file mode 100644 index 0000000..06d43f1 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png new file mode 100644 index 0000000..e619baf Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png new file mode 100644 index 0000000..30c7671 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png new file mode 100644 index 0000000..132803c Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png new file mode 100644 index 0000000..8372bc3 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml new file mode 100644 index 0000000..73c6542 --- /dev/null +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml @@ -0,0 +1,1619 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 32 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 48 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 64 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 80 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 96 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 112 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 128 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 144 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 160 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 176 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 192 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 208 + hash: "21f0b0437a999bbde66a913032d495c2" + } + Frame { + msec: 224 + hash: "0809d32d5bc1bfce199b1f39a1c68d4f" + } + Frame { + msec: 240 + hash: "022137587b39f5123835482178a1f1cf" + } + Frame { + msec: 256 + hash: "97566ce9558d13ea0780bce233097b27" + } + Frame { + msec: 272 + hash: "96d79b07da105b7f631ed61582b26f7e" + } + Frame { + msec: 288 + hash: "f4732ff2df93fe67cb850dec34184924" + } + Frame { + msec: 304 + hash: "054e6e52f74a3e24f04e6ad0071f79f8" + } + Frame { + msec: 320 + hash: "f541af93a9fde62e4bd1c91d30f91e65" + } + Frame { + msec: 336 + hash: "c4f844ee71f23635bb3ec7375f6a134f" + } + Frame { + msec: 352 + hash: "3e52e06db2bf78762bb9816fe6b105d9" + } + Frame { + msec: 368 + hash: "d9604be23a91327e6ab454609a9d4a13" + } + Frame { + msec: 384 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 400 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 416 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 432 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 448 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 464 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 480 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 496 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 512 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 528 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 544 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 560 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 576 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 592 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 608 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 624 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 640 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 656 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 672 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 688 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 704 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 720 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 736 + hash: "7d9096b1eb940c82a37baf39ef3ccf3e" + } + Frame { + msec: 752 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 768 + hash: "da60100dc55023c3bab367d97c8f6a85" + } + Frame { + msec: 784 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 800 + hash: "3f869538028a09020d5e8f528f4fb119" + } + Frame { + msec: 816 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 832 + hash: "2cb09d9655ecc30ae6a591b28c0d355c" + } + Frame { + msec: 848 + hash: "4db9bc6c11caf1d77794c2eabb62a44e" + } + Frame { + msec: 864 + hash: "ce2b5dd7418868acf86fea6ad19cc0c5" + } + Frame { + msec: 880 + hash: "7c27ef654e645679c90520d6cf00b0c4" + } + Frame { + msec: 896 + hash: "ab3e211df3ef7f5f7a8d712edc891c0f" + } + Frame { + msec: 912 + hash: "19d2ae617a49b57dd012677e2834469c" + } + Frame { + msec: 928 + hash: "5025eb75c88f0760f637e0342b7f88a2" + } + Frame { + msec: 944 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 960 + image: "pauseAnimation.0.png" + } + Frame { + msec: 976 + hash: "5f18a81707f23d377e81a27c1fc41ce9" + } + Frame { + msec: 992 + hash: "bcc35497884c158396c7f60759d1fda4" + } + Frame { + msec: 1008 + hash: "7a4528b000a4ea142d1c77407fa1f581" + } + Frame { + msec: 1024 + hash: "ba967a7d810a4531e577e5f6bd2def33" + } + Frame { + msec: 1040 + hash: "f5afd9cf8ffe27e9992454b9e68688cb" + } + Frame { + msec: 1056 + hash: "51d475c7f64a86d3a18fb115297a7b6b" + } + Frame { + msec: 1072 + hash: "49f5d6fd45c195a8d245b7fefc1277ab" + } + Frame { + msec: 1088 + hash: "f9b0b278659e3a0f78611e6b7f0f2176" + } + Frame { + msec: 1104 + hash: "0809d32d5bc1bfce199b1f39a1c68d4f" + } + Frame { + msec: 1120 + hash: "b7208d103b63a936dff8dd8ed224237f" + } + Frame { + msec: 1136 + hash: "a57c81049b0dc68090ec7c3327b9922c" + } + Frame { + msec: 1152 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1168 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1184 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1200 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1216 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 1232 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 1248 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 1264 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 1280 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 1296 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 1312 + hash: "f0d8132489c2f2ef760e905b3c093726" + } + Frame { + msec: 1328 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 1344 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1360 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 1376 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 1392 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1408 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 1424 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 1440 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1456 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1472 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1488 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1504 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1520 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1536 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1552 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1568 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1584 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1600 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1616 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1632 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1648 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1664 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1680 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1696 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1712 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1728 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1744 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1760 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1776 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1792 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 1808 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 1824 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1840 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 1856 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 1872 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1888 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 1904 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 1920 + image: "pauseAnimation.1.png" + } + Frame { + msec: 1936 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 1952 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 1968 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 1984 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2000 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2016 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 2032 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2048 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2064 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2080 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2096 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2112 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2128 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2144 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2160 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2176 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2192 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2208 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2224 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2240 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2256 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2272 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2288 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 2304 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2320 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2336 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2352 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2368 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2384 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2400 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2416 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2432 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2448 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2464 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2480 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2496 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2512 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2528 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2544 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2560 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2576 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2592 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2608 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2624 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2640 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2656 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2672 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2688 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2704 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2720 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2736 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2752 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2768 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2784 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2800 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2816 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2832 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2848 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2864 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2880 + image: "pauseAnimation.2.png" + } + Frame { + msec: 2896 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2912 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2928 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2944 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2960 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2976 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2992 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3008 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3024 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3040 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3056 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3072 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3088 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3104 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3120 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3136 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3152 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3168 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3184 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3200 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3216 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3232 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3248 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3264 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3280 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3296 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3312 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3328 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3344 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3360 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3376 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3392 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3408 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3424 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3440 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3456 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3472 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3488 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3504 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3520 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3536 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3552 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 3568 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 3584 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 3600 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 3616 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 3632 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 3648 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 3664 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 3680 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 3696 + hash: "630d90eef2673a69e8ebc4ef1ba40e81" + } + Frame { + msec: 3712 + hash: "b7208d103b63a936dff8dd8ed224237f" + } + Frame { + msec: 3728 + hash: "1516c3547c7cf64832b3bc7da7c44521" + } + Frame { + msec: 3744 + hash: "49f5d6fd45c195a8d245b7fefc1277ab" + } + Frame { + msec: 3760 + hash: "f5afd9cf8ffe27e9992454b9e68688cb" + } + Frame { + msec: 3776 + hash: "7a4528b000a4ea142d1c77407fa1f581" + } + Frame { + msec: 3792 + hash: "5f18a81707f23d377e81a27c1fc41ce9" + } + Frame { + msec: 3808 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 3824 + hash: "85c135ef72d3d25658a3663e69ffb7c2" + } + Frame { + msec: 3840 + image: "pauseAnimation.3.png" + } + Frame { + msec: 3856 + hash: "20258f07c613958c32f783466771391a" + } + Frame { + msec: 3872 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 3888 + hash: "f340cdf60c6d4c29d26b7202a093ec70" + } + Frame { + msec: 3904 + hash: "d754d35d0793f9f7d4f6249a874e4c45" + } + Frame { + msec: 3920 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 3936 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 3952 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 3968 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 3984 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4000 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4016 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4032 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4048 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4064 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4080 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4096 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4112 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 4128 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 4144 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 4160 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 4176 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 4192 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 4208 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 4224 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 4240 + hash: "7d9096b1eb940c82a37baf39ef3ccf3e" + } + Frame { + msec: 4256 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 4272 + hash: "da60100dc55023c3bab367d97c8f6a85" + } + Frame { + msec: 4288 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 4304 + hash: "b2c778a5eff5f01edc54f03d8b4de8c7" + } + Frame { + msec: 4320 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 4336 + hash: "2cb09d9655ecc30ae6a591b28c0d355c" + } + Frame { + msec: 4352 + hash: "4db9bc6c11caf1d77794c2eabb62a44e" + } + Frame { + msec: 4368 + hash: "ce2b5dd7418868acf86fea6ad19cc0c5" + } + Frame { + msec: 4384 + hash: "c4f844ee71f23635bb3ec7375f6a134f" + } + Frame { + msec: 4400 + hash: "4e1fda8a0495ef968c1cffb1257426d7" + } + Frame { + msec: 4416 + hash: "19d2ae617a49b57dd012677e2834469c" + } + Frame { + msec: 4432 + hash: "f438e8d2c16b5de677924c8411219b19" + } + Frame { + msec: 4448 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 4464 + hash: "87b71778d52cd8563d171151d4d32407" + } + Frame { + msec: 4480 + hash: "691cd8bf5c7802ff6c5024827a379fc6" + } + Frame { + msec: 4496 + hash: "ab442c0173c3d221b6782d28001dac77" + } + Frame { + msec: 4512 + hash: "6f886d4538704c2fad4d84c68214109f" + } + Frame { + msec: 4528 + hash: "56d39f233fae41c60499d6161f891cbc" + } + Frame { + msec: 4544 + hash: "95d987c3fd1352fb81c42c63634fe53b" + } + Frame { + msec: 4560 + hash: "96dc84c0c548021910e7c5b580179054" + } + Frame { + msec: 4576 + hash: "ddb71cbd57f6e43744d533d4f72b08db" + } + Frame { + msec: 4592 + hash: "f7ab4b197bea455b22f259913438d207" + } + Frame { + msec: 4608 + hash: "2ad64cb01c9d50e0118d5ece0a644df2" + } + Frame { + msec: 4624 + hash: "6579681c59dd571df0ee4429d74fb5c7" + } + Frame { + msec: 4640 + hash: "630d90eef2673a69e8ebc4ef1ba40e81" + } + Frame { + msec: 4656 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 4672 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 4688 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 4704 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 4720 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 4736 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 4752 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 4768 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 4784 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 4800 + image: "pauseAnimation.4.png" + } + Frame { + msec: 4816 + hash: "f0d8132489c2f2ef760e905b3c093726" + } + Frame { + msec: 4832 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 4848 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 4864 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 4880 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 4896 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 4912 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 4928 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 4944 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 4960 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 4976 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 4992 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5008 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5024 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5040 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5056 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5072 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5088 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5104 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5120 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5136 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5152 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5168 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5184 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5200 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5216 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5232 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 5248 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 5264 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 5280 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 5296 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 5312 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 5328 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 5344 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 5360 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 5376 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 5392 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 5408 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 5424 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5440 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5456 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5472 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 5488 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5504 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5520 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5536 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5552 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5568 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5584 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5600 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5616 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5632 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5648 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5664 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5680 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5696 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5712 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5728 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5744 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5760 + image: "pauseAnimation.5.png" + } + Frame { + msec: 5776 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5792 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5808 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5824 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5840 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 5856 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5872 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5888 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5904 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5920 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5936 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5952 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5968 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5984 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 6000 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 6016 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6032 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6048 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6064 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6080 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6096 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6112 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6128 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6144 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6160 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6176 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6192 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6208 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6224 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6240 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6256 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6272 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6288 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6304 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6320 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6336 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6352 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6368 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6384 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6400 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6416 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml new file mode 100644 index 0000000..fba8ae6 --- /dev/null +++ b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml @@ -0,0 +1,30 @@ +import Qt 4.6 + +Rectangle { + id: rect + width: 120 + height: 200 + color: "white" + Image { + id: img + source: "pics/qtlogo.png" + x: 60-width/2 + y: 200-height + y: SequentialAnimation { + running: true + repeat: true + NumberAnimation { + to: 0; duration: 500 + easing: "easeInOutQuad" + } + NumberAnimation { + to: 200-img.height + easing: "easeOutBounce" + duration: 2000 + } + PauseAnimation { + duration: 1000 + } + } + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png new file mode 100644 index 0000000..399bd0b Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png new file mode 100644 index 0000000..64d6b06 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png new file mode 100644 index 0000000..f7fce15 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png new file mode 100644 index 0000000..3080df5 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml new file mode 100644 index 0000000..7c8c233 --- /dev/null +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml @@ -0,0 +1,939 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 32 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 48 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 64 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 80 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 96 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 112 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 128 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 144 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 160 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 176 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 192 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 208 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 224 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 240 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 256 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 272 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 288 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 304 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 320 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 336 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 352 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 368 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 384 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 400 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 416 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 432 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 448 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 464 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 480 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 496 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 512 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 528 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 544 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 560 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 576 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 592 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 608 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 624 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 640 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 656 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 672 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 688 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 704 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 720 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 736 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 752 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 768 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 784 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 800 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 816 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 832 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 848 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 864 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 880 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 896 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 912 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 928 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 944 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 960 + image: "propertyAction.0.png" + } + Frame { + msec: 976 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 992 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1008 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1024 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1040 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1056 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1072 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1088 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1104 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1120 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1136 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1152 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1168 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1184 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1200 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1216 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1232 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1248 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1264 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1280 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1296 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1312 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1328 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1344 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1360 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1376 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1392 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1408 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1424 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1440 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1456 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1472 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1488 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1504 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1520 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1536 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1552 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1568 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1584 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1600 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 109; y: 247 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1632 + hash: "c91921dba899d7a86de3cd013773889f" + } + Frame { + msec: 1648 + hash: "888c0fc86155e10b5fc577ef6ec5755a" + } + Frame { + msec: 1664 + hash: "7fd61a8910bf7b0d2bf57653a268c5d8" + } + Frame { + msec: 1680 + hash: "f42f5073f90a423adf011d0e168c8a9b" + } + Frame { + msec: 1696 + hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5" + } + Frame { + msec: 1712 + hash: "f10e997d7a17c18251a32d58b018105a" + } + Frame { + msec: 1728 + hash: "09ffb57d5f67edfa34d6aad36a002554" + } + Frame { + msec: 1744 + hash: "01f3a2f5b9815f1397a907b099339360" + } + Frame { + msec: 1760 + hash: "58c0910c49748edd2ef8472960179472" + } + Frame { + msec: 1776 + hash: "cc82c5f7f93c5bc1af1c6c509268566a" + } + Frame { + msec: 1792 + hash: "3ef272c6439b85fbc166375d1b98403c" + } + Frame { + msec: 1808 + hash: "98c576f0900e4b8752d1f951bb6bf391" + } + Frame { + msec: 1824 + hash: "4d66dd64d8736ef50163e08723873478" + } + Frame { + msec: 1840 + hash: "9a5d8455b6763456185625811253e0b1" + } + Frame { + msec: 1856 + hash: "77e85731efa786a2492aae19a87523c6" + } + Frame { + msec: 1872 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1888 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1904 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 1920 + image: "propertyAction.1.png" + } + Frame { + msec: 1936 + hash: "db3010ef552146df938c237f6c92bff5" + } + Frame { + msec: 1952 + hash: "101e8595d0301e88376ec52ba9361f84" + } + Frame { + msec: 1968 + hash: "119d548c59baa7e47266d2ceca663288" + } + Frame { + msec: 1984 + hash: "f141fafe102a0b9a2bf33e8c3fc800ff" + } + Frame { + msec: 2000 + hash: "b01f9ca8d4fbff17b3d48c70898a044d" + } + Frame { + msec: 2016 + hash: "cf67954a2d1b22e8d2cfdc26419bafb8" + } + Frame { + msec: 2032 + hash: "7680b2b5a63dea13d733947297e01355" + } + Frame { + msec: 2048 + hash: "af1c017acf6b3c8cff86c9ceb60db3cb" + } + Frame { + msec: 2064 + hash: "0b23ec51f71fddae5e2238ab5754f1db" + } + Frame { + msec: 2080 + hash: "976643961ecbdc86335180ba812b874e" + } + Frame { + msec: 2096 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2112 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2128 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2144 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2160 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2176 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2192 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2208 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2224 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2240 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2256 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2272 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2288 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2304 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2320 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2336 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2352 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2368 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2384 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2400 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2416 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2432 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2448 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2464 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2480 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2496 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2512 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2528 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2544 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2560 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2576 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2592 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2608 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2624 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2640 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2656 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2672 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2688 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2704 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2720 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2736 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2752 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 109; y: 247 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2784 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2800 + hash: "ab924ae435262e76381c2e4af5d64342" + } + Frame { + msec: 2816 + hash: "d60758fc12471a19d31c85f058f2ded7" + } + Frame { + msec: 2832 + hash: "c62e2956f8eb5d2c8cd76ba05c5929d5" + } + Frame { + msec: 2848 + hash: "f2967ee7e035a9ff258116a2706529f8" + } + Frame { + msec: 2864 + hash: "885c4705c6c29f69c56c44abc1251d75" + } + Frame { + msec: 2880 + image: "propertyAction.2.png" + } + Frame { + msec: 2896 + hash: "f4af6871e522511f95bc4c5abfc2a562" + } + Frame { + msec: 2912 + hash: "b27e1e7e0d90468525309528ccfe2823" + } + Frame { + msec: 2928 + hash: "78e7d84a4466258b40315fe61b7ca15c" + } + Frame { + msec: 2944 + hash: "471013d921d8d6e7468fd6aba0b75c71" + } + Frame { + msec: 2960 + hash: "856048da893c9136ac5740bc89b64128" + } + Frame { + msec: 2976 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 2992 + hash: "2264fa3acd979f104633c1301a0efd8f" + } + Frame { + msec: 3008 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 3024 + hash: "ad899d1ecaa43a5541be7b70413caee5" + } + Frame { + msec: 3040 + hash: "4e652524c992f5ee1b987275ca509728" + } + Frame { + msec: 3056 + hash: "a44b3dec2a016694bc8553a51b29d46c" + } + Frame { + msec: 3072 + hash: "7fbe20346bc3c28c345e0797b55599f3" + } + Frame { + msec: 3088 + hash: "bcff18ad433bb4f08126ee66efb037d1" + } + Frame { + msec: 3104 + hash: "836666c64f73c38e87de95944ff2fe72" + } + Frame { + msec: 3120 + hash: "4379982d23db239b1741b5d72c53e160" + } + Frame { + msec: 3136 + hash: "0ed9476337214e1493c1510b8a4c90f8" + } + Frame { + msec: 3152 + hash: "dab637406577a1924c7dbb30680e1af3" + } + Frame { + msec: 3168 + hash: "dcc79277fdb8966e5a3f2ed1b2fc4292" + } + Frame { + msec: 3184 + hash: "5f207d1dfad4907f200d76104881bf56" + } + Frame { + msec: 3200 + hash: "3434fc7f81e859722585dae97c557864" + } + Frame { + msec: 3216 + hash: "7c775b9be8c5293d4962324574267c22" + } + Frame { + msec: 3232 + hash: "da0ff6955c2e4cd86421bdb9053f56e6" + } + Frame { + msec: 3248 + hash: "a1297d525a3ad41abbbb7c2f15efd4fb" + } + Frame { + msec: 3264 + hash: "5326b220995b2a1eaa308ad10fd353fa" + } + Frame { + msec: 3280 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3296 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3312 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3328 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3344 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 3360 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3376 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3392 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3408 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3424 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3440 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3456 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3472 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3488 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3504 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3520 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3536 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3552 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3568 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3584 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3600 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3616 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3632 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } +} diff --git a/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml new file mode 100644 index 0000000..a9d3c74 --- /dev/null +++ b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml @@ -0,0 +1,34 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Rectangle { + id: MyRect + width: 100; height: 100 + color: "red" + } + MouseRegion { + id: Clickable + anchors.fill: parent + } + + states: State { + name: "state1" + when: Clickable.pressed + PropertyChanges { + target: MyRect + x: 50; y: 50 + color: "blue" + } + } + + transitions: Transition { + to: "state1" + reversible: true + SequentialAnimation { + ColorAnimation {} + PropertyAction { matchProperties: "x" } + NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } + } + } +} diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png new file mode 100644 index 0000000..64d6b06 Binary files /dev/null and b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png new file mode 100644 index 0000000..1a25c63 Binary files /dev/null and b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml new file mode 100644 index 0000000..01da490 --- /dev/null +++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml @@ -0,0 +1,535 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 32 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 48 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 64 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 80 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 96 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 112 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 128 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 144 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 160 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 176 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 192 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 208 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 224 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 240 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 256 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 272 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 288 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 304 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 320 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 336 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 352 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 368 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 384 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 400 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 416 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 432 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 448 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 464 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 480 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 496 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 512 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 528 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 544 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 560 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 576 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 592 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 608 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 624 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 640 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 656 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 672 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 688 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 704 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 720 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 736 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 752 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 768 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 784 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 800 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 816 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 832 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 848 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 864 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 880 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 896 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 912 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 928 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 944 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 960 + image: "scriptAction.0.png" + } + Frame { + msec: 976 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 992 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1008 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1024 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1040 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1056 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1072 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1088 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 146; y: 259 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1120 + hash: "9850cd8ed4643900409d1a87ef0bc4cf" + } + Frame { + msec: 1136 + hash: "1cf03396b01e931e4e7e8e7e57e19c5f" + } + Frame { + msec: 1152 + hash: "25fe648b85ec2d82621853dcbdbf695a" + } + Frame { + msec: 1168 + hash: "1ca701e56fe387d5849f6933eb53aee9" + } + Frame { + msec: 1184 + hash: "b39ecb792659a053a8985e2a849d6d51" + } + Frame { + msec: 1200 + hash: "9a783432a054beec81cc5687f75a36dc" + } + Frame { + msec: 1216 + hash: "edbd222d7ba6c6f819ded45fe316d461" + } + Frame { + msec: 1232 + hash: "eaf20159c4b90f90872bbd514d3a0cec" + } + Frame { + msec: 1248 + hash: "964807dd9b91e765577a773ef1ce2593" + } + Frame { + msec: 1264 + hash: "16e12026ab14657b0f36b8315684455d" + } + Frame { + msec: 1280 + hash: "d001a6b2fec3c66baaa45d9ff93b3f63" + } + Frame { + msec: 1296 + hash: "fef11eb5f635bc11cd9679b7213b3b92" + } + Frame { + msec: 1312 + hash: "0a0cd5f5004048d88712cfe6943470c0" + } + Frame { + msec: 1328 + hash: "0d83178afdae5feaa9915d56c24373ad" + } + Frame { + msec: 1344 + hash: "0a9e6e0b7b23ce93dc4e1f886cf9c7d1" + } + Frame { + msec: 1360 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1376 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1392 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 1408 + hash: "dc98f32a1a2d6e74998123b5232107b0" + } + Frame { + msec: 1424 + hash: "db3010ef552146df938c237f6c92bff5" + } + Frame { + msec: 1440 + hash: "101e8595d0301e88376ec52ba9361f84" + } + Frame { + msec: 1456 + hash: "119d548c59baa7e47266d2ceca663288" + } + Frame { + msec: 1472 + hash: "f141fafe102a0b9a2bf33e8c3fc800ff" + } + Frame { + msec: 1488 + hash: "b01f9ca8d4fbff17b3d48c70898a044d" + } + Frame { + msec: 1504 + hash: "cf67954a2d1b22e8d2cfdc26419bafb8" + } + Frame { + msec: 1520 + hash: "7680b2b5a63dea13d733947297e01355" + } + Frame { + msec: 1536 + hash: "af1c017acf6b3c8cff86c9ceb60db3cb" + } + Frame { + msec: 1552 + hash: "0b23ec51f71fddae5e2238ab5754f1db" + } + Frame { + msec: 1568 + hash: "976643961ecbdc86335180ba812b874e" + } + Frame { + msec: 1584 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1600 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1616 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1632 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1648 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1664 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1680 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1696 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1712 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1728 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1744 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1760 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1776 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1792 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1808 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1824 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1840 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1856 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1872 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 1888 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1904 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1920 + image: "scriptAction.1.png" + } + Frame { + msec: 1936 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1952 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1968 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1984 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2000 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2016 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2032 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2048 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } +} diff --git a/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml new file mode 100644 index 0000000..872701b --- /dev/null +++ b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml @@ -0,0 +1,35 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Rectangle { + id: myRect + width: 100; height: 100 + color: "red" + } + MouseRegion { + id: clickable + anchors.fill: parent + } + + states: State { + name: "state1" + when: clickable.pressed + PropertyChanges { + target: myRect + x: 50; y: 50 + } + StateChangeScript { + name: "setColor" + script: myRect.color = "blue" + } + } + + transitions: Transition { + SequentialAnimation { + NumberAnimation { matchProperties: "x"; easing: "InOutQuad" } + ScriptAction { stateChangeScriptName: "setColor" } + NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } + } + } +} diff --git a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml deleted file mode 100644 index efbb1b4..0000000 --- a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml +++ /dev/null @@ -1,40 +0,0 @@ -import Qt 4.6 - -Rectangle { - color: "blue" - width: 320 - height: 240 - id: Page - Rectangle { - id: MyRectangle - width: 100 - height: 100 - color: "red" - x: 10 - } - states: [ - State { - name: "hello" - PropertyChanges { - target: MyRectangle - x: 100 - } - PropertyChanges { - target: MyMouseRegion - onClicked: "Page.currentState = ''" - } - } - ] - transitions: [ - Transition { - NumberAnimation { - matchProperties: "x" - } - } - ] - MouseRegion { - id: MyMouseRegion - anchors.fill: parent - onClicked: { Page.state= 'hello' } - } -} diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png deleted file mode 100644 index 1b08c81..0000000 Binary files a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png deleted file mode 100644 index f3074fc..0000000 Binary files a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml deleted file mode 100644 index 2501797..0000000 --- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml +++ /dev/null @@ -1,659 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 32 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 48 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 64 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 80 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 96 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 112 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 128 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 144 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 160 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 176 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 192 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 208 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 224 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 240 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 256 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 272 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 288 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 304 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 320 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 336 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 352 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 368 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 384 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 400 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 416 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 432 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 448 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 464 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 480 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 496 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 512 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 528 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 544 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 560 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 576 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 592 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 608 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 624 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 640 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 656 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 672 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 688 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 704 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 720 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 736 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 752 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 768 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 784 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 800 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 816 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 832 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 848 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 864 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 880 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 896 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 912 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 928 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 944 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 960 - image: "bindinganimation.0.png" - } - Frame { - msec: 976 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 992 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1008 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1024 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1040 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1056 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1072 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1088 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1104 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1120 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1136 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1152 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1168 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1184 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1200 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1216 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1232 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1248 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1264 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1280 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1296 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1312 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1328 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1344 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1360 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1376 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1392 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1408 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1424 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1440 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1456 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1472 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1488 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 150; y: 158 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1504 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1520 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1536 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1552 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1568 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 150; y: 158 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1584 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1600 - hash: "a78c9394bf3b81f192f42710cd7218b1" - } - Frame { - msec: 1616 - hash: "7f08e8170feb1d02373c9ab42b6e882d" - } - Frame { - msec: 1632 - hash: "967fbad8ac664400a3efbe66617d62aa" - } - Frame { - msec: 1648 - hash: "abc2ec0bc7a93e75b5823310e6284db1" - } - Frame { - msec: 1664 - hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" - } - Frame { - msec: 1680 - hash: "9413dffb7ee853ba0125ac22ab22abbd" - } - Frame { - msec: 1696 - hash: "fcae0317f81a3ddd713f4db1349a9da0" - } - Frame { - msec: 1712 - hash: "37739777a5979f3ebf85e47e63341660" - } - Frame { - msec: 1728 - hash: "72731478d80f024076ea639b55152360" - } - Frame { - msec: 1744 - hash: "69058485ced6bc992a1a7c5ee34add4c" - } - Frame { - msec: 1760 - hash: "391ad7ff2362e059f6170dfe306f94a7" - } - Frame { - msec: 1776 - hash: "f9f74a2e38b52c9266f33e428b6acd9d" - } - Frame { - msec: 1792 - hash: "25152412c4ea2aec6caf89486c073484" - } - Frame { - msec: 1808 - hash: "ba403842ba3128b1cdf6a9cb28c90751" - } - Frame { - msec: 1824 - hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" - } - Frame { - msec: 1840 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1856 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1872 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1888 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1904 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1920 - image: "bindinganimation.1.png" - } - Frame { - msec: 1936 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1952 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1968 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1984 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2000 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2016 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2032 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2048 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2064 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2080 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2096 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2112 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2128 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2144 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2160 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2176 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2192 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2208 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2224 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2240 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2256 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2272 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2288 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2304 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2320 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2336 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2352 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2368 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2384 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2400 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2416 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2432 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2448 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2464 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2480 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2496 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2512 - hash: "383ba6b9efcc58fca512982a207631f6" - } -} diff --git a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml deleted file mode 100644 index 0e98d7e..0000000 --- a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml +++ /dev/null @@ -1,41 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: mainrect - width: 200; height: 200 - state: "first" - states: [ - State { - name: "first" - PropertyChanges { - target: mainrect - color: "red" - } - }, - State { - name: "second" - PropertyChanges { - target: mainrect - color: "blue" - } - } - ] - transitions: [ - Transition { - from: "first" - to: "second" - reversible: true - SequentialAnimation { - ColorAnimation { - duration: 2000 - target: mainrect - property: "color" - } - } - } - ] - MouseRegion { - anchors.fill: parent - onClicked: { mainrect.state = 'second' } - } -} diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml deleted file mode 100644 index 900bf5c..0000000 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml +++ /dev/null @@ -1,951 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 32 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 48 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 64 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 80 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 96 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 112 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 128 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 144 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 160 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 176 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 192 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 208 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 224 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 240 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 256 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 272 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 288 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 304 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 320 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 336 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 352 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 368 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 384 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 400 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 416 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 432 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 448 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 464 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 480 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 496 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 512 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 528 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 544 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 560 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 576 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 592 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 608 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 624 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 640 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 656 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 672 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 688 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 704 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 720 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 736 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 752 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 768 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 784 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 800 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 816 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 832 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 848 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 864 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 880 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 912 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 928 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 944 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 960 - image: "colorAnimation.0.png" - } - Frame { - msec: 976 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 992 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1008 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1024 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1040 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1056 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1072 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1088 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1104 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1120 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1136 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1152 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1168 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1184 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1200 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1216 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1232 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1248 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1264 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1280 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1296 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1312 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1328 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1344 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1360 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1376 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1392 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1408 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1424 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1440 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1456 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1472 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1488 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1504 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1520 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1536 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1552 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1568 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1584 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1600 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1616 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1632 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1648 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1664 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1680 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1696 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1712 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1728 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1744 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1760 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1776 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1792 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1808 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1824 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1840 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1856 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1872 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1888 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1904 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1920 - image: "colorAnimation.1.png" - } - Frame { - msec: 1936 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1952 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1968 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1984 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2000 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2016 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2032 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2048 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2064 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2080 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2096 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2112 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2128 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2144 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2160 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2176 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2192 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2208 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2224 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2240 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2256 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2272 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2288 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2304 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2320 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2336 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2352 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2368 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2384 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2400 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2416 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2432 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2448 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2464 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2480 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2496 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2512 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2528 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2544 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2560 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2576 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2592 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2608 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2624 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2640 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2656 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2672 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2688 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2704 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2720 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2736 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2752 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2768 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2784 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2800 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2816 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2832 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2848 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2864 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2880 - image: "colorAnimation.2.png" - } - Frame { - msec: 2896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2912 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2928 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2944 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2960 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2976 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2992 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3008 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3024 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3040 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3056 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3072 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3088 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3104 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3120 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3136 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3152 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3168 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3184 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3200 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3216 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3232 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3248 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3264 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3280 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3296 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3312 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3328 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3344 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3360 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3376 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3392 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3408 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3424 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3440 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3456 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3472 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3488 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3504 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3520 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3536 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3552 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3568 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3584 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3600 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3616 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3632 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3648 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3664 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3680 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } -} diff --git a/tests/auto/declarative/visual/easing/data/easing.0.png b/tests/auto/declarative/visual/easing/data/easing.0.png deleted file mode 100644 index 4f75bfd..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.1.png b/tests/auto/declarative/visual/easing/data/easing.1.png deleted file mode 100644 index dc17765..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.2.png b/tests/auto/declarative/visual/easing/data/easing.2.png deleted file mode 100644 index 7f83548..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.3.png b/tests/auto/declarative/visual/easing/data/easing.3.png deleted file mode 100644 index c68e0fa..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.qml b/tests/auto/declarative/visual/easing/data/easing.qml deleted file mode 100644 index d8e8688..0000000 --- a/tests/auto/declarative/visual/easing/data/easing.qml +++ /dev/null @@ -1,779 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 32 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 48 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 64 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 80 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 96 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 112 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 128 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 144 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 160 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 176 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 192 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 208 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 224 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 240 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 256 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 272 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 288 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 304 - hash: "8f4c40d2e2b4f064bcb77c5ae43928c6" - } - Frame { - msec: 320 - hash: "8b65094a9b7d5394fc67f92ea058627f" - } - Frame { - msec: 336 - hash: "da450826b471a60ba98dabc581631ba1" - } - Frame { - msec: 352 - hash: "e820fb4f1bc97152aa940b07db549f1b" - } - Frame { - msec: 368 - hash: "b7d8186beca2fa0e37099f72419350f4" - } - Frame { - msec: 384 - hash: "8500b93774f214e5e4789e25500262b8" - } - Frame { - msec: 400 - hash: "277e1dff70285cca536b3e1fc2590688" - } - Frame { - msec: 416 - hash: "b05b18f92c2089c681661566117ae0f5" - } - Frame { - msec: 432 - hash: "6fec9c6b6ac3e3ea4126e3824a8d7566" - } - Frame { - msec: 448 - hash: "53c6c90dd1eb7ca47721fc116474aebf" - } - Frame { - msec: 464 - hash: "cf729c4a31414af3d2705878ba615738" - } - Frame { - msec: 480 - hash: "f146b8a68960d507f893ef001189220e" - } - Frame { - msec: 496 - hash: "18ff56b870bb048af246f928ee42a9b0" - } - Frame { - msec: 512 - hash: "beee98f73fe7e878ada37b3070fa0c1d" - } - Frame { - msec: 528 - hash: "435d389082912950a0be2b5dff480319" - } - Frame { - msec: 544 - hash: "dc39b080eaddeaf4e309b90b7d97a835" - } - Frame { - msec: 560 - hash: "666b1cde53f78d7db9c81e21adbe406a" - } - Frame { - msec: 576 - hash: "c5c9627f4329e48aa96ebfbc982b6ba6" - } - Frame { - msec: 592 - hash: "a583042052e5da7e80a4956337d6d1ff" - } - Frame { - msec: 608 - hash: "a4a5df787e15da6f28275a12898e7620" - } - Frame { - msec: 624 - hash: "02cacec2ccc803ebc03c5540484cbcaa" - } - Frame { - msec: 640 - hash: "00600df1f006f358feaf43bfae9d32a5" - } - Frame { - msec: 656 - hash: "737c884ba0d6d38b66252f4b97a36c33" - } - Frame { - msec: 672 - hash: "7eeeade8100c84a6b56efa51cf597baf" - } - Frame { - msec: 688 - hash: "18ab79d495097f0103dcf14db1897a88" - } - Frame { - msec: 704 - hash: "21d3b0da00c46a101e09048928cd8027" - } - Frame { - msec: 720 - hash: "a5995b0341872c275ffbc5aaee6eb853" - } - Frame { - msec: 736 - hash: "bb4a37c1bd5e412ebce54d9539017723" - } - Frame { - msec: 752 - hash: "63dcde9e2751ca94ed7d739feb359221" - } - Frame { - msec: 768 - hash: "5790c8407e2e4d1a6a937d86d57d8edb" - } - Frame { - msec: 784 - hash: "3a1c77abf6822030db60a036027dc86e" - } - Frame { - msec: 800 - hash: "2a13c573ab9846cce60384dd7138b2b4" - } - Frame { - msec: 816 - hash: "98983c2525265830033495b61071a5aa" - } - Frame { - msec: 832 - hash: "26d2bba3d77053b410715afb497d4063" - } - Frame { - msec: 848 - hash: "fd65d954c16acee425d9de65af68ef40" - } - Frame { - msec: 864 - hash: "094fcc18d28b19ac6b452dd8106d813b" - } - Frame { - msec: 880 - hash: "160105f6f99a960763535e4d51990ef6" - } - Frame { - msec: 896 - hash: "0d5d1e6a66fc1f49f1106f01fb5a1c52" - } - Frame { - msec: 912 - hash: "f6abc32680865783a4d94ecb738f9ff6" - } - Frame { - msec: 928 - hash: "350509eceb134d5b18647e5ad07dbb47" - } - Frame { - msec: 944 - hash: "a84e4e7c5385dc1f24ca219f45d529a5" - } - Frame { - msec: 960 - image: "easing.0.png" - } - Frame { - msec: 976 - hash: "efcc5ae79da3fa2f4c7d6eaa35e32d33" - } - Frame { - msec: 992 - hash: "ff4afce604c8ecb4f08d1ddef8552534" - } - Frame { - msec: 1008 - hash: "e2e63e12e9a5f8459720dd8b023ed17b" - } - Frame { - msec: 1024 - hash: "991a01f92bcfa9cd9fe98e3f39d192fc" - } - Frame { - msec: 1040 - hash: "bc3d2f0f3fac650c981457f3694c2518" - } - Frame { - msec: 1056 - hash: "ee39fc9b1a602bf813d9118aa21901ac" - } - Frame { - msec: 1072 - hash: "42120d098f2adf1e331332b33442dd3e" - } - Frame { - msec: 1088 - hash: "1660c69b77b800d1ab57b93f0fc12aa5" - } - Frame { - msec: 1104 - hash: "0630a3d6b8cb5dece5dc660f05036ec6" - } - Frame { - msec: 1120 - hash: "9163f0bd9c5888794d7a09d3359bf1e5" - } - Frame { - msec: 1136 - hash: "e0b7ad4883f679948c852ff152ba7907" - } - Frame { - msec: 1152 - hash: "f748fc44f99b706e42b899cb18dbaaf7" - } - Frame { - msec: 1168 - hash: "c84442f0cb1cf0bb50dae7d1c701aaf8" - } - Frame { - msec: 1184 - hash: "d7b41567e3f3aa9576fe2793872134b7" - } - Frame { - msec: 1200 - hash: "a1d10ff1adb85000902486fc8e4faa8d" - } - Frame { - msec: 1216 - hash: "44b7b5d77068e360ead3af84e7d80232" - } - Frame { - msec: 1232 - hash: "486c0b19c1379d9eefdf575a085e2875" - } - Frame { - msec: 1248 - hash: "1d474472856d4740d960eb2f788ca5a6" - } - Frame { - msec: 1264 - hash: "c74082553ab0f4ee00f5044e3369580b" - } - Frame { - msec: 1280 - hash: "89fcd5514f336075ad32cae69518c1e5" - } - Frame { - msec: 1296 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1312 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1328 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1344 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1360 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1376 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1392 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1408 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1424 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1440 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1456 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1472 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1488 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1504 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1520 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1536 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1552 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1568 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1584 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1600 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1616 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1632 - hash: "b77240f32e83d4f332d815c626f1e560" - } - Frame { - msec: 1648 - hash: "7d89669231224cf8e02d75338c37c278" - } - Frame { - msec: 1664 - hash: "a8cf7c179011ee8187a8e1111683e52e" - } - Frame { - msec: 1680 - hash: "3e87a57e05da09a8260801320431b922" - } - Frame { - msec: 1696 - hash: "a2b0d99c8a232715fe03e8772a36634c" - } - Frame { - msec: 1712 - hash: "5b4634cd495ae7bb9c69a5c9c346189e" - } - Frame { - msec: 1728 - hash: "492f8f2b84af355ef41c1a7cda3a8a73" - } - Frame { - msec: 1744 - hash: "88e4eb08520fb5acc3d88ac4f0900542" - } - Frame { - msec: 1760 - hash: "0c09cdcb906b4ce9840fd7502c39e5b9" - } - Frame { - msec: 1776 - hash: "b054083bdd212cc03167a90df2d7eac5" - } - Frame { - msec: 1792 - hash: "83971c2d37616ab92680364d6ac288a6" - } - Frame { - msec: 1808 - hash: "a73951d25e2cb7c1d04c88c86dfa0e4d" - } - Frame { - msec: 1824 - hash: "31fc8b20302abac97e506c37a14bbb7e" - } - Frame { - msec: 1840 - hash: "f760ccd7339e01a9423da7b592498291" - } - Frame { - msec: 1856 - hash: "24dfcd5553f854908396de751fb15b88" - } - Frame { - msec: 1872 - hash: "1daf38a6e6199f980e9494a3eb480047" - } - Frame { - msec: 1888 - hash: "a39e2de1090209e5dbc8cc26577ec97d" - } - Frame { - msec: 1904 - hash: "f4edc780b063e34461263ed3b753be88" - } - Frame { - msec: 1920 - image: "easing.1.png" - } - Frame { - msec: 1936 - hash: "a19b0353604491f56f72be0d20d76955" - } - Frame { - msec: 1952 - hash: "9a70f109eebfcede2311ef77ceb50a44" - } - Frame { - msec: 1968 - hash: "7b28313d6860aeefd4a4e136d38d62f8" - } - Frame { - msec: 1984 - hash: "95d84f38473159fe6b38f84ffe371714" - } - Frame { - msec: 2000 - hash: "07f91261794edb0ac1fde9bb4ff36011" - } - Frame { - msec: 2016 - hash: "f9a4a6b92a9c2d265688f1bfac18fa0a" - } - Frame { - msec: 2032 - hash: "cdec7cc00380fde4f73be997a992251a" - } - Frame { - msec: 2048 - hash: "a52b34f84e98fcd8babb1d39979fc9c7" - } - Frame { - msec: 2064 - hash: "bf05b3c79a9616f2e6c33d348b30e0ba" - } - Frame { - msec: 2080 - hash: "c5931785685b4f4854d3ddfff5dd5466" - } - Frame { - msec: 2096 - hash: "bae163e02b860a9ca19d1bcb60ac1f8e" - } - Frame { - msec: 2112 - hash: "a36295a1ebb35e538f8899ae3ae3b36a" - } - Frame { - msec: 2128 - hash: "b6448d61803d9b2c05b438aa8ce8bcd5" - } - Frame { - msec: 2144 - hash: "631bf4caff2d93ef96a426100ffc5b32" - } - Frame { - msec: 2160 - hash: "a8777c84a03996493f719f5fcfc80d00" - } - Frame { - msec: 2176 - hash: "86e1759df103ef776bb03f24941f49da" - } - Frame { - msec: 2192 - hash: "01a790ea60adeaf368c66bd53aa8fcb3" - } - Frame { - msec: 2208 - hash: "79e5aca8ef6b9764f7f99cdfb51222ae" - } - Frame { - msec: 2224 - hash: "82d10cc01b9be4683c5aa76096bd462c" - } - Frame { - msec: 2240 - hash: "95d961a92c597e432611947f7480796a" - } - Frame { - msec: 2256 - hash: "e8ee89b5313c7e2c66741fe1c2090029" - } - Frame { - msec: 2272 - hash: "2e3e8cf25dc1a3f09e7bf2a086f8e3bb" - } - Frame { - msec: 2288 - hash: "68ca8ad381f48db23d2bc5da9da0c17a" - } - Frame { - msec: 2304 - hash: "e29f2411667049e8fae6c080f61c5869" - } - Frame { - msec: 2320 - hash: "5b0a6fadedf3024e8ecb7f2c73a2277d" - } - Frame { - msec: 2336 - hash: "af2eac625ef1fd928093ccd60bc0058e" - } - Frame { - msec: 2352 - hash: "8a1ff780ebdc9e416e60ea0940e8f2d6" - } - Frame { - msec: 2368 - hash: "7eb316c51cfd8ad972b7040247a651eb" - } - Frame { - msec: 2384 - hash: "1bac7075c10c87a69e71c3859f0db41d" - } - Frame { - msec: 2400 - hash: "0f16f40567729065cf9ecfcc15395a7b" - } - Frame { - msec: 2416 - hash: "719f4e776776f0db5c68ae7c6177e9b7" - } - Frame { - msec: 2432 - hash: "75172dbf31fd8d706f54748c59099845" - } - Frame { - msec: 2448 - hash: "d730b550e05167b05350e0e6636dd97d" - } - Frame { - msec: 2464 - hash: "e1f33eb5f023d9d42a99f8bc23223c45" - } - Frame { - msec: 2480 - hash: "8a4b0df5bed6c7be73c194ce2bb6a271" - } - Frame { - msec: 2496 - hash: "44a9ea371f12d4ac3a569121a995ae16" - } - Frame { - msec: 2512 - hash: "14747e2e9e072210b9d6db50b4f704a1" - } - Frame { - msec: 2528 - hash: "eea52abf430f8cc1adc37e7180036584" - } - Frame { - msec: 2544 - hash: "0a9f6b14bc02e929a45bf4ebb736f9d3" - } - Frame { - msec: 2560 - hash: "a68a6eef0fc8754564c47c88b60d9a2a" - } - Frame { - msec: 2576 - hash: "eeb469e2fbda131d83538055e88ecdf7" - } - Frame { - msec: 2592 - hash: "0f7b673472050e807c9d935fde5afd83" - } - Frame { - msec: 2608 - hash: "80c90cce66bdd2324ca98bc591c22b44" - } - Frame { - msec: 2624 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2640 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2656 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2672 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2688 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2704 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2720 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2736 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2752 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2768 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2784 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2800 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2816 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2832 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2848 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2864 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2880 - image: "easing.2.png" - } - Frame { - msec: 2896 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2912 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2928 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2944 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2960 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2976 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2992 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 3008 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 3024 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } -} diff --git a/tests/auto/declarative/visual/easing/easing.qml b/tests/auto/declarative/visual/easing/easing.qml deleted file mode 100644 index 1e8e907..0000000 --- a/tests/auto/declarative/visual/easing/easing.qml +++ /dev/null @@ -1,193 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: item - width: 600 - height: layout.height - color: "white" - resources: [ - ListModel { - id: easingtypes - ListElement { - type: "easeLinear" - } - ListElement { - type: "easeInQuad" - } - ListElement { - type: "easeOutQuad" - } - ListElement { - type: "easeInOutQuad" - } - ListElement { - type: "easeOutInQuad" - } - ListElement { - type: "easeInCubic" - } - ListElement { - type: "easeOutCubic" - } - ListElement { - type: "easeInOutCubic" - } - ListElement { - type: "easeOutInCubic" - } - ListElement { - type: "easeInQuart" - } - ListElement { - type: "easeOutQuart" - } - ListElement { - type: "easeInOutQuart" - } - ListElement { - type: "easeOutInQuart" - } - ListElement { - type: "easeInQuint" - } - ListElement { - type: "easeOutQuint" - } - ListElement { - type: "easeInOutQuint" - } - ListElement { - type: "easeOutInQuint" - } - ListElement { - type: "easeInSine" - } - ListElement { - type: "easeOutSine" - } - ListElement { - type: "easeInOutSine" - } - ListElement { - type: "easeOutInSine" - } - ListElement { - type: "easeInExpo" - } - ListElement { - type: "easeOutExpo" - } - ListElement { - type: "easeInOutExpo" - } - ListElement { - type: "easeOutInExpo" - } - ListElement { - type: "easeInCirc" - } - ListElement { - type: "easeOutCirc" - } - ListElement { - type: "easeInOutCirc" - } - ListElement { - type: "easeOutInCirc" - } - ListElement { - type: "easeInElastic" - } - ListElement { - type: "easeOutElastic" - } - ListElement { - type: "easeInOutElastic" - } - ListElement { - type: "easeOutInElastic" - } - ListElement { - type: "easeInBack" - } - ListElement { - type: "easeOutBack" - } - ListElement { - type: "easeInOutBack" - } - ListElement { - type: "easeOutInBack" - } - ListElement { - type: "easeOutBounce" - } - ListElement { - type: "easeInBounce" - } - ListElement { - type: "easeInOutBounce" - } - ListElement { - type: "easeOutInBounce" - } - } - ] - Column { - id: layout - anchors.left: item.left - anchors.right: item.right - Repeater { - model: easingtypes - Component { - Rectangle { - id: block - Text { - text: type - anchors.centerIn: parent - font.italic: true - color: index & 1 ? "black" : "white" - opacity: 0 // 1 for debugging - } - width: 120 - height: 18 - color: index & 1 ? "red" : "blue" - states: [ - State { - name: "from" - when: !mouse.pressed - PropertyChanges { - target: block - x: 0 - } - }, - State { - name: "to" - when: mouse.pressed - PropertyChanges { - target: block - x: item.width-block.width - } - } - ] - transitions: [ - Transition { - from: "*" - to: "to" - reversible: true - NumberAnimation { - matchProperties: "x" - easing: type - duration: 1000 - } - } - ] - } - } - } - } - MouseRegion { - id: mouse - anchors.fill: layout - } -} diff --git a/tests/auto/declarative/visual/easing/pics/qtlogo.png b/tests/auto/declarative/visual/easing/pics/qtlogo.png deleted file mode 100644 index 399bd0b..0000000 Binary files a/tests/auto/declarative/visual/easing/pics/qtlogo.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/parentAction/data/parentAction.0.png deleted file mode 100644 index a0032f8..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/parentAction/data/parentAction.1.png deleted file mode 100644 index 958b6af..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/parentAction/data/parentAction.2.png deleted file mode 100644 index 3a1811f..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/parentAction/data/parentAction.3.png deleted file mode 100644 index 36064c2..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/parentAction/data/parentAction.4.png deleted file mode 100644 index c493a1d..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/parentAction/data/parentAction.5.png deleted file mode 100644 index c493a1d..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/parentAction/data/parentAction.qml deleted file mode 100644 index de27af7..0000000 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.qml +++ /dev/null @@ -1,1207 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 32 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 48 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 64 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 80 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 96 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 112 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 128 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 144 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 160 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 176 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 192 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 208 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 224 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 240 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 256 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 272 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 288 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 304 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 320 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 336 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 352 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 368 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 384 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 400 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 416 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 432 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 448 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 464 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 480 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 496 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 512 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 528 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 544 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 560 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 576 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 150; y: 274 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 592 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 608 - hash: "a7bb3d44c8bcf403906afa86f5bc3062" - } - Frame { - msec: 624 - hash: "2b366e6009e70fa0227a1fee662fe1bf" - } - Frame { - msec: 640 - hash: "c12869fb8002aa36c3bfad7fd0979240" - } - Frame { - msec: 656 - hash: "56c583e77b5e0a8707e977dc937c2acf" - } - Frame { - msec: 672 - hash: "6b191d57a45a3f2d010a7f44064e409a" - } - Frame { - msec: 688 - hash: "9457ee33c999a63fa4bd4db5c3ceac8b" - } - Frame { - msec: 704 - hash: "446b23b662640ad6ad8c456f956fe73a" - } - Frame { - msec: 720 - hash: "23c59708069406486e4979c7d59f3f4a" - } - Frame { - msec: 736 - hash: "c9ce43ddca79b5b6f26af2c2259dc071" - } - Frame { - msec: 752 - hash: "e838229ba70c30112918f19bb471fa34" - } - Frame { - msec: 768 - hash: "0cbaeddb2ff6408a37a68fc685e2bca0" - } - Frame { - msec: 784 - hash: "616b4ec719586b151ba3d709e51038bf" - } - Frame { - msec: 800 - hash: "89b2c709f5c3083c204a9450e605c1d4" - } - Frame { - msec: 816 - hash: "427a5c2d13631d899ff2d673e762f114" - } - Frame { - msec: 832 - hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb" - } - Frame { - msec: 848 - hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4" - } - Frame { - msec: 864 - hash: "5607ea54f9990f3232d6f56080e1ef15" - } - Frame { - msec: 880 - hash: "600682467c55288b9d5e65299637dd72" - } - Frame { - msec: 896 - hash: "bc7a238611574a13650f854ceac35032" - } - Frame { - msec: 912 - hash: "e5f6b19b3685a96d4d0c3b8384513643" - } - Frame { - msec: 928 - hash: "d5d23b0fc09136fd1ae121e311866cc3" - } - Frame { - msec: 944 - hash: "5099e5edd1a6bd37f5f6c836a6ca7644" - } - Frame { - msec: 960 - image: "parentAction.0.png" - } - Frame { - msec: 976 - hash: "97dd20f7774cfd8379e1d1b44f8ddc7b" - } - Frame { - msec: 992 - hash: "ab2deea9e4f8c43ed58b5a355800ecda" - } - Frame { - msec: 1008 - hash: "88ec383ce368259d3cc18612b6f5b941" - } - Frame { - msec: 1024 - hash: "f84b20b849a77e50717f99b9d844240e" - } - Frame { - msec: 1040 - hash: "6c042360c2d24ad56cec32d01ce82d6b" - } - Frame { - msec: 1056 - hash: "c86b464720192f3e039fa5d8ab5f09bb" - } - Frame { - msec: 1072 - hash: "35ec432fdf91fcd1dfcd945cfe785b09" - } - Frame { - msec: 1088 - hash: "27a2ec28e4fef006622e8211fd709853" - } - Frame { - msec: 1104 - hash: "8454d1f5ed89551e2a403c869885116a" - } - Frame { - msec: 1120 - hash: "7e33aed53dc4338c168274d972c8e711" - } - Frame { - msec: 1136 - hash: "e0192ea2049d6bae6012f00406630a92" - } - Frame { - msec: 1152 - hash: "a2ea5489a373084169024035a0f69e71" - } - Frame { - msec: 1168 - hash: "6947a72c4d959b90dafdaddcac815b3e" - } - Frame { - msec: 1184 - hash: "0e22cc3c96d0934095b7254f0f28b18b" - } - Frame { - msec: 1200 - hash: "72529ddc6f2678a783aedf445d7038a4" - } - Frame { - msec: 1216 - hash: "38f03c0ee50488ffd23a2fb3d3445461" - } - Frame { - msec: 1232 - hash: "b441721ed30c787874a2a71a94e1ba44" - } - Frame { - msec: 1248 - hash: "1e37f26d78590414b2ef01c72ad136a9" - } - Frame { - msec: 1264 - hash: "88e4af80d068485ebd8c3d51f9bbfe8d" - } - Frame { - msec: 1280 - hash: "107707216c16c629d8409cf006f9f2dc" - } - Frame { - msec: 1296 - hash: "f56f3f4f140ac072f7df47eddfc76844" - } - Frame { - msec: 1312 - hash: "41239a9d8ed793c24967875aabeae8a5" - } - Frame { - msec: 1328 - hash: "30035e37320dae4f9ead01a30895eb38" - } - Frame { - msec: 1344 - hash: "fb2f535b42b862b65f8adb3ad1a46779" - } - Frame { - msec: 1360 - hash: "e10ba7f74d52fc963e20a4647ff0d620" - } - Frame { - msec: 1376 - hash: "5abf5388566bed2fdb71afc8cd7cfe9b" - } - Frame { - msec: 1392 - hash: "91990471563e3c8292e8e8325a1d17a2" - } - Frame { - msec: 1408 - hash: "59a6293a48f83a9197adcffed3f32f15" - } - Frame { - msec: 1424 - hash: "db3e75df318e9f0d239ce9b76e92eff3" - } - Frame { - msec: 1440 - hash: "3b5c64bc64a701edb5c2e40b23443bc3" - } - Frame { - msec: 1456 - hash: "9db08c0375148b2317427591b5f43608" - } - Frame { - msec: 1472 - hash: "2d761f1530846eff87a7625a120e0afd" - } - Frame { - msec: 1488 - hash: "c5460f8c58b83c2ac15842ddb023ad4f" - } - Frame { - msec: 1504 - hash: "0efb51810a2dc359c7964268c98ea8eb" - } - Frame { - msec: 1520 - hash: "b92a42012df57eb261badf1f518b8e67" - } - Frame { - msec: 1536 - hash: "8d348bae62af2d35bdfee806a1c39910" - } - Frame { - msec: 1552 - hash: "762d9bb4ed11d249bfd902a541129d60" - } - Frame { - msec: 1568 - hash: "bddbd9f64a9f7156984feccd5fa94093" - } - Frame { - msec: 1584 - hash: "353a98e1573b0518941ff22bf2776244" - } - Frame { - msec: 1600 - hash: "1765aed97e29f25dee93a77a06557b82" - } - Frame { - msec: 1616 - hash: "73b5c2bdb7f268f7a33e129c8ba44013" - } - Frame { - msec: 1632 - hash: "46ac1976fb9932d0ef6e0b5927386ad9" - } - Frame { - msec: 1648 - hash: "90b5b5b46c9c352e8be41cc74f96133a" - } - Frame { - msec: 1664 - hash: "0efe0036577c890fd45cd7dd53014616" - } - Frame { - msec: 1680 - hash: "7f32df17481abf40ccb33afe6d17085d" - } - Frame { - msec: 1696 - hash: "1fa8544c48a476764f4f8278c14b651d" - } - Frame { - msec: 1712 - hash: "f8f06ece30f690deeba5999ce63bf40b" - } - Frame { - msec: 1728 - hash: "885b230f4b2fe380c7cf68955940d206" - } - Frame { - msec: 1744 - hash: "d0fc5aa4df46099bb46a1d7db30baa09" - } - Frame { - msec: 1760 - hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740" - } - Frame { - msec: 1776 - hash: "aa3b3b03460daf54f085551e1a46c08b" - } - Frame { - msec: 1792 - hash: "35a1728a2430027a9474fb7d61090643" - } - Frame { - msec: 1808 - hash: "2b1cff3986b8b03f1061176a4722b0f9" - } - Frame { - msec: 1824 - hash: "8047be1b35ee3d5078a68c6cdc35eeb7" - } - Frame { - msec: 1840 - hash: "7f7afa48bb7d612b354c8488e72c8339" - } - Frame { - msec: 1856 - hash: "691a876caefce9aa0f5140c17059b8f4" - } - Frame { - msec: 1872 - hash: "903bec66e47db766dc431f060726988c" - } - Frame { - msec: 1888 - hash: "f13593fc891f0b050c01b61963019da1" - } - Frame { - msec: 1904 - hash: "aa00de965bdb370a5974b195c3fb38af" - } - Frame { - msec: 1920 - image: "parentAction.1.png" - } - Frame { - msec: 1936 - hash: "168d3e27261c0943e6262b6be27adfb0" - } - Frame { - msec: 1952 - hash: "6fafebd0b396e7c0a78c767c6af936ba" - } - Frame { - msec: 1968 - hash: "827e3a3fcd6fd8588e9fcc043769b3a8" - } - Frame { - msec: 1984 - hash: "155329bf1c1a6f6c37bf7e6e8a92c59b" - } - Frame { - msec: 2000 - hash: "d3008d1e7cee5170171699ef6fb9aa81" - } - Frame { - msec: 2016 - hash: "5c1244e7806e131a6063f22a66e4eb12" - } - Frame { - msec: 2032 - hash: "fcd6b372229a6cf14face81e9d614456" - } - Frame { - msec: 2048 - hash: "bf1a375a81bf43c5671cccc62e9a0462" - } - Frame { - msec: 2064 - hash: "0e22404508470baaa6621f37361951fa" - } - Frame { - msec: 2080 - hash: "45046f28c103caa161e41861f71731c4" - } - Frame { - msec: 2096 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2112 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2128 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2144 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2160 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2176 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2192 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2208 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2224 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2240 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2256 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2272 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2288 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2304 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2320 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2336 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2352 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2368 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2384 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2400 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2416 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2432 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2448 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2464 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2480 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2496 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2512 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2528 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2544 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2560 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2576 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2592 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2608 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2624 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2640 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2656 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2672 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2688 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2704 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2720 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2736 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2752 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 150; y: 274 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2768 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2784 - hash: "44a0b46c21bd4c76d44883ba146e3614" - } - Frame { - msec: 2800 - hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9" - } - Frame { - msec: 2816 - hash: "ea9c05c0295a300e21aacbdfd5b4968e" - } - Frame { - msec: 2832 - hash: "e630e2893f89a6ae536bcbd1a084af07" - } - Frame { - msec: 2848 - hash: "af56f1e79eb3746efb9e4bcbc3fbced8" - } - Frame { - msec: 2864 - hash: "96be8c3ba0d7a85c6f6df877b869b563" - } - Frame { - msec: 2880 - image: "parentAction.2.png" - } - Frame { - msec: 2896 - hash: "603d8684cb6f097e3ab2a2e5ef053112" - } - Frame { - msec: 2912 - hash: "0433d242d1dd40a3792f55f807ebbff4" - } - Frame { - msec: 2928 - hash: "1190067cacc7361f6cfe09f153c7a07e" - } - Frame { - msec: 2944 - hash: "98e917880471511122847ad8a406e3a3" - } - Frame { - msec: 2960 - hash: "fff06869074a3a6c5823ed3fb6fa7a43" - } - Frame { - msec: 2976 - hash: "602d95daee8f160a0fd784931d0a06bd" - } - Frame { - msec: 2992 - hash: "f7e466bbd52f40e88ff567758f4db835" - } - Frame { - msec: 3008 - hash: "54417a4c4fb71d458439ad2e2126f8e1" - } - Frame { - msec: 3024 - hash: "fe150dd5056b9dbf1cd0b196e9a7a47b" - } - Frame { - msec: 3040 - hash: "1384c871bead85916f7bfcdebc370697" - } - Frame { - msec: 3056 - hash: "5f13339cc0e604b75a9d1d85342fa717" - } - Frame { - msec: 3072 - hash: "655069d61b7a44e729a2cbb33d683c3e" - } - Frame { - msec: 3088 - hash: "2324e9e4a02e41855b066983dbf0e61d" - } - Frame { - msec: 3104 - hash: "0217baf091325b95c033ba073bd68ce5" - } - Frame { - msec: 3120 - hash: "c27854c3af5b58db85846a1762ab18ba" - } - Frame { - msec: 3136 - hash: "45246ee6383ceb6260f84571a885ba90" - } - Frame { - msec: 3152 - hash: "d82ded86f093d1a376994cacf43d0343" - } - Frame { - msec: 3168 - hash: "c9179d30f80c6101bca2bed40d6a859f" - } - Frame { - msec: 3184 - hash: "a63e032d20a9d985c6c345434d98a364" - } - Frame { - msec: 3200 - hash: "fc7d6797ce15edf7fadb9dae691ecd5c" - } - Frame { - msec: 3216 - hash: "76cf37ad8c50fed8b1900784b647819c" - } - Frame { - msec: 3232 - hash: "256aab3690c9ba928bb4d4dd3bbfc756" - } - Frame { - msec: 3248 - hash: "90cab52fdefbae4e7d0f0f93b46ebeb0" - } - Frame { - msec: 3264 - hash: "badb5103bf826dc467f6e620cc2b47be" - } - Frame { - msec: 3280 - hash: "e7d0e437de5ebc0fa07b2a4ef11159cb" - } - Frame { - msec: 3296 - hash: "5931b1c3932ab91446324165d7e2603a" - } - Frame { - msec: 3312 - hash: "ce1808db90ba955ab3cb845500f4c013" - } - Frame { - msec: 3328 - hash: "142f8a440d1fe2d868f47ba3006de9d7" - } - Frame { - msec: 3344 - hash: "10d32a6cc90319ea66d7f2c1241590ce" - } - Frame { - msec: 3360 - hash: "7f633559d715396e6de451b3dd2fadbd" - } - Frame { - msec: 3376 - hash: "d44590ae51ceef5e082747c44bc41be9" - } - Frame { - msec: 3392 - hash: "2b498181668fb1fbf65294d575654929" - } - Frame { - msec: 3408 - hash: "7efeeffd08e4de440da83511313de729" - } - Frame { - msec: 3424 - hash: "8de2331393d1e712192d11ed096836d3" - } - Frame { - msec: 3440 - hash: "fa9381ef2e295865a9b8cb9b36a0eacf" - } - Frame { - msec: 3456 - hash: "97debc4432c5ecb7f606a81e5411b02c" - } - Frame { - msec: 3472 - hash: "eb4c1bb1f4398e3c18182c28a015be76" - } - Frame { - msec: 3488 - hash: "a976aa509f4c6f309d9a6011eeae02aa" - } - Frame { - msec: 3504 - hash: "457de7ee05e0ef0ef120a3d4e371c02e" - } - Frame { - msec: 3520 - hash: "0c01f9f150fe33155fa20703735a6d27" - } - Frame { - msec: 3536 - hash: "5af4f80624082a264010247ea8630a1a" - } - Frame { - msec: 3552 - hash: "b23a1191d149549fa29a61b6dc70f037" - } - Frame { - msec: 3568 - hash: "e00fb32cb13b1347e4b7b9fdbcca68e5" - } - Frame { - msec: 3584 - hash: "fef0503c82f253f8bc3fb3e705a98aa7" - } - Frame { - msec: 3600 - hash: "7a9beca28340d2aa89da5e05f5ac2a55" - } - Frame { - msec: 3616 - hash: "f3c57ea07ab486ffa1f46da60de0b8f1" - } - Frame { - msec: 3632 - hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f" - } - Frame { - msec: 3648 - hash: "1b317a9eb4ce022f005d551546c688a4" - } - Frame { - msec: 3664 - hash: "628e912a4a26800b9b7b5e60e60e3a7d" - } - Frame { - msec: 3680 - hash: "3587b75e4d834a88729754d2c2a4b193" - } - Frame { - msec: 3696 - hash: "084bc1360a38123589baec5aae15b4ff" - } - Frame { - msec: 3712 - hash: "47f0f6c3cdf456826a6fd6846e58dcc8" - } - Frame { - msec: 3728 - hash: "ed982c4c3ebd132baaaf43efad40a3f7" - } - Frame { - msec: 3744 - hash: "d7ddce47c23fada4c69d53d934582d71" - } - Frame { - msec: 3760 - hash: "74f2f911bee26c4c551f4c70596753ae" - } - Frame { - msec: 3776 - hash: "3ed7cbf10dfce3a485d7878766cf9da6" - } - Frame { - msec: 3792 - hash: "87a74257551ab6c7fcfe05e815482ae9" - } - Frame { - msec: 3808 - hash: "4f63e4904e97d4ce832b20b7317a9958" - } - Frame { - msec: 3824 - hash: "f912da8781e547c6e28890655c1b8884" - } - Frame { - msec: 3840 - image: "parentAction.3.png" - } - Frame { - msec: 3856 - hash: "faa640ccf993324400254ffb862ac279" - } - Frame { - msec: 3872 - hash: "b67f342424d1b9a364b09da8994fcd6b" - } - Frame { - msec: 3888 - hash: "b2407732194c1e0c2a9bfb379b94b562" - } - Frame { - msec: 3904 - hash: "55733608d0302ef90c124322ac6d8dc6" - } - Frame { - msec: 3920 - hash: "734f5b628a26d3d7c91ee84fb26d5b5f" - } - Frame { - msec: 3936 - hash: "27839fefa4a218cd77843358392bb874" - } - Frame { - msec: 3952 - hash: "8cac19559d37bd2b581cef0a4c707753" - } - Frame { - msec: 3968 - hash: "91422870aa1471571e7dd8ff5103f76c" - } - Frame { - msec: 3984 - hash: "7156166d5f8d13483467ef515627c95d" - } - Frame { - msec: 4000 - hash: "6028e8374c2ce42a9a9e85b4a8b53027" - } - Frame { - msec: 4016 - hash: "17c99592be58d2e03f9f173c47c0649b" - } - Frame { - msec: 4032 - hash: "6084b53186c6a7eda38ac7fa34bf45ce" - } - Frame { - msec: 4048 - hash: "e82131a8a5a06519f49308bbc25738cf" - } - Frame { - msec: 4064 - hash: "77bdb69cbe55d9c503c6aa1c0f974d87" - } - Frame { - msec: 4080 - hash: "b2346ec5d376651347281d5fb00fc4d7" - } - Frame { - msec: 4096 - hash: "36a3b72c9d7f09795c546855a269801d" - } - Frame { - msec: 4112 - hash: "4e5478b33baca797f3f8f72c2c6c51ad" - } - Frame { - msec: 4128 - hash: "e59d12be3ed1f58de010d385ddfe78e5" - } - Frame { - msec: 4144 - hash: "9674106a146effd47c2724a2dd82ae84" - } - Frame { - msec: 4160 - hash: "862cec781f169f713032e6d52d3616ce" - } - Frame { - msec: 4176 - hash: "c8d47bdfb6518ef4827677023313d559" - } - Frame { - msec: 4192 - hash: "19413931b3e788067dfaef39b47d30ff" - } - Frame { - msec: 4208 - hash: "600e426532c0348cd622257b0773efd5" - } - Frame { - msec: 4224 - hash: "6d975e259d4efa108375d271451531c1" - } - Frame { - msec: 4240 - hash: "50b0da4848564c063694202ce16ea808" - } - Frame { - msec: 4256 - hash: "0a9450739031f680735b5210e6a30c3f" - } - Frame { - msec: 4272 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4288 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4304 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4320 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4336 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4352 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4368 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4384 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4400 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4416 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4432 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4448 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4464 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4480 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4496 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4512 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4528 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4544 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 4560 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4576 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4592 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4608 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4624 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4640 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4656 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4672 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4688 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4704 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } -} diff --git a/tests/auto/declarative/visual/parentAction/parentAction.qml b/tests/auto/declarative/visual/parentAction/parentAction.qml deleted file mode 100644 index e69d234..0000000 --- a/tests/auto/declarative/visual/parentAction/parentAction.qml +++ /dev/null @@ -1,55 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Item { - scale: .5 - rotation: 15 - transformOrigin: "Center" - x: 10; y: 10 - Rectangle { - id: MyRect - x: 5 - width: 100; height: 100 - transformOrigin: "BottomLeft" - color: "red" - } - } - MouseRegion { - id: Clickable - anchors.fill: parent - } - - Item { - x: 200; y: 200 - rotation: 52; - scale: 2 - Item { - id: newParent - x: 100; y: 100 - } - } - - states: State { - name: "moved" - when: Clickable.pressed - ParentChange { - target: MyRect - parent: newParent - } - PropertyChanges { - target: MyRect - rotation: -52 - scale: 1 - color: "blue" - } - } - - transitions: Transition { - SequentialAnimation { - ColorAnimation { duration: 500} - ParentAction {} - NumberAnimation { matchProperties: "rotation, scale"; duration: 1000 } - } - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png deleted file mode 100644 index 693a794..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png deleted file mode 100644 index 06d43f1..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png deleted file mode 100644 index e619baf..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png deleted file mode 100644 index 30c7671..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png deleted file mode 100644 index 132803c..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png deleted file mode 100644 index 8372bc3..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml deleted file mode 100644 index 73c6542..0000000 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml +++ /dev/null @@ -1,1619 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 32 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 48 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 64 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 80 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 96 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 112 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 128 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 144 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 160 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 176 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 192 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 208 - hash: "21f0b0437a999bbde66a913032d495c2" - } - Frame { - msec: 224 - hash: "0809d32d5bc1bfce199b1f39a1c68d4f" - } - Frame { - msec: 240 - hash: "022137587b39f5123835482178a1f1cf" - } - Frame { - msec: 256 - hash: "97566ce9558d13ea0780bce233097b27" - } - Frame { - msec: 272 - hash: "96d79b07da105b7f631ed61582b26f7e" - } - Frame { - msec: 288 - hash: "f4732ff2df93fe67cb850dec34184924" - } - Frame { - msec: 304 - hash: "054e6e52f74a3e24f04e6ad0071f79f8" - } - Frame { - msec: 320 - hash: "f541af93a9fde62e4bd1c91d30f91e65" - } - Frame { - msec: 336 - hash: "c4f844ee71f23635bb3ec7375f6a134f" - } - Frame { - msec: 352 - hash: "3e52e06db2bf78762bb9816fe6b105d9" - } - Frame { - msec: 368 - hash: "d9604be23a91327e6ab454609a9d4a13" - } - Frame { - msec: 384 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 400 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 416 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 432 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 448 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 464 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 480 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 496 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 512 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 528 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 544 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 560 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 576 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 592 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 608 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 624 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 640 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 656 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 672 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 688 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 704 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 720 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 736 - hash: "7d9096b1eb940c82a37baf39ef3ccf3e" - } - Frame { - msec: 752 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 768 - hash: "da60100dc55023c3bab367d97c8f6a85" - } - Frame { - msec: 784 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 800 - hash: "3f869538028a09020d5e8f528f4fb119" - } - Frame { - msec: 816 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 832 - hash: "2cb09d9655ecc30ae6a591b28c0d355c" - } - Frame { - msec: 848 - hash: "4db9bc6c11caf1d77794c2eabb62a44e" - } - Frame { - msec: 864 - hash: "ce2b5dd7418868acf86fea6ad19cc0c5" - } - Frame { - msec: 880 - hash: "7c27ef654e645679c90520d6cf00b0c4" - } - Frame { - msec: 896 - hash: "ab3e211df3ef7f5f7a8d712edc891c0f" - } - Frame { - msec: 912 - hash: "19d2ae617a49b57dd012677e2834469c" - } - Frame { - msec: 928 - hash: "5025eb75c88f0760f637e0342b7f88a2" - } - Frame { - msec: 944 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 960 - image: "pauseAnimation.0.png" - } - Frame { - msec: 976 - hash: "5f18a81707f23d377e81a27c1fc41ce9" - } - Frame { - msec: 992 - hash: "bcc35497884c158396c7f60759d1fda4" - } - Frame { - msec: 1008 - hash: "7a4528b000a4ea142d1c77407fa1f581" - } - Frame { - msec: 1024 - hash: "ba967a7d810a4531e577e5f6bd2def33" - } - Frame { - msec: 1040 - hash: "f5afd9cf8ffe27e9992454b9e68688cb" - } - Frame { - msec: 1056 - hash: "51d475c7f64a86d3a18fb115297a7b6b" - } - Frame { - msec: 1072 - hash: "49f5d6fd45c195a8d245b7fefc1277ab" - } - Frame { - msec: 1088 - hash: "f9b0b278659e3a0f78611e6b7f0f2176" - } - Frame { - msec: 1104 - hash: "0809d32d5bc1bfce199b1f39a1c68d4f" - } - Frame { - msec: 1120 - hash: "b7208d103b63a936dff8dd8ed224237f" - } - Frame { - msec: 1136 - hash: "a57c81049b0dc68090ec7c3327b9922c" - } - Frame { - msec: 1152 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1168 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1184 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1200 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1216 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 1232 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 1248 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 1264 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 1280 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 1296 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 1312 - hash: "f0d8132489c2f2ef760e905b3c093726" - } - Frame { - msec: 1328 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 1344 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1360 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 1376 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 1392 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1408 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 1424 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 1440 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1456 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1472 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1488 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1504 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1520 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1536 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1552 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1568 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1584 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1600 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1616 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1632 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1648 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1664 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1680 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1696 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1712 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1728 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1744 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1760 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1776 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1792 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 1808 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 1824 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1840 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 1856 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 1872 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1888 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 1904 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 1920 - image: "pauseAnimation.1.png" - } - Frame { - msec: 1936 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 1952 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 1968 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 1984 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2000 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2016 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 2032 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2048 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2064 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2080 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2096 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2112 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2128 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2144 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2160 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2176 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2192 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2208 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2224 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2240 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2256 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2272 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2288 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 2304 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2320 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2336 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2352 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2368 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2384 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2400 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2416 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2432 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2448 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2464 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2480 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2496 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2512 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2528 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2544 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2560 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2576 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2592 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2608 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2624 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2640 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2656 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2672 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2688 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2704 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2720 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2736 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2752 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2768 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2784 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2800 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2816 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2832 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2848 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2864 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2880 - image: "pauseAnimation.2.png" - } - Frame { - msec: 2896 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2912 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2928 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2944 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2960 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2976 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2992 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3008 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3024 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3040 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3056 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3072 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3088 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3104 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3120 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3136 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3152 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3168 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3184 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3200 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3216 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3232 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3248 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3264 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3280 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3296 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3312 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3328 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3344 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3360 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3376 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3392 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3408 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3424 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3440 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3456 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3472 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3488 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3504 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3520 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3536 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3552 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 3568 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 3584 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 3600 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 3616 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 3632 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 3648 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 3664 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 3680 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 3696 - hash: "630d90eef2673a69e8ebc4ef1ba40e81" - } - Frame { - msec: 3712 - hash: "b7208d103b63a936dff8dd8ed224237f" - } - Frame { - msec: 3728 - hash: "1516c3547c7cf64832b3bc7da7c44521" - } - Frame { - msec: 3744 - hash: "49f5d6fd45c195a8d245b7fefc1277ab" - } - Frame { - msec: 3760 - hash: "f5afd9cf8ffe27e9992454b9e68688cb" - } - Frame { - msec: 3776 - hash: "7a4528b000a4ea142d1c77407fa1f581" - } - Frame { - msec: 3792 - hash: "5f18a81707f23d377e81a27c1fc41ce9" - } - Frame { - msec: 3808 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 3824 - hash: "85c135ef72d3d25658a3663e69ffb7c2" - } - Frame { - msec: 3840 - image: "pauseAnimation.3.png" - } - Frame { - msec: 3856 - hash: "20258f07c613958c32f783466771391a" - } - Frame { - msec: 3872 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 3888 - hash: "f340cdf60c6d4c29d26b7202a093ec70" - } - Frame { - msec: 3904 - hash: "d754d35d0793f9f7d4f6249a874e4c45" - } - Frame { - msec: 3920 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 3936 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 3952 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 3968 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 3984 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4000 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4016 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4032 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4048 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4064 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4080 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4096 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4112 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 4128 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 4144 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 4160 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 4176 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 4192 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 4208 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 4224 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 4240 - hash: "7d9096b1eb940c82a37baf39ef3ccf3e" - } - Frame { - msec: 4256 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 4272 - hash: "da60100dc55023c3bab367d97c8f6a85" - } - Frame { - msec: 4288 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 4304 - hash: "b2c778a5eff5f01edc54f03d8b4de8c7" - } - Frame { - msec: 4320 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 4336 - hash: "2cb09d9655ecc30ae6a591b28c0d355c" - } - Frame { - msec: 4352 - hash: "4db9bc6c11caf1d77794c2eabb62a44e" - } - Frame { - msec: 4368 - hash: "ce2b5dd7418868acf86fea6ad19cc0c5" - } - Frame { - msec: 4384 - hash: "c4f844ee71f23635bb3ec7375f6a134f" - } - Frame { - msec: 4400 - hash: "4e1fda8a0495ef968c1cffb1257426d7" - } - Frame { - msec: 4416 - hash: "19d2ae617a49b57dd012677e2834469c" - } - Frame { - msec: 4432 - hash: "f438e8d2c16b5de677924c8411219b19" - } - Frame { - msec: 4448 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 4464 - hash: "87b71778d52cd8563d171151d4d32407" - } - Frame { - msec: 4480 - hash: "691cd8bf5c7802ff6c5024827a379fc6" - } - Frame { - msec: 4496 - hash: "ab442c0173c3d221b6782d28001dac77" - } - Frame { - msec: 4512 - hash: "6f886d4538704c2fad4d84c68214109f" - } - Frame { - msec: 4528 - hash: "56d39f233fae41c60499d6161f891cbc" - } - Frame { - msec: 4544 - hash: "95d987c3fd1352fb81c42c63634fe53b" - } - Frame { - msec: 4560 - hash: "96dc84c0c548021910e7c5b580179054" - } - Frame { - msec: 4576 - hash: "ddb71cbd57f6e43744d533d4f72b08db" - } - Frame { - msec: 4592 - hash: "f7ab4b197bea455b22f259913438d207" - } - Frame { - msec: 4608 - hash: "2ad64cb01c9d50e0118d5ece0a644df2" - } - Frame { - msec: 4624 - hash: "6579681c59dd571df0ee4429d74fb5c7" - } - Frame { - msec: 4640 - hash: "630d90eef2673a69e8ebc4ef1ba40e81" - } - Frame { - msec: 4656 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 4672 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 4688 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 4704 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 4720 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 4736 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 4752 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 4768 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 4784 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 4800 - image: "pauseAnimation.4.png" - } - Frame { - msec: 4816 - hash: "f0d8132489c2f2ef760e905b3c093726" - } - Frame { - msec: 4832 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 4848 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 4864 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 4880 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 4896 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 4912 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 4928 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 4944 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 4960 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 4976 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 4992 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5008 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5024 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5040 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5056 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5072 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5088 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5104 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5120 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5136 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5152 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5168 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5184 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5200 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5216 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5232 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 5248 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 5264 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 5280 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 5296 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 5312 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 5328 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 5344 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 5360 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 5376 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 5392 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 5408 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 5424 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5440 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5456 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5472 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 5488 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5504 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5520 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5536 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5552 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5568 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5584 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5600 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5616 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5632 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5648 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5664 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5680 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5696 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5712 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5728 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5744 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5760 - image: "pauseAnimation.5.png" - } - Frame { - msec: 5776 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5792 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5808 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5824 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5840 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 5856 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5872 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5888 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5904 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5920 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5936 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5952 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5968 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5984 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 6000 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 6016 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6032 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6048 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6064 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6080 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6096 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6112 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6128 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6144 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6160 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6176 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6192 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6208 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6224 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6240 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6256 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6272 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6288 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6304 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6320 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6336 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6352 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6368 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 6384 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6400 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6416 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml deleted file mode 100644 index fba8ae6..0000000 --- a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml +++ /dev/null @@ -1,30 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: rect - width: 120 - height: 200 - color: "white" - Image { - id: img - source: "pics/qtlogo.png" - x: 60-width/2 - y: 200-height - y: SequentialAnimation { - running: true - repeat: true - NumberAnimation { - to: 0; duration: 500 - easing: "easeInOutQuad" - } - NumberAnimation { - to: 200-img.height - easing: "easeOutBounce" - duration: 2000 - } - PauseAnimation { - duration: 1000 - } - } - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png deleted file mode 100644 index 399bd0b..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png deleted file mode 100644 index 64d6b06..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png deleted file mode 100644 index f7fce15..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png deleted file mode 100644 index 3080df5..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml deleted file mode 100644 index 7c8c233..0000000 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml +++ /dev/null @@ -1,939 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 32 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 48 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 64 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 80 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 96 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 112 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 128 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 144 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 160 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 176 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 192 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 208 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 224 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 240 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 256 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 272 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 288 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 304 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 320 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 336 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 352 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 368 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 384 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 400 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 416 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 432 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 448 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 464 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 480 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 496 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 512 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 528 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 544 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 560 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 576 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 592 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 608 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 624 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 640 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 656 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 672 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 688 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 704 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 720 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 736 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 752 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 768 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 784 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 800 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 816 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 832 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 848 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 864 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 880 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 896 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 912 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 928 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 944 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 960 - image: "propertyAction.0.png" - } - Frame { - msec: 976 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 992 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1008 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1024 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1040 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1056 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1072 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1088 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1104 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1120 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1136 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1152 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1168 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1184 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1200 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1216 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1232 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1248 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1264 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1280 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1296 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1312 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1328 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1344 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1360 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1376 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1392 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1408 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1424 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1440 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1456 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1472 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1488 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1504 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1520 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1536 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1552 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1568 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1584 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1600 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 109; y: 247 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1616 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1632 - hash: "c91921dba899d7a86de3cd013773889f" - } - Frame { - msec: 1648 - hash: "888c0fc86155e10b5fc577ef6ec5755a" - } - Frame { - msec: 1664 - hash: "7fd61a8910bf7b0d2bf57653a268c5d8" - } - Frame { - msec: 1680 - hash: "f42f5073f90a423adf011d0e168c8a9b" - } - Frame { - msec: 1696 - hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5" - } - Frame { - msec: 1712 - hash: "f10e997d7a17c18251a32d58b018105a" - } - Frame { - msec: 1728 - hash: "09ffb57d5f67edfa34d6aad36a002554" - } - Frame { - msec: 1744 - hash: "01f3a2f5b9815f1397a907b099339360" - } - Frame { - msec: 1760 - hash: "58c0910c49748edd2ef8472960179472" - } - Frame { - msec: 1776 - hash: "cc82c5f7f93c5bc1af1c6c509268566a" - } - Frame { - msec: 1792 - hash: "3ef272c6439b85fbc166375d1b98403c" - } - Frame { - msec: 1808 - hash: "98c576f0900e4b8752d1f951bb6bf391" - } - Frame { - msec: 1824 - hash: "4d66dd64d8736ef50163e08723873478" - } - Frame { - msec: 1840 - hash: "9a5d8455b6763456185625811253e0b1" - } - Frame { - msec: 1856 - hash: "77e85731efa786a2492aae19a87523c6" - } - Frame { - msec: 1872 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1888 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1904 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 1920 - image: "propertyAction.1.png" - } - Frame { - msec: 1936 - hash: "db3010ef552146df938c237f6c92bff5" - } - Frame { - msec: 1952 - hash: "101e8595d0301e88376ec52ba9361f84" - } - Frame { - msec: 1968 - hash: "119d548c59baa7e47266d2ceca663288" - } - Frame { - msec: 1984 - hash: "f141fafe102a0b9a2bf33e8c3fc800ff" - } - Frame { - msec: 2000 - hash: "b01f9ca8d4fbff17b3d48c70898a044d" - } - Frame { - msec: 2016 - hash: "cf67954a2d1b22e8d2cfdc26419bafb8" - } - Frame { - msec: 2032 - hash: "7680b2b5a63dea13d733947297e01355" - } - Frame { - msec: 2048 - hash: "af1c017acf6b3c8cff86c9ceb60db3cb" - } - Frame { - msec: 2064 - hash: "0b23ec51f71fddae5e2238ab5754f1db" - } - Frame { - msec: 2080 - hash: "976643961ecbdc86335180ba812b874e" - } - Frame { - msec: 2096 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2112 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2128 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2144 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2160 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2176 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2192 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2208 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2224 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2240 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2256 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2272 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2288 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2304 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2320 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2336 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2352 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2368 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2384 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2400 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2416 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2432 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2448 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2464 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2480 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2496 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2512 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2528 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2544 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2560 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2576 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2592 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2608 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2624 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2640 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2656 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2672 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2688 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2704 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2720 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2736 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2752 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 109; y: 247 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2768 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2784 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2800 - hash: "ab924ae435262e76381c2e4af5d64342" - } - Frame { - msec: 2816 - hash: "d60758fc12471a19d31c85f058f2ded7" - } - Frame { - msec: 2832 - hash: "c62e2956f8eb5d2c8cd76ba05c5929d5" - } - Frame { - msec: 2848 - hash: "f2967ee7e035a9ff258116a2706529f8" - } - Frame { - msec: 2864 - hash: "885c4705c6c29f69c56c44abc1251d75" - } - Frame { - msec: 2880 - image: "propertyAction.2.png" - } - Frame { - msec: 2896 - hash: "f4af6871e522511f95bc4c5abfc2a562" - } - Frame { - msec: 2912 - hash: "b27e1e7e0d90468525309528ccfe2823" - } - Frame { - msec: 2928 - hash: "78e7d84a4466258b40315fe61b7ca15c" - } - Frame { - msec: 2944 - hash: "471013d921d8d6e7468fd6aba0b75c71" - } - Frame { - msec: 2960 - hash: "856048da893c9136ac5740bc89b64128" - } - Frame { - msec: 2976 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 2992 - hash: "2264fa3acd979f104633c1301a0efd8f" - } - Frame { - msec: 3008 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 3024 - hash: "ad899d1ecaa43a5541be7b70413caee5" - } - Frame { - msec: 3040 - hash: "4e652524c992f5ee1b987275ca509728" - } - Frame { - msec: 3056 - hash: "a44b3dec2a016694bc8553a51b29d46c" - } - Frame { - msec: 3072 - hash: "7fbe20346bc3c28c345e0797b55599f3" - } - Frame { - msec: 3088 - hash: "bcff18ad433bb4f08126ee66efb037d1" - } - Frame { - msec: 3104 - hash: "836666c64f73c38e87de95944ff2fe72" - } - Frame { - msec: 3120 - hash: "4379982d23db239b1741b5d72c53e160" - } - Frame { - msec: 3136 - hash: "0ed9476337214e1493c1510b8a4c90f8" - } - Frame { - msec: 3152 - hash: "dab637406577a1924c7dbb30680e1af3" - } - Frame { - msec: 3168 - hash: "dcc79277fdb8966e5a3f2ed1b2fc4292" - } - Frame { - msec: 3184 - hash: "5f207d1dfad4907f200d76104881bf56" - } - Frame { - msec: 3200 - hash: "3434fc7f81e859722585dae97c557864" - } - Frame { - msec: 3216 - hash: "7c775b9be8c5293d4962324574267c22" - } - Frame { - msec: 3232 - hash: "da0ff6955c2e4cd86421bdb9053f56e6" - } - Frame { - msec: 3248 - hash: "a1297d525a3ad41abbbb7c2f15efd4fb" - } - Frame { - msec: 3264 - hash: "5326b220995b2a1eaa308ad10fd353fa" - } - Frame { - msec: 3280 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3296 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3312 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3328 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3344 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3360 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3376 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3392 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3408 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3424 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3440 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3456 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3472 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3488 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3504 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3520 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3536 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3552 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3568 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3584 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3600 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3616 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3632 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } -} diff --git a/tests/auto/declarative/visual/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/propertyAction.qml deleted file mode 100644 index a9d3c74..0000000 --- a/tests/auto/declarative/visual/propertyAction/propertyAction.qml +++ /dev/null @@ -1,34 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Rectangle { - id: MyRect - width: 100; height: 100 - color: "red" - } - MouseRegion { - id: Clickable - anchors.fill: parent - } - - states: State { - name: "state1" - when: Clickable.pressed - PropertyChanges { - target: MyRect - x: 50; y: 50 - color: "blue" - } - } - - transitions: Transition { - to: "state1" - reversible: true - SequentialAnimation { - ColorAnimation {} - PropertyAction { matchProperties: "x" } - NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } - } - } -} diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png deleted file mode 100644 index 64d6b06..0000000 Binary files a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png deleted file mode 100644 index 1a25c63..0000000 Binary files a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml deleted file mode 100644 index 01da490..0000000 --- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml +++ /dev/null @@ -1,535 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 32 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 48 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 64 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 80 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 96 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 112 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 128 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 144 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 160 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 176 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 192 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 208 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 224 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 240 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 256 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 272 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 288 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 304 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 320 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 336 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 352 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 368 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 384 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 400 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 416 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 432 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 448 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 464 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 480 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 496 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 512 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 528 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 544 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 560 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 576 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 592 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 608 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 624 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 640 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 656 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 672 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 688 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 704 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 720 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 736 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 752 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 768 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 784 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 800 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 816 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 832 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 848 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 864 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 880 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 896 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 912 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 928 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 944 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 960 - image: "scriptAction.0.png" - } - Frame { - msec: 976 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 992 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1008 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1024 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1040 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1056 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1072 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1088 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 146; y: 259 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1104 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1120 - hash: "9850cd8ed4643900409d1a87ef0bc4cf" - } - Frame { - msec: 1136 - hash: "1cf03396b01e931e4e7e8e7e57e19c5f" - } - Frame { - msec: 1152 - hash: "25fe648b85ec2d82621853dcbdbf695a" - } - Frame { - msec: 1168 - hash: "1ca701e56fe387d5849f6933eb53aee9" - } - Frame { - msec: 1184 - hash: "b39ecb792659a053a8985e2a849d6d51" - } - Frame { - msec: 1200 - hash: "9a783432a054beec81cc5687f75a36dc" - } - Frame { - msec: 1216 - hash: "edbd222d7ba6c6f819ded45fe316d461" - } - Frame { - msec: 1232 - hash: "eaf20159c4b90f90872bbd514d3a0cec" - } - Frame { - msec: 1248 - hash: "964807dd9b91e765577a773ef1ce2593" - } - Frame { - msec: 1264 - hash: "16e12026ab14657b0f36b8315684455d" - } - Frame { - msec: 1280 - hash: "d001a6b2fec3c66baaa45d9ff93b3f63" - } - Frame { - msec: 1296 - hash: "fef11eb5f635bc11cd9679b7213b3b92" - } - Frame { - msec: 1312 - hash: "0a0cd5f5004048d88712cfe6943470c0" - } - Frame { - msec: 1328 - hash: "0d83178afdae5feaa9915d56c24373ad" - } - Frame { - msec: 1344 - hash: "0a9e6e0b7b23ce93dc4e1f886cf9c7d1" - } - Frame { - msec: 1360 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1376 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1392 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 1408 - hash: "dc98f32a1a2d6e74998123b5232107b0" - } - Frame { - msec: 1424 - hash: "db3010ef552146df938c237f6c92bff5" - } - Frame { - msec: 1440 - hash: "101e8595d0301e88376ec52ba9361f84" - } - Frame { - msec: 1456 - hash: "119d548c59baa7e47266d2ceca663288" - } - Frame { - msec: 1472 - hash: "f141fafe102a0b9a2bf33e8c3fc800ff" - } - Frame { - msec: 1488 - hash: "b01f9ca8d4fbff17b3d48c70898a044d" - } - Frame { - msec: 1504 - hash: "cf67954a2d1b22e8d2cfdc26419bafb8" - } - Frame { - msec: 1520 - hash: "7680b2b5a63dea13d733947297e01355" - } - Frame { - msec: 1536 - hash: "af1c017acf6b3c8cff86c9ceb60db3cb" - } - Frame { - msec: 1552 - hash: "0b23ec51f71fddae5e2238ab5754f1db" - } - Frame { - msec: 1568 - hash: "976643961ecbdc86335180ba812b874e" - } - Frame { - msec: 1584 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1600 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1616 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1632 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1648 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1664 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1680 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1696 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1712 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1728 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1744 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1760 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1776 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1792 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1808 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1824 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1840 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1856 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1872 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1888 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1904 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1920 - image: "scriptAction.1.png" - } - Frame { - msec: 1936 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1952 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1968 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1984 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2000 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2016 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2032 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2048 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } -} diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/scriptAction.qml deleted file mode 100644 index 872701b..0000000 --- a/tests/auto/declarative/visual/scriptAction/scriptAction.qml +++ /dev/null @@ -1,35 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Rectangle { - id: myRect - width: 100; height: 100 - color: "red" - } - MouseRegion { - id: clickable - anchors.fill: parent - } - - states: State { - name: "state1" - when: clickable.pressed - PropertyChanges { - target: myRect - x: 50; y: 50 - } - StateChangeScript { - name: "setColor" - script: myRect.color = "blue" - } - } - - transitions: Transition { - SequentialAnimation { - NumberAnimation { matchProperties: "x"; easing: "InOutQuad" } - ScriptAction { stateChangeScriptName: "setColor" } - NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } - } - } -} -- cgit v0.12 From 156992b432761f0a8ec897a57aa15f96c9eb09fc Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 14:31:51 +1000 Subject: Files for qtest directory on test server for importRemote tests. --- .../qtest/declarative/qmllanguage/LocalInternal.qml | 3 +++ .../qmllanguage/qtest/declarative/qmllanguage/Test.qml | 2 ++ .../qtest/declarative/qmllanguage/TestLocal.qml | 1 + .../qtest/declarative/qmllanguage/TestSubDir.qml | 2 ++ .../qtest/declarative/qmllanguage/pics/blue.png | Bin 0 -> 84 bytes .../qmllanguage/qtest/declarative/qmllanguage/qmldir | 3 +++ .../qtest/declarative/qmllanguage/subdir/SubTest.qml | 3 +++ .../qtest/declarative/qmllanguage/subdir/qmldir | 1 + 8 files changed, 15 insertions(+) create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml new file mode 100644 index 0000000..836c20a --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml new file mode 100644 index 0000000..11443ca --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml @@ -0,0 +1 @@ +LocalInternal {} diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml new file mode 100644 index 0000000..0dfede4 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml @@ -0,0 +1,2 @@ +import "subdir" +SubTest { } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png new file mode 100644 index 0000000..46f815f Binary files /dev/null and b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png differ diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir new file mode 100644 index 0000000..b32f82b --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir @@ -0,0 +1,3 @@ +Test 0.0 Test.qml +TestSubDir 0.0 TestSubDir.qml +TestLocal 0.0 TestLocal.qml diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml new file mode 100644 index 0000000..0ea9ec6 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Text {} diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir new file mode 100644 index 0000000..f7016c7 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir @@ -0,0 +1 @@ +SubTest 0.0 SubTest.qml -- cgit v0.12 From 7df3dce47c1ed9545065f60c3faebdd31d922a38 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 11 Nov 2009 14:32:50 +1000 Subject: remove unneeded constructor --- src/declarative/extra/qmlgraphicsanimatedimageitem.cpp | 7 +------ src/declarative/extra/qmlgraphicsanimatedimageitem_p.h | 1 - 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp index 2405bde..c364684 100644 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp @@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE QMovie::supportedFormats(). \table - \row + \row \o \image animatedimageitem.gif \o \qml @@ -83,11 +83,6 @@ QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *pare { } -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImage(dd, parent) -{ -} - QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() { Q_D(QmlGraphicsAnimatedImageItem); diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h index b581ea3..d716114 100644 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h +++ b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h @@ -90,7 +90,6 @@ private Q_SLOTS: void playingStatusChanged(); protected: - QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); void componentComplete(); private: -- cgit v0.12 From a74b55ca2c5a67cb273d77e9be39d987e765468e Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 14:44:45 +1000 Subject: Get rid of the extra directory. --- src/declarative/declarative.pro | 1 - src/declarative/extra/extra.pri | 20 - src/declarative/extra/qmlbehavior.cpp | 157 ------ src/declarative/extra/qmlbehavior_p.h | 84 --- src/declarative/extra/qmldatetimeformatter.cpp | 370 ------------- src/declarative/extra/qmldatetimeformatter_p.h | 116 ---- src/declarative/extra/qmlfontloader.cpp | 219 -------- src/declarative/extra/qmlfontloader_p.h | 94 ---- src/declarative/extra/qmlnumberformatter.cpp | 215 -------- src/declarative/extra/qmlnumberformatter_p.h | 92 ---- src/declarative/extra/qmlxmllistmodel.cpp | 727 ------------------------- src/declarative/extra/qmlxmllistmodel_p.h | 134 ----- src/declarative/extra/qnumberformat.cpp | 225 -------- src/declarative/extra/qnumberformat_p.h | 173 ------ src/declarative/util/qmlbehavior.cpp | 157 ++++++ src/declarative/util/qmlbehavior_p.h | 84 +++ src/declarative/util/qmldatetimeformatter.cpp | 370 +++++++++++++ src/declarative/util/qmldatetimeformatter_p.h | 116 ++++ src/declarative/util/qmlfontloader.cpp | 219 ++++++++ src/declarative/util/qmlfontloader_p.h | 94 ++++ src/declarative/util/qmlnumberformatter.cpp | 215 ++++++++ src/declarative/util/qmlnumberformatter_p.h | 92 ++++ src/declarative/util/qmlxmllistmodel.cpp | 727 +++++++++++++++++++++++++ src/declarative/util/qmlxmllistmodel_p.h | 134 +++++ src/declarative/util/qnumberformat.cpp | 225 ++++++++ src/declarative/util/qnumberformat_p.h | 173 ++++++ src/declarative/util/util.pri | 20 +- 27 files changed, 2624 insertions(+), 2629 deletions(-) delete mode 100644 src/declarative/extra/extra.pri delete mode 100644 src/declarative/extra/qmlbehavior.cpp delete mode 100644 src/declarative/extra/qmlbehavior_p.h delete mode 100644 src/declarative/extra/qmldatetimeformatter.cpp delete mode 100644 src/declarative/extra/qmldatetimeformatter_p.h delete mode 100644 src/declarative/extra/qmlfontloader.cpp delete mode 100644 src/declarative/extra/qmlfontloader_p.h delete mode 100644 src/declarative/extra/qmlnumberformatter.cpp delete mode 100644 src/declarative/extra/qmlnumberformatter_p.h delete mode 100644 src/declarative/extra/qmlxmllistmodel.cpp delete mode 100644 src/declarative/extra/qmlxmllistmodel_p.h delete mode 100644 src/declarative/extra/qnumberformat.cpp delete mode 100644 src/declarative/extra/qnumberformat_p.h create mode 100644 src/declarative/util/qmlbehavior.cpp create mode 100644 src/declarative/util/qmlbehavior_p.h create mode 100644 src/declarative/util/qmldatetimeformatter.cpp create mode 100644 src/declarative/util/qmldatetimeformatter_p.h create mode 100644 src/declarative/util/qmlfontloader.cpp create mode 100644 src/declarative/util/qmlfontloader_p.h create mode 100644 src/declarative/util/qmlnumberformatter.cpp create mode 100644 src/declarative/util/qmlnumberformatter_p.h create mode 100644 src/declarative/util/qmlxmllistmodel.cpp create mode 100644 src/declarative/util/qmlxmllistmodel_p.h create mode 100644 src/declarative/util/qnumberformat.cpp create mode 100644 src/declarative/util/qnumberformat_p.h diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 41fee96..e5e604b 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -19,7 +19,6 @@ include(3rdparty/3rdparty.pri) include(util/util.pri) include(graphicsitems/graphicsitems.pri) include(qml/qml.pri) -include(extra/extra.pri) include(widgets/widgets.pri) include(debugger/debugger.pri) diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri deleted file mode 100644 index 85ff6ea..0000000 --- a/src/declarative/extra/extra.pri +++ /dev/null @@ -1,20 +0,0 @@ -SOURCES += \ - extra/qnumberformat.cpp \ - extra/qmlnumberformatter.cpp \ - extra/qmldatetimeformatter.cpp \ - extra/qmlbehavior.cpp \ - extra/qmlfontloader.cpp - -HEADERS += \ - extra/qnumberformat_p.h \ - extra/qmlnumberformatter_p.h \ - extra/qmldatetimeformatter_p.h \ - extra/qmlbehavior_p.h \ - extra/qmlfontloader_p.h - -contains(QT_CONFIG, xmlpatterns) { - QT+=xmlpatterns - SOURCES += extra/qmlxmllistmodel.cpp - HEADERS += extra/qmlxmllistmodel_p.h -} - diff --git a/src/declarative/extra/qmlbehavior.cpp b/src/declarative/extra/qmlbehavior.cpp deleted file mode 100644 index 8364d8c..0000000 --- a/src/declarative/extra/qmlbehavior.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 -#include -#include -#include "qmlbehavior_p.h" -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,Behavior,QmlBehavior) - -class QmlBehaviorPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlBehavior) -public: - QmlBehaviorPrivate() : animation(0) {} - - QmlMetaProperty property; - QVariant currentValue; - QmlAbstractAnimation *animation; -}; - -/*! - \qmlclass Behavior QmlBehavior - \brief The Behavior element allows you to specify a default animation for a property change. - - In example below, the rect will use a bounce easing curve over 200 millisecond for any changes to its y property: - \code - Rectangle { - width: 20; height: 20 - color: "#00ff00" - y: 200 //initial value - y: Behavior { - NumberAnimation { - easing: "easeOutBounce(amplitude:100)" - duration: 200 - } - } - } - \endcode -*/ - - -QmlBehavior::QmlBehavior(QObject *parent) - : QObject(*(new QmlBehaviorPrivate), parent) -{ -} - -QmlBehavior::~QmlBehavior() -{ -} - -/*! - \qmlproperty Animation Behavior::animation - \default - - The animation to use when the behavior is triggered. -*/ - -QmlAbstractAnimation *QmlBehavior::animation() -{ - Q_D(QmlBehavior); - return d->animation; -} - -void QmlBehavior::setAnimation(QmlAbstractAnimation *animation) -{ - Q_D(QmlBehavior); - if (d->animation) { - qmlInfo(this) << tr("Can't change the animation assigned to a Behavior."); - return; - } - - d->animation = animation; - if (d->animation) - d->animation->setTarget(d->property); -} - -void QmlBehavior::write(const QVariant &value) -{ - Q_D(QmlBehavior); - if (!d->animation) { - d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); - return; - } - - d->currentValue = d->property.read(); - - d->animation->qtAnimation()->stop(); - - QmlStateOperation::ActionList actions; - Action action; - action.property = d->property; - action.fromValue = d->currentValue; - action.toValue = value; - actions << action; - - QList after; - if (d->animation) - d->animation->transition(actions, after, QmlAbstractAnimation::Forward); - d->animation->qtAnimation()->start(); - if (!after.contains(d->property)) - d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); -} - -void QmlBehavior::setTarget(const QmlMetaProperty &property) -{ - Q_D(QmlBehavior); - d->property = property; - d->currentValue = property.read(); - if (d->animation) - d->animation->setTarget(property); -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlbehavior_p.h b/src/declarative/extra/qmlbehavior_p.h deleted file mode 100644 index 9f85f84..0000000 --- a/src/declarative/extra/qmlbehavior_p.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef QMLBEHAVIOR_H -#define QMLBEHAVIOR_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlAbstractAnimation; -class QmlBehaviorPrivate; -class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlBehavior) - - Q_INTERFACES(QmlPropertyValueInterceptor) - Q_CLASSINFO("DefaultProperty", "animation") - Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) - -public: - QmlBehavior(QObject *parent=0); - ~QmlBehavior(); - - virtual void setTarget(const QmlMetaProperty &); - virtual void write(const QVariant &value); - - QmlAbstractAnimation *animation(); - void setAnimation(QmlAbstractAnimation *); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlBehavior) - -QT_END_HEADER - -#endif // QMLBEHAVIOR_H diff --git a/src/declarative/extra/qmldatetimeformatter.cpp b/src/declarative/extra/qmldatetimeformatter.cpp deleted file mode 100644 index 983287e..0000000 --- a/src/declarative/extra/qmldatetimeformatter.cpp +++ /dev/null @@ -1,370 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 "qmldatetimeformatter_p.h" -#include "private/qobject_p.h" -#include - -QT_BEGIN_NAMESPACE - -//TODO: may need optimisation as the QDateTime member may not be needed? -// be able to set a locale? - -class QmlDateTimeFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlDateTimeFormatter) -public: - QmlDateTimeFormatterPrivate() : locale(QLocale::system()), longStyle(false), componentComplete(true) {} - - void updateText(); - - QDateTime dateTime; - QDate date; - QTime time; - QLocale locale; - QString dateTimeText; - QString dateText; - QString timeText; - QString dateTimeFormat; //set for convienience? - QString dateFormat; - QString timeFormat; - bool longStyle; - bool componentComplete; -}; - -/*! - \qmlclass DateTimeFormatter QmlDateTimeFormatter - \brief The DateTimeFormatter allows you to control the format of a date string. - - \code - DateTimeFormatter { id: formatter; date: System.date } - Text { text: formatter.dateText } - \endcode - - By default, the text properties (dateText, timeText, and dateTimeText) will return the - date and time using the current system locale's format. -*/ - -/*! - \internal - \class QmlDateTimeFormatter - \ingroup group_utility - \brief The QmlDateTimeFormatter class allows you to format a date string. -*/ - -QmlDateTimeFormatter::QmlDateTimeFormatter(QObject *parent) -: QObject(*(new QmlDateTimeFormatterPrivate), parent) -{ -} - -QmlDateTimeFormatter::~QmlDateTimeFormatter() -{ -} - -/*! - \qmlproperty string DateTimeFormatter::dateText - \qmlproperty string DateTimeFormatter::timeText - \qmlproperty string DateTimeFormatter::dateTimeText - - Formatted text representations of the \c date, \c time, - and \c {date and time}, respectively. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - \code - // specify source date (assuming today is February 19, 2009) - DateTimeFormatter { id: formatter; dateTime: Today.date } - - // display the full date and time - Text { text: formatter.dateText } - \endcode - - Would be equivalent to the following for a US English locale: - - \code - // display the date - Text { text: "2/19/09" } - \endcode -*/ -QString QmlDateTimeFormatter::dateTimeText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTimeText; -} - -QString QmlDateTimeFormatter::dateText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateText; -} - -QString QmlDateTimeFormatter::timeText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->timeText; -} - -/*! - \qmlproperty date DateTimeFormatter::date - \qmlproperty time DateTimeFormatter::time - \qmlproperty datetime DateTimeFormatter::dateTime - - The source date and time to be used by the formatter. - - \code - // setting the date and time - DateTimeFormatter { date: System.date; time: System.time } - \endcode - - For convienience it is possible to set the datetime property to set both the date and the time. - \code - // setting the datetime - DateTimeFormatter { dateTime: System.dateTime } - \endcode - - There can only be one instance of date and time per formatter; if date, time, and dateTime are all - set the actual date and time used is not guaranteed. - - \note If no date is set, dateTimeText will be just the date; - If no time is set, the dateTimeText will be just the time. - -*/ -QDate QmlDateTimeFormatter::date() const -{ - Q_D(const QmlDateTimeFormatter); - return d->date; -} - -QTime QmlDateTimeFormatter::time() const -{ - Q_D(const QmlDateTimeFormatter); - return d->time; -} - -QDateTime QmlDateTimeFormatter::dateTime() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTime; -} - -/*! - \qmlproperty string DateTimeFormatter::dateFormat - \qmlproperty string DateTimeFormatter::timeFormat - \qmlproperty string DateTimeFormatter::dateTimeFormat - - Specifies a custom format which the DateTime Formatter can use. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - The text's format may be modified by setting: - \list - \i \c dateFormat - \i \c timeFormat - \i \c dateTimeFormat - \endlist - - If only the format for date is defined, the time and dateTime formats will be defined - as the system locale default and likewise for the others. - - Syntax for the format is based on the QDateTime::toString() formatting options. - - \code - // Format the date such that the dateText is: '1997-12-12' - DateTimeFormatter { id: formatter; dateTime: Today.dateTime; formatDate: "yyyy-MM-d" } - \endcode - - Assigning an empty string to a particular format will reset it. -*/ -QString QmlDateTimeFormatter::dateTimeFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTimeFormat; -} - -QString QmlDateTimeFormatter::dateFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateFormat; -} - -QString QmlDateTimeFormatter::timeFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->timeFormat; -} - -/*! - \qmlproperty bool DateTimeFormatter::longStyle - - This property causes the formatter to use the system locale's long format rather than short format - by default. - - This setting is off by default. -*/ -bool QmlDateTimeFormatter::longStyle() const -{ - Q_D(const QmlDateTimeFormatter); - return d->longStyle; -} - -void QmlDateTimeFormatter::setDateTime(const QDateTime &dateTime) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime == dateTime) - return; - d->dateTime = dateTime; - d->date = d->dateTime.date(); - d->time = d->dateTime.time(); - d->updateText(); -} - -void QmlDateTimeFormatter::setTime(const QTime &time) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime.time() == time) - return; - d->time = time; - d->dateTime.setTime(time); - d->updateText(); -} - -void QmlDateTimeFormatter::setDate(const QDate &date) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime.date() == date) - return; - d->date = date; - bool clearTime = d->dateTime.time().isValid() ? false : true; //because setting date generates default time - d->dateTime.setDate(date); - if (clearTime) - d->dateTime.setTime(QTime()); - d->updateText(); -} - -//DateTime formatting may be a combination of date and time? -void QmlDateTimeFormatter::setDateTimeFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->dateTimeFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setDateFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->dateFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setTimeFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->timeFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setLongStyle(bool longStyle) -{ - Q_D(QmlDateTimeFormatter); - d->longStyle = longStyle; - d->updateText(); -} - -void QmlDateTimeFormatterPrivate::updateText() -{ - Q_Q(QmlDateTimeFormatter); - if (!componentComplete) - return; - - QString str; - QString str1; - QString str2; - - Qt::DateFormat defaultFormat = longStyle ? Qt::SystemLocaleLongDate : Qt::SystemLocaleShortDate; - - if (dateFormat.isEmpty()) - str1 = date.toString(defaultFormat); - else - str1 = date.toString(dateFormat); - - if (timeFormat.isEmpty()) - str2 = time.toString(defaultFormat); - else - str2 = time.toString(timeFormat); - - if (dateTimeFormat.isEmpty()) - str = dateTime.toString(defaultFormat); - //else if (!formatTime.isEmpty() && !formatDate.isEmpty()) - // str = str1 + QLatin1Char(' ') + str2; - else - str = dateTime.toString(dateTimeFormat); - - if (dateTimeText == str && dateText == str1 && timeText == str2) - return; - - dateTimeText = str; - dateText = str1; - timeText = str2; - - emit q->textChanged(); -} - -void QmlDateTimeFormatter::classBegin() -{ - Q_D(QmlDateTimeFormatter); - d->componentComplete = false; -} - -void QmlDateTimeFormatter::componentComplete() -{ - Q_D(QmlDateTimeFormatter); - d->componentComplete = true; - d->updateText(); -} - -QML_DEFINE_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter) - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmldatetimeformatter_p.h b/src/declarative/extra/qmldatetimeformatter_p.h deleted file mode 100644 index e350f96..0000000 --- a/src/declarative/extra/qmldatetimeformatter_p.h +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef QMLDATETIMEFORMATTER_H -#define QMLDATETIMEFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlDateTimeFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) - Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) - Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) - Q_PROPERTY(QDate date READ date WRITE setDate) - Q_PROPERTY(QTime time READ time WRITE setTime) - Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) - Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) - Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) - Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) - Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) -public: - QmlDateTimeFormatter(QObject *parent=0); - ~QmlDateTimeFormatter(); - - QString dateTimeText() const; - QString dateText() const; - QString timeText() const; - - QDate date() const; - void setDate(const QDate &); - - QTime time() const; - void setTime(const QTime &); - - QDateTime dateTime() const; - void setDateTime(const QDateTime &); - - QString dateTimeFormat() const; - void setDateTimeFormat(const QString &); - - QString dateFormat() const; - void setDateFormat(const QString &); - - QString timeFormat() const; - void setTimeFormat(const QString &); - - bool longStyle() const; - void setLongStyle(bool); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlDateTimeFormatter) - Q_DECLARE_PRIVATE(QmlDateTimeFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlDateTimeFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlfontloader.cpp b/src/declarative/extra/qmlfontloader.cpp deleted file mode 100644 index 36ee1bb..0000000 --- a/src/declarative/extra/qmlfontloader.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 "private/qobject_p.h" -#include "qmlfontloader_p.h" -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlFontLoaderPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlFontLoader) - -public: - QmlFontLoaderPrivate() : reply(0), status(QmlFontLoader::Null) {} - - void addFontToDatabase(const QByteArray &); - - QUrl url; - QString name; - QNetworkReply *reply; - QmlFontLoader::Status status; -}; - -QML_DEFINE_TYPE(Qt,4,6,FontLoader,QmlFontLoader) - -/*! - \qmlclass FontLoader QmlFontLoader - \ingroup group_utility - \brief This item allows using fonts by name or url. - - Example: - \qml - FontLoader { id: fixedFont; name: "Courier" } - FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } - - Text { text: "Fixed-size font"; font.family: fixedFont.name } - Text { text: "Fancy font"; font.family: webFont.name } - \endqml -*/ -QmlFontLoader::QmlFontLoader(QObject *parent) - : QObject(*(new QmlFontLoaderPrivate), parent) -{ -} - -QmlFontLoader::~QmlFontLoader() -{ -} - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - - -/*! - \qmlproperty url FontLoader::source - The url of the font to load. -*/ -QUrl QmlFontLoader::source() const -{ - Q_D(const QmlFontLoader); - return d->url; -} - -void QmlFontLoader::setSource(const QUrl &url) -{ - Q_D(QmlFontLoader); - if (url == d->url) - return; - d->url = qmlContext(this)->resolvedUrl(url); - - d->status = Loading; - emit statusChanged(); -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(d->url); - if (!lf.isEmpty()) { - QFile file(lf); - file.open(QIODevice::ReadOnly); - QByteArray ba = file.readAll(); - d->addFontToDatabase(ba); - } else -#endif - { - QNetworkRequest req(d->url); - d->reply = qmlEngine(this)->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(replyFinished())); - } -} - -/*! - \qmlproperty string FontLoader::name - - This property holds the name of the font family. - It is set automatically when a font is loaded using the \c url property. - - Use this to set the \c font.family property of a \c Text item. - - Example: - \qml - FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } - Text { text: "Fancy font"; font.family: webFont.name } - \endqml -*/ -QString QmlFontLoader::name() const -{ - Q_D(const QmlFontLoader); - return d->name; -} - -void QmlFontLoader::setName(const QString &name) -{ - Q_D(QmlFontLoader); - if (d->name == name ) - return; - d->name = name; - emit nameChanged(); - d->status = Ready; - emit statusChanged(); -} - -/*! - \qmlproperty enum FontLoader::status - - This property holds the status of font loading. It can be one of: - \list - \o Null - no font has been set - \o Ready - the font has been loaded - \o Loading - the font is currently being loaded - \o Error - an error occurred while loading the font - \endlist -*/ -QmlFontLoader::Status QmlFontLoader::status() const -{ - Q_D(const QmlFontLoader); - return d->status; -} - -void QmlFontLoader::replyFinished() -{ - Q_D(QmlFontLoader); - if (d->reply) { - if (!d->reply->error()) { - QByteArray ba = d->reply->readAll(); - d->addFontToDatabase(ba); - } else { - d->status = Error; - emit statusChanged(); - } - d->reply->deleteLater(); - d->reply = 0; - } -} - -void QmlFontLoaderPrivate::addFontToDatabase(const QByteArray &ba) -{ - Q_Q(QmlFontLoader); - - int id = QFontDatabase::addApplicationFontFromData(ba); - if (id != -1) { - name = QFontDatabase::applicationFontFamilies(id).at(0); - emit q->nameChanged(); - status = QmlFontLoader::Ready; - } else { - status = QmlFontLoader::Error; - qWarning() << "Cannot load font:" << url; - } - emit q->statusChanged(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlfontloader_p.h b/src/declarative/extra/qmlfontloader_p.h deleted file mode 100644 index d02a181..0000000 --- a/src/declarative/extra/qmlfontloader_p.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef QMLFONTLOADER_H -#define QMLFONTLOADER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlFontLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlFontLoader) - Q_ENUMS(Status) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - -public: - enum Status { Null = 0, Ready, Loading, Error }; - - QmlFontLoader(QObject *parent = 0); - ~QmlFontLoader(); - - QUrl source() const; - void setSource(const QUrl &url); - - QString name() const; - void setName(const QString &name); - - Status status() const; - -private Q_SLOTS: - void replyFinished(); - -Q_SIGNALS: - void nameChanged(); - void statusChanged(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlFontLoader) - -QT_END_HEADER - -#endif // QMLFONTLOADER_H - diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp deleted file mode 100644 index b09be5b..0000000 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ /dev/null @@ -1,215 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 "qmlnumberformatter_p.h" -#include "private/qobject_p.h" - -QT_BEGIN_NAMESPACE - -//TODO: set locale -// docs -// this is a wrapper around qnumberformat (test integration) -// if number or format haven't been explictly set, text should be an empty string - -class QmlNumberFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlNumberFormatter) -public: - QmlNumberFormatterPrivate() : locale(QLocale::system()), number(0), componentComplete(true) {} - - void updateText(); - - QLocale locale; - QString format; - QNumberFormat numberFormat; - QString text; - qreal number; - bool componentComplete; -}; -/*! - \qmlclass NumberFormatter - \brief The NumberFormatter allows you to control the format of a number string. - - The format property documentation has more details on how the format can be manipulated. - - In the following example, the text element will display the text "1,234.57". - \code - NumberFormatter { id: formatter; number: 1234.5678; format: "##,##0.##" } - Text { text: formatter.text } - \endcode - - */ -/*! - \internal - \class QmlNumberFormatter - \ingroup group_utility - \brief The QmlNumberFormatter class allows you to format a number to a particular string format/locale specific number format. -*/ - -QmlNumberFormatter::QmlNumberFormatter(QObject *parent) -: QObject(*(new QmlNumberFormatterPrivate), parent) -{ -} - -QmlNumberFormatter::~QmlNumberFormatter() -{ -} - -/*! - \qmlproperty string NumberFormatter::text - - The number in the specified format. -
- If no format is specified the text will be empty. -*/ - -QString QmlNumberFormatter::text() const -{ - Q_D(const QmlNumberFormatter); - return d->text; -} - -/*! - \qmlproperty real NumberFormatter::number - - A single point precision number. (Doubles are not yet supported) - -*/ -qreal QmlNumberFormatter::number() const -{ - Q_D(const QmlNumberFormatter); - return d->number; -} - -/*! - \qmlproperty string NumberFormatter::format - - The particular format the number will adhere to during the conversion to text. -
- The format syntax follows a style similar to the Unicode Standard (UTS35). - - The table below shows the characters, patterns that can be used in the format. - - - - - - - - -
Character Meaning
# Any digit(s), zero shows as absent (for leading/trailing zeroes)
0 Implicit digit. Zero will show in the case that the input number is too small.
. Decimal separator. Output decimal seperator will be dependant on system locale.
, Grouping separator. The number of digits (either #, or 0) between the grouping separator and the decimal (or the rightmost digit) will determine the groupingSize)
other Any other character will be taken as a string literal and placed directly into the output string
- - Invalid formats will not guarantee a meaningful text output.
- - \note Input numbers that are too long for the given format will be rounded dependent on precison based on the position of the decimal point - - The following table illustrates the output text created by applying some examples of numeric formats to the formatter. - - - - - - - - - - - - -
Format Number Output
### 123456 123456
000 123456 123456
###### 1234 1234
000000 1234 001234
##,##0.## 1234.456 1,234.46 (for US locale)
1 234,46 (for FR locale)
000000,000.# 123456 000,123,456 (for US locale)
000 123 456 (for FR locale)
0.0### 0.999997 1.0
(000) 000 - 000 12345678 (012) 345 - 678
#A1212A
- -*/ -QString QmlNumberFormatter::format() const -{ - Q_D(const QmlNumberFormatter); - return d->format; -} - -void QmlNumberFormatter::setNumber(const qreal &number) -{ - Q_D(QmlNumberFormatter); - if (d->number == number) - return; - d->number = number; - d->updateText(); -} - -void QmlNumberFormatter::setFormat(const QString &format) -{ - Q_D(QmlNumberFormatter); - //no format checking - if (format.isEmpty()) - d->format = QString::null; - else - d->format = format; - d->updateText(); -} - -void QmlNumberFormatterPrivate::updateText() -{ - Q_Q(QmlNumberFormatter); - if (!componentComplete) - return; - - QNumberFormat tempFormat; - tempFormat.setFormat(format); - tempFormat.setNumber(number); - - text = tempFormat.text(); - - emit q->textChanged(); -} - -void QmlNumberFormatter::classBegin() -{ - Q_D(QmlNumberFormatter); - d->componentComplete = false; -} - -void QmlNumberFormatter::componentComplete() -{ - Q_D(QmlNumberFormatter); - d->componentComplete = true; - d->updateText(); -} -QML_DEFINE_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter); - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlnumberformatter_p.h b/src/declarative/extra/qmlnumberformatter_p.h deleted file mode 100644 index 0036cb9..0000000 --- a/src/declarative/extra/qmlnumberformatter_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef QMLNUMBERFORMATTER_H -#define QMLNUMBERFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlNumberFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString text READ text NOTIFY textChanged) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(qreal number READ number WRITE setNumber) -public: - QmlNumberFormatter(QObject *parent=0); - ~QmlNumberFormatter(); - - QString text() const; - - qreal number() const; - void setNumber(const qreal &); - - QString format() const; - void setFormat(const QString &); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlNumberFormatter) - Q_DECLARE_PRIVATE(QmlNumberFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlNumberFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp deleted file mode 100644 index 3d90b44..0000000 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ /dev/null @@ -1,727 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 "qmlxmllistmodel_p.h" -#include "private/qobject_p.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole) -QML_DEFINE_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel) - -/*! - \qmlclass XmlRole QmlXmlListModelRole - \brief The XmlRole element allows you to specify a role for an XmlListModel. -*/ - -/*! - \qmlproperty string XmlRole::name - The name for the role. This name is used to access the model data for this role from Qml. - - \qml - XmlRole { name: "title"; query: "title/string()" } - - ... - - Component { - id: myDelegate - Text { text: title } - } - \endqml -*/ - -/*! - \qmlproperty string XmlRole::query - The relative XPath query for this role. The query should not start with a '/' (i.e. it must be - relative). - - \qml - XmlRole { name: "title"; query: "title/string()" } - \endqml -*/ - -class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QString query READ query WRITE setQuery) - -public: - QmlXmlListModelRole() {} - ~QmlXmlListModelRole() {} - - QString name() const { return m_name; } - void setName(const QString &name) { m_name = name; } - - QString query() const { return m_query; } - void setQuery(const QString &query) - { - if (query.startsWith(QLatin1Char('/'))) { - qmlInfo(this) << tr("An XmlRole query must not start with '/'"); - return; - } - m_query = query; - } - - bool isValid() { - return !m_name.isEmpty() && !m_query.isEmpty(); - } - -private: - QString m_name; - QString m_query; -}; - -QML_DECLARE_TYPE(QmlXmlListModelRole) - -class QmlXmlListModelPrivate; -struct QmlXmlRoleList : public QmlConcreteList -{ - QmlXmlRoleList(QmlXmlListModelPrivate *p) - : model(p) {} - virtual void append(QmlXmlListModelRole *role); - //XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well - // (and the model should emit the appropriate signals) - virtual void clear(); - virtual void removeAt(int i); - virtual void insert(int i, QmlXmlListModelRole *role); - - QmlXmlListModelPrivate *model; -}; - -class QmlXmlQuery : public QThread -{ - Q_OBJECT -public: - QmlXmlQuery(QObject *parent=0) - : QThread(parent), m_quit(false), m_restart(false), m_abort(false), m_queryId(0) { - } - ~QmlXmlQuery() { - m_mutex.lock(); - m_quit = true; - m_condition.wakeOne(); - m_mutex.unlock(); - - wait(); - } - - void abort() { - QMutexLocker locker(&m_mutex); - m_abort = true; - } - - int doQuery(QString query, QString namespaces, QByteArray data, QmlXmlRoleList *roleObjects) { - QMutexLocker locker(&m_mutex); - m_modelData.clear(); - m_size = 0; - m_data = data; - m_query = QLatin1String("doc($src)") + query; - m_namespaces = namespaces; - m_roleObjects = roleObjects; - if (!isRunning()) { - m_abort = false; - start(); - } else { - m_restart = true; - m_condition.wakeOne(); - } - m_queryId++; - return m_queryId; - } - - QList > modelData() { - QMutexLocker locker(&m_mutex); - return m_modelData; - } - -Q_SIGNALS: - void queryCompleted(int queryId, int size); - -protected: - void run() { - while (!m_quit) { - m_mutex.lock(); - int queryId = m_queryId; - doQueryJob(); - if (m_size > 0) - doSubQueryJob(); - m_data.clear(); // no longer needed - m_mutex.unlock(); - - m_mutex.lock(); - if (!m_abort && m_size > 0) - emit queryCompleted(queryId, m_size); - if (!m_restart) - m_condition.wait(&m_mutex); - m_abort = false; - m_restart = false; - m_mutex.unlock(); - } - } - -private: - void doQueryJob(); - void doSubQueryJob(); - -private: - QMutex m_mutex; - QWaitCondition m_condition; - bool m_quit; - bool m_restart; - bool m_abort; - QByteArray m_data; - QString m_query; - QString m_namespaces; - QString m_prefix; - int m_size; - int m_queryId; - const QmlXmlRoleList *m_roleObjects; - QList > m_modelData; -}; - -void QmlXmlQuery::doQueryJob() -{ - QString r; - QXmlQuery query; - QBuffer buffer(&m_data); - buffer.open(QIODevice::ReadOnly); - query.bindVariable(QLatin1String("src"), &buffer); - query.setQuery(m_namespaces + m_query); - query.evaluateTo(&r); - - //qDebug() << r; - - //always need a single root element - QByteArray xml = "\n" + r.toUtf8() + ""; - QBuffer b(&xml); - b.open(QIODevice::ReadOnly); - //qDebug() << xml; - - QString namespaces = QLatin1String("declare namespace dummy=\"http://qtsotware.com/dummy\";\n") + m_namespaces; - QString prefix = QLatin1String("doc($inputDocument)/dummy:items") + - m_query.mid(m_query.lastIndexOf(QLatin1Char('/'))); - - //figure out how many items we are dealing with - int count = -1; - { - QXmlResultItems result; - QXmlQuery countquery; - countquery.bindVariable(QLatin1String("inputDocument"), &b); - countquery.setQuery(namespaces + QLatin1String("count(") + prefix + QLatin1String(")")); - countquery.evaluateTo(&result); - QXmlItem item(result.next()); - if (item.isAtomicValue()) - count = item.toAtomicValue().toInt(); - } - //qDebug() << count; - - m_prefix = namespaces + prefix + QLatin1String("/"); - m_data = xml; - if (count > 0) - m_size = count; -} - -void QmlXmlQuery::doSubQueryJob() -{ - m_modelData.clear(); - - QBuffer b(&m_data); - b.open(QIODevice::ReadOnly); - - QXmlQuery subquery; - subquery.bindVariable(QLatin1String("inputDocument"), &b); - - //### we might be able to condense even further (query for everything in one go) - for (int i = 0; i < m_roleObjects->size(); ++i) { - QmlXmlListModelRole *role = m_roleObjects->at(i); - if (!role->isValid()) { - QList resultList; - for (int j = 0; j < m_size; ++j) - resultList << QVariant(); - m_modelData << resultList; - continue; - } - subquery.setQuery(m_prefix + QLatin1String("(let $v := ") + role->query() + QLatin1String(" return if ($v) then ") + role->query() + QLatin1String(" else \"\")")); - QXmlResultItems output3; - subquery.evaluateTo(&output3); - QXmlItem item(output3.next()); - QList resultList; - while (!item.isNull()) { - resultList << item.toAtomicValue(); //### we used to trim strings - item = output3.next(); - } - //### should warn here if things have gone wrong. - while (resultList.count() < m_size) - resultList << QVariant(); - m_modelData << resultList; - b.seek(0); - } - - //XXX this method is much slower, but would work better for incremental loading - /*for (int j = 0; j < m_size; ++j) { - QList resultList; - for (int i = 0; i < m_roleObjects->size(); ++i) { - QmlXmlListModelRole *role = m_roleObjects->at(i); - subquery.setQuery(m_prefix.arg(j+1) + role->query()); - if (role->isStringList()) { - QStringList data; - subquery.evaluateTo(&data); - resultList << QVariant(data); - //qDebug() << data; - } else { - QString s; - subquery.evaluateTo(&s); - if (role->isCData()) { - //un-escape - s.replace(QLatin1String("<"), QLatin1String("<")); - s.replace(QLatin1String(">"), QLatin1String(">")); - s.replace(QLatin1String("&"), QLatin1String("&")); - } - resultList << s.trimmed(); - //qDebug() << s; - } - b.seek(0); - } - m_modelData << resultList; - }*/ -} - - -//TODO: error handling (currently quite fragile) -// profile doQuery and doSubquery -// support complex/nested objects? -// how do we handle data updates (like rss feed -- usually items inserted at beginning) - - -class QmlXmlListModelPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlXmlListModel) -public: - QmlXmlListModelPrivate() - : isComponentComplete(true), size(-1), highestRole(Qt::UserRole) - , reply(0), status(QmlXmlListModel::Null), progress(0.0) - , queryId(-1), roleObjects(this) {} - - bool isComponentComplete; - QUrl src; - QString xml; - QString query; - QString namespaces; - int size; - QList roles; - QStringList roleNames; - int highestRole; - QNetworkReply *reply; - QmlXmlListModel::Status status; - qreal progress; - QmlXmlQuery qmlXmlQuery; - int queryId; - QmlXmlRoleList roleObjects; - QList > data; -}; - - -void QmlXmlRoleList::append(QmlXmlListModelRole *role) { - QmlConcreteList::append(role); - model->roles << model->highestRole; - model->roleNames << role->name(); - ++model->highestRole; -} - -//XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well -// (and the model should emit the appropriate signals) -void QmlXmlRoleList::clear() -{ - model->roles.clear(); - model->roleNames.clear(); - QmlConcreteList::clear(); -} - -void QmlXmlRoleList::removeAt(int i) -{ - model->roles.removeAt(i); - model->roleNames.removeAt(i); - QmlConcreteList::removeAt(i); -} - -//### we should enforce unique role names -void QmlXmlRoleList::insert(int i, QmlXmlListModelRole *role) -{ - QmlConcreteList::insert(i, role); - model->roles.insert(i, model->highestRole); - model->roleNames.insert(i, role->name()); - ++model->highestRole; -} - -/*! - \class QmlXmlListModel - \internal -*/ - -/*! - \qmlclass XmlListModel QmlXmlListModel - \brief The XmlListModel element allows you to specify a model using XPath expressions. - - XmlListModel allows you to construct a model from XML data that can then be used as a data source - for the view classes (ListView, PathView, GridView) and any other classes that interact with model - data (like Repeater). - - The following is an example of a model containing news from a Yahoo RSS feed: - \qml - XmlListModel { - id: feedModel - source: "http://rss.news.yahoo.com/rss/oceania" - query: "/rss/channel/item" - XmlRole { name: "title"; query: "title/string()" } - XmlRole { name: "link"; query: "link/string()" } - XmlRole { name: "description"; query: "description/string()" } - } - \endqml - \note The model is currently static, so the above is really just a snapshot of an RSS feed. To force a - reload of the entire model, you can call the reload function. -*/ - -QmlXmlListModel::QmlXmlListModel(QObject *parent) - : QListModelInterface(*(new QmlXmlListModelPrivate), parent) -{ - Q_D(QmlXmlListModel); - connect(&d->qmlXmlQuery, SIGNAL(queryCompleted(int,int)), - this, SLOT(queryCompleted(int,int))); -} - -QmlXmlListModel::~QmlXmlListModel() -{ -} - -/*! - \qmlproperty list XmlListModel::roles - - The roles to make available for this model. -*/ -QmlList *QmlXmlListModel::roleObjects() -{ - Q_D(QmlXmlListModel); - return &d->roleObjects; -} - -QHash QmlXmlListModel::data(int index, const QList &roles) const -{ - Q_D(const QmlXmlListModel); - QHash rv; - for (int i = 0; i < roles.size(); ++i) { - int role = roles.at(i); - int roleIndex = d->roles.indexOf(role); - rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); - } - return rv; -} - -/*! - \qmlproperty int XmlListModel::count - The number of data entries in the model. -*/ -int QmlXmlListModel::count() const -{ - Q_D(const QmlXmlListModel); - return d->size; -} - -QList QmlXmlListModel::roles() const -{ - Q_D(const QmlXmlListModel); - return d->roles; -} - -QString QmlXmlListModel::toString(int role) const -{ - Q_D(const QmlXmlListModel); - int index = d->roles.indexOf(role); - if (index == -1) - return QString(); - return d->roleNames.at(index); -} - -/*! - \qmlproperty url XmlListModel::source - The location of the XML data source. - - If both source and xml are set, xml will be used. -*/ -QUrl QmlXmlListModel::source() const -{ - Q_D(const QmlXmlListModel); - return d->src; -} - -void QmlXmlListModel::setSource(const QUrl &src) -{ - Q_D(QmlXmlListModel); - if (d->src != src) { - d->src = src; - reload(); - } -} - -/*! - \qmlproperty string XmlListModel::xml - This property holds XML text set directly. - - The text is assumed to be UTF-8 encoded. - - If both source and xml are set, xml will be used. -*/ -QString QmlXmlListModel::xml() const -{ - Q_D(const QmlXmlListModel); - return d->xml; -} - -void QmlXmlListModel::setXml(const QString &xml) -{ - Q_D(QmlXmlListModel); - d->xml = xml; - reload(); -} - -/*! - \qmlproperty url XmlListModel::query - An absolute XPath query representing the base query for the model items. The query should start with - a '/' or '//'. -*/ -QString QmlXmlListModel::query() const -{ - Q_D(const QmlXmlListModel); - return d->query; -} - -void QmlXmlListModel::setQuery(const QString &query) -{ - Q_D(QmlXmlListModel); - if (!query.startsWith(QLatin1Char('/'))) { - qmlInfo(this) << tr("An XmlListModel query must start with '/' or \"//\""); - return; - } - - if (d->query != query) { - d->query = query; - reload(); - } -} - -/*! - \qmlproperty string XmlListModel::namespaceDeclarations - A set of declarations for the namespaces used in the query. -*/ -QString QmlXmlListModel::namespaceDeclarations() const -{ - Q_D(const QmlXmlListModel); - return d->namespaces; -} - -void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) -{ - Q_D(QmlXmlListModel); - if (d->namespaces != declarations) { - d->namespaces = declarations; - reload(); - } -} - -/*! - \qmlproperty enum XmlListModel::status - - This property holds the status of data source loading. It can be one of: - \list - \o Null - no data source has been set - \o Ready - nthe data source has been loaded - \o Loading - the data source is currently being loaded - \o Error - an error occurred while loading the data source - \endlist - - \sa progress - -*/ -QmlXmlListModel::Status QmlXmlListModel::status() const -{ - Q_D(const QmlXmlListModel); - return d->status; -} - -/*! - \qmlproperty real XmlListModel::progress - - This property holds the progress of data source loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ -qreal QmlXmlListModel::progress() const -{ - Q_D(const QmlXmlListModel); - return d->progress; -} - -void QmlXmlListModel::classBegin() -{ - Q_D(QmlXmlListModel); - d->isComponentComplete = false; -} - -void QmlXmlListModel::componentComplete() -{ - Q_D(QmlXmlListModel); - d->isComponentComplete = true; - reload(); -} - -/*! - \qmlmethod XmlListModel::reload() - - Reloads the model. All the existing model data will be removed, and the model - will be rebuilt from scratch. -*/ -void QmlXmlListModel::reload() -{ - Q_D(QmlXmlListModel); - - if (!d->isComponentComplete) - return; - - d->qmlXmlQuery.abort(); - d->queryId = -1; - - //clear existing data - int count = d->size; - d->size = 0; - d->data.clear(); - if (count > 0) - emit itemsRemoved(0, count); - - if (d->src.isEmpty() && d->xml.isEmpty()) - return; - - if (d->reply) { - d->reply->abort(); - d->reply->deleteLater(); - d->reply = 0; - } - - if (!d->xml.isEmpty()) { - d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, d->xml.toUtf8(), &d->roleObjects); - d->progress = 1.0; - d->status = Ready; - emit progressChanged(d->progress); - emit statusChanged(d->status); - return; - } - - d->progress = 0.0; - d->status = Loading; - emit progressChanged(d->progress); - emit statusChanged(d->status); - - QNetworkRequest req(d->src); - d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(requestFinished())); - QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); -} - -void QmlXmlListModel::requestFinished() -{ - Q_D(QmlXmlListModel); - if (d->reply->error() != QNetworkReply::NoError) { - disconnect(d->reply, 0, this, 0); - d->reply->deleteLater(); - d->reply = 0; - d->status = Error; - } else { - d->status = Ready; - QByteArray data = d->reply->readAll(); - d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, data, &d->roleObjects); - disconnect(d->reply, 0, this, 0); - d->reply->deleteLater(); - d->reply = 0; - } - d->progress = 1.0; - emit progressChanged(d->progress); - emit statusChanged(d->status); -} - -void QmlXmlListModel::requestProgress(qint64 received, qint64 total) -{ - Q_D(QmlXmlListModel); - if (d->status == Loading && total > 0) { - d->progress = qreal(received)/total; - emit progressChanged(d->progress); - } -} - -void QmlXmlListModel::queryCompleted(int id, int size) -{ - Q_D(QmlXmlListModel); - if (id != d->queryId) - return; - d->size = size; - if (size > 0) { - d->data = d->qmlXmlQuery.modelData(); - emit itemsInserted(0, d->size); - emit countChanged(); - } -} - -QT_END_NAMESPACE - -#include "qmlxmllistmodel.moc" diff --git a/src/declarative/extra/qmlxmllistmodel_p.h b/src/declarative/extra/qmlxmllistmodel_p.h deleted file mode 100644 index 18bf9d2..0000000 --- a/src/declarative/extra/qmlxmllistmodel_p.h +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef QMLXMLLISTMODEL_H -#define QMLXMLLISTMODEL_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlContext; - -class QmlXmlListModelRole; - -class QmlXmlListModelPrivate; -class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource) - Q_PROPERTY(QString xml READ xml WRITE setXml) - Q_PROPERTY(QString query READ query WRITE setQuery) - Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) - Q_PROPERTY(QmlList *roles READ roleObjects) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "roles") - -public: - QmlXmlListModel(QObject *parent = 0); - ~QmlXmlListModel(); - - virtual QHash data(int index, const QList &roles = (QList())) const; - virtual int count() const; - virtual QList roles() const; - virtual QString toString(int role) const; - - QmlList *roleObjects(); - - QUrl source() const; - void setSource(const QUrl&); - - QString xml() const; - void setXml(const QString&); - - QString query() const; - void setQuery(const QString&); - - QString namespaceDeclarations() const; - void setNamespaceDeclarations(const QString&); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void statusChanged(Status); - void progressChanged(qreal progress); - void countChanged(); - -public Q_SLOTS: - // ### need to use/expose Expiry to guess when to call this? - // ### property to auto-call this on reasonable Expiry? - // ### LastModified/Age also useful to guess. - // ### Probably also applies to other network-requesting types. - void reload(); - -private Q_SLOTS: - void requestFinished(); - void requestProgress(qint64,qint64); - void queryCompleted(int,int); - -private: - Q_DECLARE_PRIVATE(QmlXmlListModel) - Q_DISABLE_COPY(QmlXmlListModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlXmlListModel) - -QT_END_HEADER - -#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/extra/qnumberformat.cpp b/src/declarative/extra/qnumberformat.cpp deleted file mode 100644 index c6a03e9..0000000 --- a/src/declarative/extra/qnumberformat.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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 "qnumberformat_p.h" - -QT_BEGIN_NAMESPACE - -QML_DEFINE_NOCREATE_TYPE(QNumberFormat) - -QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal), - _groupingSize(0) -{ - _locale = QLocale::system(); - _groupingSeparator = _locale.groupSeparator(); - _decimalSeparator = _locale.decimalPoint(); - _currencySymbol = QLatin1Char('$'); -} - -QNumberFormat::~QNumberFormat() -{ - -} - -void QNumberFormat::updateText() -{ - QTime t; - t.start(); - static int totalTime; - - handleFormat(); - - totalTime += t.elapsed(); - emit textChanged(); -} - -void QNumberFormat::handleFormat() -{ - // ### is extremely messy - if (_format.isEmpty()) { - _text = QString(QLatin1String("%1")).arg(_number, -1, 'f', -1); - return; - } - - QString inputString; - - // ### possible to use the following parsed data in the future - - int remainingLength = _format.size(); - int currentIndex = _format.size()-1; - - int maxDigits = 0; - int minDigits = 0; - int decimalLength = 0; - - while (remainingLength > 0) { - switch(_format.at(currentIndex).unicode()) { - case ',': - if (decimalLength && !_groupingSize) - setGroupingSize(maxDigits - decimalLength); - else if (!_groupingSize) - setGroupingSize(maxDigits); - break; - case '.': - if (!decimalLength) - decimalLength = maxDigits; - break; - case '0': - minDigits++; - case '#': - maxDigits++; - break; - default: - break; - } - currentIndex--; - remainingLength--; - } - - // round given the decimal length/precision - inputString = QString(QLatin1String("%1")).arg(_number, -1, 'f', decimalLength); - - QStringList parts = inputString.split(QLatin1Char('.')); - QStringList formatParts = _format.split(QLatin1Char('.')); - - if (formatParts.size() > 2 || parts.size() > 2 ) - return; - - QString formatInt = formatParts.at(0); - - QString formatDec; - if (formatParts.size() == 2) - formatDec = formatParts.at(1); - - QString integer = parts.at(0); - - QString decimal; - if (parts.size() == 2) - decimal = parts.at(1); - - QString outputDecimal = formatDecimal(formatDec, decimal); - QString outputInteger = formatInteger(formatInt, integer); - - // insert separators - if (_groupingSize) { - unsigned int count = 0; - for (int i = outputInteger.size()-1; i > 0; i--) { - if (outputInteger.at(i).digitValue() >= 0) { - if (count == _groupingSize - 1) { - count = 0; - outputInteger.insert(i, _groupingSeparator); - } - else - count++; - } - } - } - if (!outputDecimal.isEmpty()) - _text = outputInteger + _decimalSeparator + outputDecimal; - else - _text = outputInteger; -} - -QString QNumberFormat::formatInteger(const QString &formatInt, const QString &integer) -{ - if (formatInt.isEmpty() || integer.isEmpty()) - return QString(); - - QString outputInteger; - int formatIndex = formatInt.size()-1; - - //easier for carry? - for (int index= integer.size()-1; index >= 0; index--) { - if (formatIndex < 0) { - outputInteger.push_front(integer.at(index)); - } - else { - switch(formatInt.at(formatIndex).unicode()) { - case '0': - if (index > integer.size()-1) { - outputInteger.push_front(QLatin1Char('0')); - break; - } - case '#': - outputInteger.push_front(integer.at(index)); - break; - case ',': - index++; - break; - default: - outputInteger.push_front(formatInt.at(formatIndex)); - index++; - break; - } - formatIndex--; - } - } - while (formatIndex >= 0) { - if (formatInt.at(formatIndex).unicode() != '#' && formatInt.at(formatIndex).unicode() != ',') - outputInteger.push_front(formatInt.at(formatIndex)); - formatIndex--; - } - return outputInteger; -} - -QString QNumberFormat::formatDecimal(const QString &formatDec, const QString &decimal) -{ - QString outputDecimal; - - // up to max 6 decimal places - for (int index=formatDec.size()-1; index >= 0; index--) { - switch(formatDec.at(index).unicode()) { - case '0': - outputDecimal.push_front(decimal.at(index)); - break; - case '#': - if (decimal.at(index) != QLatin1Char('0') || outputDecimal.size() > 0) - outputDecimal.push_front(decimal.at(index)); - break; - default: - outputDecimal.push_front(formatDec.at(index)); - break; - } - } - return outputDecimal; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qnumberformat_p.h b/src/declarative/extra/qnumberformat_p.h deleted file mode 100644 index 1a7b8e4..0000000 --- a/src/declarative/extra/qnumberformat_p.h +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative module 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$ -** -****************************************************************************/ - -#ifndef NUMBERFORMAT_H -#define NUMBERFORMAT_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -// TODO -// be able to set Locale, instead of default system for dynamic formatting -// add currency support -// add additional syntax, extend to format scientific, percentiles, significant digits etc - - -class QNumberFormat : public QObject -{ - Q_OBJECT - Q_ENUMS(NumberType) -public: - QNumberFormat(QObject *parent=0); - ~QNumberFormat(); - - enum NumberType { - Percent, - Scientific, - Currency, - Decimal - }; - - //external property, only visible - Q_PROPERTY(QString text READ text NOTIFY textChanged) - - //mutatable properties to modify the output (text) - Q_PROPERTY(qreal number READ number WRITE setNumber) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(QLocale locale READ locale WRITE setLocale) - - //Format specific settings - Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) - Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) - Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) - Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) - - - QString text() const { return _text; } - - qreal number() const { return _number; } - void setNumber(qreal n) { - if (_number == n) - return; - _number = n; - updateText(); - } - - QString format() const { return _format; } - void setFormat(const QString &format) { - if (format.isEmpty()) - _format = QString::null; - else if (_format == format) - return; - - _format = format; - updateText(); - } - - QLocale locale() const { return _locale; } - void setLocale(const QLocale &locale) { _locale = locale; updateText(); } - - //Do we deal with unicode standard? or create our own - // ### since this is the backend for the number conversions, we will use the unicode - // the front-end will handle the QChar/QString -> short int - - unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } - void setGroupingSeparator(unsigned short unicodeSymbol) - { - _groupingSeparator = QChar(unicodeSymbol); - } - - unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } - void setDecimalSeparator(unsigned short unicodeSymbol) - { - _decimalSeparator = QChar(unicodeSymbol); - } - - unsigned short currencySymbol() { return _currencySymbol.unicode(); } - void setCurrencySymbol(unsigned short unicodeSymbol) - { - _currencySymbol = QChar(unicodeSymbol); - } - - unsigned int groupingSize() { return _groupingSize; } - void setGroupingSize(unsigned int size) - { - _groupingSize = size; - } - -Q_SIGNALS: - void textChanged(); - -private: - void updateText(); - void handleFormat(); - QString formatInteger(const QString &formatInt, const QString &integer); - QString formatDecimal(const QString &formatDec, const QString &decimal); - - qreal _number; - NumberType _type; - QChar _groupingSeparator; - QChar _decimalSeparator; - QChar _currencySymbol; - unsigned int _groupingSize; - - QLocale _locale; - QString _format; - - // only hooked member at the moment - QString _text; - -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QNumberFormat) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmlbehavior.cpp b/src/declarative/util/qmlbehavior.cpp new file mode 100644 index 0000000..8364d8c --- /dev/null +++ b/src/declarative/util/qmlbehavior.cpp @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 +#include +#include +#include "qmlbehavior_p.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,Behavior,QmlBehavior) + +class QmlBehaviorPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlBehavior) +public: + QmlBehaviorPrivate() : animation(0) {} + + QmlMetaProperty property; + QVariant currentValue; + QmlAbstractAnimation *animation; +}; + +/*! + \qmlclass Behavior QmlBehavior + \brief The Behavior element allows you to specify a default animation for a property change. + + In example below, the rect will use a bounce easing curve over 200 millisecond for any changes to its y property: + \code + Rectangle { + width: 20; height: 20 + color: "#00ff00" + y: 200 //initial value + y: Behavior { + NumberAnimation { + easing: "easeOutBounce(amplitude:100)" + duration: 200 + } + } + } + \endcode +*/ + + +QmlBehavior::QmlBehavior(QObject *parent) + : QObject(*(new QmlBehaviorPrivate), parent) +{ +} + +QmlBehavior::~QmlBehavior() +{ +} + +/*! + \qmlproperty Animation Behavior::animation + \default + + The animation to use when the behavior is triggered. +*/ + +QmlAbstractAnimation *QmlBehavior::animation() +{ + Q_D(QmlBehavior); + return d->animation; +} + +void QmlBehavior::setAnimation(QmlAbstractAnimation *animation) +{ + Q_D(QmlBehavior); + if (d->animation) { + qmlInfo(this) << tr("Can't change the animation assigned to a Behavior."); + return; + } + + d->animation = animation; + if (d->animation) + d->animation->setTarget(d->property); +} + +void QmlBehavior::write(const QVariant &value) +{ + Q_D(QmlBehavior); + if (!d->animation) { + d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); + return; + } + + d->currentValue = d->property.read(); + + d->animation->qtAnimation()->stop(); + + QmlStateOperation::ActionList actions; + Action action; + action.property = d->property; + action.fromValue = d->currentValue; + action.toValue = value; + actions << action; + + QList after; + if (d->animation) + d->animation->transition(actions, after, QmlAbstractAnimation::Forward); + d->animation->qtAnimation()->start(); + if (!after.contains(d->property)) + d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); +} + +void QmlBehavior::setTarget(const QmlMetaProperty &property) +{ + Q_D(QmlBehavior); + d->property = property; + d->currentValue = property.read(); + if (d->animation) + d->animation->setTarget(property); +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlbehavior_p.h b/src/declarative/util/qmlbehavior_p.h new file mode 100644 index 0000000..9f85f84 --- /dev/null +++ b/src/declarative/util/qmlbehavior_p.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef QMLBEHAVIOR_H +#define QMLBEHAVIOR_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlAbstractAnimation; +class QmlBehaviorPrivate; +class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlBehavior) + + Q_INTERFACES(QmlPropertyValueInterceptor) + Q_CLASSINFO("DefaultProperty", "animation") + Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) + +public: + QmlBehavior(QObject *parent=0); + ~QmlBehavior(); + + virtual void setTarget(const QmlMetaProperty &); + virtual void write(const QVariant &value); + + QmlAbstractAnimation *animation(); + void setAnimation(QmlAbstractAnimation *); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlBehavior) + +QT_END_HEADER + +#endif // QMLBEHAVIOR_H diff --git a/src/declarative/util/qmldatetimeformatter.cpp b/src/declarative/util/qmldatetimeformatter.cpp new file mode 100644 index 0000000..983287e --- /dev/null +++ b/src/declarative/util/qmldatetimeformatter.cpp @@ -0,0 +1,370 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 "qmldatetimeformatter_p.h" +#include "private/qobject_p.h" +#include + +QT_BEGIN_NAMESPACE + +//TODO: may need optimisation as the QDateTime member may not be needed? +// be able to set a locale? + +class QmlDateTimeFormatterPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlDateTimeFormatter) +public: + QmlDateTimeFormatterPrivate() : locale(QLocale::system()), longStyle(false), componentComplete(true) {} + + void updateText(); + + QDateTime dateTime; + QDate date; + QTime time; + QLocale locale; + QString dateTimeText; + QString dateText; + QString timeText; + QString dateTimeFormat; //set for convienience? + QString dateFormat; + QString timeFormat; + bool longStyle; + bool componentComplete; +}; + +/*! + \qmlclass DateTimeFormatter QmlDateTimeFormatter + \brief The DateTimeFormatter allows you to control the format of a date string. + + \code + DateTimeFormatter { id: formatter; date: System.date } + Text { text: formatter.dateText } + \endcode + + By default, the text properties (dateText, timeText, and dateTimeText) will return the + date and time using the current system locale's format. +*/ + +/*! + \internal + \class QmlDateTimeFormatter + \ingroup group_utility + \brief The QmlDateTimeFormatter class allows you to format a date string. +*/ + +QmlDateTimeFormatter::QmlDateTimeFormatter(QObject *parent) +: QObject(*(new QmlDateTimeFormatterPrivate), parent) +{ +} + +QmlDateTimeFormatter::~QmlDateTimeFormatter() +{ +} + +/*! + \qmlproperty string DateTimeFormatter::dateText + \qmlproperty string DateTimeFormatter::timeText + \qmlproperty string DateTimeFormatter::dateTimeText + + Formatted text representations of the \c date, \c time, + and \c {date and time}, respectively. + + If there is no explictly specified format the DateTimeFormatter + will use the system locale's default 'short' setting. + + \code + // specify source date (assuming today is February 19, 2009) + DateTimeFormatter { id: formatter; dateTime: Today.date } + + // display the full date and time + Text { text: formatter.dateText } + \endcode + + Would be equivalent to the following for a US English locale: + + \code + // display the date + Text { text: "2/19/09" } + \endcode +*/ +QString QmlDateTimeFormatter::dateTimeText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTimeText; +} + +QString QmlDateTimeFormatter::dateText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateText; +} + +QString QmlDateTimeFormatter::timeText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->timeText; +} + +/*! + \qmlproperty date DateTimeFormatter::date + \qmlproperty time DateTimeFormatter::time + \qmlproperty datetime DateTimeFormatter::dateTime + + The source date and time to be used by the formatter. + + \code + // setting the date and time + DateTimeFormatter { date: System.date; time: System.time } + \endcode + + For convienience it is possible to set the datetime property to set both the date and the time. + \code + // setting the datetime + DateTimeFormatter { dateTime: System.dateTime } + \endcode + + There can only be one instance of date and time per formatter; if date, time, and dateTime are all + set the actual date and time used is not guaranteed. + + \note If no date is set, dateTimeText will be just the date; + If no time is set, the dateTimeText will be just the time. + +*/ +QDate QmlDateTimeFormatter::date() const +{ + Q_D(const QmlDateTimeFormatter); + return d->date; +} + +QTime QmlDateTimeFormatter::time() const +{ + Q_D(const QmlDateTimeFormatter); + return d->time; +} + +QDateTime QmlDateTimeFormatter::dateTime() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTime; +} + +/*! + \qmlproperty string DateTimeFormatter::dateFormat + \qmlproperty string DateTimeFormatter::timeFormat + \qmlproperty string DateTimeFormatter::dateTimeFormat + + Specifies a custom format which the DateTime Formatter can use. + + If there is no explictly specified format the DateTimeFormatter + will use the system locale's default 'short' setting. + + The text's format may be modified by setting: + \list + \i \c dateFormat + \i \c timeFormat + \i \c dateTimeFormat + \endlist + + If only the format for date is defined, the time and dateTime formats will be defined + as the system locale default and likewise for the others. + + Syntax for the format is based on the QDateTime::toString() formatting options. + + \code + // Format the date such that the dateText is: '1997-12-12' + DateTimeFormatter { id: formatter; dateTime: Today.dateTime; formatDate: "yyyy-MM-d" } + \endcode + + Assigning an empty string to a particular format will reset it. +*/ +QString QmlDateTimeFormatter::dateTimeFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTimeFormat; +} + +QString QmlDateTimeFormatter::dateFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateFormat; +} + +QString QmlDateTimeFormatter::timeFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->timeFormat; +} + +/*! + \qmlproperty bool DateTimeFormatter::longStyle + + This property causes the formatter to use the system locale's long format rather than short format + by default. + + This setting is off by default. +*/ +bool QmlDateTimeFormatter::longStyle() const +{ + Q_D(const QmlDateTimeFormatter); + return d->longStyle; +} + +void QmlDateTimeFormatter::setDateTime(const QDateTime &dateTime) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime == dateTime) + return; + d->dateTime = dateTime; + d->date = d->dateTime.date(); + d->time = d->dateTime.time(); + d->updateText(); +} + +void QmlDateTimeFormatter::setTime(const QTime &time) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime.time() == time) + return; + d->time = time; + d->dateTime.setTime(time); + d->updateText(); +} + +void QmlDateTimeFormatter::setDate(const QDate &date) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime.date() == date) + return; + d->date = date; + bool clearTime = d->dateTime.time().isValid() ? false : true; //because setting date generates default time + d->dateTime.setDate(date); + if (clearTime) + d->dateTime.setTime(QTime()); + d->updateText(); +} + +//DateTime formatting may be a combination of date and time? +void QmlDateTimeFormatter::setDateTimeFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->dateTimeFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setDateFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->dateFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setTimeFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->timeFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setLongStyle(bool longStyle) +{ + Q_D(QmlDateTimeFormatter); + d->longStyle = longStyle; + d->updateText(); +} + +void QmlDateTimeFormatterPrivate::updateText() +{ + Q_Q(QmlDateTimeFormatter); + if (!componentComplete) + return; + + QString str; + QString str1; + QString str2; + + Qt::DateFormat defaultFormat = longStyle ? Qt::SystemLocaleLongDate : Qt::SystemLocaleShortDate; + + if (dateFormat.isEmpty()) + str1 = date.toString(defaultFormat); + else + str1 = date.toString(dateFormat); + + if (timeFormat.isEmpty()) + str2 = time.toString(defaultFormat); + else + str2 = time.toString(timeFormat); + + if (dateTimeFormat.isEmpty()) + str = dateTime.toString(defaultFormat); + //else if (!formatTime.isEmpty() && !formatDate.isEmpty()) + // str = str1 + QLatin1Char(' ') + str2; + else + str = dateTime.toString(dateTimeFormat); + + if (dateTimeText == str && dateText == str1 && timeText == str2) + return; + + dateTimeText = str; + dateText = str1; + timeText = str2; + + emit q->textChanged(); +} + +void QmlDateTimeFormatter::classBegin() +{ + Q_D(QmlDateTimeFormatter); + d->componentComplete = false; +} + +void QmlDateTimeFormatter::componentComplete() +{ + Q_D(QmlDateTimeFormatter); + d->componentComplete = true; + d->updateText(); +} + +QML_DEFINE_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter) + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmldatetimeformatter_p.h b/src/declarative/util/qmldatetimeformatter_p.h new file mode 100644 index 0000000..e350f96 --- /dev/null +++ b/src/declarative/util/qmldatetimeformatter_p.h @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef QMLDATETIMEFORMATTER_H +#define QMLDATETIMEFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlDateTimeFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) + Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) + Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) + Q_PROPERTY(QDate date READ date WRITE setDate) + Q_PROPERTY(QTime time READ time WRITE setTime) + Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) + Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) + Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) + Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) + Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) +public: + QmlDateTimeFormatter(QObject *parent=0); + ~QmlDateTimeFormatter(); + + QString dateTimeText() const; + QString dateText() const; + QString timeText() const; + + QDate date() const; + void setDate(const QDate &); + + QTime time() const; + void setTime(const QTime &); + + QDateTime dateTime() const; + void setDateTime(const QDateTime &); + + QString dateTimeFormat() const; + void setDateTimeFormat(const QString &); + + QString dateFormat() const; + void setDateFormat(const QString &); + + QString timeFormat() const; + void setTimeFormat(const QString &); + + bool longStyle() const; + void setLongStyle(bool); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlDateTimeFormatter) + Q_DECLARE_PRIVATE(QmlDateTimeFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlDateTimeFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlfontloader.cpp b/src/declarative/util/qmlfontloader.cpp new file mode 100644 index 0000000..36ee1bb --- /dev/null +++ b/src/declarative/util/qmlfontloader.cpp @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 "private/qobject_p.h" +#include "qmlfontloader_p.h" +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlFontLoaderPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlFontLoader) + +public: + QmlFontLoaderPrivate() : reply(0), status(QmlFontLoader::Null) {} + + void addFontToDatabase(const QByteArray &); + + QUrl url; + QString name; + QNetworkReply *reply; + QmlFontLoader::Status status; +}; + +QML_DEFINE_TYPE(Qt,4,6,FontLoader,QmlFontLoader) + +/*! + \qmlclass FontLoader QmlFontLoader + \ingroup group_utility + \brief This item allows using fonts by name or url. + + Example: + \qml + FontLoader { id: fixedFont; name: "Courier" } + FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } + + Text { text: "Fixed-size font"; font.family: fixedFont.name } + Text { text: "Fancy font"; font.family: webFont.name } + \endqml +*/ +QmlFontLoader::QmlFontLoader(QObject *parent) + : QObject(*(new QmlFontLoaderPrivate), parent) +{ +} + +QmlFontLoader::~QmlFontLoader() +{ +} + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + + +/*! + \qmlproperty url FontLoader::source + The url of the font to load. +*/ +QUrl QmlFontLoader::source() const +{ + Q_D(const QmlFontLoader); + return d->url; +} + +void QmlFontLoader::setSource(const QUrl &url) +{ + Q_D(QmlFontLoader); + if (url == d->url) + return; + d->url = qmlContext(this)->resolvedUrl(url); + + d->status = Loading; + emit statusChanged(); +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(d->url); + if (!lf.isEmpty()) { + QFile file(lf); + file.open(QIODevice::ReadOnly); + QByteArray ba = file.readAll(); + d->addFontToDatabase(ba); + } else +#endif + { + QNetworkRequest req(d->url); + d->reply = qmlEngine(this)->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(replyFinished())); + } +} + +/*! + \qmlproperty string FontLoader::name + + This property holds the name of the font family. + It is set automatically when a font is loaded using the \c url property. + + Use this to set the \c font.family property of a \c Text item. + + Example: + \qml + FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } + Text { text: "Fancy font"; font.family: webFont.name } + \endqml +*/ +QString QmlFontLoader::name() const +{ + Q_D(const QmlFontLoader); + return d->name; +} + +void QmlFontLoader::setName(const QString &name) +{ + Q_D(QmlFontLoader); + if (d->name == name ) + return; + d->name = name; + emit nameChanged(); + d->status = Ready; + emit statusChanged(); +} + +/*! + \qmlproperty enum FontLoader::status + + This property holds the status of font loading. It can be one of: + \list + \o Null - no font has been set + \o Ready - the font has been loaded + \o Loading - the font is currently being loaded + \o Error - an error occurred while loading the font + \endlist +*/ +QmlFontLoader::Status QmlFontLoader::status() const +{ + Q_D(const QmlFontLoader); + return d->status; +} + +void QmlFontLoader::replyFinished() +{ + Q_D(QmlFontLoader); + if (d->reply) { + if (!d->reply->error()) { + QByteArray ba = d->reply->readAll(); + d->addFontToDatabase(ba); + } else { + d->status = Error; + emit statusChanged(); + } + d->reply->deleteLater(); + d->reply = 0; + } +} + +void QmlFontLoaderPrivate::addFontToDatabase(const QByteArray &ba) +{ + Q_Q(QmlFontLoader); + + int id = QFontDatabase::addApplicationFontFromData(ba); + if (id != -1) { + name = QFontDatabase::applicationFontFamilies(id).at(0); + emit q->nameChanged(); + status = QmlFontLoader::Ready; + } else { + status = QmlFontLoader::Error; + qWarning() << "Cannot load font:" << url; + } + emit q->statusChanged(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlfontloader_p.h b/src/declarative/util/qmlfontloader_p.h new file mode 100644 index 0000000..d02a181 --- /dev/null +++ b/src/declarative/util/qmlfontloader_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef QMLFONTLOADER_H +#define QMLFONTLOADER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlFontLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlFontLoader) + Q_ENUMS(Status) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + +public: + enum Status { Null = 0, Ready, Loading, Error }; + + QmlFontLoader(QObject *parent = 0); + ~QmlFontLoader(); + + QUrl source() const; + void setSource(const QUrl &url); + + QString name() const; + void setName(const QString &name); + + Status status() const; + +private Q_SLOTS: + void replyFinished(); + +Q_SIGNALS: + void nameChanged(); + void statusChanged(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlFontLoader) + +QT_END_HEADER + +#endif // QMLFONTLOADER_H + diff --git a/src/declarative/util/qmlnumberformatter.cpp b/src/declarative/util/qmlnumberformatter.cpp new file mode 100644 index 0000000..b09be5b --- /dev/null +++ b/src/declarative/util/qmlnumberformatter.cpp @@ -0,0 +1,215 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 "qmlnumberformatter_p.h" +#include "private/qobject_p.h" + +QT_BEGIN_NAMESPACE + +//TODO: set locale +// docs +// this is a wrapper around qnumberformat (test integration) +// if number or format haven't been explictly set, text should be an empty string + +class QmlNumberFormatterPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlNumberFormatter) +public: + QmlNumberFormatterPrivate() : locale(QLocale::system()), number(0), componentComplete(true) {} + + void updateText(); + + QLocale locale; + QString format; + QNumberFormat numberFormat; + QString text; + qreal number; + bool componentComplete; +}; +/*! + \qmlclass NumberFormatter + \brief The NumberFormatter allows you to control the format of a number string. + + The format property documentation has more details on how the format can be manipulated. + + In the following example, the text element will display the text "1,234.57". + \code + NumberFormatter { id: formatter; number: 1234.5678; format: "##,##0.##" } + Text { text: formatter.text } + \endcode + + */ +/*! + \internal + \class QmlNumberFormatter + \ingroup group_utility + \brief The QmlNumberFormatter class allows you to format a number to a particular string format/locale specific number format. +*/ + +QmlNumberFormatter::QmlNumberFormatter(QObject *parent) +: QObject(*(new QmlNumberFormatterPrivate), parent) +{ +} + +QmlNumberFormatter::~QmlNumberFormatter() +{ +} + +/*! + \qmlproperty string NumberFormatter::text + + The number in the specified format. +
+ If no format is specified the text will be empty. +*/ + +QString QmlNumberFormatter::text() const +{ + Q_D(const QmlNumberFormatter); + return d->text; +} + +/*! + \qmlproperty real NumberFormatter::number + + A single point precision number. (Doubles are not yet supported) + +*/ +qreal QmlNumberFormatter::number() const +{ + Q_D(const QmlNumberFormatter); + return d->number; +} + +/*! + \qmlproperty string NumberFormatter::format + + The particular format the number will adhere to during the conversion to text. +
+ The format syntax follows a style similar to the Unicode Standard (UTS35). + + The table below shows the characters, patterns that can be used in the format. + + + + + + + + +
Character Meaning
# Any digit(s), zero shows as absent (for leading/trailing zeroes)
0 Implicit digit. Zero will show in the case that the input number is too small.
. Decimal separator. Output decimal seperator will be dependant on system locale.
, Grouping separator. The number of digits (either #, or 0) between the grouping separator and the decimal (or the rightmost digit) will determine the groupingSize)
other Any other character will be taken as a string literal and placed directly into the output string
+ + Invalid formats will not guarantee a meaningful text output.
+ + \note Input numbers that are too long for the given format will be rounded dependent on precison based on the position of the decimal point + + The following table illustrates the output text created by applying some examples of numeric formats to the formatter. + + + + + + + + + + + + +
Format Number Output
### 123456 123456
000 123456 123456
###### 1234 1234
000000 1234 001234
##,##0.## 1234.456 1,234.46 (for US locale)
1 234,46 (for FR locale)
000000,000.# 123456 000,123,456 (for US locale)
000 123 456 (for FR locale)
0.0### 0.999997 1.0
(000) 000 - 000 12345678 (012) 345 - 678
#A1212A
+ +*/ +QString QmlNumberFormatter::format() const +{ + Q_D(const QmlNumberFormatter); + return d->format; +} + +void QmlNumberFormatter::setNumber(const qreal &number) +{ + Q_D(QmlNumberFormatter); + if (d->number == number) + return; + d->number = number; + d->updateText(); +} + +void QmlNumberFormatter::setFormat(const QString &format) +{ + Q_D(QmlNumberFormatter); + //no format checking + if (format.isEmpty()) + d->format = QString::null; + else + d->format = format; + d->updateText(); +} + +void QmlNumberFormatterPrivate::updateText() +{ + Q_Q(QmlNumberFormatter); + if (!componentComplete) + return; + + QNumberFormat tempFormat; + tempFormat.setFormat(format); + tempFormat.setNumber(number); + + text = tempFormat.text(); + + emit q->textChanged(); +} + +void QmlNumberFormatter::classBegin() +{ + Q_D(QmlNumberFormatter); + d->componentComplete = false; +} + +void QmlNumberFormatter::componentComplete() +{ + Q_D(QmlNumberFormatter); + d->componentComplete = true; + d->updateText(); +} +QML_DEFINE_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter); + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlnumberformatter_p.h b/src/declarative/util/qmlnumberformatter_p.h new file mode 100644 index 0000000..0036cb9 --- /dev/null +++ b/src/declarative/util/qmlnumberformatter_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef QMLNUMBERFORMATTER_H +#define QMLNUMBERFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlNumberFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString text READ text NOTIFY textChanged) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(qreal number READ number WRITE setNumber) +public: + QmlNumberFormatter(QObject *parent=0); + ~QmlNumberFormatter(); + + QString text() const; + + qreal number() const; + void setNumber(const qreal &); + + QString format() const; + void setFormat(const QString &); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlNumberFormatter) + Q_DECLARE_PRIVATE(QmlNumberFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlNumberFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlxmllistmodel.cpp b/src/declarative/util/qmlxmllistmodel.cpp new file mode 100644 index 0000000..3d90b44 --- /dev/null +++ b/src/declarative/util/qmlxmllistmodel.cpp @@ -0,0 +1,727 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 "qmlxmllistmodel_p.h" +#include "private/qobject_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole) +QML_DEFINE_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel) + +/*! + \qmlclass XmlRole QmlXmlListModelRole + \brief The XmlRole element allows you to specify a role for an XmlListModel. +*/ + +/*! + \qmlproperty string XmlRole::name + The name for the role. This name is used to access the model data for this role from Qml. + + \qml + XmlRole { name: "title"; query: "title/string()" } + + ... + + Component { + id: myDelegate + Text { text: title } + } + \endqml +*/ + +/*! + \qmlproperty string XmlRole::query + The relative XPath query for this role. The query should not start with a '/' (i.e. it must be + relative). + + \qml + XmlRole { name: "title"; query: "title/string()" } + \endqml +*/ + +class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QString query READ query WRITE setQuery) + +public: + QmlXmlListModelRole() {} + ~QmlXmlListModelRole() {} + + QString name() const { return m_name; } + void setName(const QString &name) { m_name = name; } + + QString query() const { return m_query; } + void setQuery(const QString &query) + { + if (query.startsWith(QLatin1Char('/'))) { + qmlInfo(this) << tr("An XmlRole query must not start with '/'"); + return; + } + m_query = query; + } + + bool isValid() { + return !m_name.isEmpty() && !m_query.isEmpty(); + } + +private: + QString m_name; + QString m_query; +}; + +QML_DECLARE_TYPE(QmlXmlListModelRole) + +class QmlXmlListModelPrivate; +struct QmlXmlRoleList : public QmlConcreteList +{ + QmlXmlRoleList(QmlXmlListModelPrivate *p) + : model(p) {} + virtual void append(QmlXmlListModelRole *role); + //XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well + // (and the model should emit the appropriate signals) + virtual void clear(); + virtual void removeAt(int i); + virtual void insert(int i, QmlXmlListModelRole *role); + + QmlXmlListModelPrivate *model; +}; + +class QmlXmlQuery : public QThread +{ + Q_OBJECT +public: + QmlXmlQuery(QObject *parent=0) + : QThread(parent), m_quit(false), m_restart(false), m_abort(false), m_queryId(0) { + } + ~QmlXmlQuery() { + m_mutex.lock(); + m_quit = true; + m_condition.wakeOne(); + m_mutex.unlock(); + + wait(); + } + + void abort() { + QMutexLocker locker(&m_mutex); + m_abort = true; + } + + int doQuery(QString query, QString namespaces, QByteArray data, QmlXmlRoleList *roleObjects) { + QMutexLocker locker(&m_mutex); + m_modelData.clear(); + m_size = 0; + m_data = data; + m_query = QLatin1String("doc($src)") + query; + m_namespaces = namespaces; + m_roleObjects = roleObjects; + if (!isRunning()) { + m_abort = false; + start(); + } else { + m_restart = true; + m_condition.wakeOne(); + } + m_queryId++; + return m_queryId; + } + + QList > modelData() { + QMutexLocker locker(&m_mutex); + return m_modelData; + } + +Q_SIGNALS: + void queryCompleted(int queryId, int size); + +protected: + void run() { + while (!m_quit) { + m_mutex.lock(); + int queryId = m_queryId; + doQueryJob(); + if (m_size > 0) + doSubQueryJob(); + m_data.clear(); // no longer needed + m_mutex.unlock(); + + m_mutex.lock(); + if (!m_abort && m_size > 0) + emit queryCompleted(queryId, m_size); + if (!m_restart) + m_condition.wait(&m_mutex); + m_abort = false; + m_restart = false; + m_mutex.unlock(); + } + } + +private: + void doQueryJob(); + void doSubQueryJob(); + +private: + QMutex m_mutex; + QWaitCondition m_condition; + bool m_quit; + bool m_restart; + bool m_abort; + QByteArray m_data; + QString m_query; + QString m_namespaces; + QString m_prefix; + int m_size; + int m_queryId; + const QmlXmlRoleList *m_roleObjects; + QList > m_modelData; +}; + +void QmlXmlQuery::doQueryJob() +{ + QString r; + QXmlQuery query; + QBuffer buffer(&m_data); + buffer.open(QIODevice::ReadOnly); + query.bindVariable(QLatin1String("src"), &buffer); + query.setQuery(m_namespaces + m_query); + query.evaluateTo(&r); + + //qDebug() << r; + + //always need a single root element + QByteArray xml = "\n" + r.toUtf8() + ""; + QBuffer b(&xml); + b.open(QIODevice::ReadOnly); + //qDebug() << xml; + + QString namespaces = QLatin1String("declare namespace dummy=\"http://qtsotware.com/dummy\";\n") + m_namespaces; + QString prefix = QLatin1String("doc($inputDocument)/dummy:items") + + m_query.mid(m_query.lastIndexOf(QLatin1Char('/'))); + + //figure out how many items we are dealing with + int count = -1; + { + QXmlResultItems result; + QXmlQuery countquery; + countquery.bindVariable(QLatin1String("inputDocument"), &b); + countquery.setQuery(namespaces + QLatin1String("count(") + prefix + QLatin1String(")")); + countquery.evaluateTo(&result); + QXmlItem item(result.next()); + if (item.isAtomicValue()) + count = item.toAtomicValue().toInt(); + } + //qDebug() << count; + + m_prefix = namespaces + prefix + QLatin1String("/"); + m_data = xml; + if (count > 0) + m_size = count; +} + +void QmlXmlQuery::doSubQueryJob() +{ + m_modelData.clear(); + + QBuffer b(&m_data); + b.open(QIODevice::ReadOnly); + + QXmlQuery subquery; + subquery.bindVariable(QLatin1String("inputDocument"), &b); + + //### we might be able to condense even further (query for everything in one go) + for (int i = 0; i < m_roleObjects->size(); ++i) { + QmlXmlListModelRole *role = m_roleObjects->at(i); + if (!role->isValid()) { + QList resultList; + for (int j = 0; j < m_size; ++j) + resultList << QVariant(); + m_modelData << resultList; + continue; + } + subquery.setQuery(m_prefix + QLatin1String("(let $v := ") + role->query() + QLatin1String(" return if ($v) then ") + role->query() + QLatin1String(" else \"\")")); + QXmlResultItems output3; + subquery.evaluateTo(&output3); + QXmlItem item(output3.next()); + QList resultList; + while (!item.isNull()) { + resultList << item.toAtomicValue(); //### we used to trim strings + item = output3.next(); + } + //### should warn here if things have gone wrong. + while (resultList.count() < m_size) + resultList << QVariant(); + m_modelData << resultList; + b.seek(0); + } + + //XXX this method is much slower, but would work better for incremental loading + /*for (int j = 0; j < m_size; ++j) { + QList resultList; + for (int i = 0; i < m_roleObjects->size(); ++i) { + QmlXmlListModelRole *role = m_roleObjects->at(i); + subquery.setQuery(m_prefix.arg(j+1) + role->query()); + if (role->isStringList()) { + QStringList data; + subquery.evaluateTo(&data); + resultList << QVariant(data); + //qDebug() << data; + } else { + QString s; + subquery.evaluateTo(&s); + if (role->isCData()) { + //un-escape + s.replace(QLatin1String("<"), QLatin1String("<")); + s.replace(QLatin1String(">"), QLatin1String(">")); + s.replace(QLatin1String("&"), QLatin1String("&")); + } + resultList << s.trimmed(); + //qDebug() << s; + } + b.seek(0); + } + m_modelData << resultList; + }*/ +} + + +//TODO: error handling (currently quite fragile) +// profile doQuery and doSubquery +// support complex/nested objects? +// how do we handle data updates (like rss feed -- usually items inserted at beginning) + + +class QmlXmlListModelPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlXmlListModel) +public: + QmlXmlListModelPrivate() + : isComponentComplete(true), size(-1), highestRole(Qt::UserRole) + , reply(0), status(QmlXmlListModel::Null), progress(0.0) + , queryId(-1), roleObjects(this) {} + + bool isComponentComplete; + QUrl src; + QString xml; + QString query; + QString namespaces; + int size; + QList roles; + QStringList roleNames; + int highestRole; + QNetworkReply *reply; + QmlXmlListModel::Status status; + qreal progress; + QmlXmlQuery qmlXmlQuery; + int queryId; + QmlXmlRoleList roleObjects; + QList > data; +}; + + +void QmlXmlRoleList::append(QmlXmlListModelRole *role) { + QmlConcreteList::append(role); + model->roles << model->highestRole; + model->roleNames << role->name(); + ++model->highestRole; +} + +//XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well +// (and the model should emit the appropriate signals) +void QmlXmlRoleList::clear() +{ + model->roles.clear(); + model->roleNames.clear(); + QmlConcreteList::clear(); +} + +void QmlXmlRoleList::removeAt(int i) +{ + model->roles.removeAt(i); + model->roleNames.removeAt(i); + QmlConcreteList::removeAt(i); +} + +//### we should enforce unique role names +void QmlXmlRoleList::insert(int i, QmlXmlListModelRole *role) +{ + QmlConcreteList::insert(i, role); + model->roles.insert(i, model->highestRole); + model->roleNames.insert(i, role->name()); + ++model->highestRole; +} + +/*! + \class QmlXmlListModel + \internal +*/ + +/*! + \qmlclass XmlListModel QmlXmlListModel + \brief The XmlListModel element allows you to specify a model using XPath expressions. + + XmlListModel allows you to construct a model from XML data that can then be used as a data source + for the view classes (ListView, PathView, GridView) and any other classes that interact with model + data (like Repeater). + + The following is an example of a model containing news from a Yahoo RSS feed: + \qml + XmlListModel { + id: feedModel + source: "http://rss.news.yahoo.com/rss/oceania" + query: "/rss/channel/item" + XmlRole { name: "title"; query: "title/string()" } + XmlRole { name: "link"; query: "link/string()" } + XmlRole { name: "description"; query: "description/string()" } + } + \endqml + \note The model is currently static, so the above is really just a snapshot of an RSS feed. To force a + reload of the entire model, you can call the reload function. +*/ + +QmlXmlListModel::QmlXmlListModel(QObject *parent) + : QListModelInterface(*(new QmlXmlListModelPrivate), parent) +{ + Q_D(QmlXmlListModel); + connect(&d->qmlXmlQuery, SIGNAL(queryCompleted(int,int)), + this, SLOT(queryCompleted(int,int))); +} + +QmlXmlListModel::~QmlXmlListModel() +{ +} + +/*! + \qmlproperty list XmlListModel::roles + + The roles to make available for this model. +*/ +QmlList *QmlXmlListModel::roleObjects() +{ + Q_D(QmlXmlListModel); + return &d->roleObjects; +} + +QHash QmlXmlListModel::data(int index, const QList &roles) const +{ + Q_D(const QmlXmlListModel); + QHash rv; + for (int i = 0; i < roles.size(); ++i) { + int role = roles.at(i); + int roleIndex = d->roles.indexOf(role); + rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); + } + return rv; +} + +/*! + \qmlproperty int XmlListModel::count + The number of data entries in the model. +*/ +int QmlXmlListModel::count() const +{ + Q_D(const QmlXmlListModel); + return d->size; +} + +QList QmlXmlListModel::roles() const +{ + Q_D(const QmlXmlListModel); + return d->roles; +} + +QString QmlXmlListModel::toString(int role) const +{ + Q_D(const QmlXmlListModel); + int index = d->roles.indexOf(role); + if (index == -1) + return QString(); + return d->roleNames.at(index); +} + +/*! + \qmlproperty url XmlListModel::source + The location of the XML data source. + + If both source and xml are set, xml will be used. +*/ +QUrl QmlXmlListModel::source() const +{ + Q_D(const QmlXmlListModel); + return d->src; +} + +void QmlXmlListModel::setSource(const QUrl &src) +{ + Q_D(QmlXmlListModel); + if (d->src != src) { + d->src = src; + reload(); + } +} + +/*! + \qmlproperty string XmlListModel::xml + This property holds XML text set directly. + + The text is assumed to be UTF-8 encoded. + + If both source and xml are set, xml will be used. +*/ +QString QmlXmlListModel::xml() const +{ + Q_D(const QmlXmlListModel); + return d->xml; +} + +void QmlXmlListModel::setXml(const QString &xml) +{ + Q_D(QmlXmlListModel); + d->xml = xml; + reload(); +} + +/*! + \qmlproperty url XmlListModel::query + An absolute XPath query representing the base query for the model items. The query should start with + a '/' or '//'. +*/ +QString QmlXmlListModel::query() const +{ + Q_D(const QmlXmlListModel); + return d->query; +} + +void QmlXmlListModel::setQuery(const QString &query) +{ + Q_D(QmlXmlListModel); + if (!query.startsWith(QLatin1Char('/'))) { + qmlInfo(this) << tr("An XmlListModel query must start with '/' or \"//\""); + return; + } + + if (d->query != query) { + d->query = query; + reload(); + } +} + +/*! + \qmlproperty string XmlListModel::namespaceDeclarations + A set of declarations for the namespaces used in the query. +*/ +QString QmlXmlListModel::namespaceDeclarations() const +{ + Q_D(const QmlXmlListModel); + return d->namespaces; +} + +void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) +{ + Q_D(QmlXmlListModel); + if (d->namespaces != declarations) { + d->namespaces = declarations; + reload(); + } +} + +/*! + \qmlproperty enum XmlListModel::status + + This property holds the status of data source loading. It can be one of: + \list + \o Null - no data source has been set + \o Ready - nthe data source has been loaded + \o Loading - the data source is currently being loaded + \o Error - an error occurred while loading the data source + \endlist + + \sa progress + +*/ +QmlXmlListModel::Status QmlXmlListModel::status() const +{ + Q_D(const QmlXmlListModel); + return d->status; +} + +/*! + \qmlproperty real XmlListModel::progress + + This property holds the progress of data source loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ +qreal QmlXmlListModel::progress() const +{ + Q_D(const QmlXmlListModel); + return d->progress; +} + +void QmlXmlListModel::classBegin() +{ + Q_D(QmlXmlListModel); + d->isComponentComplete = false; +} + +void QmlXmlListModel::componentComplete() +{ + Q_D(QmlXmlListModel); + d->isComponentComplete = true; + reload(); +} + +/*! + \qmlmethod XmlListModel::reload() + + Reloads the model. All the existing model data will be removed, and the model + will be rebuilt from scratch. +*/ +void QmlXmlListModel::reload() +{ + Q_D(QmlXmlListModel); + + if (!d->isComponentComplete) + return; + + d->qmlXmlQuery.abort(); + d->queryId = -1; + + //clear existing data + int count = d->size; + d->size = 0; + d->data.clear(); + if (count > 0) + emit itemsRemoved(0, count); + + if (d->src.isEmpty() && d->xml.isEmpty()) + return; + + if (d->reply) { + d->reply->abort(); + d->reply->deleteLater(); + d->reply = 0; + } + + if (!d->xml.isEmpty()) { + d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, d->xml.toUtf8(), &d->roleObjects); + d->progress = 1.0; + d->status = Ready; + emit progressChanged(d->progress); + emit statusChanged(d->status); + return; + } + + d->progress = 0.0; + d->status = Loading; + emit progressChanged(d->progress); + emit statusChanged(d->status); + + QNetworkRequest req(d->src); + d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(requestFinished())); + QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); +} + +void QmlXmlListModel::requestFinished() +{ + Q_D(QmlXmlListModel); + if (d->reply->error() != QNetworkReply::NoError) { + disconnect(d->reply, 0, this, 0); + d->reply->deleteLater(); + d->reply = 0; + d->status = Error; + } else { + d->status = Ready; + QByteArray data = d->reply->readAll(); + d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, data, &d->roleObjects); + disconnect(d->reply, 0, this, 0); + d->reply->deleteLater(); + d->reply = 0; + } + d->progress = 1.0; + emit progressChanged(d->progress); + emit statusChanged(d->status); +} + +void QmlXmlListModel::requestProgress(qint64 received, qint64 total) +{ + Q_D(QmlXmlListModel); + if (d->status == Loading && total > 0) { + d->progress = qreal(received)/total; + emit progressChanged(d->progress); + } +} + +void QmlXmlListModel::queryCompleted(int id, int size) +{ + Q_D(QmlXmlListModel); + if (id != d->queryId) + return; + d->size = size; + if (size > 0) { + d->data = d->qmlXmlQuery.modelData(); + emit itemsInserted(0, d->size); + emit countChanged(); + } +} + +QT_END_NAMESPACE + +#include "qmlxmllistmodel.moc" diff --git a/src/declarative/util/qmlxmllistmodel_p.h b/src/declarative/util/qmlxmllistmodel_p.h new file mode 100644 index 0000000..18bf9d2 --- /dev/null +++ b/src/declarative/util/qmlxmllistmodel_p.h @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef QMLXMLLISTMODEL_H +#define QMLXMLLISTMODEL_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlContext; + +class QmlXmlListModelRole; + +class QmlXmlListModelPrivate; +class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource) + Q_PROPERTY(QString xml READ xml WRITE setXml) + Q_PROPERTY(QString query READ query WRITE setQuery) + Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) + Q_PROPERTY(QmlList *roles READ roleObjects) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "roles") + +public: + QmlXmlListModel(QObject *parent = 0); + ~QmlXmlListModel(); + + virtual QHash data(int index, const QList &roles = (QList())) const; + virtual int count() const; + virtual QList roles() const; + virtual QString toString(int role) const; + + QmlList *roleObjects(); + + QUrl source() const; + void setSource(const QUrl&); + + QString xml() const; + void setXml(const QString&); + + QString query() const; + void setQuery(const QString&); + + QString namespaceDeclarations() const; + void setNamespaceDeclarations(const QString&); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void statusChanged(Status); + void progressChanged(qreal progress); + void countChanged(); + +public Q_SLOTS: + // ### need to use/expose Expiry to guess when to call this? + // ### property to auto-call this on reasonable Expiry? + // ### LastModified/Age also useful to guess. + // ### Probably also applies to other network-requesting types. + void reload(); + +private Q_SLOTS: + void requestFinished(); + void requestProgress(qint64,qint64); + void queryCompleted(int,int); + +private: + Q_DECLARE_PRIVATE(QmlXmlListModel) + Q_DISABLE_COPY(QmlXmlListModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlXmlListModel) + +QT_END_HEADER + +#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/util/qnumberformat.cpp b/src/declarative/util/qnumberformat.cpp new file mode 100644 index 0000000..c6a03e9 --- /dev/null +++ b/src/declarative/util/qnumberformat.cpp @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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 "qnumberformat_p.h" + +QT_BEGIN_NAMESPACE + +QML_DEFINE_NOCREATE_TYPE(QNumberFormat) + +QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal), + _groupingSize(0) +{ + _locale = QLocale::system(); + _groupingSeparator = _locale.groupSeparator(); + _decimalSeparator = _locale.decimalPoint(); + _currencySymbol = QLatin1Char('$'); +} + +QNumberFormat::~QNumberFormat() +{ + +} + +void QNumberFormat::updateText() +{ + QTime t; + t.start(); + static int totalTime; + + handleFormat(); + + totalTime += t.elapsed(); + emit textChanged(); +} + +void QNumberFormat::handleFormat() +{ + // ### is extremely messy + if (_format.isEmpty()) { + _text = QString(QLatin1String("%1")).arg(_number, -1, 'f', -1); + return; + } + + QString inputString; + + // ### possible to use the following parsed data in the future + + int remainingLength = _format.size(); + int currentIndex = _format.size()-1; + + int maxDigits = 0; + int minDigits = 0; + int decimalLength = 0; + + while (remainingLength > 0) { + switch(_format.at(currentIndex).unicode()) { + case ',': + if (decimalLength && !_groupingSize) + setGroupingSize(maxDigits - decimalLength); + else if (!_groupingSize) + setGroupingSize(maxDigits); + break; + case '.': + if (!decimalLength) + decimalLength = maxDigits; + break; + case '0': + minDigits++; + case '#': + maxDigits++; + break; + default: + break; + } + currentIndex--; + remainingLength--; + } + + // round given the decimal length/precision + inputString = QString(QLatin1String("%1")).arg(_number, -1, 'f', decimalLength); + + QStringList parts = inputString.split(QLatin1Char('.')); + QStringList formatParts = _format.split(QLatin1Char('.')); + + if (formatParts.size() > 2 || parts.size() > 2 ) + return; + + QString formatInt = formatParts.at(0); + + QString formatDec; + if (formatParts.size() == 2) + formatDec = formatParts.at(1); + + QString integer = parts.at(0); + + QString decimal; + if (parts.size() == 2) + decimal = parts.at(1); + + QString outputDecimal = formatDecimal(formatDec, decimal); + QString outputInteger = formatInteger(formatInt, integer); + + // insert separators + if (_groupingSize) { + unsigned int count = 0; + for (int i = outputInteger.size()-1; i > 0; i--) { + if (outputInteger.at(i).digitValue() >= 0) { + if (count == _groupingSize - 1) { + count = 0; + outputInteger.insert(i, _groupingSeparator); + } + else + count++; + } + } + } + if (!outputDecimal.isEmpty()) + _text = outputInteger + _decimalSeparator + outputDecimal; + else + _text = outputInteger; +} + +QString QNumberFormat::formatInteger(const QString &formatInt, const QString &integer) +{ + if (formatInt.isEmpty() || integer.isEmpty()) + return QString(); + + QString outputInteger; + int formatIndex = formatInt.size()-1; + + //easier for carry? + for (int index= integer.size()-1; index >= 0; index--) { + if (formatIndex < 0) { + outputInteger.push_front(integer.at(index)); + } + else { + switch(formatInt.at(formatIndex).unicode()) { + case '0': + if (index > integer.size()-1) { + outputInteger.push_front(QLatin1Char('0')); + break; + } + case '#': + outputInteger.push_front(integer.at(index)); + break; + case ',': + index++; + break; + default: + outputInteger.push_front(formatInt.at(formatIndex)); + index++; + break; + } + formatIndex--; + } + } + while (formatIndex >= 0) { + if (formatInt.at(formatIndex).unicode() != '#' && formatInt.at(formatIndex).unicode() != ',') + outputInteger.push_front(formatInt.at(formatIndex)); + formatIndex--; + } + return outputInteger; +} + +QString QNumberFormat::formatDecimal(const QString &formatDec, const QString &decimal) +{ + QString outputDecimal; + + // up to max 6 decimal places + for (int index=formatDec.size()-1; index >= 0; index--) { + switch(formatDec.at(index).unicode()) { + case '0': + outputDecimal.push_front(decimal.at(index)); + break; + case '#': + if (decimal.at(index) != QLatin1Char('0') || outputDecimal.size() > 0) + outputDecimal.push_front(decimal.at(index)); + break; + default: + outputDecimal.push_front(formatDec.at(index)); + break; + } + } + return outputDecimal; +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qnumberformat_p.h b/src/declarative/util/qnumberformat_p.h new file mode 100644 index 0000000..1a7b8e4 --- /dev/null +++ b/src/declarative/util/qnumberformat_p.h @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** 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 QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef NUMBERFORMAT_H +#define NUMBERFORMAT_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +// TODO +// be able to set Locale, instead of default system for dynamic formatting +// add currency support +// add additional syntax, extend to format scientific, percentiles, significant digits etc + + +class QNumberFormat : public QObject +{ + Q_OBJECT + Q_ENUMS(NumberType) +public: + QNumberFormat(QObject *parent=0); + ~QNumberFormat(); + + enum NumberType { + Percent, + Scientific, + Currency, + Decimal + }; + + //external property, only visible + Q_PROPERTY(QString text READ text NOTIFY textChanged) + + //mutatable properties to modify the output (text) + Q_PROPERTY(qreal number READ number WRITE setNumber) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(QLocale locale READ locale WRITE setLocale) + + //Format specific settings + Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) + Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) + Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) + Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) + + + QString text() const { return _text; } + + qreal number() const { return _number; } + void setNumber(qreal n) { + if (_number == n) + return; + _number = n; + updateText(); + } + + QString format() const { return _format; } + void setFormat(const QString &format) { + if (format.isEmpty()) + _format = QString::null; + else if (_format == format) + return; + + _format = format; + updateText(); + } + + QLocale locale() const { return _locale; } + void setLocale(const QLocale &locale) { _locale = locale; updateText(); } + + //Do we deal with unicode standard? or create our own + // ### since this is the backend for the number conversions, we will use the unicode + // the front-end will handle the QChar/QString -> short int + + unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } + void setGroupingSeparator(unsigned short unicodeSymbol) + { + _groupingSeparator = QChar(unicodeSymbol); + } + + unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } + void setDecimalSeparator(unsigned short unicodeSymbol) + { + _decimalSeparator = QChar(unicodeSymbol); + } + + unsigned short currencySymbol() { return _currencySymbol.unicode(); } + void setCurrencySymbol(unsigned short unicodeSymbol) + { + _currencySymbol = QChar(unicodeSymbol); + } + + unsigned int groupingSize() { return _groupingSize; } + void setGroupingSize(unsigned int size) + { + _groupingSize = size; + } + +Q_SIGNALS: + void textChanged(); + +private: + void updateText(); + void handleFormat(); + QString formatInteger(const QString &formatInt, const QString &integer); + QString formatDecimal(const QString &formatDec, const QString &decimal); + + qreal _number; + NumberType _type; + QChar _groupingSeparator; + QChar _decimalSeparator; + QChar _currencySymbol; + unsigned int _groupingSize; + + QLocale _locale; + QString _format; + + // only hooked member at the moment + QString _text; + +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QNumberFormat) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri index f955ef6..4223f4e 100644 --- a/src/declarative/util/util.pri +++ b/src/declarative/util/util.pri @@ -21,7 +21,12 @@ SOURCES += \ util/qmltimer.cpp \ util/qmlbind.cpp \ util/qmlpropertymap.cpp \ - util/qmlpixmapcache.cpp + util/qmlpixmapcache.cpp \ + util/qnumberformat.cpp \ + util/qmlnumberformatter.cpp \ + util/qmldatetimeformatter.cpp \ + util/qmlbehavior.cpp \ + util/qmlfontloader.cpp HEADERS += \ util/qmlview.h \ @@ -49,4 +54,15 @@ HEADERS += \ util/qmltimer_p.h \ util/qmlbind_p.h \ util/qmlpropertymap_p.h \ - util/qmlpixmapcache_p.h + util/qmlpixmapcache_p.h \ + util/qnumberformat_p.h \ + util/qmlnumberformatter_p.h \ + util/qmldatetimeformatter_p.h \ + util/qmlbehavior_p.h \ + util/qmlfontloader_p.h + +contains(QT_CONFIG, xmlpatterns) { + QT+=xmlpatterns + SOURCES += util/qmlxmllistmodel.cpp + HEADERS += util/qmlxmllistmodel_p.h +} -- cgit v0.12 From 48ac542fbeb654d095f14363156a26364c74c006 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 14:53:53 +1000 Subject: Apply manually. --- src/network/kernel/qhostinfo_p.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 64c5152..afd3570 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -161,9 +161,11 @@ public Q_SLOTS: cond.wakeOne(); } #ifndef QT_NO_THREAD - if (!wait(QHOSTINFO_THREAD_WAIT)) + if (!wait(QHOSTINFO_THREAD_WAIT)) { terminate(); - wait(); + // Don't wait forever; see QTBUG-5296. + wait(QHOSTINFO_THREAD_WAIT); + } #endif } -- cgit v0.12 From d31c4b65ae552750bc9af21fca2a3748c544b5be Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:02:03 +1000 Subject: Quieter, better. --- tests/auto/declarative/runall.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh index e4b18da..2d0c848 100755 --- a/tests/auto/declarative/runall.sh +++ b/tests/auto/declarative/runall.sh @@ -1,6 +1,7 @@ #!/bin/sh Xnest :7 2>/dev/null & +sleep 1 trap "kill $!" EXIT export DISPLAY=:7 @@ -8,7 +9,13 @@ make install 2>&1 | while read line do case "$line" in + make*Error) echo "$line";; + make*Stop) echo "$line";; make*) ;; + */qmake*) ;; + */bin/moc*) ;; + *targ.debug*) ;; + g++*) ;; cd*) ;; PASS*) ;; QDEBUG*) ;; -- cgit v0.12 From e46072cc655e263863abd6bd94bfa628d8aeeeec Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:03:56 +1000 Subject: Fix error message (warning often have trailing spaces) --- tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp index 8fda991..a88026b 100644 --- a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp +++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp @@ -114,7 +114,7 @@ void tst_QmlGraphicsLoader::component() void tst_QmlGraphicsLoader::invalidUrl() { -// QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml)"); + QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml) "); QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), QUrl("file://" SRCDIR "/")); QmlGraphicsLoader *loader = qobject_cast(component.create()); -- cgit v0.12 From 239a0dcb704c5a0b1e10a366f8ffacb0db86916e Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:13:11 +1000 Subject: Some tests can't be run in parallel. --- tests/auto/declarative/runall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh index 2d0c848..33087a1 100755 --- a/tests/auto/declarative/runall.sh +++ b/tests/auto/declarative/runall.sh @@ -5,7 +5,7 @@ sleep 1 trap "kill $!" EXIT export DISPLAY=:7 -make install 2>&1 | +make -k -j1 install 2>&1 | while read line do case "$line" in -- cgit v0.12 From 7b06c4ca4bd6f91528d1d9ebf44e2f566e817558 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 15:24:07 +1000 Subject: Doc fixes after \qmlmethod changes. --- src/declarative/graphicsitems/qmlgraphicsitem.cpp | 4 ++-- src/declarative/graphicsitems/qmlgraphicslistview.cpp | 4 ++-- src/declarative/graphicsitems/qmlgraphicsparticles.cpp | 2 +- src/declarative/util/qmllistmodel.cpp | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicsitem.cpp b/src/declarative/graphicsitems/qmlgraphicsitem.cpp index 572aa98..aa5c4cb 100644 --- a/src/declarative/graphicsitems/qmlgraphicsitem.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsitem.cpp @@ -1329,9 +1329,9 @@ QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} attached property. The \e Keys attached property provides basic handlers such - as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, + as \l {Keys::onPressed}{onPressed} and \l {Keys::onReleased}{onReleased}, as well as handlers for specific keys, such as - \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below + \l {Keys::onCancelPressed}{onCancelPressed}. The example below assigns \l {qmlfocus}{focus} to the item and handles the Left key via the general \e onPressed handler and the Select key via the onSelectPressed handler: diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp index 12bf0d8..edcd094 100644 --- a/src/declarative/graphicsitems/qmlgraphicslistview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp @@ -1663,7 +1663,7 @@ void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) } /*! - \qmlmethod ListView::incrementCurrentIndex + \qmlmethod ListView::incrementCurrentIndex() Increments the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the end. @@ -1680,7 +1680,7 @@ void QmlGraphicsListView::incrementCurrentIndex() } /*! - \qmlmethod ListView::decrementCurrentIndex + \qmlmethod ListView::decrementCurrentIndex() Decrements the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the beginning. diff --git a/src/declarative/graphicsitems/qmlgraphicsparticles.cpp b/src/declarative/graphicsitems/qmlgraphicsparticles.cpp index 399e1a5..a0b41e8 100644 --- a/src/declarative/graphicsitems/qmlgraphicsparticles.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsparticles.cpp @@ -1169,7 +1169,7 @@ void QmlGraphicsParticles::setMotion(QmlGraphicsParticleMotion *motion) } /*! - \qmlmethod Particles::burst + \qmlmethod Particles::burst(int count, int emissionRate) Initiates a burst of particles. diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp index 19282eb..9e91147 100644 --- a/src/declarative/util/qmllistmodel.cpp +++ b/src/declarative/util/qmllistmodel.cpp @@ -467,7 +467,7 @@ void QmlListModel::remove(int index) } /*! - \qmlmethod ListModel::insert(index,dict) + \qmlmethod ListModel::insert(int index, jsobject dict) Adds a new item to the list model at position \a index, with the values in \a dict. @@ -500,7 +500,7 @@ void QmlListModel::insert(int index, const QScriptValue& valuemap) } /*! - \qmlmethod ListModel::move(from,to,n) + \qmlmethod ListModel::move(int from, int to, int n) Moves \a n items \a from one position \a to another. @@ -551,7 +551,7 @@ void QmlListModel::move(int from, int to, int n) } /*! - \qmlmethod ListModel::append(dict) + \qmlmethod ListModel::append(jsobject dict) Adds a new item to the end of the list model, with the values in \a dict. @@ -578,7 +578,7 @@ void QmlListModel::append(const QScriptValue& valuemap) } /*! - \qmlmethod object ListModel::get(index) + \qmlmethod object ListModel::get(int index) Returns the item at \a index in the list model. @@ -620,7 +620,7 @@ QScriptValue QmlListModel::get(int index) const } /*! - \qmlmethod ListModel::set(index,dict) + \qmlmethod ListModel::set(int index, jsobject dict) Changes the item at \a index in the list model with the values in \a dict. Properties not appearing in \a valuemap @@ -663,7 +663,7 @@ void QmlListModel::set(int index, const QScriptValue& valuemap) } /*! - \qmlmethod ListModel::set(index,property,value) + \qmlmethod ListModel::set(int index, string property, variant value) Changes the \a property of the item at \a index in the list model to \a value. -- cgit v0.12 From 544c936c8db0560174f27241fbbe41c172e4b0ce Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 15:24:55 +1000 Subject: Don't display "QML" for attached signals/methods. --- tools/qdoc3/cppcodemarker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index a8f6a02..f3c8fa5 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -1127,7 +1127,7 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, "signal", "signals"); FastSection qmlattachedsignals(qmlClassNode, - "QML Attached Signals", + "Attached Signals", "signal", "signals"); FastSection qmlmethods(qmlClassNode, @@ -1135,7 +1135,7 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, "method", "methods"); FastSection qmlattachedmethods(qmlClassNode, - "QML Attached Methods", + "Attached Methods", "method", "methods"); -- cgit v0.12 From d7b8d162292b01bb5e45eeb6fb61fe6bd126e38d Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:41:21 +1000 Subject: Remove huge unused animated images. --- doc/src/images/declarative-tutorial-list-open.gif | Bin 877382 -> 0 bytes doc/src/images/declarative-tutorial-list.gif | Bin 3527095 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/src/images/declarative-tutorial-list-open.gif delete mode 100644 doc/src/images/declarative-tutorial-list.gif diff --git a/doc/src/images/declarative-tutorial-list-open.gif b/doc/src/images/declarative-tutorial-list-open.gif deleted file mode 100644 index 5b93597..0000000 Binary files a/doc/src/images/declarative-tutorial-list-open.gif and /dev/null differ diff --git a/doc/src/images/declarative-tutorial-list.gif b/doc/src/images/declarative-tutorial-list.gif deleted file mode 100644 index 24db426..0000000 Binary files a/doc/src/images/declarative-tutorial-list.gif and /dev/null differ -- cgit v0.12 From 49e1b989213028dac8557d4e74ab530f77fc8a07 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 11 Nov 2009 16:42:22 +1000 Subject: basic PathView autotests --- tests/auto/declarative/declarative.pro | 1 + .../qmlgraphicspathview/data/pathview1.qml | 4 + .../qmlgraphicspathview/data/pathview2.qml | 57 ++++++++++ .../qmlgraphicspathview/data/pathview3.qml | 58 ++++++++++ .../qmlgraphicspathview/qmlgraphicspathview.pro | 8 ++ .../tst_qmlgraphicspathview.cpp | 123 +++++++++++++++++++++ 6 files changed, 251 insertions(+) create mode 100644 tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml create mode 100644 tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml create mode 100644 tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml create mode 100644 tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro create mode 100644 tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 6b2e39e..0b9e6ec 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -27,6 +27,7 @@ SUBDIRS += \ qmlgraphicsflickable \ # Cover qmlgraphicsflipable \ # Cover qmlgraphicsparticles \ # Cover + qmlgraphicspathview \ # Cover qmlgraphicspositioners \ # Cover qmlgraphicstext \ # Cover qmlgraphicstextedit \ # Cover diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml new file mode 100644 index 0000000..b3b0a9a --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml @@ -0,0 +1,4 @@ +import Qt 4.6 + +PathView { +} diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml new file mode 100644 index 0000000..0d5c98b --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml @@ -0,0 +1,57 @@ +import Qt 4.6 + +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 } + } + + model: 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" } + } + + delegate: 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 + } + } + } +} diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml new file mode 100644 index 0000000..a8c1e91 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml @@ -0,0 +1,58 @@ +import Qt 4.6 + +PathView { + id: photoPathView; model: rssModel; delegate: photoDelegate + y: 100; width: 800; height: 330; pathItemCount: 4; offset: 10 + dragMargin: 24; snapPosition: 50 + + 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 } + } + + model: 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" } + } + + delegate: 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 + } + } + } +} diff --git a/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro b/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro new file mode 100644 index 0000000..142a256 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro @@ -0,0 +1,8 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative +macx:CONFIG -= app_bundle + +SOURCES += tst_qmlgraphicspathview.cpp + +# Define SRCDIR equal to test's source directory +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp b/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp new file mode 100644 index 0000000..c36b969 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp @@ -0,0 +1,123 @@ +/**************************************************************************** +** +** 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 +#include +#include +#include +#include +#include +#include +#include "../../../shared/util.h" + +class tst_QmlGraphicsPathView : public QObject +{ + Q_OBJECT +public: + tst_QmlGraphicsPathView(); + +private slots: + void initValues(); + void pathview2(); + void pathview3(); +}; + + +tst_QmlGraphicsPathView::tst_QmlGraphicsPathView() +{ +} + +void tst_QmlGraphicsPathView::initValues() +{ + QmlEngine engine; + QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview1.qml")); + QmlGraphicsPathView *obj = qobject_cast(c.create()); + + QVERIFY(obj != 0); + QVERIFY(obj->path() == 0); + QVERIFY(obj->delegate() == 0); + QCOMPARE(obj->model(), QVariant()); + QCOMPARE(obj->currentIndex(), 0); + QCOMPARE(obj->offset(), 0.); + QCOMPARE(obj->snapPosition(), 0.); + QCOMPARE(obj->dragMargin(), 0.); + QCOMPARE(obj->count(), 0); + QCOMPARE(obj->pathItemCount(), -1); +} + +void tst_QmlGraphicsPathView::pathview2() +{ + QmlEngine engine; + QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview2.qml")); + QmlGraphicsPathView *obj = qobject_cast(c.create()); + + QVERIFY(obj != 0); + QVERIFY(obj->path() != 0); + QVERIFY(obj->delegate() != 0); + QVERIFY(obj->model() != QVariant()); + QCOMPARE(obj->currentIndex(), 0); + QCOMPARE(obj->offset(), 0.); + QCOMPARE(obj->snapPosition(), 0.); + QCOMPARE(obj->dragMargin(), 0.); + QCOMPARE(obj->count(), 8); + QCOMPARE(obj->pathItemCount(), 10); +} + +void tst_QmlGraphicsPathView::pathview3() +{ + QmlEngine engine; + QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview3.qml")); + QmlGraphicsPathView *obj = qobject_cast(c.create()); + + QVERIFY(obj != 0); + QVERIFY(obj->path() != 0); + QVERIFY(obj->delegate() != 0); + QVERIFY(obj->model() != QVariant()); + QCOMPARE(obj->currentIndex(), 0); + QCOMPARE(obj->offset(), 50.); // ??? + QCOMPARE(obj->snapPosition(), 0.5); // ??? + QCOMPARE(obj->dragMargin(), 24.); + QCOMPARE(obj->count(), 8); + QCOMPARE(obj->pathItemCount(), 4); +} + +QTEST_MAIN(tst_QmlGraphicsPathView) + +#include "tst_qmlgraphicspathview.moc" -- cgit v0.12 From 66a8b8b7bdb7fb9811cdeccfa7e57c44d8b4fd8c Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 11 Nov 2009 16:51:16 +1000 Subject: forgot this when merging --- .../graphicsitems/qmlgraphicsanimatedimage.cpp | 73 ++++++++++------------ 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp b/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp index 2405bde..8c91056 100644 --- a/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp @@ -41,20 +41,20 @@ #include #include -#include "qmlgraphicsanimatedimageitem_p.h" -#include "qmlgraphicsanimatedimageitem_p_p.h" +#include "qmlgraphicsanimatedimage_p.h" +#include "qmlgraphicsanimatedimage_p_p.h" #include #include QT_BEGIN_NAMESPACE /*! - \class QmlGraphicsAnimatedImageItem + \class QmlGraphicsAnimatedImage \internal */ /*! - \qmlclass AnimatedImage QFxAnimatedImageItem + \qmlclass AnimatedImage QmlGraphicsAnimatedImage \inherits Image This item provides for playing animations stored as images containing a series of frames, @@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE QMovie::supportedFormats(). \table - \row + \row \o \image animatedimageitem.gif \o \qml @@ -76,21 +76,16 @@ Item { \endqml \endtable */ -QML_DEFINE_TYPE(Qt,4,6,AnimatedImage,QmlGraphicsAnimatedImageItem) +QML_DEFINE_TYPE(Qt,4,6,AnimatedImage,QmlGraphicsAnimatedImage) -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent) - : QmlGraphicsImage(*(new QmlGraphicsAnimatedImageItemPrivate), parent) +QmlGraphicsAnimatedImage::QmlGraphicsAnimatedImage(QmlGraphicsItem *parent) + : QmlGraphicsImage(*(new QmlGraphicsAnimatedImagePrivate), parent) { } -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImage(dd, parent) +QmlGraphicsAnimatedImage::~QmlGraphicsAnimatedImage() { -} - -QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() -{ - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); delete d->_movie; } @@ -100,17 +95,17 @@ QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() Defaults to false, and can be set to true when you want to pause. */ -bool QmlGraphicsAnimatedImageItem::isPaused() const +bool QmlGraphicsAnimatedImage::isPaused() const { - Q_D(const QmlGraphicsAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImage); if(!d->_movie) return false; return d->_movie->state()==QMovie::Paused; } -void QmlGraphicsAnimatedImageItem::setPaused(bool pause) +void QmlGraphicsAnimatedImage::setPaused(bool pause) { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); if(pause == d->paused) return; d->paused = pause; @@ -124,17 +119,17 @@ void QmlGraphicsAnimatedImageItem::setPaused(bool pause) Defaults to true, so as to start playing immediately. */ -bool QmlGraphicsAnimatedImageItem::isPlaying() const +bool QmlGraphicsAnimatedImage::isPlaying() const { - Q_D(const QmlGraphicsAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImage); if (!d->_movie) return false; return d->_movie->state()!=QMovie::NotRunning; } -void QmlGraphicsAnimatedImageItem::setPlaying(bool play) +void QmlGraphicsAnimatedImage::setPlaying(bool play) { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); if(play == d->playing) return; d->playing = play; @@ -154,17 +149,17 @@ void QmlGraphicsAnimatedImageItem::setPlaying(bool play) allow other things to animate at the same time as the image. frameCount is the number of frames in the animation. For some animation formats, frameCount is unknown and set to zero. */ -int QmlGraphicsAnimatedImageItem::currentFrame() const +int QmlGraphicsAnimatedImage::currentFrame() const { - Q_D(const QmlGraphicsAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImage); if (!d->_movie) return d->preset_currentframe; return d->_movie->currentFrameNumber(); } -void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) +void QmlGraphicsAnimatedImage::setCurrentFrame(int frame) { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); if (!d->_movie) { d->preset_currentframe = frame; return; @@ -172,9 +167,9 @@ void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) d->_movie->jumpToFrame(frame); } -int QmlGraphicsAnimatedImageItem::frameCount() const +int QmlGraphicsAnimatedImage::frameCount() const { - Q_D(const QmlGraphicsAnimatedImageItem); + Q_D(const QmlGraphicsAnimatedImage); if (!d->_movie) return 0; return d->_movie->frameCount(); @@ -188,9 +183,9 @@ static QString toLocalFileOrQrc(const QUrl& url) return r; } -void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) +void QmlGraphicsAnimatedImage::setSource(const QUrl &url) { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); if (url == d->url) return; @@ -249,9 +244,9 @@ void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) emit statusChanged(d->status); } -void QmlGraphicsAnimatedImageItem::movieRequestFinished() +void QmlGraphicsAnimatedImage::movieRequestFinished() { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); d->_movie = new QMovie(d->reply); if (!d->_movie->isValid()){ qWarning() << "Error Reading Animated Image File " << d->url; @@ -275,16 +270,16 @@ void QmlGraphicsAnimatedImageItem::movieRequestFinished() d->setPixmap(d->_movie->currentPixmap()); } -void QmlGraphicsAnimatedImageItem::movieUpdate() +void QmlGraphicsAnimatedImage::movieUpdate() { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); d->setPixmap(d->_movie->currentPixmap()); emit frameChanged(); } -void QmlGraphicsAnimatedImageItem::playingStatusChanged() +void QmlGraphicsAnimatedImage::playingStatusChanged() { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); if((d->_movie->state() != QMovie::NotRunning) != d->playing){ d->playing = (d->_movie->state() != QMovie::NotRunning); emit playingChanged(); @@ -295,9 +290,9 @@ void QmlGraphicsAnimatedImageItem::playingStatusChanged() } } -void QmlGraphicsAnimatedImageItem::componentComplete() +void QmlGraphicsAnimatedImage::componentComplete() { - Q_D(QmlGraphicsAnimatedImageItem); + Q_D(QmlGraphicsAnimatedImage); setCurrentFrame(d->preset_currentframe); d->preset_currentframe = 0; } -- cgit v0.12 From 2edaf0446788d9543ef357fc1f1d65a8c8736486 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 11 Nov 2009 16:52:18 +1000 Subject: QmlDom tests --- src/declarative/qml/qmldom.cpp | 100 +-- src/declarative/qml/qmldom.h | 4 +- src/declarative/qml/qmldom_p.h | 22 +- src/declarative/qml/qmlscriptparser.cpp | 15 +- tests/auto/declarative/qmldom/data/MyItem.qml | 4 + tests/auto/declarative/qmldom/tst_qmldom.cpp | 928 ++++++++++++++++++++++++++ 6 files changed, 989 insertions(+), 84 deletions(-) create mode 100644 tests/auto/declarative/qmldom/data/MyItem.qml diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 39d6730..f4a137c 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -57,13 +57,6 @@ QmlDomDocumentPrivate::QmlDomDocumentPrivate() { } -QmlDomDocumentPrivate::QmlDomDocumentPrivate(const QmlDomDocumentPrivate &other) -: QSharedData(other), root(0) -{ - root = other.root; - if (root) root->addref(); -} - QmlDomDocumentPrivate::~QmlDomDocumentPrivate() { if (root) root->release(); @@ -141,7 +134,7 @@ QList QmlDomDocument::imports() const /*! Loads a QmlDomDocument from \a data. \a data should be valid QML data. On success, true is returned. If the \a data is malformed, false - is returned and QmlDomDocument::loadError() contains an error description. + is returned and QmlDomDocument::errors() contains an error description. \sa QmlDomDocument::loadError() */ @@ -160,7 +153,8 @@ bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl td->release(); component->release(); return false; - } else if(td->status == QmlCompositeTypeData::Waiting) { + } else if(td->status == QmlCompositeTypeData::Waiting || + td->status == QmlCompositeTypeData::WaitingResources) { QmlError error; error.setDescription(QLatin1String("QmlDomDocument supports local types only")); d->errors << error; @@ -234,13 +228,6 @@ QmlDomPropertyPrivate::QmlDomPropertyPrivate() { } -QmlDomPropertyPrivate::QmlDomPropertyPrivate(const QmlDomPropertyPrivate &other) -: QSharedData(other), property(0) -{ - property = other.property; - if (property) property->addref(); -} - QmlDomPropertyPrivate::~QmlDomPropertyPrivate() { if (property) property->release(); @@ -251,13 +238,6 @@ QmlDomDynamicPropertyPrivate::QmlDomDynamicPropertyPrivate(): { } -QmlDomDynamicPropertyPrivate::QmlDomDynamicPropertyPrivate(const QmlDomDynamicPropertyPrivate &other) -: QSharedData(other), valid(other.valid) -{ - property = other.property; - if (valid && property.defaultValue) property.defaultValue->addref(); -} - QmlDomDynamicPropertyPrivate::~QmlDomDynamicPropertyPrivate() { if (valid && property.defaultValue) property.defaultValue->release(); @@ -307,6 +287,15 @@ QmlDomProperty &QmlDomProperty::operator=(const QmlDomProperty &other) } /*! + Returns true if this is a valid QmlDomProperty, false otherwise. +*/ +bool QmlDomProperty::isValid() const +{ + return d->property != 0; +} + + +/*! Return the name of this property. \qml @@ -482,7 +471,7 @@ int QmlDomDynamicProperty::propertyType() const return QMetaType::type("QColor"); case QmlParser::Object::DynamicProperty::Date: - return QMetaType::type("QDateTime"); + return QMetaType::type("QDate"); case QmlParser::Object::DynamicProperty::Int: return QMetaType::type("int"); @@ -507,6 +496,14 @@ int QmlDomDynamicProperty::propertyType() const return -1; } +QByteArray QmlDomDynamicProperty::propertyTypeName() const +{ + if (isValid()) + return d->property.customType; + + return QByteArray(); +} + /*! Return true if this property is used as a default property in the QML document. @@ -539,6 +536,7 @@ QmlDomProperty QmlDomDynamicProperty::defaultValue() const if (isValid() && d->property.defaultValue) { rp.d->property = d->property.defaultValue; + rp.d->propertyName = propertyName(); rp.d->property->addref(); } @@ -570,18 +568,10 @@ int QmlDomDynamicProperty::length() const } QmlDomObjectPrivate::QmlDomObjectPrivate() -: object(0), isVirtualComponent(false) +: object(0) { } -QmlDomObjectPrivate::QmlDomObjectPrivate(const QmlDomObjectPrivate &other) -: QSharedData(other), object(0), isVirtualComponent(false) -{ - object = other.object; - if (object) object->addref(); - isVirtualComponent = other.isVirtualComponent; -} - QmlDomObjectPrivate::~QmlDomObjectPrivate() { if (object) object->release(); @@ -665,16 +655,6 @@ QmlDomObject::QmlDomObject() } /*! - Construct a new QmlDomObject with the specified \a objectType. -*/ -QmlDomObject::QmlDomObject(const QByteArray &objectType) -: d(new QmlDomObjectPrivate) -{ - Q_UNUSED(objectType); - qWarning("QmlDomObject::QmlDomObject(const QByteArray &): Not implemented"); -} - -/*! Create a copy of \a other QmlDomObject. */ QmlDomObject::QmlDomObject(const QmlDomObject &other) @@ -785,7 +765,7 @@ QList QmlDomObject::properties() const { QList rv; - if (!d->object) + if (!d->object || isComponent()) return rv; QmlDomObjectPrivate::Properties properties = d->properties(); @@ -853,6 +833,9 @@ QmlDomDynamicProperty QmlDomObject::dynamicProperty(const QByteArray &name) cons { QmlDomDynamicProperty p; + if (!isValid()) + return p; + for (int i = 0; i < d->object->dynamicProperties.size(); ++i) { if (d->object->dynamicProperties.at(i).name == name) { p.d = new QmlDomDynamicPropertyPrivate; @@ -900,8 +883,7 @@ QByteArray QmlDomObject::customTypeData() const */ bool QmlDomObject::isComponent() const { - return d->isVirtualComponent || - (d->object && d->object->typeName == "Qt/Component"); + return (d->object && d->object->typeName == "Qt/Component"); } /*! @@ -958,13 +940,6 @@ QmlDomBasicValuePrivate::QmlDomBasicValuePrivate() { } -QmlDomBasicValuePrivate::QmlDomBasicValuePrivate(const QmlDomBasicValuePrivate &other) -: QSharedData(other), value(0) -{ - value = other.value; - if (value) value->addref(); -} - QmlDomBasicValuePrivate::~QmlDomBasicValuePrivate() { if (value) value->release(); @@ -1250,15 +1225,6 @@ QmlDomValuePrivate::QmlDomValuePrivate() { } -QmlDomValuePrivate::QmlDomValuePrivate(const QmlDomValuePrivate &other) -: QSharedData(other), property(0), value(0) -{ - property = other.property; - value = other.value; - if (property) property->addref(); - if (value) value->addref(); -} - QmlDomValuePrivate::~QmlDomValuePrivate() { if (property) property->release(); @@ -1754,10 +1720,7 @@ Item { QmlDomObject QmlDomComponent::componentRoot() const { QmlDomObject rv; - if (d->isVirtualComponent) { - rv.d->object = d->object; - rv.d->object->addref(); - } else if (d->object) { + if (d->object) { QmlParser::Object *obj = 0; if (d->object->defaultProperty && d->object->defaultProperty->values.count() == 1 && @@ -1778,11 +1741,6 @@ QmlDomImportPrivate::QmlDomImportPrivate() { } -QmlDomImportPrivate::QmlDomImportPrivate(const QmlDomImportPrivate &other) -: QSharedData(other) -{ -} - QmlDomImportPrivate::~QmlDomImportPrivate() { } diff --git a/src/declarative/qml/qmldom.h b/src/declarative/qml/qmldom.h index 8c43c4a..250307f 100644 --- a/src/declarative/qml/qmldom.h +++ b/src/declarative/qml/qmldom.h @@ -92,6 +92,8 @@ public: ~QmlDomProperty(); QmlDomProperty &operator=(const QmlDomProperty &); + bool isValid() const; + QByteArray propertyName() const; QList propertyNameParts() const; @@ -121,6 +123,7 @@ public: QByteArray propertyName() const; int propertyType() const; + QByteArray propertyTypeName() const; bool isDefaultProperty() const; @@ -139,7 +142,6 @@ class Q_DECLARATIVE_EXPORT QmlDomObject { public: QmlDomObject(); - QmlDomObject(const QByteArray &); QmlDomObject(const QmlDomObject &); ~QmlDomObject(); QmlDomObject &operator=(const QmlDomObject &); diff --git a/src/declarative/qml/qmldom_p.h b/src/declarative/qml/qmldom_p.h index 4b4de80..cb0d884 100644 --- a/src/declarative/qml/qmldom_p.h +++ b/src/declarative/qml/qmldom_p.h @@ -62,7 +62,8 @@ class QmlDomDocumentPrivate : public QSharedData { public: QmlDomDocumentPrivate(); - QmlDomDocumentPrivate(const QmlDomDocumentPrivate &); + QmlDomDocumentPrivate(const QmlDomDocumentPrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomDocumentPrivate(); QList errors; @@ -75,7 +76,8 @@ class QmlDomObjectPrivate : public QSharedData { public: QmlDomObjectPrivate(); - QmlDomObjectPrivate(const QmlDomObjectPrivate &); + QmlDomObjectPrivate(const QmlDomObjectPrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomObjectPrivate(); typedef QList > Properties; @@ -83,14 +85,14 @@ public: Properties properties(QmlParser::Property *) const; QmlParser::Object *object; - bool isVirtualComponent; }; class QmlDomPropertyPrivate : public QSharedData { public: QmlDomPropertyPrivate(); - QmlDomPropertyPrivate(const QmlDomPropertyPrivate &); + QmlDomPropertyPrivate(const QmlDomPropertyPrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomPropertyPrivate(); QByteArray propertyName; @@ -101,7 +103,8 @@ class QmlDomDynamicPropertyPrivate : public QSharedData { public: QmlDomDynamicPropertyPrivate(); - QmlDomDynamicPropertyPrivate(const QmlDomDynamicPropertyPrivate &); + QmlDomDynamicPropertyPrivate(const QmlDomDynamicPropertyPrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomDynamicPropertyPrivate(); bool valid; @@ -112,7 +115,8 @@ class QmlDomValuePrivate : public QSharedData { public: QmlDomValuePrivate(); - QmlDomValuePrivate(const QmlDomValuePrivate &); + QmlDomValuePrivate(const QmlDomValuePrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomValuePrivate(); QmlParser::Property *property; @@ -123,7 +127,8 @@ class QmlDomBasicValuePrivate : public QSharedData { public: QmlDomBasicValuePrivate(); - QmlDomBasicValuePrivate(const QmlDomBasicValuePrivate &); + QmlDomBasicValuePrivate(const QmlDomBasicValuePrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomBasicValuePrivate(); QmlParser::Value *value; @@ -133,7 +138,8 @@ class QmlDomImportPrivate : public QSharedData { public: QmlDomImportPrivate(); - QmlDomImportPrivate(const QmlDomImportPrivate &); + QmlDomImportPrivate(const QmlDomImportPrivate &o) + : QSharedData(o) { qFatal("Not impl"); } ~QmlDomImportPrivate(); enum Type { Library, File }; diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index 526894e..b622c24 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -342,10 +342,17 @@ ProcessAST::defineObjectBinding_helper(AST::UiQualifiedId *propertyName, Value *v = new Value; v->object = obj; v->location = obj->location; - if (state.property) + if (state.property) { state.property->addValue(v); - else - state.object->getDefaultProperty()->addValue(v); + } else { + Property *defaultProp = state.object->getDefaultProperty(); + if (defaultProp->location.start.line == -1) { + defaultProp->location = v->location; + defaultProp->location.end = defaultProp->location.start; + defaultProp->location.range.length = 0; + } + defaultProp->addValue(v); + } } } @@ -583,8 +590,8 @@ bool ProcessAST::visit(AST::UiPublicMember *node) QmlScriptParser::TypeReference *typeRef = _parser->findOrCreateType(memberType); typeRef->refObjects.append(_stateStack.top().object); - property.customType = memberType.toUtf8(); } + property.customType = memberType.toUtf8(); property.name = name.toUtf8(); property.location = location(node->firstSourceLocation(), node->lastSourceLocation()); diff --git a/tests/auto/declarative/qmldom/data/MyItem.qml b/tests/auto/declarative/qmldom/data/MyItem.qml new file mode 100644 index 0000000..1472f01 --- /dev/null +++ b/tests/auto/declarative/qmldom/data/MyItem.qml @@ -0,0 +1,4 @@ +import Qt 4.6 + +Item { +} diff --git a/tests/auto/declarative/qmldom/tst_qmldom.cpp b/tests/auto/declarative/qmldom/tst_qmldom.cpp index 350e985..f219581 100644 --- a/tests/auto/declarative/qmldom/tst_qmldom.cpp +++ b/tests/auto/declarative/qmldom/tst_qmldom.cpp @@ -55,13 +55,24 @@ public: private slots: void loadSimple(); void loadProperties(); + void loadGroupedProperties(); void loadChildObject(); void loadComposite(); void loadImports(); + void loadErrors(); + void loadSyntaxErrors(); + void loadRemoteErrors(); + void loadDynamicProperty(); + void loadComponent(); void testValueSource(); void testValueInterceptor(); + void object_dynamicProperty(); + void object_property(); + void object_url(); + + void copy(); private: QmlEngine engine; }; @@ -85,6 +96,7 @@ void tst_qmldom::loadSimple() QVERIFY(rootObject.objectTypeMinorVersion() == 6); } +// Test regular properties void tst_qmldom::loadProperties() { QByteArray qml = "import Qt 4.6\n" @@ -100,15 +112,119 @@ void tst_qmldom::loadProperties() QmlDomProperty xProperty = rootObject.property("x"); QVERIFY(xProperty.propertyName() == "x"); + QCOMPARE(xProperty.propertyNameParts().count(), 1); + QVERIFY(xProperty.propertyNameParts().at(0) == "x"); + QCOMPARE(xProperty.position(), 32); + QCOMPARE(xProperty.length(), 1); QVERIFY(xProperty.value().isLiteral()); QVERIFY(xProperty.value().toLiteral().literal() == "300"); QmlDomProperty visibleProperty = rootObject.property("visible"); QVERIFY(visibleProperty.propertyName() == "visible"); + QCOMPARE(visibleProperty.propertyNameParts().count(), 1); + QVERIFY(visibleProperty.propertyNameParts().at(0) == "visible"); + QCOMPARE(visibleProperty.position(), 41); + QCOMPARE(visibleProperty.length(), 7); QVERIFY(visibleProperty.value().isLiteral()); QVERIFY(visibleProperty.value().toLiteral().literal() == "true"); } +// Test grouped properties +void tst_qmldom::loadGroupedProperties() +{ + { + QByteArray qml = "import Qt 4.6\n" + "Item { anchors.left: parent.left; anchors.right: parent.right }"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootItem = document.rootObject(); + QVERIFY(rootItem.isValid()); + QVERIFY(rootItem.properties().size() == 2); + + // Order is not deterministic + QmlDomProperty p0 = rootItem.properties().at(0); + QmlDomProperty p1 = rootItem.properties().at(1); + QmlDomProperty leftProperty; + QmlDomProperty rightProperty; + if (p0.propertyName() == "anchors.left") { + leftProperty = p0; + rightProperty = p1; + } else { + leftProperty = p1; + rightProperty = p0; + } + + QVERIFY(leftProperty.propertyName() == "anchors.left"); + QCOMPARE(leftProperty.propertyNameParts().count(), 2); + QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors"); + QVERIFY(leftProperty.propertyNameParts().at(1) == "left"); + QCOMPARE(leftProperty.position(), 21); + QCOMPARE(leftProperty.length(), 12); + QVERIFY(leftProperty.value().isBinding()); + QVERIFY(leftProperty.value().toBinding().binding() == "parent.left"); + + QVERIFY(rightProperty.propertyName() == "anchors.right"); + QCOMPARE(rightProperty.propertyNameParts().count(), 2); + QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors"); + QVERIFY(rightProperty.propertyNameParts().at(1) == "right"); + QCOMPARE(rightProperty.position(), 48); + QCOMPARE(rightProperty.length(), 13); + QVERIFY(rightProperty.value().isBinding()); + QVERIFY(rightProperty.value().toBinding().binding() == "parent.right"); + } + + { + QByteArray qml = "import Qt 4.6\n" + "Item { \n" + " anchors {\n" + " left: parent.left\n" + " right: parent.right\n" + " }\n" + "}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootItem = document.rootObject(); + QVERIFY(rootItem.isValid()); + QVERIFY(rootItem.properties().size() == 2); + + // Order is not deterministic + QmlDomProperty p0 = rootItem.properties().at(0); + QmlDomProperty p1 = rootItem.properties().at(1); + QmlDomProperty leftProperty; + QmlDomProperty rightProperty; + if (p0.propertyName() == "anchors.left") { + leftProperty = p0; + rightProperty = p1; + } else { + leftProperty = p1; + rightProperty = p0; + } + + QVERIFY(leftProperty.propertyName() == "anchors.left"); + QCOMPARE(leftProperty.propertyNameParts().count(), 2); + QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors"); + QVERIFY(leftProperty.propertyNameParts().at(1) == "left"); + QCOMPARE(leftProperty.position(), 44); + QCOMPARE(leftProperty.length(), 4); + QVERIFY(leftProperty.value().isBinding()); + QVERIFY(leftProperty.value().toBinding().binding() == "parent.left"); + + QVERIFY(rightProperty.propertyName() == "anchors.right"); + QCOMPARE(rightProperty.propertyNameParts().count(), 2); + QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors"); + QVERIFY(rightProperty.propertyNameParts().at(1) == "right"); + QCOMPARE(rightProperty.position(), 70); + QCOMPARE(rightProperty.length(), 5); + QVERIFY(rightProperty.value().isBinding()); + QVERIFY(rightProperty.value().toBinding().binding() == "parent.right"); + } + +} + void tst_qmldom::loadChildObject() { QByteArray qml = "import Qt 4.6\n" @@ -212,6 +328,7 @@ void tst_qmldom::testValueInterceptor() QVERIFY(animationValue.isObject()); } +// Test QmlDomDocument::imports() void tst_qmldom::loadImports() { QByteArray qml = "import Qt 4.6\n" @@ -259,6 +376,817 @@ void tst_qmldom::loadImports() QCOMPARE(import.version(), QLatin1String("")); } +// Test loading a file with errors +void tst_qmldom::loadErrors() +{ + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " foo: 12\n" + "}"; + + QmlDomDocument document; + QVERIFY(false == document.load(&engine, qml)); + + QCOMPARE(document.errors().count(), 1); + QmlError error = document.errors().first(); + + QCOMPARE(error.url(), QUrl()); + QCOMPARE(error.line(), 3); + QCOMPARE(error.column(), 3); + QCOMPARE(error.description(), QString("Cannot assign to non-existant property \"foo\"")); +} + +// Test loading a file with syntax errors +void tst_qmldom::loadSyntaxErrors() +{ + QByteArray qml = "import Qt 4.6\n" + "asdf"; + + QmlDomDocument document; + QVERIFY(false == document.load(&engine, qml)); + + QCOMPARE(document.errors().count(), 1); + QmlError error = document.errors().first(); + + QCOMPARE(error.url(), QUrl()); + QCOMPARE(error.line(), 2); + QCOMPARE(error.column(), 1); + QCOMPARE(error.description(), QString("Syntax error")); +} + +// Test attempting to load a file with remote references +void tst_qmldom::loadRemoteErrors() +{ + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " Script {\n" + " source: \"http://localhost/exampleQmlScript.js\"" + " }\n" + "}"; + QmlDomDocument document; + QVERIFY(false == document.load(&engine, qml)); + + QCOMPARE(document.errors().count(), 1); + QmlError error = document.errors().first(); + + QCOMPARE(error.url(), QUrl()); + QCOMPARE(error.line(), -1); + QCOMPARE(error.column(), -1); + QCOMPARE(error.description(), QString("QmlDomDocument supports local types only")); +} + +// Test dynamic property declarations +void tst_qmldom::loadDynamicProperty() +{ + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " property int a\n" + " property bool b\n" + " property double c\n" + " property real d\n" + " property string e\n" + " property url f\n" + " property color g\n" + " property date h\n" + " property var i\n" + " property variant j\n" + " property Object k\n" + "}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QCOMPARE(rootObject.dynamicProperties().count(), 11); + +#define DP_TEST(index, name, type, test_position, test_length, propTypeName) \ + { \ + QmlDomDynamicProperty d = rootObject.dynamicProperties().at(index); \ + QVERIFY(d.isValid()); \ + QVERIFY(d.propertyName() == # name ); \ + QVERIFY(d.propertyType() == type); \ + QVERIFY(d.propertyTypeName() == propTypeName); \ + QVERIFY(d.isDefaultProperty() == false); \ + QVERIFY(d.defaultValue().isValid() == false); \ + QCOMPARE(d.position(), test_position); \ + QCOMPARE(d.length(), test_length); \ + } \ + + DP_TEST(0, a, QVariant::Int, 25, 14, "int"); + DP_TEST(1, b, QVariant::Bool, 44, 15, "bool"); + DP_TEST(2, c, QVariant::Double, 64, 17, "double"); + DP_TEST(3, d, QMetaType::QReal, 86, 15, "real"); + DP_TEST(4, e, QVariant::String, 106, 17, "string"); + DP_TEST(5, f, QVariant::Url, 128, 14, "url"); + DP_TEST(6, g, QVariant::Color, 147, 16, "color"); + DP_TEST(7, h, QVariant::Date, 168, 15, "date"); + DP_TEST(8, i, qMetaTypeId(), 188, 14, "var"); + DP_TEST(9, j, qMetaTypeId(), 207, 18, "variant"); + DP_TEST(10, k, -1, 230, 17, "Object"); + } + + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " property int a: 12\n" + " property int b: a + 6\n" + " default property Object c\n" + "}\n"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QCOMPARE(rootObject.dynamicProperties().count(), 3); + + { + QmlDomDynamicProperty d = rootObject.dynamicProperties().at(0); + QVERIFY(d.isDefaultProperty() == false); + QVERIFY(d.defaultValue().isValid()); + QVERIFY(d.defaultValue().propertyName() == "a"); + QVERIFY(d.defaultValue().value().isLiteral()); + } + + { + QmlDomDynamicProperty d = rootObject.dynamicProperties().at(1); + QVERIFY(d.isDefaultProperty() == false); + QVERIFY(d.defaultValue().isValid()); + QVERIFY(d.defaultValue().propertyName() == "b"); + QVERIFY(d.defaultValue().value().isBinding()); + } + + { + QmlDomDynamicProperty d = rootObject.dynamicProperties().at(2); + QVERIFY(d.isDefaultProperty() == true); + QVERIFY(d.defaultValue().isValid() == false); + } + } +} + +// Test inline components +void tst_qmldom::loadComponent() +{ + // Explicit component + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " Component {\n" + " id: myComponent\n" + " Item {}\n" + " }\n" + "}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootItem = document.rootObject(); + QVERIFY(rootItem.isValid()); + QVERIFY(rootItem.properties().size() == 1); + + QmlDomProperty listProperty = rootItem.properties().at(0); + QVERIFY(listProperty.isDefaultProperty()); + QVERIFY(listProperty.value().isList()); + + QmlDomList list = listProperty.value().toList(); + QVERIFY(list.values().size() == 1); + + QmlDomObject componentObject = list.values().first().toObject(); + QVERIFY(componentObject.isValid()); + QVERIFY(componentObject.objectClassName() == "Component"); + QVERIFY(componentObject.isComponent()); + + QmlDomComponent component = componentObject.toComponent(); + QVERIFY(component.isValid()); + QVERIFY(component.objectType() == "Qt/Component"); + QVERIFY(component.objectTypeMajorVersion() == 4); + QVERIFY(component.objectTypeMinorVersion() == 6); + QVERIFY(component.objectClassName() == "Component"); + QVERIFY(component.objectId() == "myComponent"); + QVERIFY(component.properties().isEmpty()); + QVERIFY(component.dynamicProperties().isEmpty()); + QVERIFY(component.isCustomType() == false); + QVERIFY(component.customTypeData() == ""); + QVERIFY(component.isComponent()); + QCOMPARE(component.position(), 25); + QCOMPARE(component.length(), 57); + + QVERIFY(component.componentRoot().isValid()); + QVERIFY(component.componentRoot().objectClassName() == "Item"); + } + + // Implicit component + { + QByteArray qml = "import Qt 4.6\n" + "ListView {\n" + " delegate: Item {}\n" + "}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootItem = document.rootObject(); + QVERIFY(rootItem.isValid()); + QVERIFY(rootItem.properties().size() == 1); + + QmlDomProperty delegate = rootItem.property("delegate"); + + QmlDomObject componentObject = delegate.value().toObject(); + QVERIFY(componentObject.isValid()); + QVERIFY(componentObject.objectClassName() == "Component"); + QVERIFY(componentObject.isComponent()); + + QmlDomComponent component = componentObject.toComponent(); + QVERIFY(component.isValid()); + QVERIFY(component.objectType() == "Qt/Component"); + QVERIFY(component.objectClassName() == "Component"); + QVERIFY(component.objectId() == ""); + QVERIFY(component.properties().isEmpty()); + QVERIFY(component.dynamicProperties().isEmpty()); + QVERIFY(component.isCustomType() == false); + QVERIFY(component.customTypeData() == ""); + QVERIFY(component.isComponent()); + QCOMPARE(component.position(), 39); + QCOMPARE(component.length(), 7); + + QVERIFY(component.componentRoot().isValid()); + QVERIFY(component.componentRoot().objectClassName() == "Item"); + } +} + +// Test QmlDomObject::dynamicProperty() method +void tst_qmldom::object_dynamicProperty() +{ + // Invalid object + { + QmlDomObject object; + QVERIFY(object.dynamicProperty("").isValid() == false); + QVERIFY(object.dynamicProperty("foo").isValid() == false); + } + + + // Valid object, no dynamic properties + { + QByteArray qml = "import Qt 4.6\n" + "Item {}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QVERIFY(rootObject.dynamicProperty("").isValid() == false); + QVERIFY(rootObject.dynamicProperty("foo").isValid() == false); + } + + // Valid object, dynamic properties + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " property int a\n" + "}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QVERIFY(rootObject.dynamicProperty("").isValid() == false); + QVERIFY(rootObject.dynamicProperty("foo").isValid() == false); + + QmlDomDynamicProperty p = rootObject.dynamicProperty("a"); + QVERIFY(p.isValid()); + QVERIFY(p.propertyName() == "a"); + QVERIFY(p.propertyType() == QVariant::Int); + QVERIFY(p.propertyTypeName() == "int"); + QVERIFY(p.isDefaultProperty() == false); + QCOMPARE(p.position(), 25); + QCOMPARE(p.length(), 14); + } + +} + +// Test QmlObject::property() method +void tst_qmldom::object_property() +{ + // Invalid object + { + QmlDomObject object; + QVERIFY(object.property("").isValid() == false); + QVERIFY(object.property("foo").isValid() == false); + } + + // Valid object - no default + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " x: 10\n" + " y: 12\n" + "}\n"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QVERIFY(rootObject.property("").isValid() == false); + QVERIFY(rootObject.property("foo").isValid() == false); + + QmlDomProperty x = rootObject.property("x"); + QVERIFY(x.isValid()); + QVERIFY(x.propertyName() == "x"); + QVERIFY(x.propertyNameParts().count() == 1); + QVERIFY(x.propertyNameParts().at(0) == "x"); + QVERIFY(x.isDefaultProperty() == false); + QVERIFY(x.value().isLiteral()); + QVERIFY(x.value().toLiteral().literal() == "10"); + QCOMPARE(x.position(), 25); + QCOMPARE(x.length(), 1); + + QmlDomProperty y = rootObject.property("y"); + QVERIFY(y.isValid()); + QVERIFY(y.propertyName() == "y"); + QVERIFY(y.propertyNameParts().count() == 1); + QVERIFY(y.propertyNameParts().at(0) == "y"); + QVERIFY(y.isDefaultProperty() == false); + QVERIFY(y.value().isLiteral()); + QVERIFY(y.value().toLiteral().literal() == "12"); + QCOMPARE(y.position(), 35); + QCOMPARE(y.length(), 1); + } + + // Valid object - with default + { + QByteArray qml = "import Qt 4.6\n" + "Item {\n" + " x: 10\n" + " y: 12\n" + " Item {}\n" + "}\n"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + + QVERIFY(rootObject.property("").isValid() == false); + QVERIFY(rootObject.property("foo").isValid() == false); + + QmlDomProperty x = rootObject.property("x"); + QVERIFY(x.isValid()); + QVERIFY(x.propertyName() == "x"); + QVERIFY(x.propertyNameParts().count() == 1); + QVERIFY(x.propertyNameParts().at(0) == "x"); + QVERIFY(x.isDefaultProperty() == false); + QVERIFY(x.value().isLiteral()); + QVERIFY(x.value().toLiteral().literal() == "10"); + QCOMPARE(x.position(), 25); + QCOMPARE(x.length(), 1); + + QmlDomProperty y = rootObject.property("y"); + QVERIFY(y.isValid()); + QVERIFY(y.propertyName() == "y"); + QVERIFY(y.propertyNameParts().count() == 1); + QVERIFY(y.propertyNameParts().at(0) == "y"); + QVERIFY(y.isDefaultProperty() == false); + QVERIFY(y.value().isLiteral()); + QVERIFY(y.value().toLiteral().literal() == "12"); + QCOMPARE(y.position(), 35); + QCOMPARE(y.length(), 1); + + QmlDomProperty data = rootObject.property("data"); + QVERIFY(data.isValid()); + QVERIFY(data.propertyName() == "data"); + QVERIFY(data.propertyNameParts().count() == 1); + QVERIFY(data.propertyNameParts().at(0) == "data"); + QVERIFY(data.isDefaultProperty() == true); + QVERIFY(data.value().isList()); + QCOMPARE(data.position(), 45); + QCOMPARE(data.length(), 0); + } +} + +// Tests the QmlDomObject::url() method +void tst_qmldom::object_url() +{ + // Invalid object + { + QmlDomObject object; + QCOMPARE(object.url(), QUrl()); + } + + // Valid builtin object + { + QByteArray qml = "import Qt 4.6\n" + "Item {}"; + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + QCOMPARE(rootObject.url(), QUrl()); + } + + // Valid composite object + { + QByteArray qml = "import Qt 4.6\n" + "MyItem {}"; + + QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml"); + QUrl subUrl = QUrl::fromLocalFile(SRCDIR "/data/MyItem.qml"); + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml, myUrl)); + + QmlDomObject rootObject = document.rootObject(); + QVERIFY(rootObject.isValid()); + QCOMPARE(rootObject.url(), subUrl); + } +} + +// Test copy constructors and operators +void tst_qmldom::copy() +{ + QByteArray qml = "import Qt 4.6\n" + "MyItem {\n" + " id: myItem\n" + " property int a: 10\n" + " x: 10\n" + " y: x + 10\n" + " z: NumberAnimation {}\n" + " opacity: Behavior {}\n" + " Component {\n" + " Item{}\n" + " }\n" + " children: [ Item{}, Item{} ]\n" + "}\n"; + + QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml"); + + QmlDomDocument document; + QVERIFY(document.load(&engine, qml, myUrl)); + + // QmlDomDocument + { + QmlDomDocument document2(document); + QmlDomDocument document3; + document3 = document; + + QCOMPARE(document.imports().count(), document2.imports().count()); + QCOMPARE(document.errors().count(), document2.errors().count()); + QCOMPARE(document.rootObject().objectClassName(), document2.rootObject().objectClassName()); + + QCOMPARE(document.imports().count(), document3.imports().count()); + QCOMPARE(document.errors().count(), document3.errors().count()); + QCOMPARE(document.rootObject().objectClassName(), document3.rootObject().objectClassName()); + } + + // QmlDomImport + { + QCOMPARE(document.imports().count(), 1); + QmlDomImport import = document.imports().at(0); + + QmlDomImport import2(import); + QmlDomImport import3; + import3 = import2; + + QCOMPARE(import.type(), import2.type()); + QCOMPARE(import.uri(), import2.uri()); + QCOMPARE(import.version(), import2.version()); + QCOMPARE(import.qualifier(), import2.qualifier()); + + QCOMPARE(import.type(), import3.type()); + QCOMPARE(import.uri(), import3.uri()); + QCOMPARE(import.version(), import3.version()); + QCOMPARE(import.qualifier(), import3.qualifier()); + } + + // QmlDomObject + { + QmlDomObject object = document.rootObject(); + QVERIFY(object.isValid()); + + QmlDomObject object2(object); + QmlDomObject object3; + object3 = object; + + QCOMPARE(object.isValid(), object2.isValid()); + QCOMPARE(object.objectType(), object2.objectType()); + QCOMPARE(object.objectClassName(), object2.objectClassName()); + QCOMPARE(object.objectTypeMajorVersion(), object2.objectTypeMajorVersion()); + QCOMPARE(object.objectTypeMinorVersion(), object2.objectTypeMinorVersion()); + QCOMPARE(object.objectId(), object2.objectId()); + QCOMPARE(object.properties().count(), object2.properties().count()); + QCOMPARE(object.dynamicProperties().count(), object2.dynamicProperties().count()); + QCOMPARE(object.isCustomType(), object2.isCustomType()); + QCOMPARE(object.customTypeData(), object2.customTypeData()); + QCOMPARE(object.isComponent(), object2.isComponent()); + QCOMPARE(object.position(), object2.position()); + QCOMPARE(object.length(), object2.length()); + QCOMPARE(object.url(), object2.url()); + + QCOMPARE(object.isValid(), object3.isValid()); + QCOMPARE(object.objectType(), object3.objectType()); + QCOMPARE(object.objectClassName(), object3.objectClassName()); + QCOMPARE(object.objectTypeMajorVersion(), object3.objectTypeMajorVersion()); + QCOMPARE(object.objectTypeMinorVersion(), object3.objectTypeMinorVersion()); + QCOMPARE(object.objectId(), object3.objectId()); + QCOMPARE(object.properties().count(), object3.properties().count()); + QCOMPARE(object.dynamicProperties().count(), object3.dynamicProperties().count()); + QCOMPARE(object.isCustomType(), object3.isCustomType()); + QCOMPARE(object.customTypeData(), object3.customTypeData()); + QCOMPARE(object.isComponent(), object3.isComponent()); + QCOMPARE(object.position(), object3.position()); + QCOMPARE(object.length(), object3.length()); + QCOMPARE(object.url(), object3.url()); + } + + // QmlDomDynamicProperty + { + QmlDomObject object = document.rootObject(); + QmlDomDynamicProperty property = object.dynamicProperty("a"); + + QmlDomDynamicProperty property2(property); + QmlDomDynamicProperty property3; + property3 = property; + + QCOMPARE(property.isValid(), property2.isValid()); + QCOMPARE(property.propertyName(), property2.propertyName()); + QCOMPARE(property.propertyType(), property2.propertyType()); + QCOMPARE(property.propertyTypeName(), property2.propertyTypeName()); + QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty()); + QCOMPARE(property.defaultValue().propertyName(), property2.defaultValue().propertyName()); + QCOMPARE(property.position(), property2.position()); + QCOMPARE(property.length(), property2.length()); + + QCOMPARE(property.isValid(), property3.isValid()); + QCOMPARE(property.propertyName(), property3.propertyName()); + QCOMPARE(property.propertyType(), property3.propertyType()); + QCOMPARE(property.propertyTypeName(), property3.propertyTypeName()); + QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty()); + QCOMPARE(property.defaultValue().propertyName(), property3.defaultValue().propertyName()); + QCOMPARE(property.position(), property3.position()); + QCOMPARE(property.length(), property3.length()); + } + + // QmlDomProperty + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("opacity"); + + QmlDomProperty property2(property); + QmlDomProperty property3; + property3 = property; + + QCOMPARE(property.isValid(), property2.isValid()); + QCOMPARE(property.propertyName(), property2.propertyName()); + QCOMPARE(property.propertyNameParts(), property2.propertyNameParts()); + QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty()); + QCOMPARE(property.value().type(), property2.value().type()); + QCOMPARE(property.position(), property2.position()); + QCOMPARE(property.length(), property2.length()); + + QCOMPARE(property.isValid(), property3.isValid()); + QCOMPARE(property.propertyName(), property3.propertyName()); + QCOMPARE(property.propertyNameParts(), property3.propertyNameParts()); + QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty()); + QCOMPARE(property.value().type(), property3.value().type()); + QCOMPARE(property.position(), property3.position()); + QCOMPARE(property.length(), property3.length()); + } + + // QmlDomValueLiteral + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("x"); + QmlDomValueLiteral literal = property.value().toLiteral(); + QCOMPARE(literal.literal(), QString("10")); + + QmlDomValueLiteral literal2(literal); + QmlDomValueLiteral literal3; + literal3 = literal2; + + QCOMPARE(literal2.literal(), QString("10")); + QCOMPARE(literal3.literal(), QString("10")); + } + + + // QmlDomValueBinding + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("y"); + QmlDomValueBinding binding = property.value().toBinding(); + QCOMPARE(binding.binding(), QString("x + 10")); + + QmlDomValueBinding binding2(binding); + QmlDomValueBinding binding3; + binding3 = binding2; + + QCOMPARE(binding2.binding(), QString("x + 10")); + QCOMPARE(binding3.binding(), QString("x + 10")); + } + + // QmlDomValueValueSource + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("z"); + QmlDomValueValueSource source = property.value().toValueSource(); + QCOMPARE(source.object().objectClassName(), QByteArray("NumberAnimation")); + + QmlDomValueValueSource source2(source); + QmlDomValueValueSource source3; + source3 = source; + + QCOMPARE(source2.object().objectClassName(), QByteArray("NumberAnimation")); + QCOMPARE(source3.object().objectClassName(), QByteArray("NumberAnimation")); + } + + // QmlDomValueValueInterceptor + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("opacity"); + QmlDomValueValueInterceptor interceptor = property.value().toValueInterceptor(); + QCOMPARE(interceptor.object().objectClassName(), QByteArray("Behavior")); + + QmlDomValueValueInterceptor interceptor2(interceptor); + QmlDomValueValueInterceptor interceptor3; + interceptor3 = interceptor; + + QCOMPARE(interceptor2.object().objectClassName(), QByteArray("Behavior")); + QCOMPARE(interceptor3.object().objectClassName(), QByteArray("Behavior")); + } + + // QmlDomComponent + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("data"); + QCOMPARE(property.value().toList().values().count(), 1); + QmlDomComponent component = + property.value().toList().values().at(0).toObject().toComponent(); + QCOMPARE(component.componentRoot().objectClassName(), QByteArray("Item")); + + QmlDomComponent component2(component); + QmlDomComponent component3; + component3 = component; + + QCOMPARE(component.componentRoot().objectClassName(), component2.componentRoot().objectClassName()); + QCOMPARE(component.isValid(), component2.isValid()); + QCOMPARE(component.objectType(), component2.objectType()); + QCOMPARE(component.objectClassName(), component2.objectClassName()); + QCOMPARE(component.objectTypeMajorVersion(), component2.objectTypeMajorVersion()); + QCOMPARE(component.objectTypeMinorVersion(), component2.objectTypeMinorVersion()); + QCOMPARE(component.objectId(), component2.objectId()); + QCOMPARE(component.properties().count(), component2.properties().count()); + QCOMPARE(component.dynamicProperties().count(), component2.dynamicProperties().count()); + QCOMPARE(component.isCustomType(), component2.isCustomType()); + QCOMPARE(component.customTypeData(), component2.customTypeData()); + QCOMPARE(component.isComponent(), component2.isComponent()); + QCOMPARE(component.position(), component2.position()); + QCOMPARE(component.length(), component2.length()); + QCOMPARE(component.url(), component2.url()); + + QCOMPARE(component.componentRoot().objectClassName(), component3.componentRoot().objectClassName()); + QCOMPARE(component.isValid(), component3.isValid()); + QCOMPARE(component.objectType(), component3.objectType()); + QCOMPARE(component.objectClassName(), component3.objectClassName()); + QCOMPARE(component.objectTypeMajorVersion(), component3.objectTypeMajorVersion()); + QCOMPARE(component.objectTypeMinorVersion(), component3.objectTypeMinorVersion()); + QCOMPARE(component.objectId(), component3.objectId()); + QCOMPARE(component.properties().count(), component3.properties().count()); + QCOMPARE(component.dynamicProperties().count(), component3.dynamicProperties().count()); + QCOMPARE(component.isCustomType(), component3.isCustomType()); + QCOMPARE(component.customTypeData(), component3.customTypeData()); + QCOMPARE(component.isComponent(), component3.isComponent()); + QCOMPARE(component.position(), component3.position()); + QCOMPARE(component.length(), component3.length()); + QCOMPARE(component.url(), component3.url()); + } + + // QmlDomValue + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("data"); + QmlDomValue value = property.value(); + + QmlDomValue value2(value); + QmlDomValue value3; + value3 = value; + + QCOMPARE(value.type(), value2.type()); + QCOMPARE(value.isInvalid(), value2.isInvalid()); + QCOMPARE(value.isLiteral(), value2.isLiteral()); + QCOMPARE(value.isBinding(), value2.isBinding()); + QCOMPARE(value.isValueSource(), value2.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor()); + QCOMPARE(value.isObject(), value2.isObject()); + QCOMPARE(value.isList(), value2.isList()); + QCOMPARE(value.position(), value2.position()); + QCOMPARE(value.length(), value2.length()); + + QCOMPARE(value.type(), value3.type()); + QCOMPARE(value.isInvalid(), value3.isInvalid()); + QCOMPARE(value.isLiteral(), value3.isLiteral()); + QCOMPARE(value.isBinding(), value3.isBinding()); + QCOMPARE(value.isValueSource(), value3.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor()); + QCOMPARE(value.isObject(), value3.isObject()); + QCOMPARE(value.isList(), value3.isList()); + QCOMPARE(value.position(), value3.position()); + QCOMPARE(value.length(), value3.length()); + } + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("x"); + QmlDomValue value = property.value(); + + QmlDomValue value2(value); + QmlDomValue value3; + value3 = value; + + QCOMPARE(value.type(), value2.type()); + QCOMPARE(value.isInvalid(), value2.isInvalid()); + QCOMPARE(value.isLiteral(), value2.isLiteral()); + QCOMPARE(value.isBinding(), value2.isBinding()); + QCOMPARE(value.isValueSource(), value2.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor()); + QCOMPARE(value.isObject(), value2.isObject()); + QCOMPARE(value.isList(), value2.isList()); + QCOMPARE(value.position(), value2.position()); + QCOMPARE(value.length(), value2.length()); + + QCOMPARE(value.type(), value3.type()); + QCOMPARE(value.isInvalid(), value3.isInvalid()); + QCOMPARE(value.isLiteral(), value3.isLiteral()); + QCOMPARE(value.isBinding(), value3.isBinding()); + QCOMPARE(value.isValueSource(), value3.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor()); + QCOMPARE(value.isObject(), value3.isObject()); + QCOMPARE(value.isList(), value3.isList()); + QCOMPARE(value.position(), value3.position()); + QCOMPARE(value.length(), value3.length()); + } + { + QmlDomValue value; + + QmlDomValue value2(value); + QmlDomValue value3; + value3 = value; + + QCOMPARE(value.type(), value2.type()); + QCOMPARE(value.isInvalid(), value2.isInvalid()); + QCOMPARE(value.isLiteral(), value2.isLiteral()); + QCOMPARE(value.isBinding(), value2.isBinding()); + QCOMPARE(value.isValueSource(), value2.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor()); + QCOMPARE(value.isObject(), value2.isObject()); + QCOMPARE(value.isList(), value2.isList()); + QCOMPARE(value.position(), value2.position()); + QCOMPARE(value.length(), value2.length()); + + QCOMPARE(value.type(), value3.type()); + QCOMPARE(value.isInvalid(), value3.isInvalid()); + QCOMPARE(value.isLiteral(), value3.isLiteral()); + QCOMPARE(value.isBinding(), value3.isBinding()); + QCOMPARE(value.isValueSource(), value3.isValueSource()); + QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor()); + QCOMPARE(value.isObject(), value3.isObject()); + QCOMPARE(value.isList(), value3.isList()); + QCOMPARE(value.position(), value3.position()); + QCOMPARE(value.length(), value3.length()); + } + + // QmlDomList + { + QmlDomObject object = document.rootObject(); + QmlDomProperty property = object.property("children"); + QmlDomList list = property.value().toList(); + QCOMPARE(list.values().count(), 2); + + QmlDomList list2(list); + QmlDomList list3; + list3 = list2; + + QCOMPARE(list.values().count(), list2.values().count()); + QCOMPARE(list.position(), list2.position()); + QCOMPARE(list.length(), list2.length()); + QCOMPARE(list.commaPositions(), list2.commaPositions()); + + QCOMPARE(list.values().count(), list3.values().count()); + QCOMPARE(list.position(), list3.position()); + QCOMPARE(list.length(), list3.length()); + QCOMPARE(list.commaPositions(), list3.commaPositions()); + + } +} QTEST_MAIN(tst_qmldom) -- cgit v0.12 From 2f0337cbbc442904f77b768df41b45754e251614 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 16:55:13 +1000 Subject: Fix inconsistent private include. --- src/declarative/util/qmlopenmetaobject_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/util/qmlopenmetaobject_p.h b/src/declarative/util/qmlopenmetaobject_p.h index 1cf12f8..7a5b4ce 100644 --- a/src/declarative/util/qmlopenmetaobject_p.h +++ b/src/declarative/util/qmlopenmetaobject_p.h @@ -43,7 +43,7 @@ #define QMLOPENMETAOBJECT_H #include -#include +#include #include QT_BEGIN_HEADER -- cgit v0.12 From 0299f2c6b2e6fa05013e1ad3b634a370f0f907e8 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 11 Nov 2009 17:11:00 +1000 Subject: Don't use the identity matrix in test --- tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp index 36a7332..abc1fbe 100644 --- a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp +++ b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp @@ -239,7 +239,7 @@ void tst_qmlmetatype::copy() QT_COPY_TEST(QTextFormat, QTextFormat(QTextFormat::ListFormat)); QT_COPY_TEST(QMatrix, QMatrix().translate(10, 10)); QT_COPY_TEST(QTransform, QTransform().translate(10, 10)); - QT_COPY_TEST(QMatrix4x4, QMatrix4x4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)); + QT_COPY_TEST(QMatrix4x4, QMatrix4x4(1,0,2,3,0,1,0,0,9,0,1,0,0,0,10,1)); QT_COPY_TEST(QVector2D, QVector2D(10.2, 1)); QT_COPY_TEST(QVector3D, QVector3D(10.2, 1, -2)); QT_COPY_TEST(QVector4D, QVector4D(10.2, 1, -2, 1.2)); -- cgit v0.12