diff options
author | Yann Bodson <yann.bodson@nokia.com> | 2009-11-11 06:44:19 (GMT) |
---|---|---|
committer | Yann Bodson <yann.bodson@nokia.com> | 2009-11-11 06:44:19 (GMT) |
commit | 7703e3ec3a8b13278f52aeda480ab36b548fbf99 (patch) | |
tree | bdd7a46181b0b6d2dd3028c746b1da517c09db1b /tests/auto | |
parent | 49e1b989213028dac8557d4e74ab530f77fc8a07 (diff) | |
parent | 544c936c8db0560174f27241fbbe41c172e4b0ce (diff) | |
download | Qt-7703e3ec3a8b13278f52aeda480ab36b548fbf99.zip Qt-7703e3ec3a8b13278f52aeda480ab36b548fbf99.tar.gz Qt-7703e3ec3a8b13278f52aeda480ab36b548fbf99.tar.bz2 |
Merge branch 'kinetic-declarativeui' of scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Conflicts:
src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp
Diffstat (limited to 'tests/auto')
83 files changed, 2492 insertions, 756 deletions
diff --git a/tests/auto/declarative/animatedimage/data/colors.gif b/tests/auto/declarative/animatedimage/data/colors.gif Binary files differnew file mode 100644 index 0000000..1270bfa --- /dev/null +++ b/tests/auto/declarative/animatedimage/data/colors.gif diff --git a/tests/auto/declarative/animatedimage/data/colors.qml b/tests/auto/declarative/animatedimage/data/colors.qml new file mode 100644 index 0000000..5bada34 --- /dev/null +++ b/tests/auto/declarative/animatedimage/data/colors.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +AnimatedImage { + source: "colors.gif" +} diff --git a/tests/auto/declarative/animatedimage/data/stickmanstopped.qml b/tests/auto/declarative/animatedimage/data/stickmanstopped.qml new file mode 100644 index 0000000..53b0c3a --- /dev/null +++ b/tests/auto/declarative/animatedimage/data/stickmanstopped.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +AnimatedImage { + source: "stickman.gif" + playing: false +} diff --git a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp index 262ddda..484fd1a 100644 --- a/tests/auto/declarative/animatedimage/tst_animatedimage.cpp +++ b/tests/auto/declarative/animatedimage/tst_animatedimage.cpp @@ -44,7 +44,7 @@ #include <QtDeclarative/qmlview.h> #include <private/qmlgraphicsrectangle_p.h> #include <private/qmlgraphicsimage_p.h> -#include <private/qmlgraphicsanimatedimageitem_p.h> +#include <private/qmlgraphicsanimatedimage_p.h> class tst_animatedimage : public QObject { @@ -55,6 +55,7 @@ public: private slots: void play(); void pause(); + void stopped(); void setFrame(); void frameCount(); }; @@ -63,34 +64,61 @@ void tst_animatedimage::play() { QmlEngine engine; QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/stickman.qml")); - QmlGraphicsAnimatedImageItem *anim = qobject_cast<QmlGraphicsAnimatedImageItem *>(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast<QmlGraphicsAnimatedImage *>(component.create()); QVERIFY(anim); QVERIFY(anim->isPlaying()); + + delete anim; } void tst_animatedimage::pause() { QmlEngine engine; QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/stickmanpause.qml")); - QmlGraphicsAnimatedImageItem *anim = qobject_cast<QmlGraphicsAnimatedImageItem *>(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast<QmlGraphicsAnimatedImage *>(component.create()); QVERIFY(anim); QVERIFY(anim->isPlaying()); QVERIFY(anim->isPaused()); + + delete anim; +} + +void tst_animatedimage::stopped() +{ + QmlEngine engine; + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/stickmanstopped.qml")); + QmlGraphicsAnimatedImage *anim = qobject_cast<QmlGraphicsAnimatedImage *>(component.create()); + QVERIFY(anim); + QVERIFY(!anim->isPlaying()); + QCOMPARE(anim->currentFrame(), 0); + + delete anim; } void tst_animatedimage::setFrame() { QmlEngine engine; QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/stickmanpause.qml")); - QmlGraphicsAnimatedImageItem *anim = qobject_cast<QmlGraphicsAnimatedImageItem *>(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast<QmlGraphicsAnimatedImage *>(component.create()); QVERIFY(anim); QVERIFY(anim->isPlaying()); QCOMPARE(anim->currentFrame(), 2); + + delete anim; } void tst_animatedimage::frameCount() { - // GIF doesn't support frameCount until first pass through + QmlEngine engine; + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/colors.qml")); + QmlGraphicsAnimatedImage *anim = qobject_cast<QmlGraphicsAnimatedImage *>(component.create()); + QVERIFY(anim); + QVERIFY(anim->isPlaying()); + QCOMPARE(anim->frameCount(), 0); // GIF doesn't support frameCount until first pass through + QTest::qWait(600 + 100); + QCOMPARE(anim->frameCount(), 3); + + delete anim; } QTEST_MAIN(tst_animatedimage) diff --git a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp index 5899d8d..e9b4879 100644 --- a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp +++ b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp @@ -81,6 +81,8 @@ void tst_datetimeformatter::date() QVERIFY(formatter->timeText().isEmpty()); QVERIFY(formatter->dateTimeText().isEmpty()); + + delete formatter; } void tst_datetimeformatter::time() @@ -111,6 +113,8 @@ void tst_datetimeformatter::time() QVERIFY(formatter->dateText().isEmpty()); QVERIFY(formatter->dateTimeText().isEmpty()); + + delete formatter; } void tst_datetimeformatter::dateTime() @@ -134,6 +138,8 @@ void tst_datetimeformatter::dateTime() formatter->setDateTimeFormat("M/d/yy H:m:s a"); QCOMPARE(formatter->dateTimeFormat(), QLatin1String("M/d/yy H:m:s a")); QCOMPARE(formatter->dateTimeText(),dateTime.toString("M/d/yy H:m:s a")); + + delete formatter; } QTEST_MAIN(tst_datetimeformatter) diff --git a/tests/auto/declarative/debugger/debuggerutil.cpp b/tests/auto/declarative/debugger/debuggerutil.cpp index 8e93407..761105e 100644 --- a/tests/auto/declarative/debugger/debuggerutil.cpp +++ b/tests/auto/declarative/debugger/debuggerutil.cpp @@ -49,41 +49,42 @@ namespace QmlDebuggerTest { - void waitForSignal(QObject *receiver, const char *member) { + bool waitForSignal(QObject *receiver, const char *member, int timeout) { QEventLoop loop; QTimer timer; QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); QObject::connect(receiver, member, &loop, SLOT(quit())); - timer.start(5000); + timer.start(timeout); loop.exec(); + return timer.isActive(); } } -EchoService::EchoService(const QString &s, QObject *parent) +QmlDebuggerTestService::QmlDebuggerTestService(const QString &s, QObject *parent) : QmlDebugService(s, parent), enabled(false) { } -void EchoService::messageReceived(const QByteArray &ba) +void QmlDebuggerTestService::messageReceived(const QByteArray &ba) { sendMessage(ba); } -void EchoService::enabledChanged(bool e) +void QmlDebuggerTestService::enabledChanged(bool e) { emit enabledStateChanged(); enabled = e; } -MyQmlDebugClient::MyQmlDebugClient(const QString &s, QmlDebugConnection *c) +QmlDebuggerTestClient::QmlDebuggerTestClient(const QString &s, QmlDebugConnection *c) : QmlDebugClient(s, c) { } -QByteArray MyQmlDebugClient::waitForResponse() +QByteArray QmlDebuggerTestClient::waitForResponse() { QSignalSpy spy(this, SIGNAL(serverMessage(QByteArray))); QmlDebuggerTest::waitForSignal(this, SIGNAL(serverMessage(QByteArray))); @@ -94,7 +95,7 @@ QByteArray MyQmlDebugClient::waitForResponse() return spy.at(0).at(0).value<QByteArray>(); } -void MyQmlDebugClient::messageReceived(const QByteArray &ba) +void QmlDebuggerTestClient::messageReceived(const QByteArray &ba) { emit serverMessage(ba); } diff --git a/tests/auto/declarative/debugger/debuggerutil_p.h b/tests/auto/declarative/debugger/debuggerutil_p.h index 155d550..5e27a7a 100644 --- a/tests/auto/declarative/debugger/debuggerutil_p.h +++ b/tests/auto/declarative/debugger/debuggerutil_p.h @@ -47,14 +47,14 @@ namespace QmlDebuggerTest { - void waitForSignal(QObject *receiver, const char *member); + bool waitForSignal(QObject *receiver, const char *member, int timeout = 5000); } -class EchoService : public QmlDebugService +class QmlDebuggerTestService : public QmlDebugService { Q_OBJECT public: - EchoService(const QString &s, QObject *parent = 0); + QmlDebuggerTestService(const QString &s, QObject *parent = 0); bool enabled; signals: @@ -66,11 +66,11 @@ protected: virtual void enabledChanged(bool e); }; -class MyQmlDebugClient : public QmlDebugClient +class QmlDebuggerTestClient : public QmlDebugClient { Q_OBJECT public: - MyQmlDebugClient(const QString &s, QmlDebugConnection *c); + QmlDebuggerTestClient(const QString &s, QmlDebugConnection *c); QByteArray waitForResponse(); diff --git a/tests/auto/declarative/debugger/qmldebug/qmldebug.pro b/tests/auto/declarative/debugger/qmldebug/qmldebug.pro index 61f821e..c1ac125 100644 --- a/tests/auto/declarative/debugger/qmldebug/qmldebug.pro +++ b/tests/auto/declarative/debugger/qmldebug/qmldebug.pro @@ -2,4 +2,6 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += network declarative macx:CONFIG -= app_bundle -SOURCES += tst_qmldebug.cpp +HEADERS += ../debuggerutil_p.h +SOURCES += tst_qmldebug.cpp \ + ../debuggerutil.cpp diff --git a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp index 7c52a19..bfb8aee 100644 --- a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp +++ b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp @@ -59,6 +59,10 @@ #include <private/qmldebugservice_p.h> #include <private/qmlgraphicsrectangle_p.h> +#include "../debuggerutil_p.h" + +Q_DECLARE_METATYPE(QmlDebugWatch::State) + class tst_QmlDebug : public QObject { @@ -68,12 +72,6 @@ public: tst_QmlDebug(QmlDebugConnection *conn, QmlEngine *engine, QmlGraphicsItem *rootItem) : m_conn(conn), m_dbg(0), m_engine(engine), m_rootItem(rootItem) {} -protected slots: - void saveValueChange(const QByteArray &ba, const QVariant &v) - { - m_savedValueChanges[ba] = v; - } - private: QmlDebugObjectReference findRootObject(); QmlDebugPropertyReference findProperty(const QList<QmlDebugPropertyReference> &props, const QString &name) const; @@ -90,7 +88,6 @@ private: QmlEngineDebug *m_dbg; QmlEngine *m_engine; QmlGraphicsItem *m_rootItem; - QHash<QByteArray, QVariant> m_savedValueChanges; private slots: void initTestCase(); @@ -99,6 +96,8 @@ private slots: void watch_object(); void watch_expression(); void watch_expression_data(); + void watch_context(); + void watch_file(); void queryAvailableEngines(); void queryRootContexts(); @@ -160,14 +159,8 @@ void tst_QmlDebug::waitForQuery(QmlDebugQuery *query) { QVERIFY(query); QCOMPARE(query->parent(), this); - QEventLoop loop; - QTimer timer; QVERIFY(query->state() == QmlDebugQuery::Waiting); - connect(query, SIGNAL(stateChanged(State)), &loop, SLOT(quit())); - connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); - timer.start(5000); - loop.exec(); - if (!timer.isActive()) + if (!QmlDebuggerTest::waitForSignal(query, SIGNAL(stateChanged(QmlDebugQuery::State)))) QFAIL("query timed out"); } @@ -269,6 +262,8 @@ void tst_QmlDebug::compareProperties(const QmlDebugPropertyReference &a, const Q void tst_QmlDebug::initTestCase() { m_dbg = new QmlEngineDebug(m_conn, this); + + qRegisterMetaType<QmlDebugWatch::State>(); } void tst_QmlDebug::watch_property() @@ -276,29 +271,31 @@ void tst_QmlDebug::watch_property() QmlDebugObjectReference obj = findRootObject(); QmlDebugPropertyReference prop = findProperty(obj.properties(), "width"); - QmlDebugPropertyWatch *watch = m_dbg->addWatch(prop, this); + QmlDebugPropertyWatch *watch; + + QmlEngineDebug unconnected(0); + watch = unconnected.addWatch(prop, this); + QCOMPARE(watch->state(), QmlDebugWatch::Dead); + delete watch; + + watch = m_dbg->addWatch(prop, this); QCOMPARE(watch->state(), QmlDebugWatch::Waiting); QCOMPARE(watch->objectDebugId(), obj.debugId()); QCOMPARE(watch->name(), prop.name()); QSignalSpy spy(watch, SIGNAL(valueChanged(QByteArray,QVariant))); - QEventLoop loop; - QTimer timer; - connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), &loop, SLOT(quit())); - connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); int origWidth = m_rootItem->property("width").toInt(); - timer.start(5000); m_rootItem->setProperty("width", origWidth*2); - loop.exec(); - if (!timer.isActive()) - QFAIL("Did not receive valueChanged() for property"); + // stateChanged() is received before valueChanged() + QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State)))); + QCOMPARE(spy.count(), 1); m_dbg->removeWatch(watch); delete watch; - // restore original value and verify spy doesn't get a signal since watch has been removed + // restore original value and verify spy doesn't get additional signal since watch has been removed m_rootItem->setProperty("width", origWidth); QTest::qWait(100); QCOMPARE(spy.count(), 1); @@ -324,48 +321,51 @@ void tst_QmlDebug::watch_object() delete q_context; delete q_obj; - QmlDebugWatch *watch = m_dbg->addWatch(obj, this); + QmlDebugWatch *watch; + + QmlEngineDebug unconnected(0); + watch = unconnected.addWatch(obj, this); + QCOMPARE(watch->state(), QmlDebugWatch::Dead); + delete watch; + + watch = m_dbg->addWatch(obj, this); QCOMPARE(watch->state(), QmlDebugWatch::Waiting); QCOMPARE(watch->objectDebugId(), obj.debugId()); - m_savedValueChanges.clear(); - connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), - SLOT(saveValueChange(QByteArray,QVariant))); + QSignalSpy spy(watch, SIGNAL(valueChanged(QByteArray,QVariant))); int origWidth = m_rootItem->property("width").toInt(); int origHeight = m_rootItem->property("height").toInt(); m_rootItem->setProperty("width", origWidth*2); m_rootItem->setProperty("height", origHeight*2); - QEventLoop loop; - QTimer timer; - timer.start(5000); - while (timer.isActive() && - (!m_savedValueChanges.contains("width") || !m_savedValueChanges.contains("height"))) { - loop.processEvents(QEventLoop::AllEvents, 50); - } + // stateChanged() is received before any valueChanged() signals + QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State)))); + QVERIFY(spy.count() > 0); - QVariant newWidth = m_savedValueChanges["width"]; - QVariant newHeight = m_savedValueChanges["height"]; + int newWidth = -1; + int newHeight = -1; + for (int i=0; i<spy.count(); i++) { + const QVariantList &values = spy[i]; + if (values[0].value<QByteArray>() == "width") + newWidth = values[1].value<QVariant>().toInt(); + else if (values[0].value<QByteArray>() == "height") + newHeight = values[1].value<QVariant>().toInt(); + + } m_dbg->removeWatch(watch); delete watch; // since watch has been removed, restoring the original values should not trigger a valueChanged() - m_savedValueChanges.clear(); + spy.clear(); m_rootItem->setProperty("width", origWidth); m_rootItem->setProperty("height", origHeight); QTest::qWait(100); - QCOMPARE(m_savedValueChanges.count(), 0); + QCOMPARE(spy.count(), 0); - if (newWidth.isNull() || newHeight.isNull()) { - QString s = QString("Did not receive both width and height changes (width=%1, height=%2)") - .arg(newWidth.toString()).arg(newHeight.toString()); - QFAIL(qPrintable(s)); - } - - QCOMPARE(newWidth, qVariantFromValue(origWidth*2)); - QCOMPARE(newHeight, qVariantFromValue(origHeight*2)); + QCOMPARE(newWidth, origWidth * 2); + QCOMPARE(newHeight, origHeight * 2); } void tst_QmlDebug::watch_expression() @@ -378,30 +378,37 @@ void tst_QmlDebug::watch_expression() QmlDebugObjectReference obj = findRootObject(); - QmlDebugObjectExpressionWatch *watch = m_dbg->addWatch(obj, expr, this); + QmlDebugObjectExpressionWatch *watch; + + QmlEngineDebug unconnected(0); + watch = unconnected.addWatch(obj, expr, this); + QCOMPARE(watch->state(), QmlDebugWatch::Dead); + delete watch; + + watch = m_dbg->addWatch(obj, expr, this); QCOMPARE(watch->state(), QmlDebugWatch::Waiting); QCOMPARE(watch->objectDebugId(), obj.debugId()); QCOMPARE(watch->expression(), expr); + QSignalSpy spyState(watch, SIGNAL(stateChanged(QmlDebugWatch::State))); + QSignalSpy spy(watch, SIGNAL(valueChanged(QByteArray,QVariant))); int expectedSpyCount = incrementCount + 1; // should also get signal with expression's initial value int width = origWidth; for (int i=0; i<incrementCount+1; i++) { - QTimer timer; - timer.start(5000); if (i > 0) { width += increment; m_rootItem->setProperty("width", width); } - QEventLoop loop; - connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); - connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), &loop, SLOT(quit())); - loop.exec(); - if (!timer.isActive()) - QFAIL("Did not receive valueChanged() signal for expression"); + if (!QmlDebuggerTest::waitForSignal(watch, SIGNAL(valueChanged(QByteArray,QVariant)))) + QFAIL("Did not receive valueChanged() for expression"); } + if (spyState.count() == 0) + QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State)))); + QCOMPARE(spyState.count(), 1); + m_dbg->removeWatch(watch); delete watch; @@ -427,6 +434,20 @@ void tst_QmlDebug::watch_expression_data() QTest::newRow("width+10") << "width + 10" << 10 << 5; } +void tst_QmlDebug::watch_context() +{ + QmlDebugContextReference c; + QTest::ignoreMessage(QtWarningMsg, "QmlEngineDebug::addWatch(): Not implemented"); + QVERIFY(!m_dbg->addWatch(c, QString(), this)); +} + +void tst_QmlDebug::watch_file() +{ + QmlDebugFileReference f; + QTest::ignoreMessage(QtWarningMsg, "QmlEngineDebug::addWatch(): Not implemented"); + QVERIFY(!m_dbg->addWatch(f, this)); +} + void tst_QmlDebug::queryAvailableEngines() { QmlDebugEnginesQuery *q_engines; @@ -722,6 +743,20 @@ void tst_QmlDebug::tst_QmlDebugPropertyReference() waitForQuery(query); QmlDebugObjectReference obj = query->object(); delete query; + + QmlDebugPropertyReference ref = findProperty(obj.properties(), "scale"); + QVERIFY(ref.objectDebugId() > 0); + QVERIFY(!ref.name().isEmpty()); + QVERIFY(!ref.value().isNull()); + QVERIFY(!ref.valueTypeName().isEmpty()); + QVERIFY(!ref.binding().isEmpty()); + QVERIFY(ref.hasNotifySignal()); + + QmlDebugPropertyReference copy(ref); + QmlDebugPropertyReference copyAssign; + copyAssign = ref; + foreach (const QmlDebugPropertyReference &r, (QList<QmlDebugPropertyReference>() << copy << copyAssign)) + compareProperties(r, ref); } class TestRunnerThread : public QThread @@ -771,7 +806,7 @@ int main(int argc, char *argv[]) QmlComponent component(&engine, "import Qt 4.6\n" "Item {\n" - "width: 10; height: 20;\n" + "width: 10; height: 20; scale: blueRect.scale;\n" "Rectangle { id: blueRect; width: 500; height: 600; color: \"blue\"; }" "Text { color: blueRect.color; }" "}\n", diff --git a/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp b/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp index db33061..0a768a5 100644 --- a/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp +++ b/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp @@ -89,8 +89,8 @@ void tst_QmlDebugClient::isEnabled() void tst_QmlDebugClient::setEnabled() { - EchoService service("tst_QmlDebugClient::setEnabled()"); - MyQmlDebugClient client("tst_QmlDebugClient::setEnabled()", m_conn); + QmlDebuggerTestService service("tst_QmlDebugClient::setEnabled()"); + QmlDebuggerTestClient client("tst_QmlDebugClient::setEnabled()", m_conn); QCOMPARE(service.isEnabled(), false); @@ -125,8 +125,8 @@ void tst_QmlDebugClient::isConnected() void tst_QmlDebugClient::sendMessage() { - EchoService service("tst_QmlDebugClient::sendMessage()"); - MyQmlDebugClient client("tst_QmlDebugClient::sendMessage()", m_conn); + QmlDebuggerTestService service("tst_QmlDebugClient::sendMessage()"); + QmlDebuggerTestClient client("tst_QmlDebugClient::sendMessage()", m_conn); QByteArray msg = "hello!"; diff --git a/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp b/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp index 224e7e1..2cd8607 100644 --- a/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp +++ b/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp @@ -85,10 +85,10 @@ void tst_QmlDebugService::name() void tst_QmlDebugService::isEnabled() { - EchoService service("tst_QmlDebugService::isEnabled()", m_conn); + QmlDebuggerTestService service("tst_QmlDebugService::isEnabled()", m_conn); QCOMPARE(service.isEnabled(), false); - MyQmlDebugClient client("tst_QmlDebugService::isEnabled()", m_conn); + QmlDebuggerTestClient client("tst_QmlDebugService::isEnabled()", m_conn); client.setEnabled(true); QmlDebuggerTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); QCOMPARE(service.isEnabled(), true); @@ -100,8 +100,8 @@ void tst_QmlDebugService::isEnabled() void tst_QmlDebugService::enabledChanged() { - EchoService service("tst_QmlDebugService::enabledChanged()"); - MyQmlDebugClient client("tst_QmlDebugService::enabledChanged()", m_conn); + QmlDebuggerTestService service("tst_QmlDebugService::enabledChanged()"); + QmlDebuggerTestClient client("tst_QmlDebugService::enabledChanged()", m_conn); QCOMPARE(service.enabled, false); @@ -112,8 +112,8 @@ void tst_QmlDebugService::enabledChanged() void tst_QmlDebugService::sendMessage() { - EchoService service("tst_QmlDebugService::sendMessage()"); - MyQmlDebugClient client("tst_QmlDebugService::sendMessage()", m_conn); + QmlDebuggerTestService service("tst_QmlDebugService::sendMessage()"); + QmlDebuggerTestClient client("tst_QmlDebugService::sendMessage()", m_conn); QByteArray msg = "hello!"; diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 0b9e6ec..1d08d92 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -8,12 +8,9 @@ SUBDIRS += \ debugger \ # Cover examples \ layouts \ # Cover - qmlgraphicslistview \ # Cover - qmlgraphicsgridview \ # Cover numberformatter \ # Cover parserstress \ # Cover pathview \ # Cover - qmlgraphicsloader \ # Cover qmetaobjectbuilder \ # Cover qmlbinding \ # Cover qmlconnection \ # Cover @@ -22,10 +19,13 @@ SUBDIRS += \ qmlecmascript \ # Cover qmlerror \ # Cover qmlfontloader \ # Cover - qmlgraphicsitem \ # Cover qmlgraphicsborderimage \ # Cover qmlgraphicsflickable \ # Cover qmlgraphicsflipable \ # Cover + qmlgraphicsgridview \ # Cover + qmlgraphicsitem \ # Cover + qmlgraphicslistview \ # Cover + qmlgraphicsloader \ # Cover qmlgraphicsparticles \ # Cover qmlgraphicspathview \ # Cover qmlgraphicspositioners \ # Cover @@ -37,6 +37,7 @@ SUBDIRS += \ qmllanguage \ # Cover qmllist \ # Cover qmllistaccessor \ # Cover + qmllistmodel \ # Cover qmlmetaproperty \ # Cover qmlmetatype \ # Cover qmlpixmapcache \ # 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/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/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/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" - } -} |