diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2009-11-11 07:46:20 (GMT) |
---|---|---|
committer | Alan Alpert <alan.alpert@nokia.com> | 2009-11-11 07:46:20 (GMT) |
commit | 8e5166aba8c8d79e47d4c4fccd5acf52f9cffec6 (patch) | |
tree | f9b91b73e52ec389107cc8791ac76e87f962944b /tests | |
parent | 6ac7ce79b6041a7c35d08cb28f775dead9701c4b (diff) | |
parent | 0faef2ba318b7df095d5c20fdddd0933ae4912c3 (diff) | |
download | Qt-8e5166aba8c8d79e47d4c4fccd5acf52f9cffec6.zip Qt-8e5166aba8c8d79e47d4c4fccd5acf52f9cffec6.tar.gz Qt-8e5166aba8c8d79e47d4c4fccd5acf52f9cffec6.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Conflicts:
src/declarative/util/util.pri
Diffstat (limited to 'tests')
80 files changed, 3502 insertions, 667 deletions
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 8a3a06c..1d08d92 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -27,6 +27,7 @@ SUBDIRS += \ qmlgraphicslistview \ # Cover qmlgraphicsloader \ # Cover qmlgraphicsparticles \ # Cover + qmlgraphicspathview \ # Cover qmlgraphicspositioners \ # Cover qmlgraphicstext \ # Cover qmlgraphicstextedit \ # Cover 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 <qmlview.h> #include <private/qmlgraphicslayoutitem_p.h> #include <qmlexpression.h> +#include <QStyle> class tst_QmlGraphicsLayouts : public QObject { @@ -74,7 +75,12 @@ void tst_QmlGraphicsLayouts::test_qml() QmlGraphicsLayoutItem *right = static_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("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/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<QVariant>(), 188, 14, "var"); + DP_TEST(9, j, qMetaTypeId<QVariant>(), 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) 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<QmlGraphicsLoader*>(component.create()); 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 <private/qmlgraphicspathview_p.h> +#include <qmlcontext.h> +#include <qmlexpression.h> +#include <qtest.h> +#include <QtDeclarative/qmlengine.h> +#include <QtDeclarative/qmlcomponent.h> +#include <private/qmlvaluetype_p.h> +#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<QmlGraphicsPathView*>(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<QmlGraphicsPathView*>(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<QmlGraphicsPathView*>(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" 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 @@ +<html> +<head> +<script type="text/javascript"> +<!-- +function clickTheLink() +{ + var ev = document.createEvent('MouseEvents'); + ev.initEvent( "click", true, false ); + document.getElementById('thelink').dispatchEvent(ev); +} +// --> +</script> +</head> +<h1>Multiple windows...</h1> + +<a id=thelink target="_blank" href="newwindows.html">Popup!</a> 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 <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicswebview_p.h> +#include <private/qmlgraphicspositioners_p.h> #include <QtWebKit/qwebpage.h> #include <QtWebKit/qwebframe.h> #include <QtCore/qdir.h> @@ -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<QmlGraphicsGrid*>(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")); 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 Binary files differnew file mode 100644 index 0000000..46f815f --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png 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 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)); 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<int, QVariant> data = listModel->data(2, roles); QVERIFY(data.count() == 1); QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String("<html>"))); + + delete listModel; } void tst_qmlxmllistmodel::attributes() @@ -123,8 +131,49 @@ void tst_qmlxmllistmodel::attributes() QHash<int, QVariant> 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<QmlXmlListModel*>(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList<int> 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<QmlXmlListModel*>(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList<int> roles; + roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3; + QHash<int, QVariant> 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) diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh index e4b18da..33087a1 100755 --- a/tests/auto/declarative/runall.sh +++ b/tests/auto/declarative/runall.sh @@ -1,14 +1,21 @@ #!/bin/sh Xnest :7 2>/dev/null & +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 + make*Error) echo "$line";; + make*Stop) echo "$line";; make*) ;; + */qmake*) ;; + */bin/moc*) ;; + *targ.debug*) ;; + g++*) ;; cd*) ;; PASS*) ;; QDEBUG*) ;; diff --git a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml index efbb1b4..eabba73 100644 --- a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml +++ b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml @@ -21,7 +21,7 @@ Rectangle { } PropertyChanges { target: MyMouseRegion - onClicked: "Page.currentState = ''" + onClicked: Page.state = '' } } ] diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png Binary files differindex 1b08c81..1b08c81 100644 --- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png Binary files differindex f3074fc..f3074fc 100644 --- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png Binary files differnew file mode 100644 index 0000000..1b08c81 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png Binary files differnew file mode 100644 index 0000000..e2560e0 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png Binary files differnew file mode 100644 index 0000000..bba04a9 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png Binary files differnew file mode 100644 index 0000000..f3074fc --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png Binary files differnew file mode 100644 index 0000000..1b08c81 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png 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/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml index 0e98d7e..0e98d7e 100644 --- a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml +++ b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png Binary files differindex f4a6cfd..f4a6cfd 100644 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png Binary files differindex f4a6cfd..f4a6cfd 100644 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png Binary files differindex f4a6cfd..f4a6cfd 100644 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml index 900bf5c..900bf5c 100644 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml diff --git a/tests/auto/declarative/visual/easing/data/easing.0.png b/tests/auto/declarative/visual/animation/easing/data/easing.0.png Binary files differindex 4f75bfd..4f75bfd 100644 --- a/tests/auto/declarative/visual/easing/data/easing.0.png +++ b/tests/auto/declarative/visual/animation/easing/data/easing.0.png diff --git a/tests/auto/declarative/visual/easing/data/easing.1.png b/tests/auto/declarative/visual/animation/easing/data/easing.1.png Binary files differindex dc17765..dc17765 100644 --- a/tests/auto/declarative/visual/easing/data/easing.1.png +++ b/tests/auto/declarative/visual/animation/easing/data/easing.1.png diff --git a/tests/auto/declarative/visual/easing/data/easing.2.png b/tests/auto/declarative/visual/animation/easing/data/easing.2.png Binary files differindex 7f83548..7f83548 100644 --- a/tests/auto/declarative/visual/easing/data/easing.2.png +++ b/tests/auto/declarative/visual/animation/easing/data/easing.2.png diff --git a/tests/auto/declarative/visual/easing/data/easing.3.png b/tests/auto/declarative/visual/animation/easing/data/easing.3.png Binary files differindex c68e0fa..c68e0fa 100644 --- a/tests/auto/declarative/visual/easing/data/easing.3.png +++ b/tests/auto/declarative/visual/animation/easing/data/easing.3.png diff --git a/tests/auto/declarative/visual/easing/data/easing.qml b/tests/auto/declarative/visual/animation/easing/data/easing.qml index d8e8688..d8e8688 100644 --- a/tests/auto/declarative/visual/easing/data/easing.qml +++ b/tests/auto/declarative/visual/animation/easing/data/easing.qml diff --git a/tests/auto/declarative/visual/easing/easing.qml b/tests/auto/declarative/visual/animation/easing/easing.qml index 1e8e907..1e8e907 100644 --- a/tests/auto/declarative/visual/easing/easing.qml +++ b/tests/auto/declarative/visual/animation/easing/easing.qml diff --git a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png Binary files differindex 399bd0b..399bd0b 100644 --- a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png +++ b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png Binary files differnew file mode 100644 index 0000000..82c18d7 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png Binary files differnew file mode 100644 index 0000000..b9a3b89 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png Binary files differnew file mode 100644 index 0000000..789615b --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png 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/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png Binary files differindex a0032f8..a0032f8 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png Binary files differindex 958b6af..958b6af 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png Binary files differindex 3a1811f..3a1811f 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png Binary files differindex 36064c2..36064c2 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png Binary files differindex c493a1d..c493a1d 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png Binary files differindex c493a1d..c493a1d 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml index de27af7..de27af7 100644 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.qml +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml diff --git a/tests/auto/declarative/visual/parentAction/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml index e69d234..e69d234 100644 --- a/tests/auto/declarative/visual/parentAction/parentAction.qml +++ b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png Binary files differindex 693a794..693a794 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png Binary files differindex 06d43f1..06d43f1 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png Binary files differindex e619baf..e619baf 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png Binary files differindex 30c7671..30c7671 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png Binary files differindex 132803c..132803c 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png Binary files differindex 8372bc3..8372bc3 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml index 73c6542..73c6542 100644 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml diff --git a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml index fba8ae6..fba8ae6 100644 --- a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml +++ b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml diff --git a/tests/auto/declarative/visual/easing/pics/qtlogo.png b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png Binary files differindex 399bd0b..399bd0b 100644 --- a/tests/auto/declarative/visual/easing/pics/qtlogo.png +++ b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png Binary files differindex 64d6b06..64d6b06 100644 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png Binary files differindex f7fce15..f7fce15 100644 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png Binary files differindex 3080df5..3080df5 100644 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml index 7c8c233..7c8c233 100644 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml diff --git a/tests/auto/declarative/visual/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml index a9d3c74..a9d3c74 100644 --- a/tests/auto/declarative/visual/propertyAction/propertyAction.qml +++ b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png Binary files differindex 64d6b06..64d6b06 100644 --- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png +++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png Binary files differindex 1a25c63..1a25c63 100644 --- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png +++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml index 01da490..01da490 100644 --- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml +++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml index 872701b..872701b 100644 --- a/tests/auto/declarative/visual/scriptAction/scriptAction.qml +++ b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml 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" - } -} |