From fd11ad94463300e16a8a085ae313816bab3049e7 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 09:28:50 +1000 Subject: Revert 4bf7f90a27377f439e86d6175e5e3cdebd131be0 and implement differently. Setting painter clip can reduce performance in some cases, so items must access system clip. --- .../graphicsitems/qmlgraphicspainteditem.cpp | 20 ++++++++++++++++++-- src/gui/graphicsview/qgraphicsview.cpp | 3 --- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp b/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp index 2c849c8..b1b1210 100644 --- a/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp +++ b/src/declarative/graphicsitems/qmlgraphicspainteditem.cpp @@ -49,6 +49,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -209,9 +210,24 @@ void QmlGraphicsPaintedItem::paint(QPainter *p, const QStyleOptionGraphicsItem * ++inpaint; - const QRect clip = p->clipRegion().boundingRect(); + const QTransform &x = p->deviceTransform(); + QTransform xinv = x.inverted(); + QRegion effectiveClip; + QRegion sysClip = p->paintEngine()->systemClip(); + if (xinv.type() <= QTransform::TxScale && sysClip.numRects() < 5) { + // simple transform, region gets no more complicated... + effectiveClip = xinv.map(sysClip); + } else { + // do not make complicated regions... + effectiveClip = xinv.mapRect(sysClip.boundingRect()); + } + + QRegion topaint = p->clipRegion(); + if (topaint.isEmpty()) + topaint = effectiveClip; + else + topaint &= effectiveClip; - QRegion topaint(clip); topaint &= content; QRegion uncached(content); p->setRenderHints(QPainter::SmoothPixmapTransform, d->smooth); diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 87585a2..90c0ff2 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -3275,13 +3275,10 @@ void QGraphicsView::paintEvent(QPaintEvent *event) // Determine the exposed region d->exposedRegion = event->region(); - if (d->exposedRegion.isEmpty()) - d->exposedRegion = viewport()->rect(); QRectF exposedSceneRect = mapToScene(d->exposedRegion.boundingRect()).boundingRect(); // Set up the painter QPainter painter(viewport()); - painter.setClipRect(event->rect(), Qt::IntersectClip); #ifndef QT_NO_RUBBERBAND if (d->rubberBanding && !d->rubberBandRect.isEmpty()) painter.save(); -- cgit v0.12 From 18a785eefdfbc5f83d7a0e78cbd8430f9d79c13f Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 10:30:14 +1000 Subject: Change watch state to Dead instead of Active on removal. --- src/declarative/debugger/qmldebug.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index f24b456..326c933 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -331,7 +331,7 @@ void QmlEngineDebugPrivate::message(const QByteArray &data) QVariant value; ds >> queryId >> debugId >> name >> value; - QmlDebugWatch *watch = watched.value(queryId); + QmlDebugWatch *watch = watched.value(queryId, 0); if (!watch) return; emit watch->valueChanged(name, value); @@ -428,10 +428,10 @@ void QmlEngineDebug::removeWatch(QmlDebugWatch *watch) { Q_D(QmlEngineDebug); - if (!watch || watch->state() == QmlDebugWatch::Inactive || watch->state() == QmlDebugWatch::Dead) + if (!watch || watch->state() == QmlDebugWatch::Dead) return; - watch->setState(QmlDebugWatch::Inactive); + watch->setState(QmlDebugWatch::Dead); d->watched.remove(watch->queryId()); if (d->client->isConnected()) { @@ -562,8 +562,7 @@ QmlDebugWatch::QmlDebugWatch(QObject *parent) QmlDebugWatch::~QmlDebugWatch() { - if (m_client) - m_client->removeWatch(this); + m_client->removeWatch(this); } int QmlDebugWatch::queryId() const -- cgit v0.12 From 9c19362c726d1d80bc38bb07b43eb3439ed05a8b Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 10:30:48 +1000 Subject: Clean up, and check stateChanged() is emitted for watches. --- tests/auto/declarative/debugger/debuggerutil.cpp | 17 ++--- tests/auto/declarative/debugger/debuggerutil_p.h | 10 +-- .../declarative/debugger/qmldebug/qmldebug.pro | 4 +- .../declarative/debugger/qmldebug/tst_qmldebug.cpp | 80 ++++++++-------------- .../debugger/qmldebugclient/tst_qmldebugclient.cpp | 8 +-- .../qmldebugservice/tst_qmldebugservice.cpp | 12 ++-- 6 files changed, 54 insertions(+), 77 deletions(-) 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(); } -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..d2305f8 100644 --- a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp +++ b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp @@ -59,6 +59,8 @@ #include #include +#include "../debuggerutil_p.h" + class tst_QmlDebug : public QObject { @@ -68,12 +70,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 &props, const QString &name) const; @@ -90,7 +86,6 @@ private: QmlEngineDebug *m_dbg; QmlEngine *m_engine; QmlGraphicsItem *m_rootItem; - QHash m_savedValueChanges; private slots: void initTestCase(); @@ -160,14 +155,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(State)))) QFAIL("query timed out"); } @@ -282,23 +271,18 @@ void tst_QmlDebug::watch_property() 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(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); @@ -328,44 +312,40 @@ void tst_QmlDebug::watch_object() 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(State)))); + QVERIFY(spy.count() > 0); + + int newWidth = -1; + int newHeight = -1; + for (int i=0; i() == "width") + newWidth = values[1].value().toInt(); + else if (values[0].value() == "height") + newHeight = values[1].value().toInt(); - QVariant newWidth = m_savedValueChanges["width"]; - QVariant newHeight = m_savedValueChanges["height"]; + } 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); - - 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(spy.count(), 0); - QCOMPARE(newWidth, qVariantFromValue(origWidth*2)); - QCOMPARE(newHeight, qVariantFromValue(origHeight*2)); + QCOMPARE(newWidth, origWidth * 2); + QCOMPARE(newHeight, origHeight * 2); } void tst_QmlDebug::watch_expression() @@ -388,18 +368,12 @@ void tst_QmlDebug::watch_expression() int width = origWidth; for (int i=0; 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"); } m_dbg->removeWatch(watch); 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!"; -- cgit v0.12 From c44c19cb16e06625f5ee71493190ad4276e4d8ef Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 11:10:14 +1000 Subject: Change stateChanged(State) signatures to have (QmlDebugWatch::State) and (QmlDebugQuery::State) parameters. --- src/declarative/debugger/qmldebug_p.h | 4 ++-- tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp | 6 +++--- tools/qmldebugger/creatorplugin/qmlinspectormode.cpp | 4 ++-- tools/qmldebugger/standalone/engine.cpp | 4 ++-- tools/qmldebugger/standalone/expressionquerywidget.cpp | 2 +- tools/qmldebugger/standalone/objectpropertiesview.cpp | 4 ++-- tools/qmldebugger/standalone/objecttree.cpp | 2 +- tools/qmldebugger/standalone/watchtable.cpp | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/declarative/debugger/qmldebug_p.h b/src/declarative/debugger/qmldebug_p.h index 4bc54e8..cd2adf6 100644 --- a/src/declarative/debugger/qmldebug_p.h +++ b/src/declarative/debugger/qmldebug_p.h @@ -113,7 +113,7 @@ public: State state() const; Q_SIGNALS: - void stateChanged(State); + void stateChanged(QmlDebugWatch::State); //void objectChanged(int, const QmlDebugObjectReference &); //void valueChanged(int, const QVariant &); @@ -170,7 +170,7 @@ public: // bool waitUntilCompleted(); Q_SIGNALS: - void stateChanged(State); + void stateChanged(QmlDebugQuery::State); protected: QmlDebugQuery(QObject *); diff --git a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp index d2305f8..03c9c69 100644 --- a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp +++ b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp @@ -156,7 +156,7 @@ void tst_QmlDebug::waitForQuery(QmlDebugQuery *query) QVERIFY(query); QCOMPARE(query->parent(), this); QVERIFY(query->state() == QmlDebugQuery::Waiting); - if (!QmlDebuggerTest::waitForSignal(query, SIGNAL(stateChanged(State)))) + if (!QmlDebuggerTest::waitForSignal(query, SIGNAL(stateChanged(QmlDebugWatch::State)))) QFAIL("query timed out"); } @@ -276,7 +276,7 @@ void tst_QmlDebug::watch_property() m_rootItem->setProperty("width", origWidth*2); // stateChanged() is received before valueChanged() - QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(State)))); + QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State)))); QCOMPARE(spy.count(), 1); m_dbg->removeWatch(watch); @@ -320,7 +320,7 @@ void tst_QmlDebug::watch_object() m_rootItem->setProperty("height", origHeight*2); // stateChanged() is received before any valueChanged() signals - QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(State)))); + QVERIFY(QmlDebuggerTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State)))); QVERIFY(spy.count() > 0); int newWidth = -1; diff --git a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp index ce8ef30..aa7d292 100644 --- a/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp +++ b/tools/qmldebugger/creatorplugin/qmlinspectormode.cpp @@ -489,7 +489,7 @@ void QmlInspectorMode::reloadEngines() if (!m_engineQuery->isWaiting()) enginesChanged(); else - QObject::connect(m_engineQuery, SIGNAL(stateChanged(State)), + QObject::connect(m_engineQuery, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(enginesChanged())); } @@ -528,7 +528,7 @@ void QmlInspectorMode::queryEngineContext(int id) if (!m_contextQuery->isWaiting()) contextChanged(); else - QObject::connect(m_contextQuery, SIGNAL(stateChanged(State)), + QObject::connect(m_contextQuery, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(contextChanged())); } diff --git a/tools/qmldebugger/standalone/engine.cpp b/tools/qmldebugger/standalone/engine.cpp index d438518..6cfd82b 100644 --- a/tools/qmldebugger/standalone/engine.cpp +++ b/tools/qmldebugger/standalone/engine.cpp @@ -163,7 +163,7 @@ void EnginePane::queryContext(int id) if (!m_context->isWaiting()) contextChanged(); else - QObject::connect(m_context, SIGNAL(stateChanged(State)), + QObject::connect(m_context, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(contextChanged())); } @@ -186,7 +186,7 @@ void EnginePane::refreshEngines() if (!m_engines->isWaiting()) enginesChanged(); else - QObject::connect(m_engines, SIGNAL(stateChanged(State)), + QObject::connect(m_engines, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(enginesChanged())); } diff --git a/tools/qmldebugger/standalone/expressionquerywidget.cpp b/tools/qmldebugger/standalone/expressionquerywidget.cpp index 5b7bc8f..cd59871 100644 --- a/tools/qmldebugger/standalone/expressionquerywidget.cpp +++ b/tools/qmldebugger/standalone/expressionquerywidget.cpp @@ -173,7 +173,7 @@ void ExpressionQueryWidget::executeExpression() if (!m_query->isWaiting()) showResult(); else - QObject::connect(m_query, SIGNAL(stateChanged(State)), + QObject::connect(m_query, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(showResult())); m_lastExpr = m_expr; diff --git a/tools/qmldebugger/standalone/objectpropertiesview.cpp b/tools/qmldebugger/standalone/objectpropertiesview.cpp index abfb7a5..3a8d8c8 100644 --- a/tools/qmldebugger/standalone/objectpropertiesview.cpp +++ b/tools/qmldebugger/standalone/objectpropertiesview.cpp @@ -124,7 +124,7 @@ void ObjectPropertiesView::reload(const QmlDebugObjectReference &obj) if (!m_query->isWaiting()) queryFinished(); else - QObject::connect(m_query, SIGNAL(stateChanged(State)), + QObject::connect(m_query, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(queryFinished())); } @@ -223,7 +223,7 @@ void ObjectPropertiesView::watchCreated(QmlDebugWatch *watch) { if (watch->objectDebugId() == m_object.debugId() && qobject_cast(watch)) { - connect(watch, SIGNAL(stateChanged(State)), SLOT(watchStateChanged())); + connect(watch, SIGNAL(stateChanged(QmlDebugWatch::State)), SLOT(watchStateChanged())); setWatched(qobject_cast(watch)->name(), true); } } diff --git a/tools/qmldebugger/standalone/objecttree.cpp b/tools/qmldebugger/standalone/objecttree.cpp index 4dbc1a7..cf467f2 100644 --- a/tools/qmldebugger/standalone/objecttree.cpp +++ b/tools/qmldebugger/standalone/objecttree.cpp @@ -86,7 +86,7 @@ void ObjectTree::reload(int objectDebugId) if (!m_query->isWaiting()) objectFetched(); else - QObject::connect(m_query, SIGNAL(stateChanged(State)), + QObject::connect(m_query, SIGNAL(stateChanged(QmlDebugQuery::State)), this, SLOT(objectFetched())); } diff --git a/tools/qmldebugger/standalone/watchtable.cpp b/tools/qmldebugger/standalone/watchtable.cpp index 47c1c88..0e73de5 100644 --- a/tools/qmldebugger/standalone/watchtable.cpp +++ b/tools/qmldebugger/standalone/watchtable.cpp @@ -77,7 +77,7 @@ void WatchTableModel::addWatch(QmlDebugWatch *watch, const QString &title) connect(watch, SIGNAL(valueChanged(QByteArray,QVariant)), SLOT(watchedValueChanged(QByteArray,QVariant))); - connect(watch, SIGNAL(stateChanged(State)), SLOT(watchStateChanged())); + connect(watch, SIGNAL(stateChanged(QmlDebugWatch::State)), SLOT(watchStateChanged())); int col = columnCount(QModelIndex()); beginInsertColumns(QModelIndex(), col, col); -- cgit v0.12 From 318775ded2371b4033b9a06ffec23e75c6dbad96 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 11:37:15 +1000 Subject: AnimatedImage cleanup and tests. --- src/declarative/extra/extra.pri | 3 - .../extra/qmlgraphicsanimatedimageitem.cpp | 305 --------------------- .../extra/qmlgraphicsanimatedimageitem_p.h | 107 -------- .../extra/qmlgraphicsanimatedimageitem_p_p.h | 82 ------ src/declarative/graphicsitems/graphicsitems.pri | 3 + .../graphicsitems/qmlgraphicsanimatedimage.cpp | 300 ++++++++++++++++++++ .../graphicsitems/qmlgraphicsanimatedimage_p.h | 106 +++++++ .../graphicsitems/qmlgraphicsanimatedimage_p_p.h | 82 ++++++ .../auto/declarative/animatedimage/data/colors.gif | Bin 0 -> 505 bytes .../auto/declarative/animatedimage/data/colors.qml | 5 + .../animatedimage/data/stickmanstopped.qml | 6 + .../animatedimage/tst_animatedimage.cpp | 38 ++- 12 files changed, 535 insertions(+), 502 deletions(-) delete mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem.cpp delete mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem_p.h delete mode 100644 src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp create mode 100644 src/declarative/graphicsitems/qmlgraphicsanimatedimage_p.h create mode 100644 src/declarative/graphicsitems/qmlgraphicsanimatedimage_p_p.h create mode 100644 tests/auto/declarative/animatedimage/data/colors.gif create mode 100644 tests/auto/declarative/animatedimage/data/colors.qml create mode 100644 tests/auto/declarative/animatedimage/data/stickmanstopped.qml diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri index 78272a9..85ff6ea 100644 --- a/src/declarative/extra/extra.pri +++ b/src/declarative/extra/extra.pri @@ -2,7 +2,6 @@ SOURCES += \ extra/qnumberformat.cpp \ extra/qmlnumberformatter.cpp \ extra/qmldatetimeformatter.cpp \ - extra/qmlgraphicsanimatedimageitem.cpp \ extra/qmlbehavior.cpp \ extra/qmlfontloader.cpp @@ -10,8 +9,6 @@ HEADERS += \ extra/qnumberformat_p.h \ extra/qmlnumberformatter_p.h \ extra/qmldatetimeformatter_p.h \ - extra/qmlgraphicsanimatedimageitem_p.h \ - extra/qmlgraphicsanimatedimageitem_p_p.h \ extra/qmlbehavior_p.h \ extra/qmlfontloader_p.h diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp b/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp deleted file mode 100644 index 2405bde..0000000 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem.cpp +++ /dev/null @@ -1,305 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include "qmlgraphicsanimatedimageitem_p.h" -#include "qmlgraphicsanimatedimageitem_p_p.h" -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \class QmlGraphicsAnimatedImageItem - \internal -*/ - -/*! - \qmlclass AnimatedImage QFxAnimatedImageItem - \inherits Image - - This item provides for playing animations stored as images containing a series of frames, - such as GIF files. The full list of supported formats can be determined with - QMovie::supportedFormats(). - - \table - \row - \o \image animatedimageitem.gif - \o - \qml -Item { - width: anim.width; height: anim.height+8 - AnimatedImage { id: anim; source: "pics/games-anim.gif" } - Rectangle { color: "red"; width: 4; height: 8; y: anim.height - x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1) - } -} - \endqml - \endtable -*/ -QML_DEFINE_TYPE(Qt,4,6,AnimatedImage,QmlGraphicsAnimatedImageItem) - -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent) - : QmlGraphicsImage(*(new QmlGraphicsAnimatedImageItemPrivate), parent) -{ -} - -QmlGraphicsAnimatedImageItem::QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent) - : QmlGraphicsImage(dd, parent) -{ -} - -QmlGraphicsAnimatedImageItem::~QmlGraphicsAnimatedImageItem() -{ - Q_D(QmlGraphicsAnimatedImageItem); - delete d->_movie; -} - -/*! - \qmlproperty bool AnimatedImage::paused - This property holds whether the animated image is paused or not - - Defaults to false, and can be set to true when you want to pause. -*/ -bool QmlGraphicsAnimatedImageItem::isPaused() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if(!d->_movie) - return false; - return d->_movie->state()==QMovie::Paused; -} - -void QmlGraphicsAnimatedImageItem::setPaused(bool pause) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if(pause == d->paused) - return; - d->paused = pause; - if(!d->_movie) - return; - d->_movie->setPaused(pause); -} -/*! - \qmlproperty bool AnimatedImage::playing - This property holds whether the animated image is playing or not - - Defaults to true, so as to start playing immediately. -*/ -bool QmlGraphicsAnimatedImageItem::isPlaying() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return false; - return d->_movie->state()!=QMovie::NotRunning; -} - -void QmlGraphicsAnimatedImageItem::setPlaying(bool play) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if(play == d->playing) - return; - d->playing = play; - if (!d->_movie) - return; - if (play) - d->_movie->start(); - else - d->_movie->stop(); -} - -/*! - \qmlproperty int AnimatedImage::currentFrame - \qmlproperty int AnimatedImage::frameCount - - currentFrame is the frame that is currently visible. Watching when this changes can - allow other things to animate at the same time as the image. frameCount is the number - of frames in the animation. For some animation formats, frameCount is unknown and set to zero. -*/ -int QmlGraphicsAnimatedImageItem::currentFrame() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return d->preset_currentframe; - return d->_movie->currentFrameNumber(); -} - -void QmlGraphicsAnimatedImageItem::setCurrentFrame(int frame) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if (!d->_movie) { - d->preset_currentframe = frame; - return; - } - d->_movie->jumpToFrame(frame); -} - -int QmlGraphicsAnimatedImageItem::frameCount() const -{ - Q_D(const QmlGraphicsAnimatedImageItem); - if (!d->_movie) - return 0; - return d->_movie->frameCount(); -} - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - -void QmlGraphicsAnimatedImageItem::setSource(const QUrl &url) -{ - Q_D(QmlGraphicsAnimatedImageItem); - if (url == d->url) - return; - - delete d->_movie; - d->_movie = 0; - - if (d->reply) { - d->reply->deleteLater(); - d->reply = 0; - } - - d->url = url; - - if (url.isEmpty()) { - delete d->_movie; - d->status = Null; - } else { -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(url); - if (!lf.isEmpty()) { - //### should be unified with movieRequestFinished - d->_movie = new QMovie(lf); - if (!d->_movie->isValid()){ - qWarning() << "Error Reading Animated Image File " << d->url; - delete d->_movie; - d->_movie = 0; - return; - } - connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), - this, SLOT(playingStatusChanged())); - connect(d->_movie, SIGNAL(frameChanged(int)), - this, SLOT(movieUpdate())); - d->_movie->setCacheMode(QMovie::CacheAll); - if(d->playing) - d->_movie->start(); - else - d->_movie->jumpToFrame(0); - if(d->paused) - d->_movie->setPaused(true); - d->setPixmap(d->_movie->currentPixmap()); - d->status = Ready; - d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(d->progress); - return; - } -#endif - d->status = Loading; - QNetworkRequest req(d->url); - d->reply = qmlEngine(this)->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), - this, SLOT(movieRequestFinished())); - } - - emit statusChanged(d->status); -} - -void QmlGraphicsAnimatedImageItem::movieRequestFinished() -{ - Q_D(QmlGraphicsAnimatedImageItem); - d->_movie = new QMovie(d->reply); - if (!d->_movie->isValid()){ - qWarning() << "Error Reading Animated Image File " << d->url; - delete d->_movie; - d->_movie = 0; - return; - } - connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), - this, SLOT(playingStatusChanged())); - connect(d->_movie, SIGNAL(frameChanged(int)), - this, SLOT(movieUpdate())); - d->_movie->setCacheMode(QMovie::CacheAll); - if(d->playing) - d->_movie->start(); - else { - d->_movie->jumpToFrame(d->preset_currentframe); - d->preset_currentframe = 0; - } - if(d->paused) - d->_movie->setPaused(true); - d->setPixmap(d->_movie->currentPixmap()); -} - -void QmlGraphicsAnimatedImageItem::movieUpdate() -{ - Q_D(QmlGraphicsAnimatedImageItem); - d->setPixmap(d->_movie->currentPixmap()); - emit frameChanged(); -} - -void QmlGraphicsAnimatedImageItem::playingStatusChanged() -{ - Q_D(QmlGraphicsAnimatedImageItem); - if((d->_movie->state() != QMovie::NotRunning) != d->playing){ - d->playing = (d->_movie->state() != QMovie::NotRunning); - emit playingChanged(); - } - if((d->_movie->state() == QMovie::Paused) != d->paused){ - d->playing = (d->_movie->state() == QMovie::Paused); - emit pausedChanged(); - } -} - -void QmlGraphicsAnimatedImageItem::componentComplete() -{ - Q_D(QmlGraphicsAnimatedImageItem); - setCurrentFrame(d->preset_currentframe); - d->preset_currentframe = 0; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h deleted file mode 100644 index b581ea3..0000000 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem_p.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSANIMATEDIMAGEITEM_H -#define QMLGRAPHICSANIMATEDIMAGEITEM_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QMovie; -class QmlGraphicsAnimatedImageItemPrivate; - -class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImageItem : public QmlGraphicsImage -{ - Q_OBJECT - - Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) - Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) - Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) - Q_PROPERTY(int frameCount READ frameCount) -public: - QmlGraphicsAnimatedImageItem(QmlGraphicsItem *parent=0); - ~QmlGraphicsAnimatedImageItem(); - - bool isPlaying() const; - void setPlaying(bool play); - - bool isPaused() const; - void setPaused(bool pause); - - int currentFrame() const; - void setCurrentFrame(int frame); - - int frameCount() const; - - // Extends QmlGraphicsImage's src property*/ - virtual void setSource(const QUrl&); - -Q_SIGNALS: - void playingChanged(); - void pausedChanged(); - void frameChanged(); - -private Q_SLOTS: - void movieUpdate(); - void movieRequestFinished(); - void playingStatusChanged(); - -protected: - QmlGraphicsAnimatedImageItem(QmlGraphicsAnimatedImageItemPrivate &dd, QmlGraphicsItem *parent); - void componentComplete(); - -private: - Q_DISABLE_COPY(QmlGraphicsAnimatedImageItem) - Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImageItem) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlGraphicsAnimatedImageItem) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h b/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h deleted file mode 100644 index 2256b9b..0000000 --- a/src/declarative/extra/qmlgraphicsanimatedimageitem_p_p.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLGRAPHICSANIMATEDIMAGE_P_H -#define QMLGRAPHICSANIMATEDIMAGE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include - -QT_BEGIN_NAMESPACE - -class QMovie; -class QNetworkReply; - -class QmlGraphicsAnimatedImageItemPrivate : public QmlGraphicsImagePrivate -{ - Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImageItem) - -public: - QmlGraphicsAnimatedImageItemPrivate() - : playing(true), paused(false), preset_currentframe(0), _movie(0), reply(0) - { - } - - bool playing; - bool paused; - int preset_currentframe; - QMovie *_movie; - QNetworkReply *reply; -}; - -QT_END_NAMESPACE - -#endif // QMLGRAPHICSANIMATEDIMAGE_P_H diff --git a/src/declarative/graphicsitems/graphicsitems.pri b/src/declarative/graphicsitems/graphicsitems.pri index 3c4e39a..ef10e51 100644 --- a/src/declarative/graphicsitems/graphicsitems.pri +++ b/src/declarative/graphicsitems/graphicsitems.pri @@ -14,6 +14,8 @@ HEADERS += \ graphicsitems/qmlgraphicsimage_p_p.h \ graphicsitems/qmlgraphicsborderimage_p_p.h \ graphicsitems/qmlgraphicsimagebase_p_p.h \ + graphicsitems/qmlgraphicsanimatedimage_p.h \ + graphicsitems/qmlgraphicsanimatedimage_p_p.h \ graphicsitems/qmlgraphicsitem.h \ graphicsitems/qmlgraphicsitem_p.h \ graphicsitems/qmlgraphicsfocuspanel_p.h \ @@ -55,6 +57,7 @@ SOURCES += \ graphicsitems/qmlgraphicsimage.cpp \ graphicsitems/qmlgraphicsborderimage.cpp \ graphicsitems/qmlgraphicsimagebase.cpp \ + graphicsitems/qmlgraphicsanimatedimage.cpp \ graphicsitems/qmlgraphicspainteditem.cpp \ graphicsitems/qmlgraphicsitem.cpp \ graphicsitems/qmlgraphicsfocuspanel.cpp \ diff --git a/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp b/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp new file mode 100644 index 0000000..db28134 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanimatedimage.cpp @@ -0,0 +1,300 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include "qmlgraphicsanimatedimage_p.h" +#include "qmlgraphicsanimatedimage_p_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \class QmlGraphicsAnimatedImage + \internal +*/ + +/*! + \qmlclass AnimatedImage QmlGraphicsAnimatedImage + \inherits Image + + This item provides for playing animations stored as images containing a series of frames, + such as GIF files. The full list of supported formats can be determined with + QMovie::supportedFormats(). + + \table + \row + \o \image animatedimageitem.gif + \o + \qml +Item { + width: anim.width; height: anim.height+8 + AnimatedImage { id: anim; source: "pics/games-anim.gif" } + Rectangle { color: "red"; width: 4; height: 8; y: anim.height + x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1) + } +} + \endqml + \endtable +*/ +QML_DEFINE_TYPE(Qt,4,6,AnimatedImage,QmlGraphicsAnimatedImage) + +QmlGraphicsAnimatedImage::QmlGraphicsAnimatedImage(QmlGraphicsItem *parent) + : QmlGraphicsImage(*(new QmlGraphicsAnimatedImagePrivate), parent) +{ +} + +QmlGraphicsAnimatedImage::~QmlGraphicsAnimatedImage() +{ + Q_D(QmlGraphicsAnimatedImage); + delete d->_movie; +} + +/*! + \qmlproperty bool AnimatedImage::paused + This property holds whether the animated image is paused or not + + Defaults to false, and can be set to true when you want to pause. +*/ +bool QmlGraphicsAnimatedImage::isPaused() const +{ + Q_D(const QmlGraphicsAnimatedImage); + if(!d->_movie) + return false; + return d->_movie->state()==QMovie::Paused; +} + +void QmlGraphicsAnimatedImage::setPaused(bool pause) +{ + Q_D(QmlGraphicsAnimatedImage); + if(pause == d->paused) + return; + d->paused = pause; + if(!d->_movie) + return; + d->_movie->setPaused(pause); +} +/*! + \qmlproperty bool AnimatedImage::playing + This property holds whether the animated image is playing or not + + Defaults to true, so as to start playing immediately. +*/ +bool QmlGraphicsAnimatedImage::isPlaying() const +{ + Q_D(const QmlGraphicsAnimatedImage); + if (!d->_movie) + return false; + return d->_movie->state()!=QMovie::NotRunning; +} + +void QmlGraphicsAnimatedImage::setPlaying(bool play) +{ + Q_D(QmlGraphicsAnimatedImage); + if(play == d->playing) + return; + d->playing = play; + if (!d->_movie) + return; + if (play) + d->_movie->start(); + else + d->_movie->stop(); +} + +/*! + \qmlproperty int AnimatedImage::currentFrame + \qmlproperty int AnimatedImage::frameCount + + currentFrame is the frame that is currently visible. Watching when this changes can + allow other things to animate at the same time as the image. frameCount is the number + of frames in the animation. For some animation formats, frameCount is unknown and set to zero. +*/ +int QmlGraphicsAnimatedImage::currentFrame() const +{ + Q_D(const QmlGraphicsAnimatedImage); + if (!d->_movie) + return d->preset_currentframe; + return d->_movie->currentFrameNumber(); +} + +void QmlGraphicsAnimatedImage::setCurrentFrame(int frame) +{ + Q_D(QmlGraphicsAnimatedImage); + if (!d->_movie) { + d->preset_currentframe = frame; + return; + } + d->_movie->jumpToFrame(frame); +} + +int QmlGraphicsAnimatedImage::frameCount() const +{ + Q_D(const QmlGraphicsAnimatedImage); + if (!d->_movie) + return 0; + return d->_movie->frameCount(); +} + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + +void QmlGraphicsAnimatedImage::setSource(const QUrl &url) +{ + Q_D(QmlGraphicsAnimatedImage); + if (url == d->url) + return; + + delete d->_movie; + d->_movie = 0; + + if (d->reply) { + d->reply->deleteLater(); + d->reply = 0; + } + + d->url = url; + + if (url.isEmpty()) { + delete d->_movie; + d->status = Null; + } else { +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(url); + if (!lf.isEmpty()) { + //### should be unified with movieRequestFinished + d->_movie = new QMovie(lf); + if (!d->_movie->isValid()){ + qWarning() << "Error Reading Animated Image File " << d->url; + delete d->_movie; + d->_movie = 0; + return; + } + connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), + this, SLOT(playingStatusChanged())); + connect(d->_movie, SIGNAL(frameChanged(int)), + this, SLOT(movieUpdate())); + d->_movie->setCacheMode(QMovie::CacheAll); + if(d->playing) + d->_movie->start(); + else + d->_movie->jumpToFrame(0); + if(d->paused) + d->_movie->setPaused(true); + d->setPixmap(d->_movie->currentPixmap()); + d->status = Ready; + d->progress = 1.0; + emit statusChanged(d->status); + emit sourceChanged(d->url); + emit progressChanged(d->progress); + return; + } +#endif + d->status = Loading; + QNetworkRequest req(d->url); + d->reply = qmlEngine(this)->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), + this, SLOT(movieRequestFinished())); + } + + emit statusChanged(d->status); +} + +void QmlGraphicsAnimatedImage::movieRequestFinished() +{ + Q_D(QmlGraphicsAnimatedImage); + d->_movie = new QMovie(d->reply); + if (!d->_movie->isValid()){ + qWarning() << "Error Reading Animated Image File " << d->url; + delete d->_movie; + d->_movie = 0; + return; + } + connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), + this, SLOT(playingStatusChanged())); + connect(d->_movie, SIGNAL(frameChanged(int)), + this, SLOT(movieUpdate())); + d->_movie->setCacheMode(QMovie::CacheAll); + if(d->playing) + d->_movie->start(); + else { + d->_movie->jumpToFrame(d->preset_currentframe); + d->preset_currentframe = 0; + } + if(d->paused) + d->_movie->setPaused(true); + d->setPixmap(d->_movie->currentPixmap()); +} + +void QmlGraphicsAnimatedImage::movieUpdate() +{ + Q_D(QmlGraphicsAnimatedImage); + d->setPixmap(d->_movie->currentPixmap()); + emit frameChanged(); +} + +void QmlGraphicsAnimatedImage::playingStatusChanged() +{ + Q_D(QmlGraphicsAnimatedImage); + if((d->_movie->state() != QMovie::NotRunning) != d->playing){ + d->playing = (d->_movie->state() != QMovie::NotRunning); + emit playingChanged(); + } + if((d->_movie->state() == QMovie::Paused) != d->paused){ + d->playing = (d->_movie->state() == QMovie::Paused); + emit pausedChanged(); + } +} + +void QmlGraphicsAnimatedImage::componentComplete() +{ + Q_D(QmlGraphicsAnimatedImage); + setCurrentFrame(d->preset_currentframe); + d->preset_currentframe = 0; +} + +QT_END_NAMESPACE diff --git a/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p.h b/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p.h new file mode 100644 index 0000000..79daa0f --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p.h @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANIMATEDIMAGE_H +#define QMLGRAPHICSANIMATEDIMAGE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QMovie; +class QmlGraphicsAnimatedImagePrivate; + +class Q_DECLARATIVE_EXPORT QmlGraphicsAnimatedImage : public QmlGraphicsImage +{ + Q_OBJECT + + Q_PROPERTY(bool playing READ isPlaying WRITE setPlaying NOTIFY playingChanged) + Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged) + Q_PROPERTY(int currentFrame READ currentFrame WRITE setCurrentFrame NOTIFY frameChanged) + Q_PROPERTY(int frameCount READ frameCount) +public: + QmlGraphicsAnimatedImage(QmlGraphicsItem *parent=0); + ~QmlGraphicsAnimatedImage(); + + bool isPlaying() const; + void setPlaying(bool play); + + bool isPaused() const; + void setPaused(bool pause); + + int currentFrame() const; + void setCurrentFrame(int frame); + + int frameCount() const; + + // Extends QmlGraphicsImage's src property*/ + virtual void setSource(const QUrl&); + +Q_SIGNALS: + void playingChanged(); + void pausedChanged(); + void frameChanged(); + +private Q_SLOTS: + void movieUpdate(); + void movieRequestFinished(); + void playingStatusChanged(); + +protected: + void componentComplete(); + +private: + Q_DISABLE_COPY(QmlGraphicsAnimatedImage) + Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QmlGraphicsAnimatedImage) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlGraphicsAnimatedImage) + +QT_END_HEADER + +#endif diff --git a/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p_p.h b/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p_p.h new file mode 100644 index 0000000..c24afa0 --- /dev/null +++ b/src/declarative/graphicsitems/qmlgraphicsanimatedimage_p_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLGRAPHICSANIMATEDIMAGE_P_H +#define QMLGRAPHICSANIMATEDIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class QMovie; +class QNetworkReply; + +class QmlGraphicsAnimatedImagePrivate : public QmlGraphicsImagePrivate +{ + Q_DECLARE_PUBLIC(QmlGraphicsAnimatedImage) + +public: + QmlGraphicsAnimatedImagePrivate() + : playing(true), paused(false), preset_currentframe(0), _movie(0), reply(0) + { + } + + bool playing; + bool paused; + int preset_currentframe; + QMovie *_movie; + QNetworkReply *reply; +}; + +QT_END_NAMESPACE + +#endif // QMLGRAPHICSANIMATEDIMAGE_P_H diff --git a/tests/auto/declarative/animatedimage/data/colors.gif b/tests/auto/declarative/animatedimage/data/colors.gif new file mode 100644 index 0000000..1270bfa Binary files /dev/null and b/tests/auto/declarative/animatedimage/data/colors.gif differ 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 #include #include -#include +#include 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(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast(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(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast(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(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(component.create()); + QmlGraphicsAnimatedImage *anim = qobject_cast(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(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) -- cgit v0.12 From d6842127e96bd71f46057d16bfbcb7b5c019b35c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 11:37:43 +1000 Subject: Autotests. --- tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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) -- cgit v0.12 From e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 11:52:27 +1000 Subject: Fix debugger crash on exit --- src/declarative/debugger/qmldebug.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index 326c933..72f613a 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -428,13 +428,15 @@ void QmlEngineDebug::removeWatch(QmlDebugWatch *watch) { Q_D(QmlEngineDebug); - if (!watch || watch->state() == QmlDebugWatch::Dead) + if (!watch || !watch->m_client) return; - watch->setState(QmlDebugWatch::Dead); + watch->m_client = 0; + watch->setState(QmlDebugWatch::Inactive); + d->watched.remove(watch->queryId()); - if (d->client->isConnected()) { + if (d->client && d->client->isConnected()) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("NO_WATCH") << watch->queryId(); @@ -562,7 +564,6 @@ QmlDebugWatch::QmlDebugWatch(QObject *parent) QmlDebugWatch::~QmlDebugWatch() { - m_client->removeWatch(this); } int QmlDebugWatch::queryId() const -- cgit v0.12 From b6b0b5d7f211e10beb76711fcecdf068af34fdfd Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 11:57:53 +1000 Subject: Add qmllistmodel --- tests/auto/declarative/declarative.pro | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 6b2e39e..8a3a06c 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 qmlgraphicspositioners \ # Cover qmlgraphicstext \ # Cover @@ -36,6 +36,7 @@ SUBDIRS += \ qmllanguage \ # Cover qmllist \ # Cover qmllistaccessor \ # Cover + qmllistmodel \ # Cover qmlmetaproperty \ # Cover qmlmetatype \ # Cover qmlpixmapcache \ # Cover -- cgit v0.12 From b8b5ad641a5977651e61b5e572918f90248d8851 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 12:27:16 +1000 Subject: More tests --- .../declarative/debugger/qmldebug/tst_qmldebug.cpp | 71 ++++++++++++++++++++-- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp index 03c9c69..bfb8aee 100644 --- a/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp +++ b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp @@ -61,6 +61,8 @@ #include "../debuggerutil_p.h" +Q_DECLARE_METATYPE(QmlDebugWatch::State) + class tst_QmlDebug : public QObject { @@ -94,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(); @@ -156,7 +160,7 @@ void tst_QmlDebug::waitForQuery(QmlDebugQuery *query) QVERIFY(query); QCOMPARE(query->parent(), this); QVERIFY(query->state() == QmlDebugQuery::Waiting); - if (!QmlDebuggerTest::waitForSignal(query, SIGNAL(stateChanged(QmlDebugWatch::State)))) + if (!QmlDebuggerTest::waitForSignal(query, SIGNAL(stateChanged(QmlDebugQuery::State)))) QFAIL("query timed out"); } @@ -258,6 +262,8 @@ void tst_QmlDebug::compareProperties(const QmlDebugPropertyReference &a, const Q void tst_QmlDebug::initTestCase() { m_dbg = new QmlEngineDebug(m_conn, this); + + qRegisterMetaType(); } void tst_QmlDebug::watch_property() @@ -265,7 +271,14 @@ 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()); @@ -308,7 +321,14 @@ 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()); @@ -358,11 +378,20 @@ 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 @@ -376,6 +405,10 @@ void tst_QmlDebug::watch_expression() 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; @@ -401,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; @@ -696,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() << copy << copyAssign)) + compareProperties(r, ref); } class TestRunnerThread : public QThread @@ -745,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", -- cgit v0.12 From d81b40f2ae2e0519aabc69fc177bbc82a74c87b3 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 12:30:25 +1000 Subject: test multiple-windows --- .../qmlgraphicswebview/data/newwindows.html | 16 +++++++++++ .../qmlgraphicswebview/data/newwindows.qml | 32 ++++++++++++++++++++++ .../qmlgraphicswebview/tst_qmlgraphicswebview.cpp | 12 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 tests/auto/declarative/qmlgraphicswebview/data/newwindows.html create mode 100644 tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html new file mode 100644 index 0000000..dd541f9 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html @@ -0,0 +1,16 @@ + + + + +

Multiple windows...

+ +Popup! diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml new file mode 100644 index 0000000..9d13715 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml @@ -0,0 +1,32 @@ +// Demonstrates opening new WebViews from HTML + +import Qt 4.6 + +Grid { + columns: 3 + id: pages + height: 300; width: 600 + property int total: 0 + + Component { + id: webViewPage + Rectangle { + width: webView.width + height: webView.height + border.color: "gray" + + WebView { + id: webView + newWindowComponent: webViewPage + newWindowParent: pages + url: "newwindows.html" + Timer { + interval: 10; running: total<4; repeat: false; + onTriggered: {total++; webView.evaluateJavaScript("clickTheLink()")} + } + } + } + } + + Loader { sourceComponent: webViewPage } +} diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp index 44319c1..9032300 100644 --- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp +++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -57,6 +58,7 @@ public: private slots: void basicProperties(); void historyNav(); + void multipleWindows(); void loadError(); void setHtml(); void javaScript(); @@ -218,6 +220,16 @@ void tst_qmlgraphicswebview::historyNav() QVERIFY(!wv->stopAction()->isEnabled()); } +void tst_qmlgraphicswebview::multipleWindows() +{ + QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/newwindows.qml")); + checkNoErrors(component); + + QmlGraphicsGrid *grid = qobject_cast(component.create()); + QVERIFY(grid != 0); + QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews +} + void tst_qmlgraphicswebview::loadError() { QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/loadError.qml")); -- cgit v0.12 From cc20b7616daad7fc1c8db1609002dcb778ed9fce Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 12:30:44 +1000 Subject: look nicer --- examples/declarative/webview/newwindows.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/declarative/webview/newwindows.qml b/examples/declarative/webview/newwindows.qml index e2ed58f..5dd4cd5 100644 --- a/examples/declarative/webview/newwindows.qml +++ b/examples/declarative/webview/newwindows.qml @@ -5,9 +5,10 @@ import Qt 4.6 -Row { +Grid { + columns: 3 id: pages - height: 200; width: 500 + height: 300; width: 600 Component { id: webViewPage -- cgit v0.12 From 8768193ce3a3dc26508a911e189a084ed72d019a Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 13:40:16 +1000 Subject: Autotests. --- src/declarative/extra/qmlnumberformatter.cpp | 2 +- src/declarative/extra/qmlxmllistmodel.cpp | 2 +- tests/auto/declarative/layouts/data/layouts.qml | 2 +- tests/auto/declarative/layouts/tst_layouts.cpp | 13 ++++-- .../numberformatter/tst_numberformatter.cpp | 2 + .../qmlxmllistmodel/data/roleErrors.qml | 10 +++++ .../qmlxmllistmodel/tst_qmlxmllistmodel.cpp | 49 ++++++++++++++++++++++ 7 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp index 4007d95..b09be5b 100644 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ b/src/declarative/extra/qmlnumberformatter.cpp @@ -108,7 +108,7 @@ QString QmlNumberFormatter::text() const } /*! - \qmlproperty qreal NumberFormatter::number + \qmlproperty real NumberFormatter::number A single point precision number. (Doubles are not yet supported) diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index 4f213a8..3d90b44 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -463,7 +463,7 @@ QHash QmlXmlListModel::data(int index, const QList &roles) co for (int i = 0; i < roles.size(); ++i) { int role = roles.at(i); int roleIndex = d->roles.indexOf(role); - rv.insert(role, d->data.at(roleIndex).at(index)); + rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); } return rv; } diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml index b0ee63b..00d785d 100644 --- a/tests/auto/declarative/layouts/data/layouts.qml +++ b/tests/auto/declarative/layouts/data/layouts.qml @@ -6,7 +6,7 @@ Item { height:300 GraphicsObjectContainer { - anchors.fill:parent + anchors.fill: parent synchronizedResizing: true QGraphicsWidget { diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp index 1c2330d..0f832bf 100644 --- a/tests/auto/declarative/layouts/tst_layouts.cpp +++ b/tests/auto/declarative/layouts/tst_layouts.cpp @@ -43,6 +43,7 @@ #include #include #include +#include class tst_QmlGraphicsLayouts : public QObject { @@ -74,7 +75,12 @@ void tst_QmlGraphicsLayouts::test_qml() QmlGraphicsLayoutItem *right = static_cast(canvas->root()->findChild("right")); QVERIFY(right != 0); - qreal gvMargin = 9.0; + qreal l = QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin); + qreal r = QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin); + qreal t = QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin); + qreal b = QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin); + QVERIFY2(l == r && r == t && t == b, "Test assumes equal margins."); + qreal gvMargin = l; //Preferred Size canvas->root()->setWidth(300 + 2*gvMargin); canvas->root()->setHeight(300 + 2*gvMargin); @@ -116,6 +122,7 @@ void tst_QmlGraphicsLayouts::test_qml() QCOMPARE(right->width(), 400.0); QCOMPARE(right->height(), 300.0); + delete canvas; } void tst_QmlGraphicsLayouts::test_cpp() @@ -129,8 +136,8 @@ QmlView *tst_QmlGraphicsLayouts::createView(const QString &filename) QFile file(filename); file.open(QFile::ReadOnly); - QString xml = file.readAll(); - canvas->setQml(xml, filename); + QString qml = file.readAll(); + canvas->setQml(qml, filename); return canvas; } diff --git a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp index 152d6e3..1d68f35 100644 --- a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp +++ b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp @@ -212,6 +212,8 @@ void tst_numberformat::text() QCOMPARE(formatter->format(), format); QCOMPARE(formatter->text(), text); + + delete formatter; } QTEST_MAIN(tst_numberformat) diff --git a/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml new file mode 100644 index 0000000..26c533f --- /dev/null +++ b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml @@ -0,0 +1,10 @@ +import Qt 4.6 + +XmlListModel { + source: "model.xml" + query: "/Pets/Pet" + XmlRole { name: "name"; query: "/name/string()" } //starts with '/' + XmlRole { name: "type"; query: "type" } //no type + XmlRole { name: "age"; query: "age/" } //ends with '/' + XmlRole { name: "size"; query: "size/number()" } //wrong type +} diff --git a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp index 4898686..71bc4f9 100644 --- a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp +++ b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp @@ -56,6 +56,8 @@ private slots: void missingFields(); void cdata(); void attributes(); + void roles(); + void roleErrors(); private: QmlEngine engine; @@ -76,6 +78,8 @@ void tst_qmlxmllistmodel::buildModel() QCOMPARE(data.value(Qt::UserRole+1).toString(), QLatin1String("Dog")); QCOMPARE(data.value(Qt::UserRole+2).toInt(), 9); QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String("Medium")); + + delete listModel; } void tst_qmlxmllistmodel::missingFields() @@ -95,6 +99,8 @@ void tst_qmlxmllistmodel::missingFields() data = listModel->data(7, roles); QVERIFY(data.count() == 5); QCOMPARE(data.value(Qt::UserRole+2).toString(), QLatin1String("")); + + delete listModel; } void tst_qmlxmllistmodel::cdata() @@ -109,6 +115,8 @@ void tst_qmlxmllistmodel::cdata() QHash data = listModel->data(2, roles); QVERIFY(data.count() == 1); QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String(""))); + + delete listModel; } void tst_qmlxmllistmodel::attributes() @@ -123,8 +131,49 @@ void tst_qmlxmllistmodel::attributes() QHash data = listModel->data(2, roles); QVERIFY(data.count() == 1); QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Vegetable Soup")); + + delete listModel; +} + +void tst_qmlxmllistmodel::roles() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/model.qml")); + QmlXmlListModel *listModel = qobject_cast(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList roles = listModel->roles(); + QCOMPARE(roles.count(), 4); + QCOMPARE(listModel->toString(roles.at(0)), QLatin1String("name")); + QCOMPARE(listModel->toString(roles.at(1)), QLatin1String("type")); + QCOMPARE(listModel->toString(roles.at(2)), QLatin1String("age")); + QCOMPARE(listModel->toString(roles.at(3)), QLatin1String("size")); + + delete listModel; } +void tst_qmlxmllistmodel::roleErrors() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/roleErrors.qml")); + QTest::ignoreMessage(QtWarningMsg, "QML QmlXmlListModelRole (file://" SRCDIR "/data/roleErrors.qml:6:5) An XmlRole query must not start with '/'"); + //### make sure we receive all expected warning messages. + QmlXmlListModel *listModel = qobject_cast(component.create()); + QVERIFY(listModel != 0); + QTRY_COMPARE(listModel->count(), 9); + + QList roles; + roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3; + QHash data = listModel->data(3, roles); + QVERIFY(data.count() == 4); + + //### should any of these return valid values? + QCOMPARE(data.value(Qt::UserRole), QVariant()); + QCOMPARE(data.value(Qt::UserRole+1), QVariant()); + QCOMPARE(data.value(Qt::UserRole+2), QVariant()); + QCOMPARE(data.value(Qt::UserRole+3), QVariant()); + + delete listModel; +} QTEST_MAIN(tst_qmlxmllistmodel) -- cgit v0.12 From b54b0e55449b1b15dcdd3601b7ee176ee67abe27 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 14:28:47 +1000 Subject: Visual animation tests. Move them to a common directory, add a new one, and fix a failing one. --- .../bindinganimation/bindinganimation.qml | 40 + .../bindinganimation/data/bindinganimation.0.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.1.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.2.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.3.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.4.png | Bin 0 -> 814 bytes .../bindinganimation/data/bindinganimation.5.png | Bin 0 -> 815 bytes .../bindinganimation/data/bindinganimation.6.png | Bin 0 -> 817 bytes .../bindinganimation/data/bindinganimation.qml | 1655 ++++++++++++++++++++ .../animation/colorAnimation/colorAnimation.qml | 41 + .../colorAnimation/data/colorAnimation.0.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.1.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.2.png | Bin 0 -> 610 bytes .../colorAnimation/data/colorAnimation.qml | 951 +++++++++++ .../visual/animation/easing/data/easing.0.png | Bin 0 -> 3393 bytes .../visual/animation/easing/data/easing.1.png | Bin 0 -> 3381 bytes .../visual/animation/easing/data/easing.2.png | Bin 0 -> 3101 bytes .../visual/animation/easing/data/easing.3.png | Bin 0 -> 16542 bytes .../visual/animation/easing/data/easing.qml | 779 +++++++++ .../declarative/visual/animation/easing/easing.qml | 193 +++ .../visual/animation/easing/pics/qtlogo.png | Bin 0 -> 2738 bytes .../parallelAnimation/data/parallelAnimation.0.png | Bin 0 -> 774 bytes .../parallelAnimation/data/parallelAnimation.1.png | Bin 0 -> 762 bytes .../parallelAnimation/data/parallelAnimation.2.png | Bin 0 -> 773 bytes .../parallelAnimation/data/parallelAnimation.qml | 463 ++++++ .../parallelAnimation/parallelAnimation.qml | 43 + .../animation/parentAction/data/parentAction.0.png | Bin 0 -> 1652 bytes .../animation/parentAction/data/parentAction.1.png | Bin 0 -> 1492 bytes .../animation/parentAction/data/parentAction.2.png | Bin 0 -> 1424 bytes .../animation/parentAction/data/parentAction.3.png | Bin 0 -> 1583 bytes .../animation/parentAction/data/parentAction.4.png | Bin 0 -> 1640 bytes .../animation/parentAction/data/parentAction.5.png | Bin 0 -> 1640 bytes .../animation/parentAction/data/parentAction.qml | 1207 ++++++++++++++ .../visual/animation/parentAction/parentAction.qml | 55 + .../pauseAnimation/data/pauseAnimation.0.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.1.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.2.png | Bin 0 -> 3209 bytes .../pauseAnimation/data/pauseAnimation.3.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.4.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.5.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.qml | 1619 +++++++++++++++++++ .../animation/pauseAnimation/pauseAnimation.qml | 30 + .../animation/pauseAnimation/pics/qtlogo.png | Bin 0 -> 2738 bytes .../propertyAction/data/propertyAction.0.png | Bin 0 -> 1418 bytes .../propertyAction/data/propertyAction.1.png | Bin 0 -> 1430 bytes .../propertyAction/data/propertyAction.2.png | Bin 0 -> 1431 bytes .../propertyAction/data/propertyAction.qml | 939 +++++++++++ .../animation/propertyAction/propertyAction.qml | 34 + .../animation/scriptAction/data/scriptAction.0.png | Bin 0 -> 1418 bytes .../animation/scriptAction/data/scriptAction.1.png | Bin 0 -> 1431 bytes .../animation/scriptAction/data/scriptAction.qml | 535 +++++++ .../visual/animation/scriptAction/scriptAction.qml | 35 + .../visual/bindinganimation/bindinganimation.qml | 40 - .../bindinganimation/data/bindinganimation.0.png | Bin 817 -> 0 bytes .../bindinganimation/data/bindinganimation.1.png | Bin 815 -> 0 bytes .../bindinganimation/data/bindinganimation.qml | 659 -------- .../visual/colorAnimation/colorAnimation.qml | 41 - .../colorAnimation/data/colorAnimation.0.png | Bin 610 -> 0 bytes .../colorAnimation/data/colorAnimation.1.png | Bin 610 -> 0 bytes .../colorAnimation/data/colorAnimation.2.png | Bin 610 -> 0 bytes .../visual/colorAnimation/data/colorAnimation.qml | 951 ----------- .../declarative/visual/easing/data/easing.0.png | Bin 3393 -> 0 bytes .../declarative/visual/easing/data/easing.1.png | Bin 3381 -> 0 bytes .../declarative/visual/easing/data/easing.2.png | Bin 3101 -> 0 bytes .../declarative/visual/easing/data/easing.3.png | Bin 16542 -> 0 bytes .../auto/declarative/visual/easing/data/easing.qml | 779 --------- tests/auto/declarative/visual/easing/easing.qml | 193 --- .../auto/declarative/visual/easing/pics/qtlogo.png | Bin 2738 -> 0 bytes .../visual/parentAction/data/parentAction.0.png | Bin 1652 -> 0 bytes .../visual/parentAction/data/parentAction.1.png | Bin 1492 -> 0 bytes .../visual/parentAction/data/parentAction.2.png | Bin 1424 -> 0 bytes .../visual/parentAction/data/parentAction.3.png | Bin 1583 -> 0 bytes .../visual/parentAction/data/parentAction.4.png | Bin 1640 -> 0 bytes .../visual/parentAction/data/parentAction.5.png | Bin 1640 -> 0 bytes .../visual/parentAction/data/parentAction.qml | 1207 -------------- .../visual/parentAction/parentAction.qml | 55 - .../pauseAnimation/data/pauseAnimation.0.png | Bin 3211 -> 0 bytes .../pauseAnimation/data/pauseAnimation.1.png | Bin 3214 -> 0 bytes .../pauseAnimation/data/pauseAnimation.2.png | Bin 3209 -> 0 bytes .../pauseAnimation/data/pauseAnimation.3.png | Bin 3211 -> 0 bytes .../pauseAnimation/data/pauseAnimation.4.png | Bin 3214 -> 0 bytes .../pauseAnimation/data/pauseAnimation.5.png | Bin 3214 -> 0 bytes .../visual/pauseAnimation/data/pauseAnimation.qml | 1619 ------------------- .../visual/pauseAnimation/pauseAnimation.qml | 30 - .../visual/pauseAnimation/pics/qtlogo.png | Bin 2738 -> 0 bytes .../propertyAction/data/propertyAction.0.png | Bin 1418 -> 0 bytes .../propertyAction/data/propertyAction.1.png | Bin 1430 -> 0 bytes .../propertyAction/data/propertyAction.2.png | Bin 1431 -> 0 bytes .../visual/propertyAction/data/propertyAction.qml | 939 ----------- .../visual/propertyAction/propertyAction.qml | 34 - .../visual/scriptAction/data/scriptAction.0.png | Bin 1418 -> 0 bytes .../visual/scriptAction/data/scriptAction.1.png | Bin 1431 -> 0 bytes .../visual/scriptAction/data/scriptAction.qml | 535 ------- .../visual/scriptAction/scriptAction.qml | 35 - 94 files changed, 8619 insertions(+), 7117 deletions(-) create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png create mode 100644 tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.0.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.1.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.2.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.3.png create mode 100644 tests/auto/declarative/visual/animation/easing/data/easing.qml create mode 100644 tests/auto/declarative/visual/animation/easing/easing.qml create mode 100644 tests/auto/declarative/visual/animation/easing/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png create mode 100644 tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml create mode 100644 tests/auto/declarative/visual/animation/parentAction/parentAction.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml create mode 100644 tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png create mode 100644 tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml create mode 100644 tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png create mode 100644 tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml create mode 100644 tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml delete mode 100644 tests/auto/declarative/visual/bindinganimation/bindinganimation.qml delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png delete mode 100644 tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml delete mode 100644 tests/auto/declarative/visual/colorAnimation/colorAnimation.qml delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png delete mode 100644 tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml delete mode 100644 tests/auto/declarative/visual/easing/data/easing.0.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.1.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.2.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.3.png delete mode 100644 tests/auto/declarative/visual/easing/data/easing.qml delete mode 100644 tests/auto/declarative/visual/easing/easing.qml delete mode 100644 tests/auto/declarative/visual/easing/pics/qtlogo.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.0.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.1.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.2.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.3.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.4.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.5.png delete mode 100644 tests/auto/declarative/visual/parentAction/data/parentAction.qml delete mode 100644 tests/auto/declarative/visual/parentAction/parentAction.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png delete mode 100644 tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml delete mode 100644 tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png delete mode 100644 tests/auto/declarative/visual/propertyAction/data/propertyAction.qml delete mode 100644 tests/auto/declarative/visual/propertyAction/propertyAction.qml delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png delete mode 100644 tests/auto/declarative/visual/scriptAction/data/scriptAction.qml delete mode 100644 tests/auto/declarative/visual/scriptAction/scriptAction.qml diff --git a/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml new file mode 100644 index 0000000..eabba73 --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml @@ -0,0 +1,40 @@ +import Qt 4.6 + +Rectangle { + color: "blue" + width: 320 + height: 240 + id: Page + Rectangle { + id: MyRectangle + width: 100 + height: 100 + color: "red" + x: 10 + } + states: [ + State { + name: "hello" + PropertyChanges { + target: MyRectangle + x: 100 + } + PropertyChanges { + target: MyMouseRegion + onClicked: Page.state = '' + } + } + ] + transitions: [ + Transition { + NumberAnimation { + matchProperties: "x" + } + } + ] + MouseRegion { + id: MyMouseRegion + anchors.fill: parent + onClicked: { Page.state= 'hello' } + } +} diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png new file mode 100644 index 0000000..f3074fc Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png new file mode 100644 index 0000000..e2560e0 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png new file mode 100644 index 0000000..bba04a9 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png new file mode 100644 index 0000000..f3074fc Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png new file mode 100644 index 0000000..1b08c81 Binary files /dev/null and b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png differ diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml new file mode 100644 index 0000000..a90f99e --- /dev/null +++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml @@ -0,0 +1,1655 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 32 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 48 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 64 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 80 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 96 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 112 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 128 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 144 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 160 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 176 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 192 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 208 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 224 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 240 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 256 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 272 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 288 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 304 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 320 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 336 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 352 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 368 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 384 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 400 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 416 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 432 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 448 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 464 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 480 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 496 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 512 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 528 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 544 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 560 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 576 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 592 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 608 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 624 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 640 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 656 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 672 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 688 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 704 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 720 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 736 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 752 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 768 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 784 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 800 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 816 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 832 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 848 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 864 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 880 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 896 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 912 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 928 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 944 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 960 + image: "bindinganimation.0.png" + } + Frame { + msec: 976 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 992 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1008 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1024 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1040 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1056 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1072 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1088 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1104 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1120 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1136 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1152 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 136; y: 174 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1168 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1184 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1200 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1216 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1232 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1248 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1264 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1280 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 136; y: 174 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 1312 + hash: "a78c9394bf3b81f192f42710cd7218b1" + } + Frame { + msec: 1328 + hash: "7f08e8170feb1d02373c9ab42b6e882d" + } + Frame { + msec: 1344 + hash: "967fbad8ac664400a3efbe66617d62aa" + } + Frame { + msec: 1360 + hash: "abc2ec0bc7a93e75b5823310e6284db1" + } + Frame { + msec: 1376 + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + } + Frame { + msec: 1392 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 1408 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 1424 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 1440 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 1456 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 1472 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 1488 + hash: "f9f74a2e38b52c9266f33e428b6acd9d" + } + Frame { + msec: 1504 + hash: "25152412c4ea2aec6caf89486c073484" + } + Frame { + msec: 1520 + hash: "ba403842ba3128b1cdf6a9cb28c90751" + } + Frame { + msec: 1536 + hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + } + Frame { + msec: 1552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1632 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1648 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1664 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1680 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1696 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1712 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1728 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1744 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1760 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1776 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1792 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1808 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1824 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1840 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1856 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1872 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1888 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1904 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1920 + image: "bindinganimation.1.png" + } + Frame { + msec: 1936 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1952 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1968 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 1984 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2000 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2016 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2032 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2048 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2064 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2080 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2096 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2112 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2128 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2144 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2160 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2176 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2192 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2208 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2224 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2240 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2256 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2272 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2288 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2304 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2320 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2336 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2352 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 2384 + hash: "adc501a3a2b8aaf72f58ba985b57424e" + } + Frame { + msec: 2400 + hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + } + Frame { + msec: 2416 + hash: "ffa8471f57765b49fcdb9155393251e5" + } + Frame { + msec: 2432 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 2448 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 2464 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 2480 + hash: "17c46242c17983478f34cb49cb91ca6e" + } + Frame { + msec: 2496 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 2512 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 2528 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 2544 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 2560 + hash: "a39c80859a7643c9879da9c77b644703" + } + Frame { + msec: 2576 + hash: "16fe17b15900ff0464ab20ea921e5b1f" + } + Frame { + msec: 2592 + hash: "bc5c83b2014b7260900587ae3637598f" + } + Frame { + msec: 2608 + hash: "96c077e3a572edff04fa9b2f7020ffd0" + } + Frame { + msec: 2624 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2640 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2656 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2672 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2688 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2704 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2720 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2736 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2752 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2768 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2784 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2800 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2816 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2832 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2848 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2864 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2880 + image: "bindinganimation.2.png" + } + Frame { + msec: 2896 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2912 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2928 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2944 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2960 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2976 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 2992 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3008 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3024 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3040 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3056 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3072 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3088 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3104 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3120 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3136 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3152 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3168 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3184 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3200 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3216 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3232 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3248 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3264 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3280 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Frame { + msec: 3312 + hash: "a78c9394bf3b81f192f42710cd7218b1" + } + Frame { + msec: 3328 + hash: "7f08e8170feb1d02373c9ab42b6e882d" + } + Frame { + msec: 3344 + hash: "967fbad8ac664400a3efbe66617d62aa" + } + Frame { + msec: 3360 + hash: "abc2ec0bc7a93e75b5823310e6284db1" + } + Frame { + msec: 3376 + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + } + Frame { + msec: 3392 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 3408 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 3424 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 3440 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 3456 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 3472 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3488 + hash: "f9f74a2e38b52c9266f33e428b6acd9d" + } + Frame { + msec: 3504 + hash: "25152412c4ea2aec6caf89486c073484" + } + Frame { + msec: 3520 + hash: "ba403842ba3128b1cdf6a9cb28c90751" + } + Frame { + msec: 3536 + hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + } + Frame { + msec: 3552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 3632 + hash: "adc501a3a2b8aaf72f58ba985b57424e" + } + Frame { + msec: 3648 + hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + } + Frame { + msec: 3664 + hash: "ffa8471f57765b49fcdb9155393251e5" + } + Frame { + msec: 3680 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 3696 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 3728 + hash: "17c46242c17983478f34cb49cb91ca6e" + } + Frame { + msec: 3744 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 3760 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 3776 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 3792 + hash: "4f58226bdbda7339d972eca065f75766" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 3824 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 3840 + image: "bindinganimation.3.png" + } + Frame { + msec: 3856 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 3872 + hash: "4f41101378a104e72228eeb4ba395ca8" + } + Frame { + msec: 3888 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 3904 + hash: "f4fe2cc93d65e086ba8ded1438269eb2" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3920 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 3936 + hash: "72a0c017a2fa90a4aeadfa6e552ff573" + } + Frame { + msec: 3952 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 3968 + hash: "0b0c6419e1e5b016d9c22bd98fd452b1" + } + Frame { + msec: 3984 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4000 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4016 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Frame { + msec: 4032 + hash: "a21aa1984f068650cce2a124a82c12be" + } + Frame { + msec: 4048 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4064 + hash: "a2cebc35e5c2c709a2cd83e1df6eaeab" + } + Frame { + msec: 4080 + hash: "07f751ea4cf877ba72fbb36f9da268d7" + } + Frame { + msec: 4096 + hash: "72731478d80f024076ea639b55152360" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4112 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 4128 + hash: "ed47684a0b21836cd27549e0989e96dd" + } + Frame { + msec: 4144 + hash: "772396bb23c713f34ea5c23bfbcb115e" + } + Frame { + msec: 4160 + hash: "d9af30557f99b086bb1a185a946b580d" + } + Frame { + msec: 4176 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Frame { + msec: 4192 + hash: "2e3f134664df8204a291af2c9f81239a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4208 + hash: "2e3f134664df8204a291af2c9f81239a" + } + Frame { + msec: 4224 + hash: "4f58226bdbda7339d972eca065f75766" + } + Frame { + msec: 4240 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 4256 + hash: "82363265ed2b611a54f8d48b2af22f11" + } + Frame { + msec: 4272 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4288 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4304 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4320 + hash: "56125a260a79bc38bb0ef44fd65ba49b" + } + Frame { + msec: 4336 + hash: "07f751ea4cf877ba72fbb36f9da268d7" + } + Frame { + msec: 4352 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 4368 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4384 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4400 + hash: "8006ceaa02d22b5fdfeab400d39a0caf" + } + Frame { + msec: 4416 + hash: "6f48d1a9977b77cafd38a5903017605b" + } + Frame { + msec: 4432 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Frame { + msec: 4448 + hash: "dafcce427161a70c3513841ac22aea00" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4464 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4480 + hash: "b08811b237ce7a460c80d285f04d53d8" + } + Frame { + msec: 4496 + hash: "fcae0317f81a3ddd713f4db1349a9da0" + } + Frame { + msec: 4512 + hash: "772396bb23c713f34ea5c23bfbcb115e" + } + Frame { + msec: 4528 + hash: "ecda10356cca33901c2acd0a702fee46" + } + Frame { + msec: 4544 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4560 + hash: "575d30ac088448b01f49082519bbb3a1" + } + Frame { + msec: 4576 + hash: "d9af30557f99b086bb1a185a946b580d" + } + Frame { + msec: 4592 + hash: "82363265ed2b611a54f8d48b2af22f11" + } + Frame { + msec: 4608 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4624 + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + } + Frame { + msec: 4640 + hash: "56c72b5da44bd5efdc47c3b9c3eac409" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4656 + hash: "72731478d80f024076ea639b55152360" + } + Frame { + msec: 4672 + hash: "4279c814163af3bd069ce21b3cd1c729" + } + Frame { + msec: 4688 + hash: "72a0c017a2fa90a4aeadfa6e552ff573" + } + Frame { + msec: 4704 + hash: "391ad7ff2362e059f6170dfe306f94a7" + } + Frame { + msec: 4720 + hash: "0b0c6419e1e5b016d9c22bd98fd452b1" + } + Frame { + msec: 4736 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4752 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4768 + hash: "365c824c330398d267ea52ae9468b9ee" + } + Frame { + msec: 4784 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 4800 + image: "bindinganimation.4.png" + } + Frame { + msec: 4816 + hash: "69058485ced6bc992a1a7c5ee34add4c" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4832 + hash: "dafcce427161a70c3513841ac22aea00" + } + Frame { + msec: 4848 + hash: "3223ed179c828fadb3eca9c6373176c1" + } + Frame { + msec: 4864 + hash: "b08811b237ce7a460c80d285f04d53d8" + } + Frame { + msec: 4880 + hash: "f9deee3a204c939562b896a6179743d2" + } + Frame { + msec: 4896 + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Frame { + msec: 4912 + hash: "5fae0bdc65c609cb766ce585b8c649db" + } + Frame { + msec: 4928 + hash: "ffeb3db6d3f177acf6f92049359a9025" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4944 + hash: "ffeb3db6d3f177acf6f92049359a9025" + } + Frame { + msec: 4960 + hash: "527b1f9e7a222483134675a73f9cf5b7" + } + Frame { + msec: 4976 + hash: "5edaad77f334e6a01982ee89a733b1f8" + } + Frame { + msec: 4992 + hash: "6a74d6dc91a8b370200d3765c55c1136" + } + Frame { + msec: 5008 + hash: "4f41101378a104e72228eeb4ba395ca8" + } + Frame { + msec: 5024 + hash: "37739777a5979f3ebf85e47e63341660" + } + Frame { + msec: 5040 + hash: "f4fe2cc93d65e086ba8ded1438269eb2" + } + Frame { + msec: 5056 + hash: "d245b288eb3eb7067c25f4475c47d2f7" + } + Frame { + msec: 5072 + hash: "7f465a99fca50503736e470a0b4e1c7a" + } + Frame { + msec: 5088 + hash: "1d5cd86ab732da3705a7bb1deab77923" + } + Frame { + msec: 5104 + hash: "ddb65481469c38f2331546ee03a44206" + } + Frame { + msec: 5120 + hash: "a21aa1984f068650cce2a124a82c12be" + } + Frame { + msec: 5136 + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Frame { + msec: 5152 + hash: "48eb78c29227a399f9c1c95c7d77c9d9" + } + Frame { + msec: 5168 + hash: "51f228440001d23e294da1dde07a1577" + } + Frame { + msec: 5184 + hash: "0d59ac57f8790fe741a31d12c3438abf" + } + Frame { + msec: 5200 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5216 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5232 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5248 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5264 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5280 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5296 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5312 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5328 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5344 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5360 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5376 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5392 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5408 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5424 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5440 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5456 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5472 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5488 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5504 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5520 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5536 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5552 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5568 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5584 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5600 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5616 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5632 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5648 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5664 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5680 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5696 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5712 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5728 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5744 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5760 + image: "bindinganimation.5.png" + } + Frame { + msec: 5776 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5792 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5808 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5824 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5840 + hash: "383ba6b9efcc58fca512982a207631f6" + } + Frame { + msec: 5856 + hash: "383ba6b9efcc58fca512982a207631f6" + } +} diff --git a/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml new file mode 100644 index 0000000..0e98d7e --- /dev/null +++ b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml @@ -0,0 +1,41 @@ +import Qt 4.6 + +Rectangle { + id: mainrect + width: 200; height: 200 + state: "first" + states: [ + State { + name: "first" + PropertyChanges { + target: mainrect + color: "red" + } + }, + State { + name: "second" + PropertyChanges { + target: mainrect + color: "blue" + } + } + ] + transitions: [ + Transition { + from: "first" + to: "second" + reversible: true + SequentialAnimation { + ColorAnimation { + duration: 2000 + target: mainrect + property: "color" + } + } + } + ] + MouseRegion { + anchors.fill: parent + onClicked: { mainrect.state = 'second' } + } +} diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png new file mode 100644 index 0000000..f4a6cfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml new file mode 100644 index 0000000..900bf5c --- /dev/null +++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml @@ -0,0 +1,951 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 32 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 48 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 64 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 80 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 96 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 112 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 128 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 144 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 160 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 176 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 192 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 208 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 224 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 240 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 256 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 272 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 288 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 304 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 320 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 336 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 352 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 368 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 384 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 400 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 416 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 432 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 448 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 464 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 480 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 496 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 512 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 93; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 528 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 544 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 560 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 576 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Frame { + msec: 592 + hash: "acc736435c9f84aa82941ba561bc5dbc" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 93; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 608 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 624 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 640 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 656 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 672 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 688 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 704 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 720 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 736 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 752 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 768 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 784 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 800 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 816 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 832 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 848 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 864 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 880 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 896 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 912 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 928 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 944 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 960 + image: "colorAnimation.0.png" + } + Frame { + msec: 976 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 992 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1008 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1024 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1040 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1056 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1072 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1088 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1104 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1120 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1136 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1152 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1168 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1184 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1200 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1216 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1232 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1248 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1264 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1280 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1296 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1312 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1328 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1344 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1360 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1376 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1392 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1408 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1424 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1440 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1456 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1472 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1488 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1504 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1520 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1536 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1552 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1568 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1584 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1600 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1616 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1632 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1648 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1664 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1680 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1696 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1712 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1728 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1744 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1760 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1776 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1792 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1808 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1824 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1840 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1856 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1872 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1888 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1904 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1920 + image: "colorAnimation.1.png" + } + Frame { + msec: 1936 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1952 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1968 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 1984 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2000 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2016 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2032 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2048 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2064 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2080 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2096 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2112 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2128 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2144 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2160 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2176 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2192 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2208 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2224 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2240 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2256 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2272 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2288 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2304 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2320 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2336 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2352 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2368 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2384 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2400 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2416 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2432 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2448 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2464 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2480 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2496 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2512 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2528 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2544 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2560 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2576 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2592 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2608 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2624 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2640 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2656 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2672 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2688 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2704 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2720 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2736 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2752 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2768 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2784 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2800 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2816 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2832 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2848 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2864 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2880 + image: "colorAnimation.2.png" + } + Frame { + msec: 2896 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2912 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2928 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2944 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2960 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2976 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 2992 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3008 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3024 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3040 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3056 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3072 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3088 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3104 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3120 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3136 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3152 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3168 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3184 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3200 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3216 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3232 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3248 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3264 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3280 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3296 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3312 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3328 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3344 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3360 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3376 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3392 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3408 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3424 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3440 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3456 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3472 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3488 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3504 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3520 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3536 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3552 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3568 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3584 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3600 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3616 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3632 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Key { + type: 6 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 3648 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3664 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } + Frame { + msec: 3680 + hash: "8c0fcda4f8956394c53fc4ba18caa850" + } +} diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.0.png b/tests/auto/declarative/visual/animation/easing/data/easing.0.png new file mode 100644 index 0000000..4f75bfd Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.0.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.1.png b/tests/auto/declarative/visual/animation/easing/data/easing.1.png new file mode 100644 index 0000000..dc17765 Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.1.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.2.png b/tests/auto/declarative/visual/animation/easing/data/easing.2.png new file mode 100644 index 0000000..7f83548 Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.2.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.3.png b/tests/auto/declarative/visual/animation/easing/data/easing.3.png new file mode 100644 index 0000000..c68e0fa Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/data/easing.3.png differ diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.qml b/tests/auto/declarative/visual/animation/easing/data/easing.qml new file mode 100644 index 0000000..d8e8688 --- /dev/null +++ b/tests/auto/declarative/visual/animation/easing/data/easing.qml @@ -0,0 +1,779 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 32 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 48 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 64 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 80 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 96 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 112 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 128 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 144 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 160 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 176 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 192 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 208 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 224 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 240 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 256 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 272 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 111; y: 419 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 288 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 304 + hash: "8f4c40d2e2b4f064bcb77c5ae43928c6" + } + Frame { + msec: 320 + hash: "8b65094a9b7d5394fc67f92ea058627f" + } + Frame { + msec: 336 + hash: "da450826b471a60ba98dabc581631ba1" + } + Frame { + msec: 352 + hash: "e820fb4f1bc97152aa940b07db549f1b" + } + Frame { + msec: 368 + hash: "b7d8186beca2fa0e37099f72419350f4" + } + Frame { + msec: 384 + hash: "8500b93774f214e5e4789e25500262b8" + } + Frame { + msec: 400 + hash: "277e1dff70285cca536b3e1fc2590688" + } + Frame { + msec: 416 + hash: "b05b18f92c2089c681661566117ae0f5" + } + Frame { + msec: 432 + hash: "6fec9c6b6ac3e3ea4126e3824a8d7566" + } + Frame { + msec: 448 + hash: "53c6c90dd1eb7ca47721fc116474aebf" + } + Frame { + msec: 464 + hash: "cf729c4a31414af3d2705878ba615738" + } + Frame { + msec: 480 + hash: "f146b8a68960d507f893ef001189220e" + } + Frame { + msec: 496 + hash: "18ff56b870bb048af246f928ee42a9b0" + } + Frame { + msec: 512 + hash: "beee98f73fe7e878ada37b3070fa0c1d" + } + Frame { + msec: 528 + hash: "435d389082912950a0be2b5dff480319" + } + Frame { + msec: 544 + hash: "dc39b080eaddeaf4e309b90b7d97a835" + } + Frame { + msec: 560 + hash: "666b1cde53f78d7db9c81e21adbe406a" + } + Frame { + msec: 576 + hash: "c5c9627f4329e48aa96ebfbc982b6ba6" + } + Frame { + msec: 592 + hash: "a583042052e5da7e80a4956337d6d1ff" + } + Frame { + msec: 608 + hash: "a4a5df787e15da6f28275a12898e7620" + } + Frame { + msec: 624 + hash: "02cacec2ccc803ebc03c5540484cbcaa" + } + Frame { + msec: 640 + hash: "00600df1f006f358feaf43bfae9d32a5" + } + Frame { + msec: 656 + hash: "737c884ba0d6d38b66252f4b97a36c33" + } + Frame { + msec: 672 + hash: "7eeeade8100c84a6b56efa51cf597baf" + } + Frame { + msec: 688 + hash: "18ab79d495097f0103dcf14db1897a88" + } + Frame { + msec: 704 + hash: "21d3b0da00c46a101e09048928cd8027" + } + Frame { + msec: 720 + hash: "a5995b0341872c275ffbc5aaee6eb853" + } + Frame { + msec: 736 + hash: "bb4a37c1bd5e412ebce54d9539017723" + } + Frame { + msec: 752 + hash: "63dcde9e2751ca94ed7d739feb359221" + } + Frame { + msec: 768 + hash: "5790c8407e2e4d1a6a937d86d57d8edb" + } + Frame { + msec: 784 + hash: "3a1c77abf6822030db60a036027dc86e" + } + Frame { + msec: 800 + hash: "2a13c573ab9846cce60384dd7138b2b4" + } + Frame { + msec: 816 + hash: "98983c2525265830033495b61071a5aa" + } + Frame { + msec: 832 + hash: "26d2bba3d77053b410715afb497d4063" + } + Frame { + msec: 848 + hash: "fd65d954c16acee425d9de65af68ef40" + } + Frame { + msec: 864 + hash: "094fcc18d28b19ac6b452dd8106d813b" + } + Frame { + msec: 880 + hash: "160105f6f99a960763535e4d51990ef6" + } + Frame { + msec: 896 + hash: "0d5d1e6a66fc1f49f1106f01fb5a1c52" + } + Frame { + msec: 912 + hash: "f6abc32680865783a4d94ecb738f9ff6" + } + Frame { + msec: 928 + hash: "350509eceb134d5b18647e5ad07dbb47" + } + Frame { + msec: 944 + hash: "a84e4e7c5385dc1f24ca219f45d529a5" + } + Frame { + msec: 960 + image: "easing.0.png" + } + Frame { + msec: 976 + hash: "efcc5ae79da3fa2f4c7d6eaa35e32d33" + } + Frame { + msec: 992 + hash: "ff4afce604c8ecb4f08d1ddef8552534" + } + Frame { + msec: 1008 + hash: "e2e63e12e9a5f8459720dd8b023ed17b" + } + Frame { + msec: 1024 + hash: "991a01f92bcfa9cd9fe98e3f39d192fc" + } + Frame { + msec: 1040 + hash: "bc3d2f0f3fac650c981457f3694c2518" + } + Frame { + msec: 1056 + hash: "ee39fc9b1a602bf813d9118aa21901ac" + } + Frame { + msec: 1072 + hash: "42120d098f2adf1e331332b33442dd3e" + } + Frame { + msec: 1088 + hash: "1660c69b77b800d1ab57b93f0fc12aa5" + } + Frame { + msec: 1104 + hash: "0630a3d6b8cb5dece5dc660f05036ec6" + } + Frame { + msec: 1120 + hash: "9163f0bd9c5888794d7a09d3359bf1e5" + } + Frame { + msec: 1136 + hash: "e0b7ad4883f679948c852ff152ba7907" + } + Frame { + msec: 1152 + hash: "f748fc44f99b706e42b899cb18dbaaf7" + } + Frame { + msec: 1168 + hash: "c84442f0cb1cf0bb50dae7d1c701aaf8" + } + Frame { + msec: 1184 + hash: "d7b41567e3f3aa9576fe2793872134b7" + } + Frame { + msec: 1200 + hash: "a1d10ff1adb85000902486fc8e4faa8d" + } + Frame { + msec: 1216 + hash: "44b7b5d77068e360ead3af84e7d80232" + } + Frame { + msec: 1232 + hash: "486c0b19c1379d9eefdf575a085e2875" + } + Frame { + msec: 1248 + hash: "1d474472856d4740d960eb2f788ca5a6" + } + Frame { + msec: 1264 + hash: "c74082553ab0f4ee00f5044e3369580b" + } + Frame { + msec: 1280 + hash: "89fcd5514f336075ad32cae69518c1e5" + } + Frame { + msec: 1296 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1312 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1328 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1344 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1360 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1376 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1392 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1408 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1424 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1440 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1456 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1472 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1488 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1504 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1520 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1536 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1552 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1568 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1584 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1600 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 111; y: 419 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "9dd235eb98998d9bdd92e01300297257" + } + Frame { + msec: 1632 + hash: "b77240f32e83d4f332d815c626f1e560" + } + Frame { + msec: 1648 + hash: "7d89669231224cf8e02d75338c37c278" + } + Frame { + msec: 1664 + hash: "a8cf7c179011ee8187a8e1111683e52e" + } + Frame { + msec: 1680 + hash: "3e87a57e05da09a8260801320431b922" + } + Frame { + msec: 1696 + hash: "a2b0d99c8a232715fe03e8772a36634c" + } + Frame { + msec: 1712 + hash: "5b4634cd495ae7bb9c69a5c9c346189e" + } + Frame { + msec: 1728 + hash: "492f8f2b84af355ef41c1a7cda3a8a73" + } + Frame { + msec: 1744 + hash: "88e4eb08520fb5acc3d88ac4f0900542" + } + Frame { + msec: 1760 + hash: "0c09cdcb906b4ce9840fd7502c39e5b9" + } + Frame { + msec: 1776 + hash: "b054083bdd212cc03167a90df2d7eac5" + } + Frame { + msec: 1792 + hash: "83971c2d37616ab92680364d6ac288a6" + } + Frame { + msec: 1808 + hash: "a73951d25e2cb7c1d04c88c86dfa0e4d" + } + Frame { + msec: 1824 + hash: "31fc8b20302abac97e506c37a14bbb7e" + } + Frame { + msec: 1840 + hash: "f760ccd7339e01a9423da7b592498291" + } + Frame { + msec: 1856 + hash: "24dfcd5553f854908396de751fb15b88" + } + Frame { + msec: 1872 + hash: "1daf38a6e6199f980e9494a3eb480047" + } + Frame { + msec: 1888 + hash: "a39e2de1090209e5dbc8cc26577ec97d" + } + Frame { + msec: 1904 + hash: "f4edc780b063e34461263ed3b753be88" + } + Frame { + msec: 1920 + image: "easing.1.png" + } + Frame { + msec: 1936 + hash: "a19b0353604491f56f72be0d20d76955" + } + Frame { + msec: 1952 + hash: "9a70f109eebfcede2311ef77ceb50a44" + } + Frame { + msec: 1968 + hash: "7b28313d6860aeefd4a4e136d38d62f8" + } + Frame { + msec: 1984 + hash: "95d84f38473159fe6b38f84ffe371714" + } + Frame { + msec: 2000 + hash: "07f91261794edb0ac1fde9bb4ff36011" + } + Frame { + msec: 2016 + hash: "f9a4a6b92a9c2d265688f1bfac18fa0a" + } + Frame { + msec: 2032 + hash: "cdec7cc00380fde4f73be997a992251a" + } + Frame { + msec: 2048 + hash: "a52b34f84e98fcd8babb1d39979fc9c7" + } + Frame { + msec: 2064 + hash: "bf05b3c79a9616f2e6c33d348b30e0ba" + } + Frame { + msec: 2080 + hash: "c5931785685b4f4854d3ddfff5dd5466" + } + Frame { + msec: 2096 + hash: "bae163e02b860a9ca19d1bcb60ac1f8e" + } + Frame { + msec: 2112 + hash: "a36295a1ebb35e538f8899ae3ae3b36a" + } + Frame { + msec: 2128 + hash: "b6448d61803d9b2c05b438aa8ce8bcd5" + } + Frame { + msec: 2144 + hash: "631bf4caff2d93ef96a426100ffc5b32" + } + Frame { + msec: 2160 + hash: "a8777c84a03996493f719f5fcfc80d00" + } + Frame { + msec: 2176 + hash: "86e1759df103ef776bb03f24941f49da" + } + Frame { + msec: 2192 + hash: "01a790ea60adeaf368c66bd53aa8fcb3" + } + Frame { + msec: 2208 + hash: "79e5aca8ef6b9764f7f99cdfb51222ae" + } + Frame { + msec: 2224 + hash: "82d10cc01b9be4683c5aa76096bd462c" + } + Frame { + msec: 2240 + hash: "95d961a92c597e432611947f7480796a" + } + Frame { + msec: 2256 + hash: "e8ee89b5313c7e2c66741fe1c2090029" + } + Frame { + msec: 2272 + hash: "2e3e8cf25dc1a3f09e7bf2a086f8e3bb" + } + Frame { + msec: 2288 + hash: "68ca8ad381f48db23d2bc5da9da0c17a" + } + Frame { + msec: 2304 + hash: "e29f2411667049e8fae6c080f61c5869" + } + Frame { + msec: 2320 + hash: "5b0a6fadedf3024e8ecb7f2c73a2277d" + } + Frame { + msec: 2336 + hash: "af2eac625ef1fd928093ccd60bc0058e" + } + Frame { + msec: 2352 + hash: "8a1ff780ebdc9e416e60ea0940e8f2d6" + } + Frame { + msec: 2368 + hash: "7eb316c51cfd8ad972b7040247a651eb" + } + Frame { + msec: 2384 + hash: "1bac7075c10c87a69e71c3859f0db41d" + } + Frame { + msec: 2400 + hash: "0f16f40567729065cf9ecfcc15395a7b" + } + Frame { + msec: 2416 + hash: "719f4e776776f0db5c68ae7c6177e9b7" + } + Frame { + msec: 2432 + hash: "75172dbf31fd8d706f54748c59099845" + } + Frame { + msec: 2448 + hash: "d730b550e05167b05350e0e6636dd97d" + } + Frame { + msec: 2464 + hash: "e1f33eb5f023d9d42a99f8bc23223c45" + } + Frame { + msec: 2480 + hash: "8a4b0df5bed6c7be73c194ce2bb6a271" + } + Frame { + msec: 2496 + hash: "44a9ea371f12d4ac3a569121a995ae16" + } + Frame { + msec: 2512 + hash: "14747e2e9e072210b9d6db50b4f704a1" + } + Frame { + msec: 2528 + hash: "eea52abf430f8cc1adc37e7180036584" + } + Frame { + msec: 2544 + hash: "0a9f6b14bc02e929a45bf4ebb736f9d3" + } + Frame { + msec: 2560 + hash: "a68a6eef0fc8754564c47c88b60d9a2a" + } + Frame { + msec: 2576 + hash: "eeb469e2fbda131d83538055e88ecdf7" + } + Frame { + msec: 2592 + hash: "0f7b673472050e807c9d935fde5afd83" + } + Frame { + msec: 2608 + hash: "80c90cce66bdd2324ca98bc591c22b44" + } + Frame { + msec: 2624 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2640 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2656 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2672 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2688 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2704 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2720 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2736 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2752 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2768 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2784 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2800 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2816 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2832 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2848 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2864 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2880 + image: "easing.2.png" + } + Frame { + msec: 2896 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2912 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2928 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2944 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2960 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2976 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 2992 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 3008 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } + Frame { + msec: 3024 + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + } +} diff --git a/tests/auto/declarative/visual/animation/easing/easing.qml b/tests/auto/declarative/visual/animation/easing/easing.qml new file mode 100644 index 0000000..1e8e907 --- /dev/null +++ b/tests/auto/declarative/visual/animation/easing/easing.qml @@ -0,0 +1,193 @@ +import Qt 4.6 + +Rectangle { + id: item + width: 600 + height: layout.height + color: "white" + resources: [ + ListModel { + id: easingtypes + ListElement { + type: "easeLinear" + } + ListElement { + type: "easeInQuad" + } + ListElement { + type: "easeOutQuad" + } + ListElement { + type: "easeInOutQuad" + } + ListElement { + type: "easeOutInQuad" + } + ListElement { + type: "easeInCubic" + } + ListElement { + type: "easeOutCubic" + } + ListElement { + type: "easeInOutCubic" + } + ListElement { + type: "easeOutInCubic" + } + ListElement { + type: "easeInQuart" + } + ListElement { + type: "easeOutQuart" + } + ListElement { + type: "easeInOutQuart" + } + ListElement { + type: "easeOutInQuart" + } + ListElement { + type: "easeInQuint" + } + ListElement { + type: "easeOutQuint" + } + ListElement { + type: "easeInOutQuint" + } + ListElement { + type: "easeOutInQuint" + } + ListElement { + type: "easeInSine" + } + ListElement { + type: "easeOutSine" + } + ListElement { + type: "easeInOutSine" + } + ListElement { + type: "easeOutInSine" + } + ListElement { + type: "easeInExpo" + } + ListElement { + type: "easeOutExpo" + } + ListElement { + type: "easeInOutExpo" + } + ListElement { + type: "easeOutInExpo" + } + ListElement { + type: "easeInCirc" + } + ListElement { + type: "easeOutCirc" + } + ListElement { + type: "easeInOutCirc" + } + ListElement { + type: "easeOutInCirc" + } + ListElement { + type: "easeInElastic" + } + ListElement { + type: "easeOutElastic" + } + ListElement { + type: "easeInOutElastic" + } + ListElement { + type: "easeOutInElastic" + } + ListElement { + type: "easeInBack" + } + ListElement { + type: "easeOutBack" + } + ListElement { + type: "easeInOutBack" + } + ListElement { + type: "easeOutInBack" + } + ListElement { + type: "easeOutBounce" + } + ListElement { + type: "easeInBounce" + } + ListElement { + type: "easeInOutBounce" + } + ListElement { + type: "easeOutInBounce" + } + } + ] + Column { + id: layout + anchors.left: item.left + anchors.right: item.right + Repeater { + model: easingtypes + Component { + Rectangle { + id: block + Text { + text: type + anchors.centerIn: parent + font.italic: true + color: index & 1 ? "black" : "white" + opacity: 0 // 1 for debugging + } + width: 120 + height: 18 + color: index & 1 ? "red" : "blue" + states: [ + State { + name: "from" + when: !mouse.pressed + PropertyChanges { + target: block + x: 0 + } + }, + State { + name: "to" + when: mouse.pressed + PropertyChanges { + target: block + x: item.width-block.width + } + } + ] + transitions: [ + Transition { + from: "*" + to: "to" + reversible: true + NumberAnimation { + matchProperties: "x" + easing: type + duration: 1000 + } + } + ] + } + } + } + } + MouseRegion { + id: mouse + anchors.fill: layout + } +} diff --git a/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png new file mode 100644 index 0000000..399bd0b Binary files /dev/null and b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png new file mode 100644 index 0000000..82c18d7 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png new file mode 100644 index 0000000..b9a3b89 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png new file mode 100644 index 0000000..789615b Binary files /dev/null and b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml new file mode 100644 index 0000000..5f5b8fc --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml @@ -0,0 +1,463 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 32 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 48 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 64 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 80 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 96 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 112 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 128 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 144 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 160 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 176 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 192 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 208 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 224 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 240 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 256 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 272 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 288 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 304 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 320 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 336 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 352 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 368 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 384 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 400 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 416 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 432 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 448 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 464 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 480 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 496 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 512 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 528 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 544 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 560 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 576 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 592 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 608 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 624 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 640 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 656 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 672 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 688 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 704 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 720 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 736 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 752 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 137; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 768 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 784 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 800 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 816 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 832 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 848 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 864 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 137; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 880 + hash: "4faa7727bafeea0771f2db62f0141ac9" + } + Frame { + msec: 896 + hash: "0fada111cb977c4de8c7499e44714f38" + } + Frame { + msec: 912 + hash: "1817e010332117dcddc1a1b1a2caf52d" + } + Frame { + msec: 928 + hash: "e4add6bf93479c9bca571419fe2fabf9" + } + Frame { + msec: 944 + hash: "d8812e206d2cbf434d58db6a35439a44" + } + Frame { + msec: 960 + image: "parallelAnimation.0.png" + } + Frame { + msec: 976 + hash: "a238178c584aaf2563d29bff927d5bab" + } + Frame { + msec: 992 + hash: "f583e9fe8feda02e796a61c5fed7b0eb" + } + Frame { + msec: 1008 + hash: "b3a1a4fd85912831e551a8c07da1a561" + } + Frame { + msec: 1024 + hash: "f7c111ee4a04af6c1da958f8b56c28ee" + } + Frame { + msec: 1040 + hash: "f53fa374817d81ee44fb98e64e464b36" + } + Frame { + msec: 1056 + hash: "547ddef13cbcaaf57bb1f4e2bb7bc822" + } + Frame { + msec: 1072 + hash: "8b10ccfef926103a6d67d68eee250f83" + } + Frame { + msec: 1088 + hash: "008bbb50dc659e6f5eea15290680edd7" + } + Frame { + msec: 1104 + hash: "0217e3230d3df44363a023d0d7defc5f" + } + Frame { + msec: 1120 + hash: "ab9907a92452de6878f4c346febe705c" + } + Frame { + msec: 1136 + hash: "7bce31f347a7f0598d2d64026c702f3e" + } + Frame { + msec: 1152 + hash: "032080184907bc5b01db7675802d7dbe" + } + Frame { + msec: 1168 + hash: "2cba43a2e5febcc44bfd1379b9cb2591" + } + Frame { + msec: 1184 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1200 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1216 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1232 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1248 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1264 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1280 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1296 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1312 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1328 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1344 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1360 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1376 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1392 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1408 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1424 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1440 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1456 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1472 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1488 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1504 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 1520 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1536 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1552 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1568 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1584 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1600 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1616 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1632 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1648 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1664 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1680 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1696 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1712 + hash: "b901a51b5605621adff7b34c61f8f320" + } + Frame { + msec: 1728 + hash: "b901a51b5605621adff7b34c61f8f320" + } +} diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml new file mode 100644 index 0000000..9e0422f --- /dev/null +++ b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml @@ -0,0 +1,43 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 200 + Rectangle { + id: redRect + width: 100; height: 100 + color: "red" + } + Rectangle { + id: redRect2 + width: 100; height: 100 + y: 100 + color: "red" + } + + MouseRegion { + anchors.fill: parent + onClicked: parent.state = "state1" + } + + states: State { + name: "state1" + PropertyChanges { + target: redRect + x: 300 + color: "purple" + } + PropertyChanges { + target: redRect2 + x: 300 + color: "purple" + } + } + + transitions: Transition { + PropertyAnimation { matchTargets: redRect; matchProperties: "x,color"; duration: 300 } + ParallelAnimation { + NumberAnimation { matchTargets: redRect2; matchProperties: "x"; duration: 300 } + ColorAnimation { matchTargets: redRect2; matchProperties: "color"; duration: 300 } + } + } +} diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png new file mode 100644 index 0000000..a0032f8 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png new file mode 100644 index 0000000..958b6af Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png new file mode 100644 index 0000000..3a1811f Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png new file mode 100644 index 0000000..36064c2 Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png new file mode 100644 index 0000000..c493a1d Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png new file mode 100644 index 0000000..c493a1d Binary files /dev/null and b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png differ diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml new file mode 100644 index 0000000..de27af7 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml @@ -0,0 +1,1207 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 32 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 48 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 64 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 80 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 96 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 112 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 128 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 144 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 160 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 176 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 192 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 208 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 224 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 240 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 256 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 272 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 288 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 304 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 320 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 336 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 352 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 368 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 384 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 400 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 416 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 432 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 448 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 464 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 480 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 496 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 512 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 528 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 544 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 560 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 576 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 150; y: 274 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 592 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 608 + hash: "a7bb3d44c8bcf403906afa86f5bc3062" + } + Frame { + msec: 624 + hash: "2b366e6009e70fa0227a1fee662fe1bf" + } + Frame { + msec: 640 + hash: "c12869fb8002aa36c3bfad7fd0979240" + } + Frame { + msec: 656 + hash: "56c583e77b5e0a8707e977dc937c2acf" + } + Frame { + msec: 672 + hash: "6b191d57a45a3f2d010a7f44064e409a" + } + Frame { + msec: 688 + hash: "9457ee33c999a63fa4bd4db5c3ceac8b" + } + Frame { + msec: 704 + hash: "446b23b662640ad6ad8c456f956fe73a" + } + Frame { + msec: 720 + hash: "23c59708069406486e4979c7d59f3f4a" + } + Frame { + msec: 736 + hash: "c9ce43ddca79b5b6f26af2c2259dc071" + } + Frame { + msec: 752 + hash: "e838229ba70c30112918f19bb471fa34" + } + Frame { + msec: 768 + hash: "0cbaeddb2ff6408a37a68fc685e2bca0" + } + Frame { + msec: 784 + hash: "616b4ec719586b151ba3d709e51038bf" + } + Frame { + msec: 800 + hash: "89b2c709f5c3083c204a9450e605c1d4" + } + Frame { + msec: 816 + hash: "427a5c2d13631d899ff2d673e762f114" + } + Frame { + msec: 832 + hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb" + } + Frame { + msec: 848 + hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4" + } + Frame { + msec: 864 + hash: "5607ea54f9990f3232d6f56080e1ef15" + } + Frame { + msec: 880 + hash: "600682467c55288b9d5e65299637dd72" + } + Frame { + msec: 896 + hash: "bc7a238611574a13650f854ceac35032" + } + Frame { + msec: 912 + hash: "e5f6b19b3685a96d4d0c3b8384513643" + } + Frame { + msec: 928 + hash: "d5d23b0fc09136fd1ae121e311866cc3" + } + Frame { + msec: 944 + hash: "5099e5edd1a6bd37f5f6c836a6ca7644" + } + Frame { + msec: 960 + image: "parentAction.0.png" + } + Frame { + msec: 976 + hash: "97dd20f7774cfd8379e1d1b44f8ddc7b" + } + Frame { + msec: 992 + hash: "ab2deea9e4f8c43ed58b5a355800ecda" + } + Frame { + msec: 1008 + hash: "88ec383ce368259d3cc18612b6f5b941" + } + Frame { + msec: 1024 + hash: "f84b20b849a77e50717f99b9d844240e" + } + Frame { + msec: 1040 + hash: "6c042360c2d24ad56cec32d01ce82d6b" + } + Frame { + msec: 1056 + hash: "c86b464720192f3e039fa5d8ab5f09bb" + } + Frame { + msec: 1072 + hash: "35ec432fdf91fcd1dfcd945cfe785b09" + } + Frame { + msec: 1088 + hash: "27a2ec28e4fef006622e8211fd709853" + } + Frame { + msec: 1104 + hash: "8454d1f5ed89551e2a403c869885116a" + } + Frame { + msec: 1120 + hash: "7e33aed53dc4338c168274d972c8e711" + } + Frame { + msec: 1136 + hash: "e0192ea2049d6bae6012f00406630a92" + } + Frame { + msec: 1152 + hash: "a2ea5489a373084169024035a0f69e71" + } + Frame { + msec: 1168 + hash: "6947a72c4d959b90dafdaddcac815b3e" + } + Frame { + msec: 1184 + hash: "0e22cc3c96d0934095b7254f0f28b18b" + } + Frame { + msec: 1200 + hash: "72529ddc6f2678a783aedf445d7038a4" + } + Frame { + msec: 1216 + hash: "38f03c0ee50488ffd23a2fb3d3445461" + } + Frame { + msec: 1232 + hash: "b441721ed30c787874a2a71a94e1ba44" + } + Frame { + msec: 1248 + hash: "1e37f26d78590414b2ef01c72ad136a9" + } + Frame { + msec: 1264 + hash: "88e4af80d068485ebd8c3d51f9bbfe8d" + } + Frame { + msec: 1280 + hash: "107707216c16c629d8409cf006f9f2dc" + } + Frame { + msec: 1296 + hash: "f56f3f4f140ac072f7df47eddfc76844" + } + Frame { + msec: 1312 + hash: "41239a9d8ed793c24967875aabeae8a5" + } + Frame { + msec: 1328 + hash: "30035e37320dae4f9ead01a30895eb38" + } + Frame { + msec: 1344 + hash: "fb2f535b42b862b65f8adb3ad1a46779" + } + Frame { + msec: 1360 + hash: "e10ba7f74d52fc963e20a4647ff0d620" + } + Frame { + msec: 1376 + hash: "5abf5388566bed2fdb71afc8cd7cfe9b" + } + Frame { + msec: 1392 + hash: "91990471563e3c8292e8e8325a1d17a2" + } + Frame { + msec: 1408 + hash: "59a6293a48f83a9197adcffed3f32f15" + } + Frame { + msec: 1424 + hash: "db3e75df318e9f0d239ce9b76e92eff3" + } + Frame { + msec: 1440 + hash: "3b5c64bc64a701edb5c2e40b23443bc3" + } + Frame { + msec: 1456 + hash: "9db08c0375148b2317427591b5f43608" + } + Frame { + msec: 1472 + hash: "2d761f1530846eff87a7625a120e0afd" + } + Frame { + msec: 1488 + hash: "c5460f8c58b83c2ac15842ddb023ad4f" + } + Frame { + msec: 1504 + hash: "0efb51810a2dc359c7964268c98ea8eb" + } + Frame { + msec: 1520 + hash: "b92a42012df57eb261badf1f518b8e67" + } + Frame { + msec: 1536 + hash: "8d348bae62af2d35bdfee806a1c39910" + } + Frame { + msec: 1552 + hash: "762d9bb4ed11d249bfd902a541129d60" + } + Frame { + msec: 1568 + hash: "bddbd9f64a9f7156984feccd5fa94093" + } + Frame { + msec: 1584 + hash: "353a98e1573b0518941ff22bf2776244" + } + Frame { + msec: 1600 + hash: "1765aed97e29f25dee93a77a06557b82" + } + Frame { + msec: 1616 + hash: "73b5c2bdb7f268f7a33e129c8ba44013" + } + Frame { + msec: 1632 + hash: "46ac1976fb9932d0ef6e0b5927386ad9" + } + Frame { + msec: 1648 + hash: "90b5b5b46c9c352e8be41cc74f96133a" + } + Frame { + msec: 1664 + hash: "0efe0036577c890fd45cd7dd53014616" + } + Frame { + msec: 1680 + hash: "7f32df17481abf40ccb33afe6d17085d" + } + Frame { + msec: 1696 + hash: "1fa8544c48a476764f4f8278c14b651d" + } + Frame { + msec: 1712 + hash: "f8f06ece30f690deeba5999ce63bf40b" + } + Frame { + msec: 1728 + hash: "885b230f4b2fe380c7cf68955940d206" + } + Frame { + msec: 1744 + hash: "d0fc5aa4df46099bb46a1d7db30baa09" + } + Frame { + msec: 1760 + hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740" + } + Frame { + msec: 1776 + hash: "aa3b3b03460daf54f085551e1a46c08b" + } + Frame { + msec: 1792 + hash: "35a1728a2430027a9474fb7d61090643" + } + Frame { + msec: 1808 + hash: "2b1cff3986b8b03f1061176a4722b0f9" + } + Frame { + msec: 1824 + hash: "8047be1b35ee3d5078a68c6cdc35eeb7" + } + Frame { + msec: 1840 + hash: "7f7afa48bb7d612b354c8488e72c8339" + } + Frame { + msec: 1856 + hash: "691a876caefce9aa0f5140c17059b8f4" + } + Frame { + msec: 1872 + hash: "903bec66e47db766dc431f060726988c" + } + Frame { + msec: 1888 + hash: "f13593fc891f0b050c01b61963019da1" + } + Frame { + msec: 1904 + hash: "aa00de965bdb370a5974b195c3fb38af" + } + Frame { + msec: 1920 + image: "parentAction.1.png" + } + Frame { + msec: 1936 + hash: "168d3e27261c0943e6262b6be27adfb0" + } + Frame { + msec: 1952 + hash: "6fafebd0b396e7c0a78c767c6af936ba" + } + Frame { + msec: 1968 + hash: "827e3a3fcd6fd8588e9fcc043769b3a8" + } + Frame { + msec: 1984 + hash: "155329bf1c1a6f6c37bf7e6e8a92c59b" + } + Frame { + msec: 2000 + hash: "d3008d1e7cee5170171699ef6fb9aa81" + } + Frame { + msec: 2016 + hash: "5c1244e7806e131a6063f22a66e4eb12" + } + Frame { + msec: 2032 + hash: "fcd6b372229a6cf14face81e9d614456" + } + Frame { + msec: 2048 + hash: "bf1a375a81bf43c5671cccc62e9a0462" + } + Frame { + msec: 2064 + hash: "0e22404508470baaa6621f37361951fa" + } + Frame { + msec: 2080 + hash: "45046f28c103caa161e41861f71731c4" + } + Frame { + msec: 2096 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2112 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2128 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2144 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2160 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2176 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2192 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2208 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2224 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2240 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2256 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2272 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2288 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2304 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2320 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2336 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2352 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2368 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2384 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2400 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2416 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2432 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2448 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2464 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2480 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2496 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2512 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2528 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2544 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2560 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2576 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2592 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2608 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2624 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2640 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2656 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2672 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2688 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2704 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2720 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2736 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2752 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 150; y: 274 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "7a92731c713470a2b2c91fd6b83447de" + } + Frame { + msec: 2784 + hash: "44a0b46c21bd4c76d44883ba146e3614" + } + Frame { + msec: 2800 + hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9" + } + Frame { + msec: 2816 + hash: "ea9c05c0295a300e21aacbdfd5b4968e" + } + Frame { + msec: 2832 + hash: "e630e2893f89a6ae536bcbd1a084af07" + } + Frame { + msec: 2848 + hash: "af56f1e79eb3746efb9e4bcbc3fbced8" + } + Frame { + msec: 2864 + hash: "96be8c3ba0d7a85c6f6df877b869b563" + } + Frame { + msec: 2880 + image: "parentAction.2.png" + } + Frame { + msec: 2896 + hash: "603d8684cb6f097e3ab2a2e5ef053112" + } + Frame { + msec: 2912 + hash: "0433d242d1dd40a3792f55f807ebbff4" + } + Frame { + msec: 2928 + hash: "1190067cacc7361f6cfe09f153c7a07e" + } + Frame { + msec: 2944 + hash: "98e917880471511122847ad8a406e3a3" + } + Frame { + msec: 2960 + hash: "fff06869074a3a6c5823ed3fb6fa7a43" + } + Frame { + msec: 2976 + hash: "602d95daee8f160a0fd784931d0a06bd" + } + Frame { + msec: 2992 + hash: "f7e466bbd52f40e88ff567758f4db835" + } + Frame { + msec: 3008 + hash: "54417a4c4fb71d458439ad2e2126f8e1" + } + Frame { + msec: 3024 + hash: "fe150dd5056b9dbf1cd0b196e9a7a47b" + } + Frame { + msec: 3040 + hash: "1384c871bead85916f7bfcdebc370697" + } + Frame { + msec: 3056 + hash: "5f13339cc0e604b75a9d1d85342fa717" + } + Frame { + msec: 3072 + hash: "655069d61b7a44e729a2cbb33d683c3e" + } + Frame { + msec: 3088 + hash: "2324e9e4a02e41855b066983dbf0e61d" + } + Frame { + msec: 3104 + hash: "0217baf091325b95c033ba073bd68ce5" + } + Frame { + msec: 3120 + hash: "c27854c3af5b58db85846a1762ab18ba" + } + Frame { + msec: 3136 + hash: "45246ee6383ceb6260f84571a885ba90" + } + Frame { + msec: 3152 + hash: "d82ded86f093d1a376994cacf43d0343" + } + Frame { + msec: 3168 + hash: "c9179d30f80c6101bca2bed40d6a859f" + } + Frame { + msec: 3184 + hash: "a63e032d20a9d985c6c345434d98a364" + } + Frame { + msec: 3200 + hash: "fc7d6797ce15edf7fadb9dae691ecd5c" + } + Frame { + msec: 3216 + hash: "76cf37ad8c50fed8b1900784b647819c" + } + Frame { + msec: 3232 + hash: "256aab3690c9ba928bb4d4dd3bbfc756" + } + Frame { + msec: 3248 + hash: "90cab52fdefbae4e7d0f0f93b46ebeb0" + } + Frame { + msec: 3264 + hash: "badb5103bf826dc467f6e620cc2b47be" + } + Frame { + msec: 3280 + hash: "e7d0e437de5ebc0fa07b2a4ef11159cb" + } + Frame { + msec: 3296 + hash: "5931b1c3932ab91446324165d7e2603a" + } + Frame { + msec: 3312 + hash: "ce1808db90ba955ab3cb845500f4c013" + } + Frame { + msec: 3328 + hash: "142f8a440d1fe2d868f47ba3006de9d7" + } + Frame { + msec: 3344 + hash: "10d32a6cc90319ea66d7f2c1241590ce" + } + Frame { + msec: 3360 + hash: "7f633559d715396e6de451b3dd2fadbd" + } + Frame { + msec: 3376 + hash: "d44590ae51ceef5e082747c44bc41be9" + } + Frame { + msec: 3392 + hash: "2b498181668fb1fbf65294d575654929" + } + Frame { + msec: 3408 + hash: "7efeeffd08e4de440da83511313de729" + } + Frame { + msec: 3424 + hash: "8de2331393d1e712192d11ed096836d3" + } + Frame { + msec: 3440 + hash: "fa9381ef2e295865a9b8cb9b36a0eacf" + } + Frame { + msec: 3456 + hash: "97debc4432c5ecb7f606a81e5411b02c" + } + Frame { + msec: 3472 + hash: "eb4c1bb1f4398e3c18182c28a015be76" + } + Frame { + msec: 3488 + hash: "a976aa509f4c6f309d9a6011eeae02aa" + } + Frame { + msec: 3504 + hash: "457de7ee05e0ef0ef120a3d4e371c02e" + } + Frame { + msec: 3520 + hash: "0c01f9f150fe33155fa20703735a6d27" + } + Frame { + msec: 3536 + hash: "5af4f80624082a264010247ea8630a1a" + } + Frame { + msec: 3552 + hash: "b23a1191d149549fa29a61b6dc70f037" + } + Frame { + msec: 3568 + hash: "e00fb32cb13b1347e4b7b9fdbcca68e5" + } + Frame { + msec: 3584 + hash: "fef0503c82f253f8bc3fb3e705a98aa7" + } + Frame { + msec: 3600 + hash: "7a9beca28340d2aa89da5e05f5ac2a55" + } + Frame { + msec: 3616 + hash: "f3c57ea07ab486ffa1f46da60de0b8f1" + } + Frame { + msec: 3632 + hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f" + } + Frame { + msec: 3648 + hash: "1b317a9eb4ce022f005d551546c688a4" + } + Frame { + msec: 3664 + hash: "628e912a4a26800b9b7b5e60e60e3a7d" + } + Frame { + msec: 3680 + hash: "3587b75e4d834a88729754d2c2a4b193" + } + Frame { + msec: 3696 + hash: "084bc1360a38123589baec5aae15b4ff" + } + Frame { + msec: 3712 + hash: "47f0f6c3cdf456826a6fd6846e58dcc8" + } + Frame { + msec: 3728 + hash: "ed982c4c3ebd132baaaf43efad40a3f7" + } + Frame { + msec: 3744 + hash: "d7ddce47c23fada4c69d53d934582d71" + } + Frame { + msec: 3760 + hash: "74f2f911bee26c4c551f4c70596753ae" + } + Frame { + msec: 3776 + hash: "3ed7cbf10dfce3a485d7878766cf9da6" + } + Frame { + msec: 3792 + hash: "87a74257551ab6c7fcfe05e815482ae9" + } + Frame { + msec: 3808 + hash: "4f63e4904e97d4ce832b20b7317a9958" + } + Frame { + msec: 3824 + hash: "f912da8781e547c6e28890655c1b8884" + } + Frame { + msec: 3840 + image: "parentAction.3.png" + } + Frame { + msec: 3856 + hash: "faa640ccf993324400254ffb862ac279" + } + Frame { + msec: 3872 + hash: "b67f342424d1b9a364b09da8994fcd6b" + } + Frame { + msec: 3888 + hash: "b2407732194c1e0c2a9bfb379b94b562" + } + Frame { + msec: 3904 + hash: "55733608d0302ef90c124322ac6d8dc6" + } + Frame { + msec: 3920 + hash: "734f5b628a26d3d7c91ee84fb26d5b5f" + } + Frame { + msec: 3936 + hash: "27839fefa4a218cd77843358392bb874" + } + Frame { + msec: 3952 + hash: "8cac19559d37bd2b581cef0a4c707753" + } + Frame { + msec: 3968 + hash: "91422870aa1471571e7dd8ff5103f76c" + } + Frame { + msec: 3984 + hash: "7156166d5f8d13483467ef515627c95d" + } + Frame { + msec: 4000 + hash: "6028e8374c2ce42a9a9e85b4a8b53027" + } + Frame { + msec: 4016 + hash: "17c99592be58d2e03f9f173c47c0649b" + } + Frame { + msec: 4032 + hash: "6084b53186c6a7eda38ac7fa34bf45ce" + } + Frame { + msec: 4048 + hash: "e82131a8a5a06519f49308bbc25738cf" + } + Frame { + msec: 4064 + hash: "77bdb69cbe55d9c503c6aa1c0f974d87" + } + Frame { + msec: 4080 + hash: "b2346ec5d376651347281d5fb00fc4d7" + } + Frame { + msec: 4096 + hash: "36a3b72c9d7f09795c546855a269801d" + } + Frame { + msec: 4112 + hash: "4e5478b33baca797f3f8f72c2c6c51ad" + } + Frame { + msec: 4128 + hash: "e59d12be3ed1f58de010d385ddfe78e5" + } + Frame { + msec: 4144 + hash: "9674106a146effd47c2724a2dd82ae84" + } + Frame { + msec: 4160 + hash: "862cec781f169f713032e6d52d3616ce" + } + Frame { + msec: 4176 + hash: "c8d47bdfb6518ef4827677023313d559" + } + Frame { + msec: 4192 + hash: "19413931b3e788067dfaef39b47d30ff" + } + Frame { + msec: 4208 + hash: "600e426532c0348cd622257b0773efd5" + } + Frame { + msec: 4224 + hash: "6d975e259d4efa108375d271451531c1" + } + Frame { + msec: 4240 + hash: "50b0da4848564c063694202ce16ea808" + } + Frame { + msec: 4256 + hash: "0a9450739031f680735b5210e6a30c3f" + } + Frame { + msec: 4272 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4288 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4304 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4320 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4336 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4352 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4368 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4384 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4400 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4416 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4432 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4448 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4464 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4480 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4496 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4512 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4528 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4544 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 4560 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4576 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4592 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4608 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4624 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4640 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4656 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4672 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4688 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } + Frame { + msec: 4704 + hash: "23ce049cd7e715c28f5845fd1a1fc195" + } +} diff --git a/tests/auto/declarative/visual/animation/parentAction/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml new file mode 100644 index 0000000..e69d234 --- /dev/null +++ b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml @@ -0,0 +1,55 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Item { + scale: .5 + rotation: 15 + transformOrigin: "Center" + x: 10; y: 10 + Rectangle { + id: MyRect + x: 5 + width: 100; height: 100 + transformOrigin: "BottomLeft" + color: "red" + } + } + MouseRegion { + id: Clickable + anchors.fill: parent + } + + Item { + x: 200; y: 200 + rotation: 52; + scale: 2 + Item { + id: newParent + x: 100; y: 100 + } + } + + states: State { + name: "moved" + when: Clickable.pressed + ParentChange { + target: MyRect + parent: newParent + } + PropertyChanges { + target: MyRect + rotation: -52 + scale: 1 + color: "blue" + } + } + + transitions: Transition { + SequentialAnimation { + ColorAnimation { duration: 500} + ParentAction {} + NumberAnimation { matchProperties: "rotation, scale"; duration: 1000 } + } + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png new file mode 100644 index 0000000..693a794 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png new file mode 100644 index 0000000..06d43f1 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png new file mode 100644 index 0000000..e619baf Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png new file mode 100644 index 0000000..30c7671 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png new file mode 100644 index 0000000..132803c Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png new file mode 100644 index 0000000..8372bc3 Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png differ diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml new file mode 100644 index 0000000..73c6542 --- /dev/null +++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml @@ -0,0 +1,1619 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 32 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 48 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 64 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 80 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 96 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 112 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 128 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 144 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 160 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 176 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 192 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 208 + hash: "21f0b0437a999bbde66a913032d495c2" + } + Frame { + msec: 224 + hash: "0809d32d5bc1bfce199b1f39a1c68d4f" + } + Frame { + msec: 240 + hash: "022137587b39f5123835482178a1f1cf" + } + Frame { + msec: 256 + hash: "97566ce9558d13ea0780bce233097b27" + } + Frame { + msec: 272 + hash: "96d79b07da105b7f631ed61582b26f7e" + } + Frame { + msec: 288 + hash: "f4732ff2df93fe67cb850dec34184924" + } + Frame { + msec: 304 + hash: "054e6e52f74a3e24f04e6ad0071f79f8" + } + Frame { + msec: 320 + hash: "f541af93a9fde62e4bd1c91d30f91e65" + } + Frame { + msec: 336 + hash: "c4f844ee71f23635bb3ec7375f6a134f" + } + Frame { + msec: 352 + hash: "3e52e06db2bf78762bb9816fe6b105d9" + } + Frame { + msec: 368 + hash: "d9604be23a91327e6ab454609a9d4a13" + } + Frame { + msec: 384 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 400 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 416 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 432 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 448 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 464 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 480 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 496 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 512 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 528 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 544 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 560 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 576 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 592 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 608 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 624 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 640 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 656 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 672 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 688 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 704 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 720 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 736 + hash: "7d9096b1eb940c82a37baf39ef3ccf3e" + } + Frame { + msec: 752 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 768 + hash: "da60100dc55023c3bab367d97c8f6a85" + } + Frame { + msec: 784 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 800 + hash: "3f869538028a09020d5e8f528f4fb119" + } + Frame { + msec: 816 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 832 + hash: "2cb09d9655ecc30ae6a591b28c0d355c" + } + Frame { + msec: 848 + hash: "4db9bc6c11caf1d77794c2eabb62a44e" + } + Frame { + msec: 864 + hash: "ce2b5dd7418868acf86fea6ad19cc0c5" + } + Frame { + msec: 880 + hash: "7c27ef654e645679c90520d6cf00b0c4" + } + Frame { + msec: 896 + hash: "ab3e211df3ef7f5f7a8d712edc891c0f" + } + Frame { + msec: 912 + hash: "19d2ae617a49b57dd012677e2834469c" + } + Frame { + msec: 928 + hash: "5025eb75c88f0760f637e0342b7f88a2" + } + Frame { + msec: 944 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 960 + image: "pauseAnimation.0.png" + } + Frame { + msec: 976 + hash: "5f18a81707f23d377e81a27c1fc41ce9" + } + Frame { + msec: 992 + hash: "bcc35497884c158396c7f60759d1fda4" + } + Frame { + msec: 1008 + hash: "7a4528b000a4ea142d1c77407fa1f581" + } + Frame { + msec: 1024 + hash: "ba967a7d810a4531e577e5f6bd2def33" + } + Frame { + msec: 1040 + hash: "f5afd9cf8ffe27e9992454b9e68688cb" + } + Frame { + msec: 1056 + hash: "51d475c7f64a86d3a18fb115297a7b6b" + } + Frame { + msec: 1072 + hash: "49f5d6fd45c195a8d245b7fefc1277ab" + } + Frame { + msec: 1088 + hash: "f9b0b278659e3a0f78611e6b7f0f2176" + } + Frame { + msec: 1104 + hash: "0809d32d5bc1bfce199b1f39a1c68d4f" + } + Frame { + msec: 1120 + hash: "b7208d103b63a936dff8dd8ed224237f" + } + Frame { + msec: 1136 + hash: "a57c81049b0dc68090ec7c3327b9922c" + } + Frame { + msec: 1152 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1168 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1184 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1200 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1216 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 1232 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 1248 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 1264 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 1280 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 1296 + hash: "336d31586171f22d541b989d24b95cbb" + } + Frame { + msec: 1312 + hash: "f0d8132489c2f2ef760e905b3c093726" + } + Frame { + msec: 1328 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 1344 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1360 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 1376 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 1392 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1408 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 1424 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 1440 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1456 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1472 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1488 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1504 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1520 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1536 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1552 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1568 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1584 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1600 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1616 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1632 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1648 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 1664 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1680 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 1696 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1712 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 1728 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 1744 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1760 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 1776 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 1792 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 1808 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 1824 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 1840 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 1856 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 1872 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 1888 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 1904 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 1920 + image: "pauseAnimation.1.png" + } + Frame { + msec: 1936 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 1952 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 1968 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 1984 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2000 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2016 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 2032 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2048 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2064 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2080 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2096 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2112 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2128 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2144 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2160 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2176 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2192 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2208 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 2224 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2240 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 2256 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2272 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 2288 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 2304 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2320 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2336 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2352 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2368 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2384 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2400 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2416 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2432 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 2448 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2464 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2480 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2496 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 2512 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2528 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2544 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2560 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2576 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2592 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2608 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2624 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2640 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2656 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2672 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2688 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2704 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2720 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2736 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2752 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2768 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2784 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2800 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2816 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2832 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2848 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2864 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2880 + image: "pauseAnimation.2.png" + } + Frame { + msec: 2896 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2912 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2928 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2944 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2960 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2976 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 2992 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3008 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3024 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3040 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3056 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3072 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3088 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3104 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3120 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3136 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3152 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3168 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3184 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3200 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3216 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3232 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3248 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3264 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3280 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3296 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3312 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3328 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3344 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3360 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3376 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3392 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3408 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3424 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3440 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3456 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3472 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3488 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3504 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3520 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3536 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 3552 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 3568 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 3584 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 3600 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 3616 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 3632 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 3648 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 3664 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 3680 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 3696 + hash: "630d90eef2673a69e8ebc4ef1ba40e81" + } + Frame { + msec: 3712 + hash: "b7208d103b63a936dff8dd8ed224237f" + } + Frame { + msec: 3728 + hash: "1516c3547c7cf64832b3bc7da7c44521" + } + Frame { + msec: 3744 + hash: "49f5d6fd45c195a8d245b7fefc1277ab" + } + Frame { + msec: 3760 + hash: "f5afd9cf8ffe27e9992454b9e68688cb" + } + Frame { + msec: 3776 + hash: "7a4528b000a4ea142d1c77407fa1f581" + } + Frame { + msec: 3792 + hash: "5f18a81707f23d377e81a27c1fc41ce9" + } + Frame { + msec: 3808 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 3824 + hash: "85c135ef72d3d25658a3663e69ffb7c2" + } + Frame { + msec: 3840 + image: "pauseAnimation.3.png" + } + Frame { + msec: 3856 + hash: "20258f07c613958c32f783466771391a" + } + Frame { + msec: 3872 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 3888 + hash: "f340cdf60c6d4c29d26b7202a093ec70" + } + Frame { + msec: 3904 + hash: "d754d35d0793f9f7d4f6249a874e4c45" + } + Frame { + msec: 3920 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 3936 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 3952 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 3968 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 3984 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4000 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4016 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4032 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4048 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4064 + hash: "29ece1bca4d21fb5862091317d430a13" + } + Frame { + msec: 4080 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4096 + hash: "c1a7b7d6d64ac5584c073c2881290696" + } + Frame { + msec: 4112 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 4128 + hash: "4ac43a03cc6f2020ab5f894d704092ac" + } + Frame { + msec: 4144 + hash: "ffd39c1122fe2f7877ef30591b539b40" + } + Frame { + msec: 4160 + hash: "62a7133012348f2ec3a388fb685ecc3f" + } + Frame { + msec: 4176 + hash: "45281a70021f81dbef30334b1480da1b" + } + Frame { + msec: 4192 + hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" + } + Frame { + msec: 4208 + hash: "79ec710576427df73dd03f39fba6e2eb" + } + Frame { + msec: 4224 + hash: "5be4f5c67941efb6fcea363c79f1e321" + } + Frame { + msec: 4240 + hash: "7d9096b1eb940c82a37baf39ef3ccf3e" + } + Frame { + msec: 4256 + hash: "e87b00bfc2c2a75a4234ec02a057ad3a" + } + Frame { + msec: 4272 + hash: "da60100dc55023c3bab367d97c8f6a85" + } + Frame { + msec: 4288 + hash: "dc98a9bdd99367c1e9b838d4be489dcc" + } + Frame { + msec: 4304 + hash: "b2c778a5eff5f01edc54f03d8b4de8c7" + } + Frame { + msec: 4320 + hash: "9650fd0364c01b11e4f5dcce51d008af" + } + Frame { + msec: 4336 + hash: "2cb09d9655ecc30ae6a591b28c0d355c" + } + Frame { + msec: 4352 + hash: "4db9bc6c11caf1d77794c2eabb62a44e" + } + Frame { + msec: 4368 + hash: "ce2b5dd7418868acf86fea6ad19cc0c5" + } + Frame { + msec: 4384 + hash: "c4f844ee71f23635bb3ec7375f6a134f" + } + Frame { + msec: 4400 + hash: "4e1fda8a0495ef968c1cffb1257426d7" + } + Frame { + msec: 4416 + hash: "19d2ae617a49b57dd012677e2834469c" + } + Frame { + msec: 4432 + hash: "f438e8d2c16b5de677924c8411219b19" + } + Frame { + msec: 4448 + hash: "005acbef952a8ee536e6308a48223e65" + } + Frame { + msec: 4464 + hash: "87b71778d52cd8563d171151d4d32407" + } + Frame { + msec: 4480 + hash: "691cd8bf5c7802ff6c5024827a379fc6" + } + Frame { + msec: 4496 + hash: "ab442c0173c3d221b6782d28001dac77" + } + Frame { + msec: 4512 + hash: "6f886d4538704c2fad4d84c68214109f" + } + Frame { + msec: 4528 + hash: "56d39f233fae41c60499d6161f891cbc" + } + Frame { + msec: 4544 + hash: "95d987c3fd1352fb81c42c63634fe53b" + } + Frame { + msec: 4560 + hash: "96dc84c0c548021910e7c5b580179054" + } + Frame { + msec: 4576 + hash: "ddb71cbd57f6e43744d533d4f72b08db" + } + Frame { + msec: 4592 + hash: "f7ab4b197bea455b22f259913438d207" + } + Frame { + msec: 4608 + hash: "2ad64cb01c9d50e0118d5ece0a644df2" + } + Frame { + msec: 4624 + hash: "6579681c59dd571df0ee4429d74fb5c7" + } + Frame { + msec: 4640 + hash: "630d90eef2673a69e8ebc4ef1ba40e81" + } + Frame { + msec: 4656 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 4672 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 4688 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 4704 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 4720 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 4736 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 4752 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 4768 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 4784 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 4800 + image: "pauseAnimation.4.png" + } + Frame { + msec: 4816 + hash: "f0d8132489c2f2ef760e905b3c093726" + } + Frame { + msec: 4832 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 4848 + hash: "dd60cbaff6f34027474e92315dbc0ebc" + } + Frame { + msec: 4864 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 4880 + hash: "bc426fb7c31751665b0d3f16e2cb0173" + } + Frame { + msec: 4896 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 4912 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 4928 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 4944 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 4960 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 4976 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 4992 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5008 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5024 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5040 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5056 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5072 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5088 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5104 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5120 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5136 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5152 + hash: "1373545e43fff7251cec9e8375ea267f" + } + Frame { + msec: 5168 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5184 + hash: "e553f365912586c6408c8c53b1b7d118" + } + Frame { + msec: 5200 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5216 + hash: "3db5e30ef19ea693c21ccf72892c4390" + } + Frame { + msec: 5232 + hash: "a88a8129259f86df5a73addc3649ad37" + } + Frame { + msec: 5248 + hash: "a8b624ebfc9ab713d1ce55f318a6e90d" + } + Frame { + msec: 5264 + hash: "af3120fe262d2489c0ed33fbbee1549f" + } + Frame { + msec: 5280 + hash: "721d7061811b5439c2e8e395917494bc" + } + Frame { + msec: 5296 + hash: "53ae93140252373eaa4d9da73756bd8e" + } + Frame { + msec: 5312 + hash: "b3f4a2165ec1ee971542b8ef89656cea" + } + Frame { + msec: 5328 + hash: "0c20d12464abbdc45041ea5d9f2719b1" + } + Frame { + msec: 5344 + hash: "8757668e56be6449ec375f0b8fed1be3" + } + Frame { + msec: 5360 + hash: "ef8941674cb61f54853dc33652bb854e" + } + Frame { + msec: 5376 + hash: "e11455d4e23a5a865e222a7aba4ba4f9" + } + Frame { + msec: 5392 + hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" + } + Frame { + msec: 5408 + hash: "e74fe4a6bd92cbe8629c8bc8a870104d" + } + Frame { + msec: 5424 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5440 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5456 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5472 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 5488 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5504 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5520 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5536 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5552 + hash: "ce57e27af329eba4fac3ab891f0407ce" + } + Frame { + msec: 5568 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5584 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5600 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5616 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5632 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5648 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5664 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5680 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5696 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5712 + hash: "3042003c067b257de2cb32f650dde693" + } + Frame { + msec: 5728 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5744 + hash: "a725b59b4947357546bbfc7df3d830af" + } + Frame { + msec: 5760 + image: "pauseAnimation.5.png" + } + Frame { + msec: 5776 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5792 + hash: "41ba853c3403f68a23e708df82e21c53" + } + Frame { + msec: 5808 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5824 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5840 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 5856 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5872 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5888 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5904 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5920 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5936 + hash: "dcf2867c127e041970047ec8f3edc04f" + } + Frame { + msec: 5952 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5968 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 5984 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 6000 + hash: "675ebbdd22dd22ce45993df4af1acfe9" + } + Frame { + msec: 6016 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6032 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6048 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6064 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6080 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6096 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6112 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6128 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6144 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6160 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6176 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6192 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6208 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6224 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6240 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6256 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6272 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6288 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6304 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6320 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6336 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6352 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6368 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6384 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6400 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } + Frame { + msec: 6416 + hash: "a350b70c5238a340e85fd4a3ec0390a3" + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml new file mode 100644 index 0000000..fba8ae6 --- /dev/null +++ b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml @@ -0,0 +1,30 @@ +import Qt 4.6 + +Rectangle { + id: rect + width: 120 + height: 200 + color: "white" + Image { + id: img + source: "pics/qtlogo.png" + x: 60-width/2 + y: 200-height + y: SequentialAnimation { + running: true + repeat: true + NumberAnimation { + to: 0; duration: 500 + easing: "easeInOutQuad" + } + NumberAnimation { + to: 200-img.height + easing: "easeOutBounce" + duration: 2000 + } + PauseAnimation { + duration: 1000 + } + } + } +} diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png new file mode 100644 index 0000000..399bd0b Binary files /dev/null and b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png new file mode 100644 index 0000000..64d6b06 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png new file mode 100644 index 0000000..f7fce15 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png new file mode 100644 index 0000000..3080df5 Binary files /dev/null and b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png differ diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml new file mode 100644 index 0000000..7c8c233 --- /dev/null +++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml @@ -0,0 +1,939 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 32 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 48 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 64 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 80 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 96 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 112 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 128 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 144 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 160 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 176 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 192 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 208 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 224 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 240 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 256 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 272 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 288 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 304 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 320 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 336 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 352 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 368 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 384 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 400 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 416 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 432 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 448 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 464 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 480 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 496 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 512 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 528 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 544 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 560 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 576 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 592 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 608 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 624 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 640 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 656 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 672 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 688 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 704 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 720 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 736 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 752 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 768 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 784 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 800 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 816 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 832 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 848 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 864 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 880 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 896 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 912 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 928 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 944 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 960 + image: "propertyAction.0.png" + } + Frame { + msec: 976 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 992 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1008 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1024 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1040 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1056 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1072 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1088 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1104 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1120 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1136 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1152 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1168 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1184 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1200 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1216 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1232 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1248 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1264 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1280 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1296 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1312 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1328 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1344 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1360 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1376 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1392 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1408 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1424 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1440 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1456 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1472 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1488 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1504 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1520 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1536 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1552 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1568 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1584 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1600 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 109; y: 247 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1632 + hash: "c91921dba899d7a86de3cd013773889f" + } + Frame { + msec: 1648 + hash: "888c0fc86155e10b5fc577ef6ec5755a" + } + Frame { + msec: 1664 + hash: "7fd61a8910bf7b0d2bf57653a268c5d8" + } + Frame { + msec: 1680 + hash: "f42f5073f90a423adf011d0e168c8a9b" + } + Frame { + msec: 1696 + hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5" + } + Frame { + msec: 1712 + hash: "f10e997d7a17c18251a32d58b018105a" + } + Frame { + msec: 1728 + hash: "09ffb57d5f67edfa34d6aad36a002554" + } + Frame { + msec: 1744 + hash: "01f3a2f5b9815f1397a907b099339360" + } + Frame { + msec: 1760 + hash: "58c0910c49748edd2ef8472960179472" + } + Frame { + msec: 1776 + hash: "cc82c5f7f93c5bc1af1c6c509268566a" + } + Frame { + msec: 1792 + hash: "3ef272c6439b85fbc166375d1b98403c" + } + Frame { + msec: 1808 + hash: "98c576f0900e4b8752d1f951bb6bf391" + } + Frame { + msec: 1824 + hash: "4d66dd64d8736ef50163e08723873478" + } + Frame { + msec: 1840 + hash: "9a5d8455b6763456185625811253e0b1" + } + Frame { + msec: 1856 + hash: "77e85731efa786a2492aae19a87523c6" + } + Frame { + msec: 1872 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1888 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1904 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 1920 + image: "propertyAction.1.png" + } + Frame { + msec: 1936 + hash: "db3010ef552146df938c237f6c92bff5" + } + Frame { + msec: 1952 + hash: "101e8595d0301e88376ec52ba9361f84" + } + Frame { + msec: 1968 + hash: "119d548c59baa7e47266d2ceca663288" + } + Frame { + msec: 1984 + hash: "f141fafe102a0b9a2bf33e8c3fc800ff" + } + Frame { + msec: 2000 + hash: "b01f9ca8d4fbff17b3d48c70898a044d" + } + Frame { + msec: 2016 + hash: "cf67954a2d1b22e8d2cfdc26419bafb8" + } + Frame { + msec: 2032 + hash: "7680b2b5a63dea13d733947297e01355" + } + Frame { + msec: 2048 + hash: "af1c017acf6b3c8cff86c9ceb60db3cb" + } + Frame { + msec: 2064 + hash: "0b23ec51f71fddae5e2238ab5754f1db" + } + Frame { + msec: 2080 + hash: "976643961ecbdc86335180ba812b874e" + } + Frame { + msec: 2096 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2112 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2128 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2144 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2160 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2176 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2192 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2208 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2224 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2240 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2256 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2272 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2288 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2304 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2320 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2336 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2352 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2368 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2384 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2400 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2416 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2432 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2448 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2464 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2480 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2496 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2512 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2528 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2544 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2560 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2576 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2592 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2608 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2624 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2640 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2656 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2672 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2688 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2704 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2720 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2736 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2752 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 109; y: 247 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2768 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2784 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2800 + hash: "ab924ae435262e76381c2e4af5d64342" + } + Frame { + msec: 2816 + hash: "d60758fc12471a19d31c85f058f2ded7" + } + Frame { + msec: 2832 + hash: "c62e2956f8eb5d2c8cd76ba05c5929d5" + } + Frame { + msec: 2848 + hash: "f2967ee7e035a9ff258116a2706529f8" + } + Frame { + msec: 2864 + hash: "885c4705c6c29f69c56c44abc1251d75" + } + Frame { + msec: 2880 + image: "propertyAction.2.png" + } + Frame { + msec: 2896 + hash: "f4af6871e522511f95bc4c5abfc2a562" + } + Frame { + msec: 2912 + hash: "b27e1e7e0d90468525309528ccfe2823" + } + Frame { + msec: 2928 + hash: "78e7d84a4466258b40315fe61b7ca15c" + } + Frame { + msec: 2944 + hash: "471013d921d8d6e7468fd6aba0b75c71" + } + Frame { + msec: 2960 + hash: "856048da893c9136ac5740bc89b64128" + } + Frame { + msec: 2976 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 2992 + hash: "2264fa3acd979f104633c1301a0efd8f" + } + Frame { + msec: 3008 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 3024 + hash: "ad899d1ecaa43a5541be7b70413caee5" + } + Frame { + msec: 3040 + hash: "4e652524c992f5ee1b987275ca509728" + } + Frame { + msec: 3056 + hash: "a44b3dec2a016694bc8553a51b29d46c" + } + Frame { + msec: 3072 + hash: "7fbe20346bc3c28c345e0797b55599f3" + } + Frame { + msec: 3088 + hash: "bcff18ad433bb4f08126ee66efb037d1" + } + Frame { + msec: 3104 + hash: "836666c64f73c38e87de95944ff2fe72" + } + Frame { + msec: 3120 + hash: "4379982d23db239b1741b5d72c53e160" + } + Frame { + msec: 3136 + hash: "0ed9476337214e1493c1510b8a4c90f8" + } + Frame { + msec: 3152 + hash: "dab637406577a1924c7dbb30680e1af3" + } + Frame { + msec: 3168 + hash: "dcc79277fdb8966e5a3f2ed1b2fc4292" + } + Frame { + msec: 3184 + hash: "5f207d1dfad4907f200d76104881bf56" + } + Frame { + msec: 3200 + hash: "3434fc7f81e859722585dae97c557864" + } + Frame { + msec: 3216 + hash: "7c775b9be8c5293d4962324574267c22" + } + Frame { + msec: 3232 + hash: "da0ff6955c2e4cd86421bdb9053f56e6" + } + Frame { + msec: 3248 + hash: "a1297d525a3ad41abbbb7c2f15efd4fb" + } + Frame { + msec: 3264 + hash: "5326b220995b2a1eaa308ad10fd353fa" + } + Frame { + msec: 3280 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3296 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3312 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3328 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3344 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 3360 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3376 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3392 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3408 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3424 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3440 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3456 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3472 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3488 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3504 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3520 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3536 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3552 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3568 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3584 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3600 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3616 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 3632 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } +} diff --git a/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml new file mode 100644 index 0000000..a9d3c74 --- /dev/null +++ b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml @@ -0,0 +1,34 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Rectangle { + id: MyRect + width: 100; height: 100 + color: "red" + } + MouseRegion { + id: Clickable + anchors.fill: parent + } + + states: State { + name: "state1" + when: Clickable.pressed + PropertyChanges { + target: MyRect + x: 50; y: 50 + color: "blue" + } + } + + transitions: Transition { + to: "state1" + reversible: true + SequentialAnimation { + ColorAnimation {} + PropertyAction { matchProperties: "x" } + NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } + } + } +} diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png new file mode 100644 index 0000000..64d6b06 Binary files /dev/null and b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png differ diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png new file mode 100644 index 0000000..1a25c63 Binary files /dev/null and b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png differ diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml new file mode 100644 index 0000000..01da490 --- /dev/null +++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml @@ -0,0 +1,535 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 32 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 48 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 64 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 80 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 96 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 112 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 128 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 144 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 160 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 176 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 192 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 208 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 224 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 240 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 256 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 272 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 288 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 304 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 320 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 336 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 352 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 368 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 384 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 400 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 416 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 432 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 448 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 464 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 480 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 496 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 512 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 528 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 544 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 560 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 576 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 592 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 608 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 624 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 640 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 656 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 672 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 688 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 704 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 720 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 736 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 752 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 768 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 784 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 800 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 816 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 832 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 848 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 864 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 880 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 896 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 912 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 928 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 944 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 960 + image: "scriptAction.0.png" + } + Frame { + msec: 976 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 992 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1008 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1024 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1040 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1056 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1072 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1088 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 146; y: 259 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "55b713dcb7c810bf126e06cc97d26d24" + } + Frame { + msec: 1120 + hash: "9850cd8ed4643900409d1a87ef0bc4cf" + } + Frame { + msec: 1136 + hash: "1cf03396b01e931e4e7e8e7e57e19c5f" + } + Frame { + msec: 1152 + hash: "25fe648b85ec2d82621853dcbdbf695a" + } + Frame { + msec: 1168 + hash: "1ca701e56fe387d5849f6933eb53aee9" + } + Frame { + msec: 1184 + hash: "b39ecb792659a053a8985e2a849d6d51" + } + Frame { + msec: 1200 + hash: "9a783432a054beec81cc5687f75a36dc" + } + Frame { + msec: 1216 + hash: "edbd222d7ba6c6f819ded45fe316d461" + } + Frame { + msec: 1232 + hash: "eaf20159c4b90f90872bbd514d3a0cec" + } + Frame { + msec: 1248 + hash: "964807dd9b91e765577a773ef1ce2593" + } + Frame { + msec: 1264 + hash: "16e12026ab14657b0f36b8315684455d" + } + Frame { + msec: 1280 + hash: "d001a6b2fec3c66baaa45d9ff93b3f63" + } + Frame { + msec: 1296 + hash: "fef11eb5f635bc11cd9679b7213b3b92" + } + Frame { + msec: 1312 + hash: "0a0cd5f5004048d88712cfe6943470c0" + } + Frame { + msec: 1328 + hash: "0d83178afdae5feaa9915d56c24373ad" + } + Frame { + msec: 1344 + hash: "0a9e6e0b7b23ce93dc4e1f886cf9c7d1" + } + Frame { + msec: 1360 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1376 + hash: "f3199d0c860f1236e0b9472bef8785bc" + } + Frame { + msec: 1392 + hash: "32ccdab249268b01d9f1658a736052f1" + } + Frame { + msec: 1408 + hash: "dc98f32a1a2d6e74998123b5232107b0" + } + Frame { + msec: 1424 + hash: "db3010ef552146df938c237f6c92bff5" + } + Frame { + msec: 1440 + hash: "101e8595d0301e88376ec52ba9361f84" + } + Frame { + msec: 1456 + hash: "119d548c59baa7e47266d2ceca663288" + } + Frame { + msec: 1472 + hash: "f141fafe102a0b9a2bf33e8c3fc800ff" + } + Frame { + msec: 1488 + hash: "b01f9ca8d4fbff17b3d48c70898a044d" + } + Frame { + msec: 1504 + hash: "cf67954a2d1b22e8d2cfdc26419bafb8" + } + Frame { + msec: 1520 + hash: "7680b2b5a63dea13d733947297e01355" + } + Frame { + msec: 1536 + hash: "af1c017acf6b3c8cff86c9ceb60db3cb" + } + Frame { + msec: 1552 + hash: "0b23ec51f71fddae5e2238ab5754f1db" + } + Frame { + msec: 1568 + hash: "976643961ecbdc86335180ba812b874e" + } + Frame { + msec: 1584 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1600 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1616 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1632 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1648 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1664 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1680 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1696 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1712 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1728 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1744 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1760 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1776 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1792 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1808 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1824 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1840 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1856 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1872 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 1888 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1904 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1920 + image: "scriptAction.1.png" + } + Frame { + msec: 1936 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1952 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1968 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 1984 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2000 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2016 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2032 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } + Frame { + msec: 2048 + hash: "aeed60899abb6c486a5b1df81f9a0224" + } +} diff --git a/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml new file mode 100644 index 0000000..872701b --- /dev/null +++ b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml @@ -0,0 +1,35 @@ +import Qt 4.6 + +Rectangle { + width: 400; height: 400 + Rectangle { + id: myRect + width: 100; height: 100 + color: "red" + } + MouseRegion { + id: clickable + anchors.fill: parent + } + + states: State { + name: "state1" + when: clickable.pressed + PropertyChanges { + target: myRect + x: 50; y: 50 + } + StateChangeScript { + name: "setColor" + script: myRect.color = "blue" + } + } + + transitions: Transition { + SequentialAnimation { + NumberAnimation { matchProperties: "x"; easing: "InOutQuad" } + ScriptAction { stateChangeScriptName: "setColor" } + NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } + } + } +} diff --git a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml deleted file mode 100644 index efbb1b4..0000000 --- a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml +++ /dev/null @@ -1,40 +0,0 @@ -import Qt 4.6 - -Rectangle { - color: "blue" - width: 320 - height: 240 - id: Page - Rectangle { - id: MyRectangle - width: 100 - height: 100 - color: "red" - x: 10 - } - states: [ - State { - name: "hello" - PropertyChanges { - target: MyRectangle - x: 100 - } - PropertyChanges { - target: MyMouseRegion - onClicked: "Page.currentState = ''" - } - } - ] - transitions: [ - Transition { - NumberAnimation { - matchProperties: "x" - } - } - ] - MouseRegion { - id: MyMouseRegion - anchors.fill: parent - onClicked: { Page.state= 'hello' } - } -} diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png deleted file mode 100644 index 1b08c81..0000000 Binary files a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png deleted file mode 100644 index f3074fc..0000000 Binary files a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml deleted file mode 100644 index 2501797..0000000 --- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml +++ /dev/null @@ -1,659 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 32 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 48 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 64 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 80 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 96 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 112 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 128 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 144 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 160 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 176 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 192 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 208 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 224 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 240 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 256 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 272 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 288 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 304 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 320 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 336 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 352 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 368 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 384 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 400 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 416 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 432 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 448 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 464 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 480 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 496 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 512 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 528 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 544 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 560 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 576 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 592 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 608 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 624 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 640 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 656 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 672 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 688 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 704 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 720 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 736 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 752 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 768 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 784 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 800 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 816 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 832 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 848 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 864 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 880 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 896 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 912 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 928 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 944 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 960 - image: "bindinganimation.0.png" - } - Frame { - msec: 976 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 992 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1008 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1024 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1040 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1056 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1072 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1088 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1104 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1120 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1136 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1152 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1168 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1184 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1200 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1216 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1232 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1248 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1264 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1280 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1296 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1312 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1328 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1344 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1360 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1376 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1392 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1408 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1424 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1440 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1456 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1472 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1488 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 150; y: 158 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1504 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1520 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1536 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1552 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1568 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 150; y: 158 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1584 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Frame { - msec: 1600 - hash: "a78c9394bf3b81f192f42710cd7218b1" - } - Frame { - msec: 1616 - hash: "7f08e8170feb1d02373c9ab42b6e882d" - } - Frame { - msec: 1632 - hash: "967fbad8ac664400a3efbe66617d62aa" - } - Frame { - msec: 1648 - hash: "abc2ec0bc7a93e75b5823310e6284db1" - } - Frame { - msec: 1664 - hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" - } - Frame { - msec: 1680 - hash: "9413dffb7ee853ba0125ac22ab22abbd" - } - Frame { - msec: 1696 - hash: "fcae0317f81a3ddd713f4db1349a9da0" - } - Frame { - msec: 1712 - hash: "37739777a5979f3ebf85e47e63341660" - } - Frame { - msec: 1728 - hash: "72731478d80f024076ea639b55152360" - } - Frame { - msec: 1744 - hash: "69058485ced6bc992a1a7c5ee34add4c" - } - Frame { - msec: 1760 - hash: "391ad7ff2362e059f6170dfe306f94a7" - } - Frame { - msec: 1776 - hash: "f9f74a2e38b52c9266f33e428b6acd9d" - } - Frame { - msec: 1792 - hash: "25152412c4ea2aec6caf89486c073484" - } - Frame { - msec: 1808 - hash: "ba403842ba3128b1cdf6a9cb28c90751" - } - Frame { - msec: 1824 - hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" - } - Frame { - msec: 1840 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1856 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1872 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1888 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1904 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1920 - image: "bindinganimation.1.png" - } - Frame { - msec: 1936 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1952 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1968 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 1984 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2000 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2016 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2032 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2048 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2064 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2080 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2096 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2112 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2128 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2144 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2160 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2176 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2192 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2208 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2224 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2240 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2256 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2272 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2288 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2304 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2320 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2336 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2352 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2368 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2384 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2400 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2416 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2432 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2448 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2464 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2480 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2496 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 2512 - hash: "383ba6b9efcc58fca512982a207631f6" - } -} diff --git a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml deleted file mode 100644 index 0e98d7e..0000000 --- a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml +++ /dev/null @@ -1,41 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: mainrect - width: 200; height: 200 - state: "first" - states: [ - State { - name: "first" - PropertyChanges { - target: mainrect - color: "red" - } - }, - State { - name: "second" - PropertyChanges { - target: mainrect - color: "blue" - } - } - ] - transitions: [ - Transition { - from: "first" - to: "second" - reversible: true - SequentialAnimation { - ColorAnimation { - duration: 2000 - target: mainrect - property: "color" - } - } - } - ] - MouseRegion { - anchors.fill: parent - onClicked: { mainrect.state = 'second' } - } -} diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png deleted file mode 100644 index f4a6cfd..0000000 Binary files a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml deleted file mode 100644 index 900bf5c..0000000 --- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml +++ /dev/null @@ -1,951 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 32 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 48 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 64 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 80 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 96 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 112 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 128 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 144 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 160 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 176 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 192 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 208 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 224 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 240 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 256 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 272 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 288 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 304 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 320 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 336 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 352 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 368 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 384 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 400 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 416 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 432 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 448 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 464 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 480 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 496 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 512 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 528 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 544 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 560 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 576 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 592 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 608 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 624 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 640 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 656 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 672 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 688 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 704 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 720 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 736 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 752 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 768 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 784 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 800 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 816 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 832 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 848 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 864 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 880 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 912 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 928 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 944 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 960 - image: "colorAnimation.0.png" - } - Frame { - msec: 976 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 992 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1008 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1024 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1040 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1056 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1072 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1088 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1104 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1120 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1136 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1152 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1168 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1184 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1200 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1216 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1232 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1248 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1264 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1280 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1296 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1312 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1328 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1344 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1360 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1376 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1392 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1408 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1424 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1440 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1456 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1472 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1488 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1504 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1520 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1536 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1552 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1568 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1584 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1600 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1616 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1632 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1648 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1664 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1680 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1696 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1712 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1728 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1744 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1760 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1776 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1792 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1808 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1824 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1840 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1856 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1872 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1888 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1904 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1920 - image: "colorAnimation.1.png" - } - Frame { - msec: 1936 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1952 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1968 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 1984 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2000 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2016 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2032 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2048 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2064 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2080 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2096 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2112 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2128 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2144 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2160 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2176 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2192 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2208 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2224 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2240 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2256 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2272 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2288 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2304 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2320 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2336 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2352 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2368 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2384 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2400 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2416 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2432 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2448 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2464 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2480 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2496 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2512 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2528 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2544 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2560 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2576 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2592 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2608 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2624 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2640 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2656 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2672 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2688 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2704 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2720 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2736 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2752 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2768 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2784 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2800 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2816 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2832 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2848 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2864 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2880 - image: "colorAnimation.2.png" - } - Frame { - msec: 2896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2912 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2928 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2944 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2960 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2976 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2992 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3008 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3024 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3040 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3056 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3072 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3088 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3104 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3120 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3136 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3152 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3168 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3184 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3200 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3216 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3232 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3248 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3264 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3280 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3296 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3312 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3328 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3344 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3360 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3376 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3392 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3408 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3424 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3440 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3456 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3472 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3488 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3504 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3520 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3536 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3552 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3568 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3584 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3600 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3616 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3632 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3648 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3664 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3680 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } -} diff --git a/tests/auto/declarative/visual/easing/data/easing.0.png b/tests/auto/declarative/visual/easing/data/easing.0.png deleted file mode 100644 index 4f75bfd..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.1.png b/tests/auto/declarative/visual/easing/data/easing.1.png deleted file mode 100644 index dc17765..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.2.png b/tests/auto/declarative/visual/easing/data/easing.2.png deleted file mode 100644 index 7f83548..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.3.png b/tests/auto/declarative/visual/easing/data/easing.3.png deleted file mode 100644 index c68e0fa..0000000 Binary files a/tests/auto/declarative/visual/easing/data/easing.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/easing/data/easing.qml b/tests/auto/declarative/visual/easing/data/easing.qml deleted file mode 100644 index d8e8688..0000000 --- a/tests/auto/declarative/visual/easing/data/easing.qml +++ /dev/null @@ -1,779 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 32 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 48 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 64 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 80 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 96 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 112 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 128 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 144 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 160 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 176 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 192 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 208 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 224 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 240 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 256 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 272 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 288 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 304 - hash: "8f4c40d2e2b4f064bcb77c5ae43928c6" - } - Frame { - msec: 320 - hash: "8b65094a9b7d5394fc67f92ea058627f" - } - Frame { - msec: 336 - hash: "da450826b471a60ba98dabc581631ba1" - } - Frame { - msec: 352 - hash: "e820fb4f1bc97152aa940b07db549f1b" - } - Frame { - msec: 368 - hash: "b7d8186beca2fa0e37099f72419350f4" - } - Frame { - msec: 384 - hash: "8500b93774f214e5e4789e25500262b8" - } - Frame { - msec: 400 - hash: "277e1dff70285cca536b3e1fc2590688" - } - Frame { - msec: 416 - hash: "b05b18f92c2089c681661566117ae0f5" - } - Frame { - msec: 432 - hash: "6fec9c6b6ac3e3ea4126e3824a8d7566" - } - Frame { - msec: 448 - hash: "53c6c90dd1eb7ca47721fc116474aebf" - } - Frame { - msec: 464 - hash: "cf729c4a31414af3d2705878ba615738" - } - Frame { - msec: 480 - hash: "f146b8a68960d507f893ef001189220e" - } - Frame { - msec: 496 - hash: "18ff56b870bb048af246f928ee42a9b0" - } - Frame { - msec: 512 - hash: "beee98f73fe7e878ada37b3070fa0c1d" - } - Frame { - msec: 528 - hash: "435d389082912950a0be2b5dff480319" - } - Frame { - msec: 544 - hash: "dc39b080eaddeaf4e309b90b7d97a835" - } - Frame { - msec: 560 - hash: "666b1cde53f78d7db9c81e21adbe406a" - } - Frame { - msec: 576 - hash: "c5c9627f4329e48aa96ebfbc982b6ba6" - } - Frame { - msec: 592 - hash: "a583042052e5da7e80a4956337d6d1ff" - } - Frame { - msec: 608 - hash: "a4a5df787e15da6f28275a12898e7620" - } - Frame { - msec: 624 - hash: "02cacec2ccc803ebc03c5540484cbcaa" - } - Frame { - msec: 640 - hash: "00600df1f006f358feaf43bfae9d32a5" - } - Frame { - msec: 656 - hash: "737c884ba0d6d38b66252f4b97a36c33" - } - Frame { - msec: 672 - hash: "7eeeade8100c84a6b56efa51cf597baf" - } - Frame { - msec: 688 - hash: "18ab79d495097f0103dcf14db1897a88" - } - Frame { - msec: 704 - hash: "21d3b0da00c46a101e09048928cd8027" - } - Frame { - msec: 720 - hash: "a5995b0341872c275ffbc5aaee6eb853" - } - Frame { - msec: 736 - hash: "bb4a37c1bd5e412ebce54d9539017723" - } - Frame { - msec: 752 - hash: "63dcde9e2751ca94ed7d739feb359221" - } - Frame { - msec: 768 - hash: "5790c8407e2e4d1a6a937d86d57d8edb" - } - Frame { - msec: 784 - hash: "3a1c77abf6822030db60a036027dc86e" - } - Frame { - msec: 800 - hash: "2a13c573ab9846cce60384dd7138b2b4" - } - Frame { - msec: 816 - hash: "98983c2525265830033495b61071a5aa" - } - Frame { - msec: 832 - hash: "26d2bba3d77053b410715afb497d4063" - } - Frame { - msec: 848 - hash: "fd65d954c16acee425d9de65af68ef40" - } - Frame { - msec: 864 - hash: "094fcc18d28b19ac6b452dd8106d813b" - } - Frame { - msec: 880 - hash: "160105f6f99a960763535e4d51990ef6" - } - Frame { - msec: 896 - hash: "0d5d1e6a66fc1f49f1106f01fb5a1c52" - } - Frame { - msec: 912 - hash: "f6abc32680865783a4d94ecb738f9ff6" - } - Frame { - msec: 928 - hash: "350509eceb134d5b18647e5ad07dbb47" - } - Frame { - msec: 944 - hash: "a84e4e7c5385dc1f24ca219f45d529a5" - } - Frame { - msec: 960 - image: "easing.0.png" - } - Frame { - msec: 976 - hash: "efcc5ae79da3fa2f4c7d6eaa35e32d33" - } - Frame { - msec: 992 - hash: "ff4afce604c8ecb4f08d1ddef8552534" - } - Frame { - msec: 1008 - hash: "e2e63e12e9a5f8459720dd8b023ed17b" - } - Frame { - msec: 1024 - hash: "991a01f92bcfa9cd9fe98e3f39d192fc" - } - Frame { - msec: 1040 - hash: "bc3d2f0f3fac650c981457f3694c2518" - } - Frame { - msec: 1056 - hash: "ee39fc9b1a602bf813d9118aa21901ac" - } - Frame { - msec: 1072 - hash: "42120d098f2adf1e331332b33442dd3e" - } - Frame { - msec: 1088 - hash: "1660c69b77b800d1ab57b93f0fc12aa5" - } - Frame { - msec: 1104 - hash: "0630a3d6b8cb5dece5dc660f05036ec6" - } - Frame { - msec: 1120 - hash: "9163f0bd9c5888794d7a09d3359bf1e5" - } - Frame { - msec: 1136 - hash: "e0b7ad4883f679948c852ff152ba7907" - } - Frame { - msec: 1152 - hash: "f748fc44f99b706e42b899cb18dbaaf7" - } - Frame { - msec: 1168 - hash: "c84442f0cb1cf0bb50dae7d1c701aaf8" - } - Frame { - msec: 1184 - hash: "d7b41567e3f3aa9576fe2793872134b7" - } - Frame { - msec: 1200 - hash: "a1d10ff1adb85000902486fc8e4faa8d" - } - Frame { - msec: 1216 - hash: "44b7b5d77068e360ead3af84e7d80232" - } - Frame { - msec: 1232 - hash: "486c0b19c1379d9eefdf575a085e2875" - } - Frame { - msec: 1248 - hash: "1d474472856d4740d960eb2f788ca5a6" - } - Frame { - msec: 1264 - hash: "c74082553ab0f4ee00f5044e3369580b" - } - Frame { - msec: 1280 - hash: "89fcd5514f336075ad32cae69518c1e5" - } - Frame { - msec: 1296 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1312 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1328 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1344 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1360 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1376 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1392 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1408 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1424 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1440 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1456 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1472 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1488 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1504 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1520 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1536 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1552 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1568 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1584 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1600 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1616 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Frame { - msec: 1632 - hash: "b77240f32e83d4f332d815c626f1e560" - } - Frame { - msec: 1648 - hash: "7d89669231224cf8e02d75338c37c278" - } - Frame { - msec: 1664 - hash: "a8cf7c179011ee8187a8e1111683e52e" - } - Frame { - msec: 1680 - hash: "3e87a57e05da09a8260801320431b922" - } - Frame { - msec: 1696 - hash: "a2b0d99c8a232715fe03e8772a36634c" - } - Frame { - msec: 1712 - hash: "5b4634cd495ae7bb9c69a5c9c346189e" - } - Frame { - msec: 1728 - hash: "492f8f2b84af355ef41c1a7cda3a8a73" - } - Frame { - msec: 1744 - hash: "88e4eb08520fb5acc3d88ac4f0900542" - } - Frame { - msec: 1760 - hash: "0c09cdcb906b4ce9840fd7502c39e5b9" - } - Frame { - msec: 1776 - hash: "b054083bdd212cc03167a90df2d7eac5" - } - Frame { - msec: 1792 - hash: "83971c2d37616ab92680364d6ac288a6" - } - Frame { - msec: 1808 - hash: "a73951d25e2cb7c1d04c88c86dfa0e4d" - } - Frame { - msec: 1824 - hash: "31fc8b20302abac97e506c37a14bbb7e" - } - Frame { - msec: 1840 - hash: "f760ccd7339e01a9423da7b592498291" - } - Frame { - msec: 1856 - hash: "24dfcd5553f854908396de751fb15b88" - } - Frame { - msec: 1872 - hash: "1daf38a6e6199f980e9494a3eb480047" - } - Frame { - msec: 1888 - hash: "a39e2de1090209e5dbc8cc26577ec97d" - } - Frame { - msec: 1904 - hash: "f4edc780b063e34461263ed3b753be88" - } - Frame { - msec: 1920 - image: "easing.1.png" - } - Frame { - msec: 1936 - hash: "a19b0353604491f56f72be0d20d76955" - } - Frame { - msec: 1952 - hash: "9a70f109eebfcede2311ef77ceb50a44" - } - Frame { - msec: 1968 - hash: "7b28313d6860aeefd4a4e136d38d62f8" - } - Frame { - msec: 1984 - hash: "95d84f38473159fe6b38f84ffe371714" - } - Frame { - msec: 2000 - hash: "07f91261794edb0ac1fde9bb4ff36011" - } - Frame { - msec: 2016 - hash: "f9a4a6b92a9c2d265688f1bfac18fa0a" - } - Frame { - msec: 2032 - hash: "cdec7cc00380fde4f73be997a992251a" - } - Frame { - msec: 2048 - hash: "a52b34f84e98fcd8babb1d39979fc9c7" - } - Frame { - msec: 2064 - hash: "bf05b3c79a9616f2e6c33d348b30e0ba" - } - Frame { - msec: 2080 - hash: "c5931785685b4f4854d3ddfff5dd5466" - } - Frame { - msec: 2096 - hash: "bae163e02b860a9ca19d1bcb60ac1f8e" - } - Frame { - msec: 2112 - hash: "a36295a1ebb35e538f8899ae3ae3b36a" - } - Frame { - msec: 2128 - hash: "b6448d61803d9b2c05b438aa8ce8bcd5" - } - Frame { - msec: 2144 - hash: "631bf4caff2d93ef96a426100ffc5b32" - } - Frame { - msec: 2160 - hash: "a8777c84a03996493f719f5fcfc80d00" - } - Frame { - msec: 2176 - hash: "86e1759df103ef776bb03f24941f49da" - } - Frame { - msec: 2192 - hash: "01a790ea60adeaf368c66bd53aa8fcb3" - } - Frame { - msec: 2208 - hash: "79e5aca8ef6b9764f7f99cdfb51222ae" - } - Frame { - msec: 2224 - hash: "82d10cc01b9be4683c5aa76096bd462c" - } - Frame { - msec: 2240 - hash: "95d961a92c597e432611947f7480796a" - } - Frame { - msec: 2256 - hash: "e8ee89b5313c7e2c66741fe1c2090029" - } - Frame { - msec: 2272 - hash: "2e3e8cf25dc1a3f09e7bf2a086f8e3bb" - } - Frame { - msec: 2288 - hash: "68ca8ad381f48db23d2bc5da9da0c17a" - } - Frame { - msec: 2304 - hash: "e29f2411667049e8fae6c080f61c5869" - } - Frame { - msec: 2320 - hash: "5b0a6fadedf3024e8ecb7f2c73a2277d" - } - Frame { - msec: 2336 - hash: "af2eac625ef1fd928093ccd60bc0058e" - } - Frame { - msec: 2352 - hash: "8a1ff780ebdc9e416e60ea0940e8f2d6" - } - Frame { - msec: 2368 - hash: "7eb316c51cfd8ad972b7040247a651eb" - } - Frame { - msec: 2384 - hash: "1bac7075c10c87a69e71c3859f0db41d" - } - Frame { - msec: 2400 - hash: "0f16f40567729065cf9ecfcc15395a7b" - } - Frame { - msec: 2416 - hash: "719f4e776776f0db5c68ae7c6177e9b7" - } - Frame { - msec: 2432 - hash: "75172dbf31fd8d706f54748c59099845" - } - Frame { - msec: 2448 - hash: "d730b550e05167b05350e0e6636dd97d" - } - Frame { - msec: 2464 - hash: "e1f33eb5f023d9d42a99f8bc23223c45" - } - Frame { - msec: 2480 - hash: "8a4b0df5bed6c7be73c194ce2bb6a271" - } - Frame { - msec: 2496 - hash: "44a9ea371f12d4ac3a569121a995ae16" - } - Frame { - msec: 2512 - hash: "14747e2e9e072210b9d6db50b4f704a1" - } - Frame { - msec: 2528 - hash: "eea52abf430f8cc1adc37e7180036584" - } - Frame { - msec: 2544 - hash: "0a9f6b14bc02e929a45bf4ebb736f9d3" - } - Frame { - msec: 2560 - hash: "a68a6eef0fc8754564c47c88b60d9a2a" - } - Frame { - msec: 2576 - hash: "eeb469e2fbda131d83538055e88ecdf7" - } - Frame { - msec: 2592 - hash: "0f7b673472050e807c9d935fde5afd83" - } - Frame { - msec: 2608 - hash: "80c90cce66bdd2324ca98bc591c22b44" - } - Frame { - msec: 2624 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2640 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2656 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2672 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2688 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2704 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2720 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2736 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2752 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2768 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2784 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2800 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2816 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2832 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2848 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2864 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2880 - image: "easing.2.png" - } - Frame { - msec: 2896 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2912 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2928 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2944 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2960 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2976 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 2992 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 3008 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Frame { - msec: 3024 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } -} diff --git a/tests/auto/declarative/visual/easing/easing.qml b/tests/auto/declarative/visual/easing/easing.qml deleted file mode 100644 index 1e8e907..0000000 --- a/tests/auto/declarative/visual/easing/easing.qml +++ /dev/null @@ -1,193 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: item - width: 600 - height: layout.height - color: "white" - resources: [ - ListModel { - id: easingtypes - ListElement { - type: "easeLinear" - } - ListElement { - type: "easeInQuad" - } - ListElement { - type: "easeOutQuad" - } - ListElement { - type: "easeInOutQuad" - } - ListElement { - type: "easeOutInQuad" - } - ListElement { - type: "easeInCubic" - } - ListElement { - type: "easeOutCubic" - } - ListElement { - type: "easeInOutCubic" - } - ListElement { - type: "easeOutInCubic" - } - ListElement { - type: "easeInQuart" - } - ListElement { - type: "easeOutQuart" - } - ListElement { - type: "easeInOutQuart" - } - ListElement { - type: "easeOutInQuart" - } - ListElement { - type: "easeInQuint" - } - ListElement { - type: "easeOutQuint" - } - ListElement { - type: "easeInOutQuint" - } - ListElement { - type: "easeOutInQuint" - } - ListElement { - type: "easeInSine" - } - ListElement { - type: "easeOutSine" - } - ListElement { - type: "easeInOutSine" - } - ListElement { - type: "easeOutInSine" - } - ListElement { - type: "easeInExpo" - } - ListElement { - type: "easeOutExpo" - } - ListElement { - type: "easeInOutExpo" - } - ListElement { - type: "easeOutInExpo" - } - ListElement { - type: "easeInCirc" - } - ListElement { - type: "easeOutCirc" - } - ListElement { - type: "easeInOutCirc" - } - ListElement { - type: "easeOutInCirc" - } - ListElement { - type: "easeInElastic" - } - ListElement { - type: "easeOutElastic" - } - ListElement { - type: "easeInOutElastic" - } - ListElement { - type: "easeOutInElastic" - } - ListElement { - type: "easeInBack" - } - ListElement { - type: "easeOutBack" - } - ListElement { - type: "easeInOutBack" - } - ListElement { - type: "easeOutInBack" - } - ListElement { - type: "easeOutBounce" - } - ListElement { - type: "easeInBounce" - } - ListElement { - type: "easeInOutBounce" - } - ListElement { - type: "easeOutInBounce" - } - } - ] - Column { - id: layout - anchors.left: item.left - anchors.right: item.right - Repeater { - model: easingtypes - Component { - Rectangle { - id: block - Text { - text: type - anchors.centerIn: parent - font.italic: true - color: index & 1 ? "black" : "white" - opacity: 0 // 1 for debugging - } - width: 120 - height: 18 - color: index & 1 ? "red" : "blue" - states: [ - State { - name: "from" - when: !mouse.pressed - PropertyChanges { - target: block - x: 0 - } - }, - State { - name: "to" - when: mouse.pressed - PropertyChanges { - target: block - x: item.width-block.width - } - } - ] - transitions: [ - Transition { - from: "*" - to: "to" - reversible: true - NumberAnimation { - matchProperties: "x" - easing: type - duration: 1000 - } - } - ] - } - } - } - } - MouseRegion { - id: mouse - anchors.fill: layout - } -} diff --git a/tests/auto/declarative/visual/easing/pics/qtlogo.png b/tests/auto/declarative/visual/easing/pics/qtlogo.png deleted file mode 100644 index 399bd0b..0000000 Binary files a/tests/auto/declarative/visual/easing/pics/qtlogo.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/parentAction/data/parentAction.0.png deleted file mode 100644 index a0032f8..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/parentAction/data/parentAction.1.png deleted file mode 100644 index 958b6af..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/parentAction/data/parentAction.2.png deleted file mode 100644 index 3a1811f..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/parentAction/data/parentAction.3.png deleted file mode 100644 index 36064c2..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/parentAction/data/parentAction.4.png deleted file mode 100644 index c493a1d..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/parentAction/data/parentAction.5.png deleted file mode 100644 index c493a1d..0000000 Binary files a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png and /dev/null differ diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/parentAction/data/parentAction.qml deleted file mode 100644 index de27af7..0000000 --- a/tests/auto/declarative/visual/parentAction/data/parentAction.qml +++ /dev/null @@ -1,1207 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 32 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 48 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 64 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 80 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 96 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 112 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 128 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 144 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 160 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 176 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 192 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 208 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 224 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 240 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 256 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 272 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 288 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 304 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 320 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 336 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 352 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 368 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 384 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 400 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 416 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 432 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 448 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 464 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 480 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 496 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 512 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 528 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 544 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 560 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 576 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 150; y: 274 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 592 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 608 - hash: "a7bb3d44c8bcf403906afa86f5bc3062" - } - Frame { - msec: 624 - hash: "2b366e6009e70fa0227a1fee662fe1bf" - } - Frame { - msec: 640 - hash: "c12869fb8002aa36c3bfad7fd0979240" - } - Frame { - msec: 656 - hash: "56c583e77b5e0a8707e977dc937c2acf" - } - Frame { - msec: 672 - hash: "6b191d57a45a3f2d010a7f44064e409a" - } - Frame { - msec: 688 - hash: "9457ee33c999a63fa4bd4db5c3ceac8b" - } - Frame { - msec: 704 - hash: "446b23b662640ad6ad8c456f956fe73a" - } - Frame { - msec: 720 - hash: "23c59708069406486e4979c7d59f3f4a" - } - Frame { - msec: 736 - hash: "c9ce43ddca79b5b6f26af2c2259dc071" - } - Frame { - msec: 752 - hash: "e838229ba70c30112918f19bb471fa34" - } - Frame { - msec: 768 - hash: "0cbaeddb2ff6408a37a68fc685e2bca0" - } - Frame { - msec: 784 - hash: "616b4ec719586b151ba3d709e51038bf" - } - Frame { - msec: 800 - hash: "89b2c709f5c3083c204a9450e605c1d4" - } - Frame { - msec: 816 - hash: "427a5c2d13631d899ff2d673e762f114" - } - Frame { - msec: 832 - hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb" - } - Frame { - msec: 848 - hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4" - } - Frame { - msec: 864 - hash: "5607ea54f9990f3232d6f56080e1ef15" - } - Frame { - msec: 880 - hash: "600682467c55288b9d5e65299637dd72" - } - Frame { - msec: 896 - hash: "bc7a238611574a13650f854ceac35032" - } - Frame { - msec: 912 - hash: "e5f6b19b3685a96d4d0c3b8384513643" - } - Frame { - msec: 928 - hash: "d5d23b0fc09136fd1ae121e311866cc3" - } - Frame { - msec: 944 - hash: "5099e5edd1a6bd37f5f6c836a6ca7644" - } - Frame { - msec: 960 - image: "parentAction.0.png" - } - Frame { - msec: 976 - hash: "97dd20f7774cfd8379e1d1b44f8ddc7b" - } - Frame { - msec: 992 - hash: "ab2deea9e4f8c43ed58b5a355800ecda" - } - Frame { - msec: 1008 - hash: "88ec383ce368259d3cc18612b6f5b941" - } - Frame { - msec: 1024 - hash: "f84b20b849a77e50717f99b9d844240e" - } - Frame { - msec: 1040 - hash: "6c042360c2d24ad56cec32d01ce82d6b" - } - Frame { - msec: 1056 - hash: "c86b464720192f3e039fa5d8ab5f09bb" - } - Frame { - msec: 1072 - hash: "35ec432fdf91fcd1dfcd945cfe785b09" - } - Frame { - msec: 1088 - hash: "27a2ec28e4fef006622e8211fd709853" - } - Frame { - msec: 1104 - hash: "8454d1f5ed89551e2a403c869885116a" - } - Frame { - msec: 1120 - hash: "7e33aed53dc4338c168274d972c8e711" - } - Frame { - msec: 1136 - hash: "e0192ea2049d6bae6012f00406630a92" - } - Frame { - msec: 1152 - hash: "a2ea5489a373084169024035a0f69e71" - } - Frame { - msec: 1168 - hash: "6947a72c4d959b90dafdaddcac815b3e" - } - Frame { - msec: 1184 - hash: "0e22cc3c96d0934095b7254f0f28b18b" - } - Frame { - msec: 1200 - hash: "72529ddc6f2678a783aedf445d7038a4" - } - Frame { - msec: 1216 - hash: "38f03c0ee50488ffd23a2fb3d3445461" - } - Frame { - msec: 1232 - hash: "b441721ed30c787874a2a71a94e1ba44" - } - Frame { - msec: 1248 - hash: "1e37f26d78590414b2ef01c72ad136a9" - } - Frame { - msec: 1264 - hash: "88e4af80d068485ebd8c3d51f9bbfe8d" - } - Frame { - msec: 1280 - hash: "107707216c16c629d8409cf006f9f2dc" - } - Frame { - msec: 1296 - hash: "f56f3f4f140ac072f7df47eddfc76844" - } - Frame { - msec: 1312 - hash: "41239a9d8ed793c24967875aabeae8a5" - } - Frame { - msec: 1328 - hash: "30035e37320dae4f9ead01a30895eb38" - } - Frame { - msec: 1344 - hash: "fb2f535b42b862b65f8adb3ad1a46779" - } - Frame { - msec: 1360 - hash: "e10ba7f74d52fc963e20a4647ff0d620" - } - Frame { - msec: 1376 - hash: "5abf5388566bed2fdb71afc8cd7cfe9b" - } - Frame { - msec: 1392 - hash: "91990471563e3c8292e8e8325a1d17a2" - } - Frame { - msec: 1408 - hash: "59a6293a48f83a9197adcffed3f32f15" - } - Frame { - msec: 1424 - hash: "db3e75df318e9f0d239ce9b76e92eff3" - } - Frame { - msec: 1440 - hash: "3b5c64bc64a701edb5c2e40b23443bc3" - } - Frame { - msec: 1456 - hash: "9db08c0375148b2317427591b5f43608" - } - Frame { - msec: 1472 - hash: "2d761f1530846eff87a7625a120e0afd" - } - Frame { - msec: 1488 - hash: "c5460f8c58b83c2ac15842ddb023ad4f" - } - Frame { - msec: 1504 - hash: "0efb51810a2dc359c7964268c98ea8eb" - } - Frame { - msec: 1520 - hash: "b92a42012df57eb261badf1f518b8e67" - } - Frame { - msec: 1536 - hash: "8d348bae62af2d35bdfee806a1c39910" - } - Frame { - msec: 1552 - hash: "762d9bb4ed11d249bfd902a541129d60" - } - Frame { - msec: 1568 - hash: "bddbd9f64a9f7156984feccd5fa94093" - } - Frame { - msec: 1584 - hash: "353a98e1573b0518941ff22bf2776244" - } - Frame { - msec: 1600 - hash: "1765aed97e29f25dee93a77a06557b82" - } - Frame { - msec: 1616 - hash: "73b5c2bdb7f268f7a33e129c8ba44013" - } - Frame { - msec: 1632 - hash: "46ac1976fb9932d0ef6e0b5927386ad9" - } - Frame { - msec: 1648 - hash: "90b5b5b46c9c352e8be41cc74f96133a" - } - Frame { - msec: 1664 - hash: "0efe0036577c890fd45cd7dd53014616" - } - Frame { - msec: 1680 - hash: "7f32df17481abf40ccb33afe6d17085d" - } - Frame { - msec: 1696 - hash: "1fa8544c48a476764f4f8278c14b651d" - } - Frame { - msec: 1712 - hash: "f8f06ece30f690deeba5999ce63bf40b" - } - Frame { - msec: 1728 - hash: "885b230f4b2fe380c7cf68955940d206" - } - Frame { - msec: 1744 - hash: "d0fc5aa4df46099bb46a1d7db30baa09" - } - Frame { - msec: 1760 - hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740" - } - Frame { - msec: 1776 - hash: "aa3b3b03460daf54f085551e1a46c08b" - } - Frame { - msec: 1792 - hash: "35a1728a2430027a9474fb7d61090643" - } - Frame { - msec: 1808 - hash: "2b1cff3986b8b03f1061176a4722b0f9" - } - Frame { - msec: 1824 - hash: "8047be1b35ee3d5078a68c6cdc35eeb7" - } - Frame { - msec: 1840 - hash: "7f7afa48bb7d612b354c8488e72c8339" - } - Frame { - msec: 1856 - hash: "691a876caefce9aa0f5140c17059b8f4" - } - Frame { - msec: 1872 - hash: "903bec66e47db766dc431f060726988c" - } - Frame { - msec: 1888 - hash: "f13593fc891f0b050c01b61963019da1" - } - Frame { - msec: 1904 - hash: "aa00de965bdb370a5974b195c3fb38af" - } - Frame { - msec: 1920 - image: "parentAction.1.png" - } - Frame { - msec: 1936 - hash: "168d3e27261c0943e6262b6be27adfb0" - } - Frame { - msec: 1952 - hash: "6fafebd0b396e7c0a78c767c6af936ba" - } - Frame { - msec: 1968 - hash: "827e3a3fcd6fd8588e9fcc043769b3a8" - } - Frame { - msec: 1984 - hash: "155329bf1c1a6f6c37bf7e6e8a92c59b" - } - Frame { - msec: 2000 - hash: "d3008d1e7cee5170171699ef6fb9aa81" - } - Frame { - msec: 2016 - hash: "5c1244e7806e131a6063f22a66e4eb12" - } - Frame { - msec: 2032 - hash: "fcd6b372229a6cf14face81e9d614456" - } - Frame { - msec: 2048 - hash: "bf1a375a81bf43c5671cccc62e9a0462" - } - Frame { - msec: 2064 - hash: "0e22404508470baaa6621f37361951fa" - } - Frame { - msec: 2080 - hash: "45046f28c103caa161e41861f71731c4" - } - Frame { - msec: 2096 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2112 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2128 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2144 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2160 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2176 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2192 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2208 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2224 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2240 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2256 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2272 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2288 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2304 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2320 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2336 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2352 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2368 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2384 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2400 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2416 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2432 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2448 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2464 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2480 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2496 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2512 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2528 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2544 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2560 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2576 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2592 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2608 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2624 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2640 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2656 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2672 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2688 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2704 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2720 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2736 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2752 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 150; y: 274 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2768 - hash: "7a92731c713470a2b2c91fd6b83447de" - } - Frame { - msec: 2784 - hash: "44a0b46c21bd4c76d44883ba146e3614" - } - Frame { - msec: 2800 - hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9" - } - Frame { - msec: 2816 - hash: "ea9c05c0295a300e21aacbdfd5b4968e" - } - Frame { - msec: 2832 - hash: "e630e2893f89a6ae536bcbd1a084af07" - } - Frame { - msec: 2848 - hash: "af56f1e79eb3746efb9e4bcbc3fbced8" - } - Frame { - msec: 2864 - hash: "96be8c3ba0d7a85c6f6df877b869b563" - } - Frame { - msec: 2880 - image: "parentAction.2.png" - } - Frame { - msec: 2896 - hash: "603d8684cb6f097e3ab2a2e5ef053112" - } - Frame { - msec: 2912 - hash: "0433d242d1dd40a3792f55f807ebbff4" - } - Frame { - msec: 2928 - hash: "1190067cacc7361f6cfe09f153c7a07e" - } - Frame { - msec: 2944 - hash: "98e917880471511122847ad8a406e3a3" - } - Frame { - msec: 2960 - hash: "fff06869074a3a6c5823ed3fb6fa7a43" - } - Frame { - msec: 2976 - hash: "602d95daee8f160a0fd784931d0a06bd" - } - Frame { - msec: 2992 - hash: "f7e466bbd52f40e88ff567758f4db835" - } - Frame { - msec: 3008 - hash: "54417a4c4fb71d458439ad2e2126f8e1" - } - Frame { - msec: 3024 - hash: "fe150dd5056b9dbf1cd0b196e9a7a47b" - } - Frame { - msec: 3040 - hash: "1384c871bead85916f7bfcdebc370697" - } - Frame { - msec: 3056 - hash: "5f13339cc0e604b75a9d1d85342fa717" - } - Frame { - msec: 3072 - hash: "655069d61b7a44e729a2cbb33d683c3e" - } - Frame { - msec: 3088 - hash: "2324e9e4a02e41855b066983dbf0e61d" - } - Frame { - msec: 3104 - hash: "0217baf091325b95c033ba073bd68ce5" - } - Frame { - msec: 3120 - hash: "c27854c3af5b58db85846a1762ab18ba" - } - Frame { - msec: 3136 - hash: "45246ee6383ceb6260f84571a885ba90" - } - Frame { - msec: 3152 - hash: "d82ded86f093d1a376994cacf43d0343" - } - Frame { - msec: 3168 - hash: "c9179d30f80c6101bca2bed40d6a859f" - } - Frame { - msec: 3184 - hash: "a63e032d20a9d985c6c345434d98a364" - } - Frame { - msec: 3200 - hash: "fc7d6797ce15edf7fadb9dae691ecd5c" - } - Frame { - msec: 3216 - hash: "76cf37ad8c50fed8b1900784b647819c" - } - Frame { - msec: 3232 - hash: "256aab3690c9ba928bb4d4dd3bbfc756" - } - Frame { - msec: 3248 - hash: "90cab52fdefbae4e7d0f0f93b46ebeb0" - } - Frame { - msec: 3264 - hash: "badb5103bf826dc467f6e620cc2b47be" - } - Frame { - msec: 3280 - hash: "e7d0e437de5ebc0fa07b2a4ef11159cb" - } - Frame { - msec: 3296 - hash: "5931b1c3932ab91446324165d7e2603a" - } - Frame { - msec: 3312 - hash: "ce1808db90ba955ab3cb845500f4c013" - } - Frame { - msec: 3328 - hash: "142f8a440d1fe2d868f47ba3006de9d7" - } - Frame { - msec: 3344 - hash: "10d32a6cc90319ea66d7f2c1241590ce" - } - Frame { - msec: 3360 - hash: "7f633559d715396e6de451b3dd2fadbd" - } - Frame { - msec: 3376 - hash: "d44590ae51ceef5e082747c44bc41be9" - } - Frame { - msec: 3392 - hash: "2b498181668fb1fbf65294d575654929" - } - Frame { - msec: 3408 - hash: "7efeeffd08e4de440da83511313de729" - } - Frame { - msec: 3424 - hash: "8de2331393d1e712192d11ed096836d3" - } - Frame { - msec: 3440 - hash: "fa9381ef2e295865a9b8cb9b36a0eacf" - } - Frame { - msec: 3456 - hash: "97debc4432c5ecb7f606a81e5411b02c" - } - Frame { - msec: 3472 - hash: "eb4c1bb1f4398e3c18182c28a015be76" - } - Frame { - msec: 3488 - hash: "a976aa509f4c6f309d9a6011eeae02aa" - } - Frame { - msec: 3504 - hash: "457de7ee05e0ef0ef120a3d4e371c02e" - } - Frame { - msec: 3520 - hash: "0c01f9f150fe33155fa20703735a6d27" - } - Frame { - msec: 3536 - hash: "5af4f80624082a264010247ea8630a1a" - } - Frame { - msec: 3552 - hash: "b23a1191d149549fa29a61b6dc70f037" - } - Frame { - msec: 3568 - hash: "e00fb32cb13b1347e4b7b9fdbcca68e5" - } - Frame { - msec: 3584 - hash: "fef0503c82f253f8bc3fb3e705a98aa7" - } - Frame { - msec: 3600 - hash: "7a9beca28340d2aa89da5e05f5ac2a55" - } - Frame { - msec: 3616 - hash: "f3c57ea07ab486ffa1f46da60de0b8f1" - } - Frame { - msec: 3632 - hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f" - } - Frame { - msec: 3648 - hash: "1b317a9eb4ce022f005d551546c688a4" - } - Frame { - msec: 3664 - hash: "628e912a4a26800b9b7b5e60e60e3a7d" - } - Frame { - msec: 3680 - hash: "3587b75e4d834a88729754d2c2a4b193" - } - Frame { - msec: 3696 - hash: "084bc1360a38123589baec5aae15b4ff" - } - Frame { - msec: 3712 - hash: "47f0f6c3cdf456826a6fd6846e58dcc8" - } - Frame { - msec: 3728 - hash: "ed982c4c3ebd132baaaf43efad40a3f7" - } - Frame { - msec: 3744 - hash: "d7ddce47c23fada4c69d53d934582d71" - } - Frame { - msec: 3760 - hash: "74f2f911bee26c4c551f4c70596753ae" - } - Frame { - msec: 3776 - hash: "3ed7cbf10dfce3a485d7878766cf9da6" - } - Frame { - msec: 3792 - hash: "87a74257551ab6c7fcfe05e815482ae9" - } - Frame { - msec: 3808 - hash: "4f63e4904e97d4ce832b20b7317a9958" - } - Frame { - msec: 3824 - hash: "f912da8781e547c6e28890655c1b8884" - } - Frame { - msec: 3840 - image: "parentAction.3.png" - } - Frame { - msec: 3856 - hash: "faa640ccf993324400254ffb862ac279" - } - Frame { - msec: 3872 - hash: "b67f342424d1b9a364b09da8994fcd6b" - } - Frame { - msec: 3888 - hash: "b2407732194c1e0c2a9bfb379b94b562" - } - Frame { - msec: 3904 - hash: "55733608d0302ef90c124322ac6d8dc6" - } - Frame { - msec: 3920 - hash: "734f5b628a26d3d7c91ee84fb26d5b5f" - } - Frame { - msec: 3936 - hash: "27839fefa4a218cd77843358392bb874" - } - Frame { - msec: 3952 - hash: "8cac19559d37bd2b581cef0a4c707753" - } - Frame { - msec: 3968 - hash: "91422870aa1471571e7dd8ff5103f76c" - } - Frame { - msec: 3984 - hash: "7156166d5f8d13483467ef515627c95d" - } - Frame { - msec: 4000 - hash: "6028e8374c2ce42a9a9e85b4a8b53027" - } - Frame { - msec: 4016 - hash: "17c99592be58d2e03f9f173c47c0649b" - } - Frame { - msec: 4032 - hash: "6084b53186c6a7eda38ac7fa34bf45ce" - } - Frame { - msec: 4048 - hash: "e82131a8a5a06519f49308bbc25738cf" - } - Frame { - msec: 4064 - hash: "77bdb69cbe55d9c503c6aa1c0f974d87" - } - Frame { - msec: 4080 - hash: "b2346ec5d376651347281d5fb00fc4d7" - } - Frame { - msec: 4096 - hash: "36a3b72c9d7f09795c546855a269801d" - } - Frame { - msec: 4112 - hash: "4e5478b33baca797f3f8f72c2c6c51ad" - } - Frame { - msec: 4128 - hash: "e59d12be3ed1f58de010d385ddfe78e5" - } - Frame { - msec: 4144 - hash: "9674106a146effd47c2724a2dd82ae84" - } - Frame { - msec: 4160 - hash: "862cec781f169f713032e6d52d3616ce" - } - Frame { - msec: 4176 - hash: "c8d47bdfb6518ef4827677023313d559" - } - Frame { - msec: 4192 - hash: "19413931b3e788067dfaef39b47d30ff" - } - Frame { - msec: 4208 - hash: "600e426532c0348cd622257b0773efd5" - } - Frame { - msec: 4224 - hash: "6d975e259d4efa108375d271451531c1" - } - Frame { - msec: 4240 - hash: "50b0da4848564c063694202ce16ea808" - } - Frame { - msec: 4256 - hash: "0a9450739031f680735b5210e6a30c3f" - } - Frame { - msec: 4272 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4288 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4304 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4320 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4336 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4352 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4368 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4384 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4400 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4416 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4432 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4448 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4464 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4480 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4496 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4512 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4528 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4544 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 4560 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4576 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4592 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4608 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4624 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4640 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4656 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4672 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4688 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } - Frame { - msec: 4704 - hash: "23ce049cd7e715c28f5845fd1a1fc195" - } -} diff --git a/tests/auto/declarative/visual/parentAction/parentAction.qml b/tests/auto/declarative/visual/parentAction/parentAction.qml deleted file mode 100644 index e69d234..0000000 --- a/tests/auto/declarative/visual/parentAction/parentAction.qml +++ /dev/null @@ -1,55 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Item { - scale: .5 - rotation: 15 - transformOrigin: "Center" - x: 10; y: 10 - Rectangle { - id: MyRect - x: 5 - width: 100; height: 100 - transformOrigin: "BottomLeft" - color: "red" - } - } - MouseRegion { - id: Clickable - anchors.fill: parent - } - - Item { - x: 200; y: 200 - rotation: 52; - scale: 2 - Item { - id: newParent - x: 100; y: 100 - } - } - - states: State { - name: "moved" - when: Clickable.pressed - ParentChange { - target: MyRect - parent: newParent - } - PropertyChanges { - target: MyRect - rotation: -52 - scale: 1 - color: "blue" - } - } - - transitions: Transition { - SequentialAnimation { - ColorAnimation { duration: 500} - ParentAction {} - NumberAnimation { matchProperties: "rotation, scale"; duration: 1000 } - } - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png deleted file mode 100644 index 693a794..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png deleted file mode 100644 index 06d43f1..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png deleted file mode 100644 index e619baf..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png deleted file mode 100644 index 30c7671..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png deleted file mode 100644 index 132803c..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png deleted file mode 100644 index 8372bc3..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png and /dev/null differ diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml deleted file mode 100644 index 73c6542..0000000 --- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml +++ /dev/null @@ -1,1619 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 32 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 48 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 64 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 80 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 96 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 112 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 128 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 144 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 160 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 176 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 192 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 208 - hash: "21f0b0437a999bbde66a913032d495c2" - } - Frame { - msec: 224 - hash: "0809d32d5bc1bfce199b1f39a1c68d4f" - } - Frame { - msec: 240 - hash: "022137587b39f5123835482178a1f1cf" - } - Frame { - msec: 256 - hash: "97566ce9558d13ea0780bce233097b27" - } - Frame { - msec: 272 - hash: "96d79b07da105b7f631ed61582b26f7e" - } - Frame { - msec: 288 - hash: "f4732ff2df93fe67cb850dec34184924" - } - Frame { - msec: 304 - hash: "054e6e52f74a3e24f04e6ad0071f79f8" - } - Frame { - msec: 320 - hash: "f541af93a9fde62e4bd1c91d30f91e65" - } - Frame { - msec: 336 - hash: "c4f844ee71f23635bb3ec7375f6a134f" - } - Frame { - msec: 352 - hash: "3e52e06db2bf78762bb9816fe6b105d9" - } - Frame { - msec: 368 - hash: "d9604be23a91327e6ab454609a9d4a13" - } - Frame { - msec: 384 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 400 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 416 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 432 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 448 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 464 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 480 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 496 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 512 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 528 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 544 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 560 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 576 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 592 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 608 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 624 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 640 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 656 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 672 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 688 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 704 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 720 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 736 - hash: "7d9096b1eb940c82a37baf39ef3ccf3e" - } - Frame { - msec: 752 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 768 - hash: "da60100dc55023c3bab367d97c8f6a85" - } - Frame { - msec: 784 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 800 - hash: "3f869538028a09020d5e8f528f4fb119" - } - Frame { - msec: 816 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 832 - hash: "2cb09d9655ecc30ae6a591b28c0d355c" - } - Frame { - msec: 848 - hash: "4db9bc6c11caf1d77794c2eabb62a44e" - } - Frame { - msec: 864 - hash: "ce2b5dd7418868acf86fea6ad19cc0c5" - } - Frame { - msec: 880 - hash: "7c27ef654e645679c90520d6cf00b0c4" - } - Frame { - msec: 896 - hash: "ab3e211df3ef7f5f7a8d712edc891c0f" - } - Frame { - msec: 912 - hash: "19d2ae617a49b57dd012677e2834469c" - } - Frame { - msec: 928 - hash: "5025eb75c88f0760f637e0342b7f88a2" - } - Frame { - msec: 944 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 960 - image: "pauseAnimation.0.png" - } - Frame { - msec: 976 - hash: "5f18a81707f23d377e81a27c1fc41ce9" - } - Frame { - msec: 992 - hash: "bcc35497884c158396c7f60759d1fda4" - } - Frame { - msec: 1008 - hash: "7a4528b000a4ea142d1c77407fa1f581" - } - Frame { - msec: 1024 - hash: "ba967a7d810a4531e577e5f6bd2def33" - } - Frame { - msec: 1040 - hash: "f5afd9cf8ffe27e9992454b9e68688cb" - } - Frame { - msec: 1056 - hash: "51d475c7f64a86d3a18fb115297a7b6b" - } - Frame { - msec: 1072 - hash: "49f5d6fd45c195a8d245b7fefc1277ab" - } - Frame { - msec: 1088 - hash: "f9b0b278659e3a0f78611e6b7f0f2176" - } - Frame { - msec: 1104 - hash: "0809d32d5bc1bfce199b1f39a1c68d4f" - } - Frame { - msec: 1120 - hash: "b7208d103b63a936dff8dd8ed224237f" - } - Frame { - msec: 1136 - hash: "a57c81049b0dc68090ec7c3327b9922c" - } - Frame { - msec: 1152 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1168 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1184 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1200 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1216 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 1232 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 1248 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 1264 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 1280 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 1296 - hash: "336d31586171f22d541b989d24b95cbb" - } - Frame { - msec: 1312 - hash: "f0d8132489c2f2ef760e905b3c093726" - } - Frame { - msec: 1328 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 1344 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1360 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 1376 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 1392 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1408 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 1424 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 1440 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1456 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1472 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1488 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1504 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1520 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1536 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1552 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1568 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1584 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1600 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1616 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1632 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1648 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 1664 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1680 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 1696 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1712 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 1728 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 1744 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1760 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 1776 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 1792 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 1808 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 1824 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 1840 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 1856 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 1872 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 1888 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 1904 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 1920 - image: "pauseAnimation.1.png" - } - Frame { - msec: 1936 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 1952 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 1968 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 1984 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2000 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2016 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 2032 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2048 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2064 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2080 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2096 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2112 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2128 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2144 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2160 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2176 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2192 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2208 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 2224 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2240 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 2256 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2272 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 2288 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 2304 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2320 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2336 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2352 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2368 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2384 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2400 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2416 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2432 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 2448 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2464 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2480 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2496 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 2512 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2528 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2544 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2560 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2576 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2592 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2608 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2624 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2640 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2656 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2672 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2688 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2704 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2720 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2736 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2752 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2768 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2784 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2800 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2816 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2832 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2848 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2864 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2880 - image: "pauseAnimation.2.png" - } - Frame { - msec: 2896 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2912 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2928 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2944 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2960 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2976 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 2992 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3008 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3024 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3040 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3056 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3072 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3088 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3104 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3120 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3136 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3152 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3168 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3184 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3200 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3216 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3232 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3248 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3264 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3280 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3296 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3312 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3328 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3344 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3360 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3376 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3392 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3408 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3424 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3440 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3456 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3472 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3488 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3504 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3520 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3536 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 3552 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 3568 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 3584 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 3600 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 3616 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 3632 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 3648 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 3664 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 3680 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 3696 - hash: "630d90eef2673a69e8ebc4ef1ba40e81" - } - Frame { - msec: 3712 - hash: "b7208d103b63a936dff8dd8ed224237f" - } - Frame { - msec: 3728 - hash: "1516c3547c7cf64832b3bc7da7c44521" - } - Frame { - msec: 3744 - hash: "49f5d6fd45c195a8d245b7fefc1277ab" - } - Frame { - msec: 3760 - hash: "f5afd9cf8ffe27e9992454b9e68688cb" - } - Frame { - msec: 3776 - hash: "7a4528b000a4ea142d1c77407fa1f581" - } - Frame { - msec: 3792 - hash: "5f18a81707f23d377e81a27c1fc41ce9" - } - Frame { - msec: 3808 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 3824 - hash: "85c135ef72d3d25658a3663e69ffb7c2" - } - Frame { - msec: 3840 - image: "pauseAnimation.3.png" - } - Frame { - msec: 3856 - hash: "20258f07c613958c32f783466771391a" - } - Frame { - msec: 3872 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 3888 - hash: "f340cdf60c6d4c29d26b7202a093ec70" - } - Frame { - msec: 3904 - hash: "d754d35d0793f9f7d4f6249a874e4c45" - } - Frame { - msec: 3920 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 3936 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 3952 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 3968 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 3984 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4000 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4016 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4032 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4048 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4064 - hash: "29ece1bca4d21fb5862091317d430a13" - } - Frame { - msec: 4080 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4096 - hash: "c1a7b7d6d64ac5584c073c2881290696" - } - Frame { - msec: 4112 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 4128 - hash: "4ac43a03cc6f2020ab5f894d704092ac" - } - Frame { - msec: 4144 - hash: "ffd39c1122fe2f7877ef30591b539b40" - } - Frame { - msec: 4160 - hash: "62a7133012348f2ec3a388fb685ecc3f" - } - Frame { - msec: 4176 - hash: "45281a70021f81dbef30334b1480da1b" - } - Frame { - msec: 4192 - hash: "6cc9de62a0c8fa5e42eac1b01e99ac32" - } - Frame { - msec: 4208 - hash: "79ec710576427df73dd03f39fba6e2eb" - } - Frame { - msec: 4224 - hash: "5be4f5c67941efb6fcea363c79f1e321" - } - Frame { - msec: 4240 - hash: "7d9096b1eb940c82a37baf39ef3ccf3e" - } - Frame { - msec: 4256 - hash: "e87b00bfc2c2a75a4234ec02a057ad3a" - } - Frame { - msec: 4272 - hash: "da60100dc55023c3bab367d97c8f6a85" - } - Frame { - msec: 4288 - hash: "dc98a9bdd99367c1e9b838d4be489dcc" - } - Frame { - msec: 4304 - hash: "b2c778a5eff5f01edc54f03d8b4de8c7" - } - Frame { - msec: 4320 - hash: "9650fd0364c01b11e4f5dcce51d008af" - } - Frame { - msec: 4336 - hash: "2cb09d9655ecc30ae6a591b28c0d355c" - } - Frame { - msec: 4352 - hash: "4db9bc6c11caf1d77794c2eabb62a44e" - } - Frame { - msec: 4368 - hash: "ce2b5dd7418868acf86fea6ad19cc0c5" - } - Frame { - msec: 4384 - hash: "c4f844ee71f23635bb3ec7375f6a134f" - } - Frame { - msec: 4400 - hash: "4e1fda8a0495ef968c1cffb1257426d7" - } - Frame { - msec: 4416 - hash: "19d2ae617a49b57dd012677e2834469c" - } - Frame { - msec: 4432 - hash: "f438e8d2c16b5de677924c8411219b19" - } - Frame { - msec: 4448 - hash: "005acbef952a8ee536e6308a48223e65" - } - Frame { - msec: 4464 - hash: "87b71778d52cd8563d171151d4d32407" - } - Frame { - msec: 4480 - hash: "691cd8bf5c7802ff6c5024827a379fc6" - } - Frame { - msec: 4496 - hash: "ab442c0173c3d221b6782d28001dac77" - } - Frame { - msec: 4512 - hash: "6f886d4538704c2fad4d84c68214109f" - } - Frame { - msec: 4528 - hash: "56d39f233fae41c60499d6161f891cbc" - } - Frame { - msec: 4544 - hash: "95d987c3fd1352fb81c42c63634fe53b" - } - Frame { - msec: 4560 - hash: "96dc84c0c548021910e7c5b580179054" - } - Frame { - msec: 4576 - hash: "ddb71cbd57f6e43744d533d4f72b08db" - } - Frame { - msec: 4592 - hash: "f7ab4b197bea455b22f259913438d207" - } - Frame { - msec: 4608 - hash: "2ad64cb01c9d50e0118d5ece0a644df2" - } - Frame { - msec: 4624 - hash: "6579681c59dd571df0ee4429d74fb5c7" - } - Frame { - msec: 4640 - hash: "630d90eef2673a69e8ebc4ef1ba40e81" - } - Frame { - msec: 4656 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 4672 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 4688 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 4704 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 4720 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 4736 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 4752 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 4768 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 4784 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 4800 - image: "pauseAnimation.4.png" - } - Frame { - msec: 4816 - hash: "f0d8132489c2f2ef760e905b3c093726" - } - Frame { - msec: 4832 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 4848 - hash: "dd60cbaff6f34027474e92315dbc0ebc" - } - Frame { - msec: 4864 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 4880 - hash: "bc426fb7c31751665b0d3f16e2cb0173" - } - Frame { - msec: 4896 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 4912 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 4928 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 4944 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 4960 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 4976 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 4992 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5008 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5024 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5040 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5056 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5072 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5088 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5104 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5120 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5136 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5152 - hash: "1373545e43fff7251cec9e8375ea267f" - } - Frame { - msec: 5168 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5184 - hash: "e553f365912586c6408c8c53b1b7d118" - } - Frame { - msec: 5200 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5216 - hash: "3db5e30ef19ea693c21ccf72892c4390" - } - Frame { - msec: 5232 - hash: "a88a8129259f86df5a73addc3649ad37" - } - Frame { - msec: 5248 - hash: "a8b624ebfc9ab713d1ce55f318a6e90d" - } - Frame { - msec: 5264 - hash: "af3120fe262d2489c0ed33fbbee1549f" - } - Frame { - msec: 5280 - hash: "721d7061811b5439c2e8e395917494bc" - } - Frame { - msec: 5296 - hash: "53ae93140252373eaa4d9da73756bd8e" - } - Frame { - msec: 5312 - hash: "b3f4a2165ec1ee971542b8ef89656cea" - } - Frame { - msec: 5328 - hash: "0c20d12464abbdc45041ea5d9f2719b1" - } - Frame { - msec: 5344 - hash: "8757668e56be6449ec375f0b8fed1be3" - } - Frame { - msec: 5360 - hash: "ef8941674cb61f54853dc33652bb854e" - } - Frame { - msec: 5376 - hash: "e11455d4e23a5a865e222a7aba4ba4f9" - } - Frame { - msec: 5392 - hash: "6d63fb5c8a80f0280e88b2cdf8641bb9" - } - Frame { - msec: 5408 - hash: "e74fe4a6bd92cbe8629c8bc8a870104d" - } - Frame { - msec: 5424 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5440 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5456 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5472 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 5488 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5504 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5520 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5536 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5552 - hash: "ce57e27af329eba4fac3ab891f0407ce" - } - Frame { - msec: 5568 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5584 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5600 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5616 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5632 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5648 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5664 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5680 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5696 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5712 - hash: "3042003c067b257de2cb32f650dde693" - } - Frame { - msec: 5728 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5744 - hash: "a725b59b4947357546bbfc7df3d830af" - } - Frame { - msec: 5760 - image: "pauseAnimation.5.png" - } - Frame { - msec: 5776 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5792 - hash: "41ba853c3403f68a23e708df82e21c53" - } - Frame { - msec: 5808 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5824 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5840 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 5856 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5872 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5888 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5904 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5920 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5936 - hash: "dcf2867c127e041970047ec8f3edc04f" - } - Frame { - msec: 5952 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5968 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 5984 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 6000 - hash: "675ebbdd22dd22ce45993df4af1acfe9" - } - Frame { - msec: 6016 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6032 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6048 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6064 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6080 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6096 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6112 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6128 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6144 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6160 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6176 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6192 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6208 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6224 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6240 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6256 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6272 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6288 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6304 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6320 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6336 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6352 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6368 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 6384 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6400 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } - Frame { - msec: 6416 - hash: "a350b70c5238a340e85fd4a3ec0390a3" - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml deleted file mode 100644 index fba8ae6..0000000 --- a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml +++ /dev/null @@ -1,30 +0,0 @@ -import Qt 4.6 - -Rectangle { - id: rect - width: 120 - height: 200 - color: "white" - Image { - id: img - source: "pics/qtlogo.png" - x: 60-width/2 - y: 200-height - y: SequentialAnimation { - running: true - repeat: true - NumberAnimation { - to: 0; duration: 500 - easing: "easeInOutQuad" - } - NumberAnimation { - to: 200-img.height - easing: "easeOutBounce" - duration: 2000 - } - PauseAnimation { - duration: 1000 - } - } - } -} diff --git a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png deleted file mode 100644 index 399bd0b..0000000 Binary files a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png deleted file mode 100644 index 64d6b06..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png deleted file mode 100644 index f7fce15..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png deleted file mode 100644 index 3080df5..0000000 Binary files a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png and /dev/null differ diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml deleted file mode 100644 index 7c8c233..0000000 --- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml +++ /dev/null @@ -1,939 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 32 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 48 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 64 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 80 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 96 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 112 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 128 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 144 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 160 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 176 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 192 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 208 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 224 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 240 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 256 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 272 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 288 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 304 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 320 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 336 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 352 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 368 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 384 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 400 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 416 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 432 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 448 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 464 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 480 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 496 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 512 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 528 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 544 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 560 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 576 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 592 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 608 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 624 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 640 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 656 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 672 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 688 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 704 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 720 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 736 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 752 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 768 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 784 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 800 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 816 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 832 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 848 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 864 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 880 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 896 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 912 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 928 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 944 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 960 - image: "propertyAction.0.png" - } - Frame { - msec: 976 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 992 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1008 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1024 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1040 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1056 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1072 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1088 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1104 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1120 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1136 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1152 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1168 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1184 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1200 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1216 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1232 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1248 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1264 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1280 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1296 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1312 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1328 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1344 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1360 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1376 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1392 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1408 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1424 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1440 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1456 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1472 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1488 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1504 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1520 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1536 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1552 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1568 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1584 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1600 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 109; y: 247 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1616 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1632 - hash: "c91921dba899d7a86de3cd013773889f" - } - Frame { - msec: 1648 - hash: "888c0fc86155e10b5fc577ef6ec5755a" - } - Frame { - msec: 1664 - hash: "7fd61a8910bf7b0d2bf57653a268c5d8" - } - Frame { - msec: 1680 - hash: "f42f5073f90a423adf011d0e168c8a9b" - } - Frame { - msec: 1696 - hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5" - } - Frame { - msec: 1712 - hash: "f10e997d7a17c18251a32d58b018105a" - } - Frame { - msec: 1728 - hash: "09ffb57d5f67edfa34d6aad36a002554" - } - Frame { - msec: 1744 - hash: "01f3a2f5b9815f1397a907b099339360" - } - Frame { - msec: 1760 - hash: "58c0910c49748edd2ef8472960179472" - } - Frame { - msec: 1776 - hash: "cc82c5f7f93c5bc1af1c6c509268566a" - } - Frame { - msec: 1792 - hash: "3ef272c6439b85fbc166375d1b98403c" - } - Frame { - msec: 1808 - hash: "98c576f0900e4b8752d1f951bb6bf391" - } - Frame { - msec: 1824 - hash: "4d66dd64d8736ef50163e08723873478" - } - Frame { - msec: 1840 - hash: "9a5d8455b6763456185625811253e0b1" - } - Frame { - msec: 1856 - hash: "77e85731efa786a2492aae19a87523c6" - } - Frame { - msec: 1872 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1888 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1904 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 1920 - image: "propertyAction.1.png" - } - Frame { - msec: 1936 - hash: "db3010ef552146df938c237f6c92bff5" - } - Frame { - msec: 1952 - hash: "101e8595d0301e88376ec52ba9361f84" - } - Frame { - msec: 1968 - hash: "119d548c59baa7e47266d2ceca663288" - } - Frame { - msec: 1984 - hash: "f141fafe102a0b9a2bf33e8c3fc800ff" - } - Frame { - msec: 2000 - hash: "b01f9ca8d4fbff17b3d48c70898a044d" - } - Frame { - msec: 2016 - hash: "cf67954a2d1b22e8d2cfdc26419bafb8" - } - Frame { - msec: 2032 - hash: "7680b2b5a63dea13d733947297e01355" - } - Frame { - msec: 2048 - hash: "af1c017acf6b3c8cff86c9ceb60db3cb" - } - Frame { - msec: 2064 - hash: "0b23ec51f71fddae5e2238ab5754f1db" - } - Frame { - msec: 2080 - hash: "976643961ecbdc86335180ba812b874e" - } - Frame { - msec: 2096 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2112 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2128 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2144 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2160 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2176 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2192 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2208 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2224 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2240 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2256 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2272 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2288 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2304 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2320 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2336 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2352 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2368 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2384 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2400 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2416 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2432 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2448 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2464 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2480 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2496 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2512 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2528 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2544 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2560 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2576 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2592 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2608 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2624 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2640 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2656 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2672 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2688 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2704 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2720 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2736 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2752 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 109; y: 247 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2768 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2784 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2800 - hash: "ab924ae435262e76381c2e4af5d64342" - } - Frame { - msec: 2816 - hash: "d60758fc12471a19d31c85f058f2ded7" - } - Frame { - msec: 2832 - hash: "c62e2956f8eb5d2c8cd76ba05c5929d5" - } - Frame { - msec: 2848 - hash: "f2967ee7e035a9ff258116a2706529f8" - } - Frame { - msec: 2864 - hash: "885c4705c6c29f69c56c44abc1251d75" - } - Frame { - msec: 2880 - image: "propertyAction.2.png" - } - Frame { - msec: 2896 - hash: "f4af6871e522511f95bc4c5abfc2a562" - } - Frame { - msec: 2912 - hash: "b27e1e7e0d90468525309528ccfe2823" - } - Frame { - msec: 2928 - hash: "78e7d84a4466258b40315fe61b7ca15c" - } - Frame { - msec: 2944 - hash: "471013d921d8d6e7468fd6aba0b75c71" - } - Frame { - msec: 2960 - hash: "856048da893c9136ac5740bc89b64128" - } - Frame { - msec: 2976 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 2992 - hash: "2264fa3acd979f104633c1301a0efd8f" - } - Frame { - msec: 3008 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 3024 - hash: "ad899d1ecaa43a5541be7b70413caee5" - } - Frame { - msec: 3040 - hash: "4e652524c992f5ee1b987275ca509728" - } - Frame { - msec: 3056 - hash: "a44b3dec2a016694bc8553a51b29d46c" - } - Frame { - msec: 3072 - hash: "7fbe20346bc3c28c345e0797b55599f3" - } - Frame { - msec: 3088 - hash: "bcff18ad433bb4f08126ee66efb037d1" - } - Frame { - msec: 3104 - hash: "836666c64f73c38e87de95944ff2fe72" - } - Frame { - msec: 3120 - hash: "4379982d23db239b1741b5d72c53e160" - } - Frame { - msec: 3136 - hash: "0ed9476337214e1493c1510b8a4c90f8" - } - Frame { - msec: 3152 - hash: "dab637406577a1924c7dbb30680e1af3" - } - Frame { - msec: 3168 - hash: "dcc79277fdb8966e5a3f2ed1b2fc4292" - } - Frame { - msec: 3184 - hash: "5f207d1dfad4907f200d76104881bf56" - } - Frame { - msec: 3200 - hash: "3434fc7f81e859722585dae97c557864" - } - Frame { - msec: 3216 - hash: "7c775b9be8c5293d4962324574267c22" - } - Frame { - msec: 3232 - hash: "da0ff6955c2e4cd86421bdb9053f56e6" - } - Frame { - msec: 3248 - hash: "a1297d525a3ad41abbbb7c2f15efd4fb" - } - Frame { - msec: 3264 - hash: "5326b220995b2a1eaa308ad10fd353fa" - } - Frame { - msec: 3280 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3296 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3312 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3328 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3344 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3360 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3376 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3392 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3408 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3424 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3440 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3456 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3472 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3488 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3504 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3520 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3536 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3552 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3568 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3584 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3600 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3616 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 3632 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } -} diff --git a/tests/auto/declarative/visual/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/propertyAction.qml deleted file mode 100644 index a9d3c74..0000000 --- a/tests/auto/declarative/visual/propertyAction/propertyAction.qml +++ /dev/null @@ -1,34 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Rectangle { - id: MyRect - width: 100; height: 100 - color: "red" - } - MouseRegion { - id: Clickable - anchors.fill: parent - } - - states: State { - name: "state1" - when: Clickable.pressed - PropertyChanges { - target: MyRect - x: 50; y: 50 - color: "blue" - } - } - - transitions: Transition { - to: "state1" - reversible: true - SequentialAnimation { - ColorAnimation {} - PropertyAction { matchProperties: "x" } - NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } - } - } -} diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png deleted file mode 100644 index 64d6b06..0000000 Binary files a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png and /dev/null differ diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png deleted file mode 100644 index 1a25c63..0000000 Binary files a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png and /dev/null differ diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml deleted file mode 100644 index 01da490..0000000 --- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml +++ /dev/null @@ -1,535 +0,0 @@ -import Qt.VisualTest 4.6 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 32 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 48 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 64 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 80 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 96 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 112 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 128 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 144 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 160 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 176 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 192 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 208 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 224 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 240 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 256 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 272 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 288 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 304 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 320 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 336 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 352 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 368 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 384 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 400 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 416 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 432 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 448 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 464 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 480 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 496 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 512 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 528 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 544 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 560 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 576 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 592 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 608 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 624 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 640 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 656 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 672 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 688 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 704 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 720 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 736 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 752 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 768 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 784 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 800 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 816 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 832 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 848 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 864 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 880 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 896 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 912 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 928 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 944 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 960 - image: "scriptAction.0.png" - } - Frame { - msec: 976 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 992 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1008 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1024 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1040 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1056 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1072 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1088 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 146; y: 259 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 1104 - hash: "55b713dcb7c810bf126e06cc97d26d24" - } - Frame { - msec: 1120 - hash: "9850cd8ed4643900409d1a87ef0bc4cf" - } - Frame { - msec: 1136 - hash: "1cf03396b01e931e4e7e8e7e57e19c5f" - } - Frame { - msec: 1152 - hash: "25fe648b85ec2d82621853dcbdbf695a" - } - Frame { - msec: 1168 - hash: "1ca701e56fe387d5849f6933eb53aee9" - } - Frame { - msec: 1184 - hash: "b39ecb792659a053a8985e2a849d6d51" - } - Frame { - msec: 1200 - hash: "9a783432a054beec81cc5687f75a36dc" - } - Frame { - msec: 1216 - hash: "edbd222d7ba6c6f819ded45fe316d461" - } - Frame { - msec: 1232 - hash: "eaf20159c4b90f90872bbd514d3a0cec" - } - Frame { - msec: 1248 - hash: "964807dd9b91e765577a773ef1ce2593" - } - Frame { - msec: 1264 - hash: "16e12026ab14657b0f36b8315684455d" - } - Frame { - msec: 1280 - hash: "d001a6b2fec3c66baaa45d9ff93b3f63" - } - Frame { - msec: 1296 - hash: "fef11eb5f635bc11cd9679b7213b3b92" - } - Frame { - msec: 1312 - hash: "0a0cd5f5004048d88712cfe6943470c0" - } - Frame { - msec: 1328 - hash: "0d83178afdae5feaa9915d56c24373ad" - } - Frame { - msec: 1344 - hash: "0a9e6e0b7b23ce93dc4e1f886cf9c7d1" - } - Frame { - msec: 1360 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1376 - hash: "f3199d0c860f1236e0b9472bef8785bc" - } - Frame { - msec: 1392 - hash: "32ccdab249268b01d9f1658a736052f1" - } - Frame { - msec: 1408 - hash: "dc98f32a1a2d6e74998123b5232107b0" - } - Frame { - msec: 1424 - hash: "db3010ef552146df938c237f6c92bff5" - } - Frame { - msec: 1440 - hash: "101e8595d0301e88376ec52ba9361f84" - } - Frame { - msec: 1456 - hash: "119d548c59baa7e47266d2ceca663288" - } - Frame { - msec: 1472 - hash: "f141fafe102a0b9a2bf33e8c3fc800ff" - } - Frame { - msec: 1488 - hash: "b01f9ca8d4fbff17b3d48c70898a044d" - } - Frame { - msec: 1504 - hash: "cf67954a2d1b22e8d2cfdc26419bafb8" - } - Frame { - msec: 1520 - hash: "7680b2b5a63dea13d733947297e01355" - } - Frame { - msec: 1536 - hash: "af1c017acf6b3c8cff86c9ceb60db3cb" - } - Frame { - msec: 1552 - hash: "0b23ec51f71fddae5e2238ab5754f1db" - } - Frame { - msec: 1568 - hash: "976643961ecbdc86335180ba812b874e" - } - Frame { - msec: 1584 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1600 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1616 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1632 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1648 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1664 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1680 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1696 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1712 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1728 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1744 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1760 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1776 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1792 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1808 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1824 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1840 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1856 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1872 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1888 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1904 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1920 - image: "scriptAction.1.png" - } - Frame { - msec: 1936 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1952 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1968 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 1984 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2000 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2016 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2032 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } - Frame { - msec: 2048 - hash: "aeed60899abb6c486a5b1df81f9a0224" - } -} diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/scriptAction.qml deleted file mode 100644 index 872701b..0000000 --- a/tests/auto/declarative/visual/scriptAction/scriptAction.qml +++ /dev/null @@ -1,35 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 400; height: 400 - Rectangle { - id: myRect - width: 100; height: 100 - color: "red" - } - MouseRegion { - id: clickable - anchors.fill: parent - } - - states: State { - name: "state1" - when: clickable.pressed - PropertyChanges { - target: myRect - x: 50; y: 50 - } - StateChangeScript { - name: "setColor" - script: myRect.color = "blue" - } - } - - transitions: Transition { - SequentialAnimation { - NumberAnimation { matchProperties: "x"; easing: "InOutQuad" } - ScriptAction { stateChangeScriptName: "setColor" } - NumberAnimation { matchProperties: "y"; easing: "InOutQuad" } - } - } -} -- cgit v0.12 From 156992b432761f0a8ec897a57aa15f96c9eb09fc Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 14:31:51 +1000 Subject: Files for qtest directory on test server for importRemote tests. --- .../qtest/declarative/qmllanguage/LocalInternal.qml | 3 +++ .../qmllanguage/qtest/declarative/qmllanguage/Test.qml | 2 ++ .../qtest/declarative/qmllanguage/TestLocal.qml | 1 + .../qtest/declarative/qmllanguage/TestSubDir.qml | 2 ++ .../qtest/declarative/qmllanguage/pics/blue.png | Bin 0 -> 84 bytes .../qmllanguage/qtest/declarative/qmllanguage/qmldir | 3 +++ .../qtest/declarative/qmllanguage/subdir/SubTest.qml | 3 +++ .../qtest/declarative/qmllanguage/subdir/qmldir | 1 + 8 files changed, 15 insertions(+) create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml create mode 100644 tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml new file mode 100644 index 0000000..836c20a --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml new file mode 100644 index 0000000..11443ca --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml @@ -0,0 +1 @@ +LocalInternal {} diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml new file mode 100644 index 0000000..0dfede4 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml @@ -0,0 +1,2 @@ +import "subdir" +SubTest { } diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png new file mode 100644 index 0000000..46f815f Binary files /dev/null and b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png differ diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir new file mode 100644 index 0000000..b32f82b --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir @@ -0,0 +1,3 @@ +Test 0.0 Test.qml +TestSubDir 0.0 TestSubDir.qml +TestLocal 0.0 TestLocal.qml diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml new file mode 100644 index 0000000..0ea9ec6 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Text {} diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir new file mode 100644 index 0000000..f7016c7 --- /dev/null +++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir @@ -0,0 +1 @@ +SubTest 0.0 SubTest.qml -- cgit v0.12 From a74b55ca2c5a67cb273d77e9be39d987e765468e Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 14:44:45 +1000 Subject: Get rid of the extra directory. --- src/declarative/declarative.pro | 1 - src/declarative/extra/extra.pri | 20 - src/declarative/extra/qmlbehavior.cpp | 157 ------ src/declarative/extra/qmlbehavior_p.h | 84 --- src/declarative/extra/qmldatetimeformatter.cpp | 370 ------------- src/declarative/extra/qmldatetimeformatter_p.h | 116 ---- src/declarative/extra/qmlfontloader.cpp | 219 -------- src/declarative/extra/qmlfontloader_p.h | 94 ---- src/declarative/extra/qmlnumberformatter.cpp | 215 -------- src/declarative/extra/qmlnumberformatter_p.h | 92 ---- src/declarative/extra/qmlxmllistmodel.cpp | 727 ------------------------- src/declarative/extra/qmlxmllistmodel_p.h | 134 ----- src/declarative/extra/qnumberformat.cpp | 225 -------- src/declarative/extra/qnumberformat_p.h | 173 ------ src/declarative/util/qmlbehavior.cpp | 157 ++++++ src/declarative/util/qmlbehavior_p.h | 84 +++ src/declarative/util/qmldatetimeformatter.cpp | 370 +++++++++++++ src/declarative/util/qmldatetimeformatter_p.h | 116 ++++ src/declarative/util/qmlfontloader.cpp | 219 ++++++++ src/declarative/util/qmlfontloader_p.h | 94 ++++ src/declarative/util/qmlnumberformatter.cpp | 215 ++++++++ src/declarative/util/qmlnumberformatter_p.h | 92 ++++ src/declarative/util/qmlxmllistmodel.cpp | 727 +++++++++++++++++++++++++ src/declarative/util/qmlxmllistmodel_p.h | 134 +++++ src/declarative/util/qnumberformat.cpp | 225 ++++++++ src/declarative/util/qnumberformat_p.h | 173 ++++++ src/declarative/util/util.pri | 20 +- 27 files changed, 2624 insertions(+), 2629 deletions(-) delete mode 100644 src/declarative/extra/extra.pri delete mode 100644 src/declarative/extra/qmlbehavior.cpp delete mode 100644 src/declarative/extra/qmlbehavior_p.h delete mode 100644 src/declarative/extra/qmldatetimeformatter.cpp delete mode 100644 src/declarative/extra/qmldatetimeformatter_p.h delete mode 100644 src/declarative/extra/qmlfontloader.cpp delete mode 100644 src/declarative/extra/qmlfontloader_p.h delete mode 100644 src/declarative/extra/qmlnumberformatter.cpp delete mode 100644 src/declarative/extra/qmlnumberformatter_p.h delete mode 100644 src/declarative/extra/qmlxmllistmodel.cpp delete mode 100644 src/declarative/extra/qmlxmllistmodel_p.h delete mode 100644 src/declarative/extra/qnumberformat.cpp delete mode 100644 src/declarative/extra/qnumberformat_p.h create mode 100644 src/declarative/util/qmlbehavior.cpp create mode 100644 src/declarative/util/qmlbehavior_p.h create mode 100644 src/declarative/util/qmldatetimeformatter.cpp create mode 100644 src/declarative/util/qmldatetimeformatter_p.h create mode 100644 src/declarative/util/qmlfontloader.cpp create mode 100644 src/declarative/util/qmlfontloader_p.h create mode 100644 src/declarative/util/qmlnumberformatter.cpp create mode 100644 src/declarative/util/qmlnumberformatter_p.h create mode 100644 src/declarative/util/qmlxmllistmodel.cpp create mode 100644 src/declarative/util/qmlxmllistmodel_p.h create mode 100644 src/declarative/util/qnumberformat.cpp create mode 100644 src/declarative/util/qnumberformat_p.h diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 41fee96..e5e604b 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -19,7 +19,6 @@ include(3rdparty/3rdparty.pri) include(util/util.pri) include(graphicsitems/graphicsitems.pri) include(qml/qml.pri) -include(extra/extra.pri) include(widgets/widgets.pri) include(debugger/debugger.pri) diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri deleted file mode 100644 index 85ff6ea..0000000 --- a/src/declarative/extra/extra.pri +++ /dev/null @@ -1,20 +0,0 @@ -SOURCES += \ - extra/qnumberformat.cpp \ - extra/qmlnumberformatter.cpp \ - extra/qmldatetimeformatter.cpp \ - extra/qmlbehavior.cpp \ - extra/qmlfontloader.cpp - -HEADERS += \ - extra/qnumberformat_p.h \ - extra/qmlnumberformatter_p.h \ - extra/qmldatetimeformatter_p.h \ - extra/qmlbehavior_p.h \ - extra/qmlfontloader_p.h - -contains(QT_CONFIG, xmlpatterns) { - QT+=xmlpatterns - SOURCES += extra/qmlxmllistmodel.cpp - HEADERS += extra/qmlxmllistmodel_p.h -} - diff --git a/src/declarative/extra/qmlbehavior.cpp b/src/declarative/extra/qmlbehavior.cpp deleted file mode 100644 index 8364d8c..0000000 --- a/src/declarative/extra/qmlbehavior.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include "qmlbehavior_p.h" -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,Behavior,QmlBehavior) - -class QmlBehaviorPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlBehavior) -public: - QmlBehaviorPrivate() : animation(0) {} - - QmlMetaProperty property; - QVariant currentValue; - QmlAbstractAnimation *animation; -}; - -/*! - \qmlclass Behavior QmlBehavior - \brief The Behavior element allows you to specify a default animation for a property change. - - In example below, the rect will use a bounce easing curve over 200 millisecond for any changes to its y property: - \code - Rectangle { - width: 20; height: 20 - color: "#00ff00" - y: 200 //initial value - y: Behavior { - NumberAnimation { - easing: "easeOutBounce(amplitude:100)" - duration: 200 - } - } - } - \endcode -*/ - - -QmlBehavior::QmlBehavior(QObject *parent) - : QObject(*(new QmlBehaviorPrivate), parent) -{ -} - -QmlBehavior::~QmlBehavior() -{ -} - -/*! - \qmlproperty Animation Behavior::animation - \default - - The animation to use when the behavior is triggered. -*/ - -QmlAbstractAnimation *QmlBehavior::animation() -{ - Q_D(QmlBehavior); - return d->animation; -} - -void QmlBehavior::setAnimation(QmlAbstractAnimation *animation) -{ - Q_D(QmlBehavior); - if (d->animation) { - qmlInfo(this) << tr("Can't change the animation assigned to a Behavior."); - return; - } - - d->animation = animation; - if (d->animation) - d->animation->setTarget(d->property); -} - -void QmlBehavior::write(const QVariant &value) -{ - Q_D(QmlBehavior); - if (!d->animation) { - d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); - return; - } - - d->currentValue = d->property.read(); - - d->animation->qtAnimation()->stop(); - - QmlStateOperation::ActionList actions; - Action action; - action.property = d->property; - action.fromValue = d->currentValue; - action.toValue = value; - actions << action; - - QList after; - if (d->animation) - d->animation->transition(actions, after, QmlAbstractAnimation::Forward); - d->animation->qtAnimation()->start(); - if (!after.contains(d->property)) - d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); -} - -void QmlBehavior::setTarget(const QmlMetaProperty &property) -{ - Q_D(QmlBehavior); - d->property = property; - d->currentValue = property.read(); - if (d->animation) - d->animation->setTarget(property); -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlbehavior_p.h b/src/declarative/extra/qmlbehavior_p.h deleted file mode 100644 index 9f85f84..0000000 --- a/src/declarative/extra/qmlbehavior_p.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBEHAVIOR_H -#define QMLBEHAVIOR_H - -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlAbstractAnimation; -class QmlBehaviorPrivate; -class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlBehavior) - - Q_INTERFACES(QmlPropertyValueInterceptor) - Q_CLASSINFO("DefaultProperty", "animation") - Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) - -public: - QmlBehavior(QObject *parent=0); - ~QmlBehavior(); - - virtual void setTarget(const QmlMetaProperty &); - virtual void write(const QVariant &value); - - QmlAbstractAnimation *animation(); - void setAnimation(QmlAbstractAnimation *); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlBehavior) - -QT_END_HEADER - -#endif // QMLBEHAVIOR_H diff --git a/src/declarative/extra/qmldatetimeformatter.cpp b/src/declarative/extra/qmldatetimeformatter.cpp deleted file mode 100644 index 983287e..0000000 --- a/src/declarative/extra/qmldatetimeformatter.cpp +++ /dev/null @@ -1,370 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmldatetimeformatter_p.h" -#include "private/qobject_p.h" -#include - -QT_BEGIN_NAMESPACE - -//TODO: may need optimisation as the QDateTime member may not be needed? -// be able to set a locale? - -class QmlDateTimeFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlDateTimeFormatter) -public: - QmlDateTimeFormatterPrivate() : locale(QLocale::system()), longStyle(false), componentComplete(true) {} - - void updateText(); - - QDateTime dateTime; - QDate date; - QTime time; - QLocale locale; - QString dateTimeText; - QString dateText; - QString timeText; - QString dateTimeFormat; //set for convienience? - QString dateFormat; - QString timeFormat; - bool longStyle; - bool componentComplete; -}; - -/*! - \qmlclass DateTimeFormatter QmlDateTimeFormatter - \brief The DateTimeFormatter allows you to control the format of a date string. - - \code - DateTimeFormatter { id: formatter; date: System.date } - Text { text: formatter.dateText } - \endcode - - By default, the text properties (dateText, timeText, and dateTimeText) will return the - date and time using the current system locale's format. -*/ - -/*! - \internal - \class QmlDateTimeFormatter - \ingroup group_utility - \brief The QmlDateTimeFormatter class allows you to format a date string. -*/ - -QmlDateTimeFormatter::QmlDateTimeFormatter(QObject *parent) -: QObject(*(new QmlDateTimeFormatterPrivate), parent) -{ -} - -QmlDateTimeFormatter::~QmlDateTimeFormatter() -{ -} - -/*! - \qmlproperty string DateTimeFormatter::dateText - \qmlproperty string DateTimeFormatter::timeText - \qmlproperty string DateTimeFormatter::dateTimeText - - Formatted text representations of the \c date, \c time, - and \c {date and time}, respectively. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - \code - // specify source date (assuming today is February 19, 2009) - DateTimeFormatter { id: formatter; dateTime: Today.date } - - // display the full date and time - Text { text: formatter.dateText } - \endcode - - Would be equivalent to the following for a US English locale: - - \code - // display the date - Text { text: "2/19/09" } - \endcode -*/ -QString QmlDateTimeFormatter::dateTimeText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTimeText; -} - -QString QmlDateTimeFormatter::dateText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateText; -} - -QString QmlDateTimeFormatter::timeText() const -{ - Q_D(const QmlDateTimeFormatter); - return d->timeText; -} - -/*! - \qmlproperty date DateTimeFormatter::date - \qmlproperty time DateTimeFormatter::time - \qmlproperty datetime DateTimeFormatter::dateTime - - The source date and time to be used by the formatter. - - \code - // setting the date and time - DateTimeFormatter { date: System.date; time: System.time } - \endcode - - For convienience it is possible to set the datetime property to set both the date and the time. - \code - // setting the datetime - DateTimeFormatter { dateTime: System.dateTime } - \endcode - - There can only be one instance of date and time per formatter; if date, time, and dateTime are all - set the actual date and time used is not guaranteed. - - \note If no date is set, dateTimeText will be just the date; - If no time is set, the dateTimeText will be just the time. - -*/ -QDate QmlDateTimeFormatter::date() const -{ - Q_D(const QmlDateTimeFormatter); - return d->date; -} - -QTime QmlDateTimeFormatter::time() const -{ - Q_D(const QmlDateTimeFormatter); - return d->time; -} - -QDateTime QmlDateTimeFormatter::dateTime() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTime; -} - -/*! - \qmlproperty string DateTimeFormatter::dateFormat - \qmlproperty string DateTimeFormatter::timeFormat - \qmlproperty string DateTimeFormatter::dateTimeFormat - - Specifies a custom format which the DateTime Formatter can use. - - If there is no explictly specified format the DateTimeFormatter - will use the system locale's default 'short' setting. - - The text's format may be modified by setting: - \list - \i \c dateFormat - \i \c timeFormat - \i \c dateTimeFormat - \endlist - - If only the format for date is defined, the time and dateTime formats will be defined - as the system locale default and likewise for the others. - - Syntax for the format is based on the QDateTime::toString() formatting options. - - \code - // Format the date such that the dateText is: '1997-12-12' - DateTimeFormatter { id: formatter; dateTime: Today.dateTime; formatDate: "yyyy-MM-d" } - \endcode - - Assigning an empty string to a particular format will reset it. -*/ -QString QmlDateTimeFormatter::dateTimeFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateTimeFormat; -} - -QString QmlDateTimeFormatter::dateFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->dateFormat; -} - -QString QmlDateTimeFormatter::timeFormat() const -{ - Q_D(const QmlDateTimeFormatter); - return d->timeFormat; -} - -/*! - \qmlproperty bool DateTimeFormatter::longStyle - - This property causes the formatter to use the system locale's long format rather than short format - by default. - - This setting is off by default. -*/ -bool QmlDateTimeFormatter::longStyle() const -{ - Q_D(const QmlDateTimeFormatter); - return d->longStyle; -} - -void QmlDateTimeFormatter::setDateTime(const QDateTime &dateTime) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime == dateTime) - return; - d->dateTime = dateTime; - d->date = d->dateTime.date(); - d->time = d->dateTime.time(); - d->updateText(); -} - -void QmlDateTimeFormatter::setTime(const QTime &time) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime.time() == time) - return; - d->time = time; - d->dateTime.setTime(time); - d->updateText(); -} - -void QmlDateTimeFormatter::setDate(const QDate &date) -{ - Q_D(QmlDateTimeFormatter); - if (d->dateTime.date() == date) - return; - d->date = date; - bool clearTime = d->dateTime.time().isValid() ? false : true; //because setting date generates default time - d->dateTime.setDate(date); - if (clearTime) - d->dateTime.setTime(QTime()); - d->updateText(); -} - -//DateTime formatting may be a combination of date and time? -void QmlDateTimeFormatter::setDateTimeFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->dateTimeFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setDateFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->dateFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setTimeFormat(const QString &format) -{ - Q_D(QmlDateTimeFormatter); - //no format checking - d->timeFormat = format; - d->updateText(); -} - -void QmlDateTimeFormatter::setLongStyle(bool longStyle) -{ - Q_D(QmlDateTimeFormatter); - d->longStyle = longStyle; - d->updateText(); -} - -void QmlDateTimeFormatterPrivate::updateText() -{ - Q_Q(QmlDateTimeFormatter); - if (!componentComplete) - return; - - QString str; - QString str1; - QString str2; - - Qt::DateFormat defaultFormat = longStyle ? Qt::SystemLocaleLongDate : Qt::SystemLocaleShortDate; - - if (dateFormat.isEmpty()) - str1 = date.toString(defaultFormat); - else - str1 = date.toString(dateFormat); - - if (timeFormat.isEmpty()) - str2 = time.toString(defaultFormat); - else - str2 = time.toString(timeFormat); - - if (dateTimeFormat.isEmpty()) - str = dateTime.toString(defaultFormat); - //else if (!formatTime.isEmpty() && !formatDate.isEmpty()) - // str = str1 + QLatin1Char(' ') + str2; - else - str = dateTime.toString(dateTimeFormat); - - if (dateTimeText == str && dateText == str1 && timeText == str2) - return; - - dateTimeText = str; - dateText = str1; - timeText = str2; - - emit q->textChanged(); -} - -void QmlDateTimeFormatter::classBegin() -{ - Q_D(QmlDateTimeFormatter); - d->componentComplete = false; -} - -void QmlDateTimeFormatter::componentComplete() -{ - Q_D(QmlDateTimeFormatter); - d->componentComplete = true; - d->updateText(); -} - -QML_DEFINE_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter) - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmldatetimeformatter_p.h b/src/declarative/extra/qmldatetimeformatter_p.h deleted file mode 100644 index e350f96..0000000 --- a/src/declarative/extra/qmldatetimeformatter_p.h +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLDATETIMEFORMATTER_H -#define QMLDATETIMEFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlDateTimeFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) - Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) - Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) - Q_PROPERTY(QDate date READ date WRITE setDate) - Q_PROPERTY(QTime time READ time WRITE setTime) - Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) - Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) - Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) - Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) - Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) -public: - QmlDateTimeFormatter(QObject *parent=0); - ~QmlDateTimeFormatter(); - - QString dateTimeText() const; - QString dateText() const; - QString timeText() const; - - QDate date() const; - void setDate(const QDate &); - - QTime time() const; - void setTime(const QTime &); - - QDateTime dateTime() const; - void setDateTime(const QDateTime &); - - QString dateTimeFormat() const; - void setDateTimeFormat(const QString &); - - QString dateFormat() const; - void setDateFormat(const QString &); - - QString timeFormat() const; - void setTimeFormat(const QString &); - - bool longStyle() const; - void setLongStyle(bool); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlDateTimeFormatter) - Q_DECLARE_PRIVATE(QmlDateTimeFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlDateTimeFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlfontloader.cpp b/src/declarative/extra/qmlfontloader.cpp deleted file mode 100644 index 36ee1bb..0000000 --- a/src/declarative/extra/qmlfontloader.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "private/qobject_p.h" -#include "qmlfontloader_p.h" -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QmlFontLoaderPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlFontLoader) - -public: - QmlFontLoaderPrivate() : reply(0), status(QmlFontLoader::Null) {} - - void addFontToDatabase(const QByteArray &); - - QUrl url; - QString name; - QNetworkReply *reply; - QmlFontLoader::Status status; -}; - -QML_DEFINE_TYPE(Qt,4,6,FontLoader,QmlFontLoader) - -/*! - \qmlclass FontLoader QmlFontLoader - \ingroup group_utility - \brief This item allows using fonts by name or url. - - Example: - \qml - FontLoader { id: fixedFont; name: "Courier" } - FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } - - Text { text: "Fixed-size font"; font.family: fixedFont.name } - Text { text: "Fancy font"; font.family: webFont.name } - \endqml -*/ -QmlFontLoader::QmlFontLoader(QObject *parent) - : QObject(*(new QmlFontLoaderPrivate), parent) -{ -} - -QmlFontLoader::~QmlFontLoader() -{ -} - -static QString toLocalFileOrQrc(const QUrl& url) -{ - QString r = url.toLocalFile(); - if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) - r = QLatin1Char(':') + url.path(); - return r; -} - - -/*! - \qmlproperty url FontLoader::source - The url of the font to load. -*/ -QUrl QmlFontLoader::source() const -{ - Q_D(const QmlFontLoader); - return d->url; -} - -void QmlFontLoader::setSource(const QUrl &url) -{ - Q_D(QmlFontLoader); - if (url == d->url) - return; - d->url = qmlContext(this)->resolvedUrl(url); - - d->status = Loading; - emit statusChanged(); -#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML - QString lf = toLocalFileOrQrc(d->url); - if (!lf.isEmpty()) { - QFile file(lf); - file.open(QIODevice::ReadOnly); - QByteArray ba = file.readAll(); - d->addFontToDatabase(ba); - } else -#endif - { - QNetworkRequest req(d->url); - d->reply = qmlEngine(this)->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(replyFinished())); - } -} - -/*! - \qmlproperty string FontLoader::name - - This property holds the name of the font family. - It is set automatically when a font is loaded using the \c url property. - - Use this to set the \c font.family property of a \c Text item. - - Example: - \qml - FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } - Text { text: "Fancy font"; font.family: webFont.name } - \endqml -*/ -QString QmlFontLoader::name() const -{ - Q_D(const QmlFontLoader); - return d->name; -} - -void QmlFontLoader::setName(const QString &name) -{ - Q_D(QmlFontLoader); - if (d->name == name ) - return; - d->name = name; - emit nameChanged(); - d->status = Ready; - emit statusChanged(); -} - -/*! - \qmlproperty enum FontLoader::status - - This property holds the status of font loading. It can be one of: - \list - \o Null - no font has been set - \o Ready - the font has been loaded - \o Loading - the font is currently being loaded - \o Error - an error occurred while loading the font - \endlist -*/ -QmlFontLoader::Status QmlFontLoader::status() const -{ - Q_D(const QmlFontLoader); - return d->status; -} - -void QmlFontLoader::replyFinished() -{ - Q_D(QmlFontLoader); - if (d->reply) { - if (!d->reply->error()) { - QByteArray ba = d->reply->readAll(); - d->addFontToDatabase(ba); - } else { - d->status = Error; - emit statusChanged(); - } - d->reply->deleteLater(); - d->reply = 0; - } -} - -void QmlFontLoaderPrivate::addFontToDatabase(const QByteArray &ba) -{ - Q_Q(QmlFontLoader); - - int id = QFontDatabase::addApplicationFontFromData(ba); - if (id != -1) { - name = QFontDatabase::applicationFontFamilies(id).at(0); - emit q->nameChanged(); - status = QmlFontLoader::Ready; - } else { - status = QmlFontLoader::Error; - qWarning() << "Cannot load font:" << url; - } - emit q->statusChanged(); -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlfontloader_p.h b/src/declarative/extra/qmlfontloader_p.h deleted file mode 100644 index d02a181..0000000 --- a/src/declarative/extra/qmlfontloader_p.h +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLFONTLOADER_H -#define QMLFONTLOADER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlFontLoaderPrivate; -class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlFontLoader) - Q_ENUMS(Status) - - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - -public: - enum Status { Null = 0, Ready, Loading, Error }; - - QmlFontLoader(QObject *parent = 0); - ~QmlFontLoader(); - - QUrl source() const; - void setSource(const QUrl &url); - - QString name() const; - void setName(const QString &name); - - Status status() const; - -private Q_SLOTS: - void replyFinished(); - -Q_SIGNALS: - void nameChanged(); - void statusChanged(); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlFontLoader) - -QT_END_HEADER - -#endif // QMLFONTLOADER_H - diff --git a/src/declarative/extra/qmlnumberformatter.cpp b/src/declarative/extra/qmlnumberformatter.cpp deleted file mode 100644 index b09be5b..0000000 --- a/src/declarative/extra/qmlnumberformatter.cpp +++ /dev/null @@ -1,215 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlnumberformatter_p.h" -#include "private/qobject_p.h" - -QT_BEGIN_NAMESPACE - -//TODO: set locale -// docs -// this is a wrapper around qnumberformat (test integration) -// if number or format haven't been explictly set, text should be an empty string - -class QmlNumberFormatterPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlNumberFormatter) -public: - QmlNumberFormatterPrivate() : locale(QLocale::system()), number(0), componentComplete(true) {} - - void updateText(); - - QLocale locale; - QString format; - QNumberFormat numberFormat; - QString text; - qreal number; - bool componentComplete; -}; -/*! - \qmlclass NumberFormatter - \brief The NumberFormatter allows you to control the format of a number string. - - The format property documentation has more details on how the format can be manipulated. - - In the following example, the text element will display the text "1,234.57". - \code - NumberFormatter { id: formatter; number: 1234.5678; format: "##,##0.##" } - Text { text: formatter.text } - \endcode - - */ -/*! - \internal - \class QmlNumberFormatter - \ingroup group_utility - \brief The QmlNumberFormatter class allows you to format a number to a particular string format/locale specific number format. -*/ - -QmlNumberFormatter::QmlNumberFormatter(QObject *parent) -: QObject(*(new QmlNumberFormatterPrivate), parent) -{ -} - -QmlNumberFormatter::~QmlNumberFormatter() -{ -} - -/*! - \qmlproperty string NumberFormatter::text - - The number in the specified format. -
- If no format is specified the text will be empty. -*/ - -QString QmlNumberFormatter::text() const -{ - Q_D(const QmlNumberFormatter); - return d->text; -} - -/*! - \qmlproperty real NumberFormatter::number - - A single point precision number. (Doubles are not yet supported) - -*/ -qreal QmlNumberFormatter::number() const -{ - Q_D(const QmlNumberFormatter); - return d->number; -} - -/*! - \qmlproperty string NumberFormatter::format - - The particular format the number will adhere to during the conversion to text. -
- The format syntax follows a style similar to the Unicode Standard (UTS35). - - The table below shows the characters, patterns that can be used in the format. - - - - - - - - -
Character Meaning
# Any digit(s), zero shows as absent (for leading/trailing zeroes)
0 Implicit digit. Zero will show in the case that the input number is too small.
. Decimal separator. Output decimal seperator will be dependant on system locale.
, Grouping separator. The number of digits (either #, or 0) between the grouping separator and the decimal (or the rightmost digit) will determine the groupingSize)
other Any other character will be taken as a string literal and placed directly into the output string
- - Invalid formats will not guarantee a meaningful text output.
- - \note Input numbers that are too long for the given format will be rounded dependent on precison based on the position of the decimal point - - The following table illustrates the output text created by applying some examples of numeric formats to the formatter. - - - - - - - - - - - - -
Format Number Output
### 123456 123456
000 123456 123456
###### 1234 1234
000000 1234 001234
##,##0.## 1234.456 1,234.46 (for US locale)
1 234,46 (for FR locale)
000000,000.# 123456 000,123,456 (for US locale)
000 123 456 (for FR locale)
0.0### 0.999997 1.0
(000) 000 - 000 12345678 (012) 345 - 678
#A1212A
- -*/ -QString QmlNumberFormatter::format() const -{ - Q_D(const QmlNumberFormatter); - return d->format; -} - -void QmlNumberFormatter::setNumber(const qreal &number) -{ - Q_D(QmlNumberFormatter); - if (d->number == number) - return; - d->number = number; - d->updateText(); -} - -void QmlNumberFormatter::setFormat(const QString &format) -{ - Q_D(QmlNumberFormatter); - //no format checking - if (format.isEmpty()) - d->format = QString::null; - else - d->format = format; - d->updateText(); -} - -void QmlNumberFormatterPrivate::updateText() -{ - Q_Q(QmlNumberFormatter); - if (!componentComplete) - return; - - QNumberFormat tempFormat; - tempFormat.setFormat(format); - tempFormat.setNumber(number); - - text = tempFormat.text(); - - emit q->textChanged(); -} - -void QmlNumberFormatter::classBegin() -{ - Q_D(QmlNumberFormatter); - d->componentComplete = false; -} - -void QmlNumberFormatter::componentComplete() -{ - Q_D(QmlNumberFormatter); - d->componentComplete = true; - d->updateText(); -} -QML_DEFINE_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter); - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qmlnumberformatter_p.h b/src/declarative/extra/qmlnumberformatter_p.h deleted file mode 100644 index 0036cb9..0000000 --- a/src/declarative/extra/qmlnumberformatter_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLNUMBERFORMATTER_H -#define QMLNUMBERFORMATTER_H - -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlNumberFormatterPrivate; -class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - - Q_PROPERTY(QString text READ text NOTIFY textChanged) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(qreal number READ number WRITE setNumber) -public: - QmlNumberFormatter(QObject *parent=0); - ~QmlNumberFormatter(); - - QString text() const; - - qreal number() const; - void setNumber(const qreal &); - - QString format() const; - void setFormat(const QString &); - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void textChanged(); - -private: - Q_DISABLE_COPY(QmlNumberFormatter) - Q_DECLARE_PRIVATE(QmlNumberFormatter) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlNumberFormatter) - -QT_END_HEADER - -#endif diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp deleted file mode 100644 index 3d90b44..0000000 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ /dev/null @@ -1,727 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlxmllistmodel_p.h" -#include "private/qobject_p.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -QML_DEFINE_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole) -QML_DEFINE_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel) - -/*! - \qmlclass XmlRole QmlXmlListModelRole - \brief The XmlRole element allows you to specify a role for an XmlListModel. -*/ - -/*! - \qmlproperty string XmlRole::name - The name for the role. This name is used to access the model data for this role from Qml. - - \qml - XmlRole { name: "title"; query: "title/string()" } - - ... - - Component { - id: myDelegate - Text { text: title } - } - \endqml -*/ - -/*! - \qmlproperty string XmlRole::query - The relative XPath query for this role. The query should not start with a '/' (i.e. it must be - relative). - - \qml - XmlRole { name: "title"; query: "title/string()" } - \endqml -*/ - -class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QString query READ query WRITE setQuery) - -public: - QmlXmlListModelRole() {} - ~QmlXmlListModelRole() {} - - QString name() const { return m_name; } - void setName(const QString &name) { m_name = name; } - - QString query() const { return m_query; } - void setQuery(const QString &query) - { - if (query.startsWith(QLatin1Char('/'))) { - qmlInfo(this) << tr("An XmlRole query must not start with '/'"); - return; - } - m_query = query; - } - - bool isValid() { - return !m_name.isEmpty() && !m_query.isEmpty(); - } - -private: - QString m_name; - QString m_query; -}; - -QML_DECLARE_TYPE(QmlXmlListModelRole) - -class QmlXmlListModelPrivate; -struct QmlXmlRoleList : public QmlConcreteList -{ - QmlXmlRoleList(QmlXmlListModelPrivate *p) - : model(p) {} - virtual void append(QmlXmlListModelRole *role); - //XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well - // (and the model should emit the appropriate signals) - virtual void clear(); - virtual void removeAt(int i); - virtual void insert(int i, QmlXmlListModelRole *role); - - QmlXmlListModelPrivate *model; -}; - -class QmlXmlQuery : public QThread -{ - Q_OBJECT -public: - QmlXmlQuery(QObject *parent=0) - : QThread(parent), m_quit(false), m_restart(false), m_abort(false), m_queryId(0) { - } - ~QmlXmlQuery() { - m_mutex.lock(); - m_quit = true; - m_condition.wakeOne(); - m_mutex.unlock(); - - wait(); - } - - void abort() { - QMutexLocker locker(&m_mutex); - m_abort = true; - } - - int doQuery(QString query, QString namespaces, QByteArray data, QmlXmlRoleList *roleObjects) { - QMutexLocker locker(&m_mutex); - m_modelData.clear(); - m_size = 0; - m_data = data; - m_query = QLatin1String("doc($src)") + query; - m_namespaces = namespaces; - m_roleObjects = roleObjects; - if (!isRunning()) { - m_abort = false; - start(); - } else { - m_restart = true; - m_condition.wakeOne(); - } - m_queryId++; - return m_queryId; - } - - QList > modelData() { - QMutexLocker locker(&m_mutex); - return m_modelData; - } - -Q_SIGNALS: - void queryCompleted(int queryId, int size); - -protected: - void run() { - while (!m_quit) { - m_mutex.lock(); - int queryId = m_queryId; - doQueryJob(); - if (m_size > 0) - doSubQueryJob(); - m_data.clear(); // no longer needed - m_mutex.unlock(); - - m_mutex.lock(); - if (!m_abort && m_size > 0) - emit queryCompleted(queryId, m_size); - if (!m_restart) - m_condition.wait(&m_mutex); - m_abort = false; - m_restart = false; - m_mutex.unlock(); - } - } - -private: - void doQueryJob(); - void doSubQueryJob(); - -private: - QMutex m_mutex; - QWaitCondition m_condition; - bool m_quit; - bool m_restart; - bool m_abort; - QByteArray m_data; - QString m_query; - QString m_namespaces; - QString m_prefix; - int m_size; - int m_queryId; - const QmlXmlRoleList *m_roleObjects; - QList > m_modelData; -}; - -void QmlXmlQuery::doQueryJob() -{ - QString r; - QXmlQuery query; - QBuffer buffer(&m_data); - buffer.open(QIODevice::ReadOnly); - query.bindVariable(QLatin1String("src"), &buffer); - query.setQuery(m_namespaces + m_query); - query.evaluateTo(&r); - - //qDebug() << r; - - //always need a single root element - QByteArray xml = "\n" + r.toUtf8() + ""; - QBuffer b(&xml); - b.open(QIODevice::ReadOnly); - //qDebug() << xml; - - QString namespaces = QLatin1String("declare namespace dummy=\"http://qtsotware.com/dummy\";\n") + m_namespaces; - QString prefix = QLatin1String("doc($inputDocument)/dummy:items") + - m_query.mid(m_query.lastIndexOf(QLatin1Char('/'))); - - //figure out how many items we are dealing with - int count = -1; - { - QXmlResultItems result; - QXmlQuery countquery; - countquery.bindVariable(QLatin1String("inputDocument"), &b); - countquery.setQuery(namespaces + QLatin1String("count(") + prefix + QLatin1String(")")); - countquery.evaluateTo(&result); - QXmlItem item(result.next()); - if (item.isAtomicValue()) - count = item.toAtomicValue().toInt(); - } - //qDebug() << count; - - m_prefix = namespaces + prefix + QLatin1String("/"); - m_data = xml; - if (count > 0) - m_size = count; -} - -void QmlXmlQuery::doSubQueryJob() -{ - m_modelData.clear(); - - QBuffer b(&m_data); - b.open(QIODevice::ReadOnly); - - QXmlQuery subquery; - subquery.bindVariable(QLatin1String("inputDocument"), &b); - - //### we might be able to condense even further (query for everything in one go) - for (int i = 0; i < m_roleObjects->size(); ++i) { - QmlXmlListModelRole *role = m_roleObjects->at(i); - if (!role->isValid()) { - QList resultList; - for (int j = 0; j < m_size; ++j) - resultList << QVariant(); - m_modelData << resultList; - continue; - } - subquery.setQuery(m_prefix + QLatin1String("(let $v := ") + role->query() + QLatin1String(" return if ($v) then ") + role->query() + QLatin1String(" else \"\")")); - QXmlResultItems output3; - subquery.evaluateTo(&output3); - QXmlItem item(output3.next()); - QList resultList; - while (!item.isNull()) { - resultList << item.toAtomicValue(); //### we used to trim strings - item = output3.next(); - } - //### should warn here if things have gone wrong. - while (resultList.count() < m_size) - resultList << QVariant(); - m_modelData << resultList; - b.seek(0); - } - - //XXX this method is much slower, but would work better for incremental loading - /*for (int j = 0; j < m_size; ++j) { - QList resultList; - for (int i = 0; i < m_roleObjects->size(); ++i) { - QmlXmlListModelRole *role = m_roleObjects->at(i); - subquery.setQuery(m_prefix.arg(j+1) + role->query()); - if (role->isStringList()) { - QStringList data; - subquery.evaluateTo(&data); - resultList << QVariant(data); - //qDebug() << data; - } else { - QString s; - subquery.evaluateTo(&s); - if (role->isCData()) { - //un-escape - s.replace(QLatin1String("<"), QLatin1String("<")); - s.replace(QLatin1String(">"), QLatin1String(">")); - s.replace(QLatin1String("&"), QLatin1String("&")); - } - resultList << s.trimmed(); - //qDebug() << s; - } - b.seek(0); - } - m_modelData << resultList; - }*/ -} - - -//TODO: error handling (currently quite fragile) -// profile doQuery and doSubquery -// support complex/nested objects? -// how do we handle data updates (like rss feed -- usually items inserted at beginning) - - -class QmlXmlListModelPrivate : public QObjectPrivate -{ - Q_DECLARE_PUBLIC(QmlXmlListModel) -public: - QmlXmlListModelPrivate() - : isComponentComplete(true), size(-1), highestRole(Qt::UserRole) - , reply(0), status(QmlXmlListModel::Null), progress(0.0) - , queryId(-1), roleObjects(this) {} - - bool isComponentComplete; - QUrl src; - QString xml; - QString query; - QString namespaces; - int size; - QList roles; - QStringList roleNames; - int highestRole; - QNetworkReply *reply; - QmlXmlListModel::Status status; - qreal progress; - QmlXmlQuery qmlXmlQuery; - int queryId; - QmlXmlRoleList roleObjects; - QList > data; -}; - - -void QmlXmlRoleList::append(QmlXmlListModelRole *role) { - QmlConcreteList::append(role); - model->roles << model->highestRole; - model->roleNames << role->name(); - ++model->highestRole; -} - -//XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well -// (and the model should emit the appropriate signals) -void QmlXmlRoleList::clear() -{ - model->roles.clear(); - model->roleNames.clear(); - QmlConcreteList::clear(); -} - -void QmlXmlRoleList::removeAt(int i) -{ - model->roles.removeAt(i); - model->roleNames.removeAt(i); - QmlConcreteList::removeAt(i); -} - -//### we should enforce unique role names -void QmlXmlRoleList::insert(int i, QmlXmlListModelRole *role) -{ - QmlConcreteList::insert(i, role); - model->roles.insert(i, model->highestRole); - model->roleNames.insert(i, role->name()); - ++model->highestRole; -} - -/*! - \class QmlXmlListModel - \internal -*/ - -/*! - \qmlclass XmlListModel QmlXmlListModel - \brief The XmlListModel element allows you to specify a model using XPath expressions. - - XmlListModel allows you to construct a model from XML data that can then be used as a data source - for the view classes (ListView, PathView, GridView) and any other classes that interact with model - data (like Repeater). - - The following is an example of a model containing news from a Yahoo RSS feed: - \qml - XmlListModel { - id: feedModel - source: "http://rss.news.yahoo.com/rss/oceania" - query: "/rss/channel/item" - XmlRole { name: "title"; query: "title/string()" } - XmlRole { name: "link"; query: "link/string()" } - XmlRole { name: "description"; query: "description/string()" } - } - \endqml - \note The model is currently static, so the above is really just a snapshot of an RSS feed. To force a - reload of the entire model, you can call the reload function. -*/ - -QmlXmlListModel::QmlXmlListModel(QObject *parent) - : QListModelInterface(*(new QmlXmlListModelPrivate), parent) -{ - Q_D(QmlXmlListModel); - connect(&d->qmlXmlQuery, SIGNAL(queryCompleted(int,int)), - this, SLOT(queryCompleted(int,int))); -} - -QmlXmlListModel::~QmlXmlListModel() -{ -} - -/*! - \qmlproperty list XmlListModel::roles - - The roles to make available for this model. -*/ -QmlList *QmlXmlListModel::roleObjects() -{ - Q_D(QmlXmlListModel); - return &d->roleObjects; -} - -QHash QmlXmlListModel::data(int index, const QList &roles) const -{ - Q_D(const QmlXmlListModel); - QHash rv; - for (int i = 0; i < roles.size(); ++i) { - int role = roles.at(i); - int roleIndex = d->roles.indexOf(role); - rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); - } - return rv; -} - -/*! - \qmlproperty int XmlListModel::count - The number of data entries in the model. -*/ -int QmlXmlListModel::count() const -{ - Q_D(const QmlXmlListModel); - return d->size; -} - -QList QmlXmlListModel::roles() const -{ - Q_D(const QmlXmlListModel); - return d->roles; -} - -QString QmlXmlListModel::toString(int role) const -{ - Q_D(const QmlXmlListModel); - int index = d->roles.indexOf(role); - if (index == -1) - return QString(); - return d->roleNames.at(index); -} - -/*! - \qmlproperty url XmlListModel::source - The location of the XML data source. - - If both source and xml are set, xml will be used. -*/ -QUrl QmlXmlListModel::source() const -{ - Q_D(const QmlXmlListModel); - return d->src; -} - -void QmlXmlListModel::setSource(const QUrl &src) -{ - Q_D(QmlXmlListModel); - if (d->src != src) { - d->src = src; - reload(); - } -} - -/*! - \qmlproperty string XmlListModel::xml - This property holds XML text set directly. - - The text is assumed to be UTF-8 encoded. - - If both source and xml are set, xml will be used. -*/ -QString QmlXmlListModel::xml() const -{ - Q_D(const QmlXmlListModel); - return d->xml; -} - -void QmlXmlListModel::setXml(const QString &xml) -{ - Q_D(QmlXmlListModel); - d->xml = xml; - reload(); -} - -/*! - \qmlproperty url XmlListModel::query - An absolute XPath query representing the base query for the model items. The query should start with - a '/' or '//'. -*/ -QString QmlXmlListModel::query() const -{ - Q_D(const QmlXmlListModel); - return d->query; -} - -void QmlXmlListModel::setQuery(const QString &query) -{ - Q_D(QmlXmlListModel); - if (!query.startsWith(QLatin1Char('/'))) { - qmlInfo(this) << tr("An XmlListModel query must start with '/' or \"//\""); - return; - } - - if (d->query != query) { - d->query = query; - reload(); - } -} - -/*! - \qmlproperty string XmlListModel::namespaceDeclarations - A set of declarations for the namespaces used in the query. -*/ -QString QmlXmlListModel::namespaceDeclarations() const -{ - Q_D(const QmlXmlListModel); - return d->namespaces; -} - -void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) -{ - Q_D(QmlXmlListModel); - if (d->namespaces != declarations) { - d->namespaces = declarations; - reload(); - } -} - -/*! - \qmlproperty enum XmlListModel::status - - This property holds the status of data source loading. It can be one of: - \list - \o Null - no data source has been set - \o Ready - nthe data source has been loaded - \o Loading - the data source is currently being loaded - \o Error - an error occurred while loading the data source - \endlist - - \sa progress - -*/ -QmlXmlListModel::Status QmlXmlListModel::status() const -{ - Q_D(const QmlXmlListModel); - return d->status; -} - -/*! - \qmlproperty real XmlListModel::progress - - This property holds the progress of data source loading, from 0.0 (nothing loaded) - to 1.0 (finished). - - \sa status -*/ -qreal QmlXmlListModel::progress() const -{ - Q_D(const QmlXmlListModel); - return d->progress; -} - -void QmlXmlListModel::classBegin() -{ - Q_D(QmlXmlListModel); - d->isComponentComplete = false; -} - -void QmlXmlListModel::componentComplete() -{ - Q_D(QmlXmlListModel); - d->isComponentComplete = true; - reload(); -} - -/*! - \qmlmethod XmlListModel::reload() - - Reloads the model. All the existing model data will be removed, and the model - will be rebuilt from scratch. -*/ -void QmlXmlListModel::reload() -{ - Q_D(QmlXmlListModel); - - if (!d->isComponentComplete) - return; - - d->qmlXmlQuery.abort(); - d->queryId = -1; - - //clear existing data - int count = d->size; - d->size = 0; - d->data.clear(); - if (count > 0) - emit itemsRemoved(0, count); - - if (d->src.isEmpty() && d->xml.isEmpty()) - return; - - if (d->reply) { - d->reply->abort(); - d->reply->deleteLater(); - d->reply = 0; - } - - if (!d->xml.isEmpty()) { - d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, d->xml.toUtf8(), &d->roleObjects); - d->progress = 1.0; - d->status = Ready; - emit progressChanged(d->progress); - emit statusChanged(d->status); - return; - } - - d->progress = 0.0; - d->status = Loading; - emit progressChanged(d->progress); - emit statusChanged(d->status); - - QNetworkRequest req(d->src); - d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); - QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(requestFinished())); - QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), - this, SLOT(requestProgress(qint64,qint64))); -} - -void QmlXmlListModel::requestFinished() -{ - Q_D(QmlXmlListModel); - if (d->reply->error() != QNetworkReply::NoError) { - disconnect(d->reply, 0, this, 0); - d->reply->deleteLater(); - d->reply = 0; - d->status = Error; - } else { - d->status = Ready; - QByteArray data = d->reply->readAll(); - d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, data, &d->roleObjects); - disconnect(d->reply, 0, this, 0); - d->reply->deleteLater(); - d->reply = 0; - } - d->progress = 1.0; - emit progressChanged(d->progress); - emit statusChanged(d->status); -} - -void QmlXmlListModel::requestProgress(qint64 received, qint64 total) -{ - Q_D(QmlXmlListModel); - if (d->status == Loading && total > 0) { - d->progress = qreal(received)/total; - emit progressChanged(d->progress); - } -} - -void QmlXmlListModel::queryCompleted(int id, int size) -{ - Q_D(QmlXmlListModel); - if (id != d->queryId) - return; - d->size = size; - if (size > 0) { - d->data = d->qmlXmlQuery.modelData(); - emit itemsInserted(0, d->size); - emit countChanged(); - } -} - -QT_END_NAMESPACE - -#include "qmlxmllistmodel.moc" diff --git a/src/declarative/extra/qmlxmllistmodel_p.h b/src/declarative/extra/qmlxmllistmodel_p.h deleted file mode 100644 index 18bf9d2..0000000 --- a/src/declarative/extra/qmlxmllistmodel_p.h +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLXMLLISTMODEL_H -#define QMLXMLLISTMODEL_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlContext; - -class QmlXmlListModelRole; - -class QmlXmlListModelPrivate; -class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QmlParserStatus) - Q_ENUMS(Status) - - Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) - Q_PROPERTY(QUrl source READ source WRITE setSource) - Q_PROPERTY(QString xml READ xml WRITE setXml) - Q_PROPERTY(QString query READ query WRITE setQuery) - Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) - Q_PROPERTY(QmlList *roles READ roleObjects) - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_CLASSINFO("DefaultProperty", "roles") - -public: - QmlXmlListModel(QObject *parent = 0); - ~QmlXmlListModel(); - - virtual QHash data(int index, const QList &roles = (QList())) const; - virtual int count() const; - virtual QList roles() const; - virtual QString toString(int role) const; - - QmlList *roleObjects(); - - QUrl source() const; - void setSource(const QUrl&); - - QString xml() const; - void setXml(const QString&); - - QString query() const; - void setQuery(const QString&); - - QString namespaceDeclarations() const; - void setNamespaceDeclarations(const QString&); - - enum Status { Null, Ready, Loading, Error }; - Status status() const; - qreal progress() const; - - virtual void classBegin(); - virtual void componentComplete(); - -Q_SIGNALS: - void statusChanged(Status); - void progressChanged(qreal progress); - void countChanged(); - -public Q_SLOTS: - // ### need to use/expose Expiry to guess when to call this? - // ### property to auto-call this on reasonable Expiry? - // ### LastModified/Age also useful to guess. - // ### Probably also applies to other network-requesting types. - void reload(); - -private Q_SLOTS: - void requestFinished(); - void requestProgress(qint64,qint64); - void queryCompleted(int,int); - -private: - Q_DECLARE_PRIVATE(QmlXmlListModel) - Q_DISABLE_COPY(QmlXmlListModel) -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlXmlListModel) - -QT_END_HEADER - -#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/extra/qnumberformat.cpp b/src/declarative/extra/qnumberformat.cpp deleted file mode 100644 index c6a03e9..0000000 --- a/src/declarative/extra/qnumberformat.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qnumberformat_p.h" - -QT_BEGIN_NAMESPACE - -QML_DEFINE_NOCREATE_TYPE(QNumberFormat) - -QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal), - _groupingSize(0) -{ - _locale = QLocale::system(); - _groupingSeparator = _locale.groupSeparator(); - _decimalSeparator = _locale.decimalPoint(); - _currencySymbol = QLatin1Char('$'); -} - -QNumberFormat::~QNumberFormat() -{ - -} - -void QNumberFormat::updateText() -{ - QTime t; - t.start(); - static int totalTime; - - handleFormat(); - - totalTime += t.elapsed(); - emit textChanged(); -} - -void QNumberFormat::handleFormat() -{ - // ### is extremely messy - if (_format.isEmpty()) { - _text = QString(QLatin1String("%1")).arg(_number, -1, 'f', -1); - return; - } - - QString inputString; - - // ### possible to use the following parsed data in the future - - int remainingLength = _format.size(); - int currentIndex = _format.size()-1; - - int maxDigits = 0; - int minDigits = 0; - int decimalLength = 0; - - while (remainingLength > 0) { - switch(_format.at(currentIndex).unicode()) { - case ',': - if (decimalLength && !_groupingSize) - setGroupingSize(maxDigits - decimalLength); - else if (!_groupingSize) - setGroupingSize(maxDigits); - break; - case '.': - if (!decimalLength) - decimalLength = maxDigits; - break; - case '0': - minDigits++; - case '#': - maxDigits++; - break; - default: - break; - } - currentIndex--; - remainingLength--; - } - - // round given the decimal length/precision - inputString = QString(QLatin1String("%1")).arg(_number, -1, 'f', decimalLength); - - QStringList parts = inputString.split(QLatin1Char('.')); - QStringList formatParts = _format.split(QLatin1Char('.')); - - if (formatParts.size() > 2 || parts.size() > 2 ) - return; - - QString formatInt = formatParts.at(0); - - QString formatDec; - if (formatParts.size() == 2) - formatDec = formatParts.at(1); - - QString integer = parts.at(0); - - QString decimal; - if (parts.size() == 2) - decimal = parts.at(1); - - QString outputDecimal = formatDecimal(formatDec, decimal); - QString outputInteger = formatInteger(formatInt, integer); - - // insert separators - if (_groupingSize) { - unsigned int count = 0; - for (int i = outputInteger.size()-1; i > 0; i--) { - if (outputInteger.at(i).digitValue() >= 0) { - if (count == _groupingSize - 1) { - count = 0; - outputInteger.insert(i, _groupingSeparator); - } - else - count++; - } - } - } - if (!outputDecimal.isEmpty()) - _text = outputInteger + _decimalSeparator + outputDecimal; - else - _text = outputInteger; -} - -QString QNumberFormat::formatInteger(const QString &formatInt, const QString &integer) -{ - if (formatInt.isEmpty() || integer.isEmpty()) - return QString(); - - QString outputInteger; - int formatIndex = formatInt.size()-1; - - //easier for carry? - for (int index= integer.size()-1; index >= 0; index--) { - if (formatIndex < 0) { - outputInteger.push_front(integer.at(index)); - } - else { - switch(formatInt.at(formatIndex).unicode()) { - case '0': - if (index > integer.size()-1) { - outputInteger.push_front(QLatin1Char('0')); - break; - } - case '#': - outputInteger.push_front(integer.at(index)); - break; - case ',': - index++; - break; - default: - outputInteger.push_front(formatInt.at(formatIndex)); - index++; - break; - } - formatIndex--; - } - } - while (formatIndex >= 0) { - if (formatInt.at(formatIndex).unicode() != '#' && formatInt.at(formatIndex).unicode() != ',') - outputInteger.push_front(formatInt.at(formatIndex)); - formatIndex--; - } - return outputInteger; -} - -QString QNumberFormat::formatDecimal(const QString &formatDec, const QString &decimal) -{ - QString outputDecimal; - - // up to max 6 decimal places - for (int index=formatDec.size()-1; index >= 0; index--) { - switch(formatDec.at(index).unicode()) { - case '0': - outputDecimal.push_front(decimal.at(index)); - break; - case '#': - if (decimal.at(index) != QLatin1Char('0') || outputDecimal.size() > 0) - outputDecimal.push_front(decimal.at(index)); - break; - default: - outputDecimal.push_front(formatDec.at(index)); - break; - } - } - return outputDecimal; -} - -QT_END_NAMESPACE diff --git a/src/declarative/extra/qnumberformat_p.h b/src/declarative/extra/qnumberformat_p.h deleted file mode 100644 index 1a7b8e4..0000000 --- a/src/declarative/extra/qnumberformat_p.h +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef NUMBERFORMAT_H -#define NUMBERFORMAT_H - -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -// TODO -// be able to set Locale, instead of default system for dynamic formatting -// add currency support -// add additional syntax, extend to format scientific, percentiles, significant digits etc - - -class QNumberFormat : public QObject -{ - Q_OBJECT - Q_ENUMS(NumberType) -public: - QNumberFormat(QObject *parent=0); - ~QNumberFormat(); - - enum NumberType { - Percent, - Scientific, - Currency, - Decimal - }; - - //external property, only visible - Q_PROPERTY(QString text READ text NOTIFY textChanged) - - //mutatable properties to modify the output (text) - Q_PROPERTY(qreal number READ number WRITE setNumber) - Q_PROPERTY(QString format READ format WRITE setFormat) - Q_PROPERTY(QLocale locale READ locale WRITE setLocale) - - //Format specific settings - Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) - Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) - Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) - Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) - - - QString text() const { return _text; } - - qreal number() const { return _number; } - void setNumber(qreal n) { - if (_number == n) - return; - _number = n; - updateText(); - } - - QString format() const { return _format; } - void setFormat(const QString &format) { - if (format.isEmpty()) - _format = QString::null; - else if (_format == format) - return; - - _format = format; - updateText(); - } - - QLocale locale() const { return _locale; } - void setLocale(const QLocale &locale) { _locale = locale; updateText(); } - - //Do we deal with unicode standard? or create our own - // ### since this is the backend for the number conversions, we will use the unicode - // the front-end will handle the QChar/QString -> short int - - unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } - void setGroupingSeparator(unsigned short unicodeSymbol) - { - _groupingSeparator = QChar(unicodeSymbol); - } - - unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } - void setDecimalSeparator(unsigned short unicodeSymbol) - { - _decimalSeparator = QChar(unicodeSymbol); - } - - unsigned short currencySymbol() { return _currencySymbol.unicode(); } - void setCurrencySymbol(unsigned short unicodeSymbol) - { - _currencySymbol = QChar(unicodeSymbol); - } - - unsigned int groupingSize() { return _groupingSize; } - void setGroupingSize(unsigned int size) - { - _groupingSize = size; - } - -Q_SIGNALS: - void textChanged(); - -private: - void updateText(); - void handleFormat(); - QString formatInteger(const QString &formatInt, const QString &integer); - QString formatDecimal(const QString &formatDec, const QString &decimal); - - qreal _number; - NumberType _type; - QChar _groupingSeparator; - QChar _decimalSeparator; - QChar _currencySymbol; - unsigned int _groupingSize; - - QLocale _locale; - QString _format; - - // only hooked member at the moment - QString _text; - -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QNumberFormat) - -QT_END_HEADER - -#endif diff --git a/src/declarative/util/qmlbehavior.cpp b/src/declarative/util/qmlbehavior.cpp new file mode 100644 index 0000000..8364d8c --- /dev/null +++ b/src/declarative/util/qmlbehavior.cpp @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include "qmlbehavior_p.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,Behavior,QmlBehavior) + +class QmlBehaviorPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlBehavior) +public: + QmlBehaviorPrivate() : animation(0) {} + + QmlMetaProperty property; + QVariant currentValue; + QmlAbstractAnimation *animation; +}; + +/*! + \qmlclass Behavior QmlBehavior + \brief The Behavior element allows you to specify a default animation for a property change. + + In example below, the rect will use a bounce easing curve over 200 millisecond for any changes to its y property: + \code + Rectangle { + width: 20; height: 20 + color: "#00ff00" + y: 200 //initial value + y: Behavior { + NumberAnimation { + easing: "easeOutBounce(amplitude:100)" + duration: 200 + } + } + } + \endcode +*/ + + +QmlBehavior::QmlBehavior(QObject *parent) + : QObject(*(new QmlBehaviorPrivate), parent) +{ +} + +QmlBehavior::~QmlBehavior() +{ +} + +/*! + \qmlproperty Animation Behavior::animation + \default + + The animation to use when the behavior is triggered. +*/ + +QmlAbstractAnimation *QmlBehavior::animation() +{ + Q_D(QmlBehavior); + return d->animation; +} + +void QmlBehavior::setAnimation(QmlAbstractAnimation *animation) +{ + Q_D(QmlBehavior); + if (d->animation) { + qmlInfo(this) << tr("Can't change the animation assigned to a Behavior."); + return; + } + + d->animation = animation; + if (d->animation) + d->animation->setTarget(d->property); +} + +void QmlBehavior::write(const QVariant &value) +{ + Q_D(QmlBehavior); + if (!d->animation) { + d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); + return; + } + + d->currentValue = d->property.read(); + + d->animation->qtAnimation()->stop(); + + QmlStateOperation::ActionList actions; + Action action; + action.property = d->property; + action.fromValue = d->currentValue; + action.toValue = value; + actions << action; + + QList after; + if (d->animation) + d->animation->transition(actions, after, QmlAbstractAnimation::Forward); + d->animation->qtAnimation()->start(); + if (!after.contains(d->property)) + d->property.write(value, QmlMetaProperty::BypassInterceptor | QmlMetaProperty::DontRemoveBinding); +} + +void QmlBehavior::setTarget(const QmlMetaProperty &property) +{ + Q_D(QmlBehavior); + d->property = property; + d->currentValue = property.read(); + if (d->animation) + d->animation->setTarget(property); +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlbehavior_p.h b/src/declarative/util/qmlbehavior_p.h new file mode 100644 index 0000000..9f85f84 --- /dev/null +++ b/src/declarative/util/qmlbehavior_p.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLBEHAVIOR_H +#define QMLBEHAVIOR_H + +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlAbstractAnimation; +class QmlBehaviorPrivate; +class Q_DECLARATIVE_EXPORT QmlBehavior : public QObject, public QmlPropertyValueInterceptor +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlBehavior) + + Q_INTERFACES(QmlPropertyValueInterceptor) + Q_CLASSINFO("DefaultProperty", "animation") + Q_PROPERTY(QmlAbstractAnimation *animation READ animation WRITE setAnimation) + +public: + QmlBehavior(QObject *parent=0); + ~QmlBehavior(); + + virtual void setTarget(const QmlMetaProperty &); + virtual void write(const QVariant &value); + + QmlAbstractAnimation *animation(); + void setAnimation(QmlAbstractAnimation *); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlBehavior) + +QT_END_HEADER + +#endif // QMLBEHAVIOR_H diff --git a/src/declarative/util/qmldatetimeformatter.cpp b/src/declarative/util/qmldatetimeformatter.cpp new file mode 100644 index 0000000..983287e --- /dev/null +++ b/src/declarative/util/qmldatetimeformatter.cpp @@ -0,0 +1,370 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmldatetimeformatter_p.h" +#include "private/qobject_p.h" +#include + +QT_BEGIN_NAMESPACE + +//TODO: may need optimisation as the QDateTime member may not be needed? +// be able to set a locale? + +class QmlDateTimeFormatterPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlDateTimeFormatter) +public: + QmlDateTimeFormatterPrivate() : locale(QLocale::system()), longStyle(false), componentComplete(true) {} + + void updateText(); + + QDateTime dateTime; + QDate date; + QTime time; + QLocale locale; + QString dateTimeText; + QString dateText; + QString timeText; + QString dateTimeFormat; //set for convienience? + QString dateFormat; + QString timeFormat; + bool longStyle; + bool componentComplete; +}; + +/*! + \qmlclass DateTimeFormatter QmlDateTimeFormatter + \brief The DateTimeFormatter allows you to control the format of a date string. + + \code + DateTimeFormatter { id: formatter; date: System.date } + Text { text: formatter.dateText } + \endcode + + By default, the text properties (dateText, timeText, and dateTimeText) will return the + date and time using the current system locale's format. +*/ + +/*! + \internal + \class QmlDateTimeFormatter + \ingroup group_utility + \brief The QmlDateTimeFormatter class allows you to format a date string. +*/ + +QmlDateTimeFormatter::QmlDateTimeFormatter(QObject *parent) +: QObject(*(new QmlDateTimeFormatterPrivate), parent) +{ +} + +QmlDateTimeFormatter::~QmlDateTimeFormatter() +{ +} + +/*! + \qmlproperty string DateTimeFormatter::dateText + \qmlproperty string DateTimeFormatter::timeText + \qmlproperty string DateTimeFormatter::dateTimeText + + Formatted text representations of the \c date, \c time, + and \c {date and time}, respectively. + + If there is no explictly specified format the DateTimeFormatter + will use the system locale's default 'short' setting. + + \code + // specify source date (assuming today is February 19, 2009) + DateTimeFormatter { id: formatter; dateTime: Today.date } + + // display the full date and time + Text { text: formatter.dateText } + \endcode + + Would be equivalent to the following for a US English locale: + + \code + // display the date + Text { text: "2/19/09" } + \endcode +*/ +QString QmlDateTimeFormatter::dateTimeText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTimeText; +} + +QString QmlDateTimeFormatter::dateText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateText; +} + +QString QmlDateTimeFormatter::timeText() const +{ + Q_D(const QmlDateTimeFormatter); + return d->timeText; +} + +/*! + \qmlproperty date DateTimeFormatter::date + \qmlproperty time DateTimeFormatter::time + \qmlproperty datetime DateTimeFormatter::dateTime + + The source date and time to be used by the formatter. + + \code + // setting the date and time + DateTimeFormatter { date: System.date; time: System.time } + \endcode + + For convienience it is possible to set the datetime property to set both the date and the time. + \code + // setting the datetime + DateTimeFormatter { dateTime: System.dateTime } + \endcode + + There can only be one instance of date and time per formatter; if date, time, and dateTime are all + set the actual date and time used is not guaranteed. + + \note If no date is set, dateTimeText will be just the date; + If no time is set, the dateTimeText will be just the time. + +*/ +QDate QmlDateTimeFormatter::date() const +{ + Q_D(const QmlDateTimeFormatter); + return d->date; +} + +QTime QmlDateTimeFormatter::time() const +{ + Q_D(const QmlDateTimeFormatter); + return d->time; +} + +QDateTime QmlDateTimeFormatter::dateTime() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTime; +} + +/*! + \qmlproperty string DateTimeFormatter::dateFormat + \qmlproperty string DateTimeFormatter::timeFormat + \qmlproperty string DateTimeFormatter::dateTimeFormat + + Specifies a custom format which the DateTime Formatter can use. + + If there is no explictly specified format the DateTimeFormatter + will use the system locale's default 'short' setting. + + The text's format may be modified by setting: + \list + \i \c dateFormat + \i \c timeFormat + \i \c dateTimeFormat + \endlist + + If only the format for date is defined, the time and dateTime formats will be defined + as the system locale default and likewise for the others. + + Syntax for the format is based on the QDateTime::toString() formatting options. + + \code + // Format the date such that the dateText is: '1997-12-12' + DateTimeFormatter { id: formatter; dateTime: Today.dateTime; formatDate: "yyyy-MM-d" } + \endcode + + Assigning an empty string to a particular format will reset it. +*/ +QString QmlDateTimeFormatter::dateTimeFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateTimeFormat; +} + +QString QmlDateTimeFormatter::dateFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->dateFormat; +} + +QString QmlDateTimeFormatter::timeFormat() const +{ + Q_D(const QmlDateTimeFormatter); + return d->timeFormat; +} + +/*! + \qmlproperty bool DateTimeFormatter::longStyle + + This property causes the formatter to use the system locale's long format rather than short format + by default. + + This setting is off by default. +*/ +bool QmlDateTimeFormatter::longStyle() const +{ + Q_D(const QmlDateTimeFormatter); + return d->longStyle; +} + +void QmlDateTimeFormatter::setDateTime(const QDateTime &dateTime) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime == dateTime) + return; + d->dateTime = dateTime; + d->date = d->dateTime.date(); + d->time = d->dateTime.time(); + d->updateText(); +} + +void QmlDateTimeFormatter::setTime(const QTime &time) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime.time() == time) + return; + d->time = time; + d->dateTime.setTime(time); + d->updateText(); +} + +void QmlDateTimeFormatter::setDate(const QDate &date) +{ + Q_D(QmlDateTimeFormatter); + if (d->dateTime.date() == date) + return; + d->date = date; + bool clearTime = d->dateTime.time().isValid() ? false : true; //because setting date generates default time + d->dateTime.setDate(date); + if (clearTime) + d->dateTime.setTime(QTime()); + d->updateText(); +} + +//DateTime formatting may be a combination of date and time? +void QmlDateTimeFormatter::setDateTimeFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->dateTimeFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setDateFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->dateFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setTimeFormat(const QString &format) +{ + Q_D(QmlDateTimeFormatter); + //no format checking + d->timeFormat = format; + d->updateText(); +} + +void QmlDateTimeFormatter::setLongStyle(bool longStyle) +{ + Q_D(QmlDateTimeFormatter); + d->longStyle = longStyle; + d->updateText(); +} + +void QmlDateTimeFormatterPrivate::updateText() +{ + Q_Q(QmlDateTimeFormatter); + if (!componentComplete) + return; + + QString str; + QString str1; + QString str2; + + Qt::DateFormat defaultFormat = longStyle ? Qt::SystemLocaleLongDate : Qt::SystemLocaleShortDate; + + if (dateFormat.isEmpty()) + str1 = date.toString(defaultFormat); + else + str1 = date.toString(dateFormat); + + if (timeFormat.isEmpty()) + str2 = time.toString(defaultFormat); + else + str2 = time.toString(timeFormat); + + if (dateTimeFormat.isEmpty()) + str = dateTime.toString(defaultFormat); + //else if (!formatTime.isEmpty() && !formatDate.isEmpty()) + // str = str1 + QLatin1Char(' ') + str2; + else + str = dateTime.toString(dateTimeFormat); + + if (dateTimeText == str && dateText == str1 && timeText == str2) + return; + + dateTimeText = str; + dateText = str1; + timeText = str2; + + emit q->textChanged(); +} + +void QmlDateTimeFormatter::classBegin() +{ + Q_D(QmlDateTimeFormatter); + d->componentComplete = false; +} + +void QmlDateTimeFormatter::componentComplete() +{ + Q_D(QmlDateTimeFormatter); + d->componentComplete = true; + d->updateText(); +} + +QML_DEFINE_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter) + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmldatetimeformatter_p.h b/src/declarative/util/qmldatetimeformatter_p.h new file mode 100644 index 0000000..e350f96 --- /dev/null +++ b/src/declarative/util/qmldatetimeformatter_p.h @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLDATETIMEFORMATTER_H +#define QMLDATETIMEFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlDateTimeFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlDateTimeFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString dateText READ dateText NOTIFY textChanged) + Q_PROPERTY(QString timeText READ timeText NOTIFY textChanged) + Q_PROPERTY(QString dateTimeText READ dateTimeText NOTIFY textChanged) + Q_PROPERTY(QDate date READ date WRITE setDate) + Q_PROPERTY(QTime time READ time WRITE setTime) + Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime) + Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat) + Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat) + Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) + Q_PROPERTY(bool longStyle READ longStyle WRITE setLongStyle) +public: + QmlDateTimeFormatter(QObject *parent=0); + ~QmlDateTimeFormatter(); + + QString dateTimeText() const; + QString dateText() const; + QString timeText() const; + + QDate date() const; + void setDate(const QDate &); + + QTime time() const; + void setTime(const QTime &); + + QDateTime dateTime() const; + void setDateTime(const QDateTime &); + + QString dateTimeFormat() const; + void setDateTimeFormat(const QString &); + + QString dateFormat() const; + void setDateFormat(const QString &); + + QString timeFormat() const; + void setTimeFormat(const QString &); + + bool longStyle() const; + void setLongStyle(bool); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlDateTimeFormatter) + Q_DECLARE_PRIVATE(QmlDateTimeFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlDateTimeFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlfontloader.cpp b/src/declarative/util/qmlfontloader.cpp new file mode 100644 index 0000000..36ee1bb --- /dev/null +++ b/src/declarative/util/qmlfontloader.cpp @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "private/qobject_p.h" +#include "qmlfontloader_p.h" +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlFontLoaderPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlFontLoader) + +public: + QmlFontLoaderPrivate() : reply(0), status(QmlFontLoader::Null) {} + + void addFontToDatabase(const QByteArray &); + + QUrl url; + QString name; + QNetworkReply *reply; + QmlFontLoader::Status status; +}; + +QML_DEFINE_TYPE(Qt,4,6,FontLoader,QmlFontLoader) + +/*! + \qmlclass FontLoader QmlFontLoader + \ingroup group_utility + \brief This item allows using fonts by name or url. + + Example: + \qml + FontLoader { id: fixedFont; name: "Courier" } + FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } + + Text { text: "Fixed-size font"; font.family: fixedFont.name } + Text { text: "Fancy font"; font.family: webFont.name } + \endqml +*/ +QmlFontLoader::QmlFontLoader(QObject *parent) + : QObject(*(new QmlFontLoaderPrivate), parent) +{ +} + +QmlFontLoader::~QmlFontLoader() +{ +} + +static QString toLocalFileOrQrc(const QUrl& url) +{ + QString r = url.toLocalFile(); + if (r.isEmpty() && url.scheme() == QLatin1String("qrc")) + r = QLatin1Char(':') + url.path(); + return r; +} + + +/*! + \qmlproperty url FontLoader::source + The url of the font to load. +*/ +QUrl QmlFontLoader::source() const +{ + Q_D(const QmlFontLoader); + return d->url; +} + +void QmlFontLoader::setSource(const QUrl &url) +{ + Q_D(QmlFontLoader); + if (url == d->url) + return; + d->url = qmlContext(this)->resolvedUrl(url); + + d->status = Loading; + emit statusChanged(); +#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML + QString lf = toLocalFileOrQrc(d->url); + if (!lf.isEmpty()) { + QFile file(lf); + file.open(QIODevice::ReadOnly); + QByteArray ba = file.readAll(); + d->addFontToDatabase(ba); + } else +#endif + { + QNetworkRequest req(d->url); + d->reply = qmlEngine(this)->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(replyFinished())); + } +} + +/*! + \qmlproperty string FontLoader::name + + This property holds the name of the font family. + It is set automatically when a font is loaded using the \c url property. + + Use this to set the \c font.family property of a \c Text item. + + Example: + \qml + FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" } + Text { text: "Fancy font"; font.family: webFont.name } + \endqml +*/ +QString QmlFontLoader::name() const +{ + Q_D(const QmlFontLoader); + return d->name; +} + +void QmlFontLoader::setName(const QString &name) +{ + Q_D(QmlFontLoader); + if (d->name == name ) + return; + d->name = name; + emit nameChanged(); + d->status = Ready; + emit statusChanged(); +} + +/*! + \qmlproperty enum FontLoader::status + + This property holds the status of font loading. It can be one of: + \list + \o Null - no font has been set + \o Ready - the font has been loaded + \o Loading - the font is currently being loaded + \o Error - an error occurred while loading the font + \endlist +*/ +QmlFontLoader::Status QmlFontLoader::status() const +{ + Q_D(const QmlFontLoader); + return d->status; +} + +void QmlFontLoader::replyFinished() +{ + Q_D(QmlFontLoader); + if (d->reply) { + if (!d->reply->error()) { + QByteArray ba = d->reply->readAll(); + d->addFontToDatabase(ba); + } else { + d->status = Error; + emit statusChanged(); + } + d->reply->deleteLater(); + d->reply = 0; + } +} + +void QmlFontLoaderPrivate::addFontToDatabase(const QByteArray &ba) +{ + Q_Q(QmlFontLoader); + + int id = QFontDatabase::addApplicationFontFromData(ba); + if (id != -1) { + name = QFontDatabase::applicationFontFamilies(id).at(0); + emit q->nameChanged(); + status = QmlFontLoader::Ready; + } else { + status = QmlFontLoader::Error; + qWarning() << "Cannot load font:" << url; + } + emit q->statusChanged(); +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlfontloader_p.h b/src/declarative/util/qmlfontloader_p.h new file mode 100644 index 0000000..d02a181 --- /dev/null +++ b/src/declarative/util/qmlfontloader_p.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLFONTLOADER_H +#define QMLFONTLOADER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlFontLoaderPrivate; +class Q_DECLARATIVE_EXPORT QmlFontLoader : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlFontLoader) + Q_ENUMS(Status) + + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + +public: + enum Status { Null = 0, Ready, Loading, Error }; + + QmlFontLoader(QObject *parent = 0); + ~QmlFontLoader(); + + QUrl source() const; + void setSource(const QUrl &url); + + QString name() const; + void setName(const QString &name); + + Status status() const; + +private Q_SLOTS: + void replyFinished(); + +Q_SIGNALS: + void nameChanged(); + void statusChanged(); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlFontLoader) + +QT_END_HEADER + +#endif // QMLFONTLOADER_H + diff --git a/src/declarative/util/qmlnumberformatter.cpp b/src/declarative/util/qmlnumberformatter.cpp new file mode 100644 index 0000000..b09be5b --- /dev/null +++ b/src/declarative/util/qmlnumberformatter.cpp @@ -0,0 +1,215 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlnumberformatter_p.h" +#include "private/qobject_p.h" + +QT_BEGIN_NAMESPACE + +//TODO: set locale +// docs +// this is a wrapper around qnumberformat (test integration) +// if number or format haven't been explictly set, text should be an empty string + +class QmlNumberFormatterPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlNumberFormatter) +public: + QmlNumberFormatterPrivate() : locale(QLocale::system()), number(0), componentComplete(true) {} + + void updateText(); + + QLocale locale; + QString format; + QNumberFormat numberFormat; + QString text; + qreal number; + bool componentComplete; +}; +/*! + \qmlclass NumberFormatter + \brief The NumberFormatter allows you to control the format of a number string. + + The format property documentation has more details on how the format can be manipulated. + + In the following example, the text element will display the text "1,234.57". + \code + NumberFormatter { id: formatter; number: 1234.5678; format: "##,##0.##" } + Text { text: formatter.text } + \endcode + + */ +/*! + \internal + \class QmlNumberFormatter + \ingroup group_utility + \brief The QmlNumberFormatter class allows you to format a number to a particular string format/locale specific number format. +*/ + +QmlNumberFormatter::QmlNumberFormatter(QObject *parent) +: QObject(*(new QmlNumberFormatterPrivate), parent) +{ +} + +QmlNumberFormatter::~QmlNumberFormatter() +{ +} + +/*! + \qmlproperty string NumberFormatter::text + + The number in the specified format. +
+ If no format is specified the text will be empty. +*/ + +QString QmlNumberFormatter::text() const +{ + Q_D(const QmlNumberFormatter); + return d->text; +} + +/*! + \qmlproperty real NumberFormatter::number + + A single point precision number. (Doubles are not yet supported) + +*/ +qreal QmlNumberFormatter::number() const +{ + Q_D(const QmlNumberFormatter); + return d->number; +} + +/*! + \qmlproperty string NumberFormatter::format + + The particular format the number will adhere to during the conversion to text. +
+ The format syntax follows a style similar to the Unicode Standard (UTS35). + + The table below shows the characters, patterns that can be used in the format. + + + + + + + + +
Character Meaning
# Any digit(s), zero shows as absent (for leading/trailing zeroes)
0 Implicit digit. Zero will show in the case that the input number is too small.
. Decimal separator. Output decimal seperator will be dependant on system locale.
, Grouping separator. The number of digits (either #, or 0) between the grouping separator and the decimal (or the rightmost digit) will determine the groupingSize)
other Any other character will be taken as a string literal and placed directly into the output string
+ + Invalid formats will not guarantee a meaningful text output.
+ + \note Input numbers that are too long for the given format will be rounded dependent on precison based on the position of the decimal point + + The following table illustrates the output text created by applying some examples of numeric formats to the formatter. + + + + + + + + + + + + +
Format Number Output
### 123456 123456
000 123456 123456
###### 1234 1234
000000 1234 001234
##,##0.## 1234.456 1,234.46 (for US locale)
1 234,46 (for FR locale)
000000,000.# 123456 000,123,456 (for US locale)
000 123 456 (for FR locale)
0.0### 0.999997 1.0
(000) 000 - 000 12345678 (012) 345 - 678
#A1212A
+ +*/ +QString QmlNumberFormatter::format() const +{ + Q_D(const QmlNumberFormatter); + return d->format; +} + +void QmlNumberFormatter::setNumber(const qreal &number) +{ + Q_D(QmlNumberFormatter); + if (d->number == number) + return; + d->number = number; + d->updateText(); +} + +void QmlNumberFormatter::setFormat(const QString &format) +{ + Q_D(QmlNumberFormatter); + //no format checking + if (format.isEmpty()) + d->format = QString::null; + else + d->format = format; + d->updateText(); +} + +void QmlNumberFormatterPrivate::updateText() +{ + Q_Q(QmlNumberFormatter); + if (!componentComplete) + return; + + QNumberFormat tempFormat; + tempFormat.setFormat(format); + tempFormat.setNumber(number); + + text = tempFormat.text(); + + emit q->textChanged(); +} + +void QmlNumberFormatter::classBegin() +{ + Q_D(QmlNumberFormatter); + d->componentComplete = false; +} + +void QmlNumberFormatter::componentComplete() +{ + Q_D(QmlNumberFormatter); + d->componentComplete = true; + d->updateText(); +} +QML_DEFINE_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter); + +QT_END_NAMESPACE diff --git a/src/declarative/util/qmlnumberformatter_p.h b/src/declarative/util/qmlnumberformatter_p.h new file mode 100644 index 0000000..0036cb9 --- /dev/null +++ b/src/declarative/util/qmlnumberformatter_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLNUMBERFORMATTER_H +#define QMLNUMBERFORMATTER_H + +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlNumberFormatterPrivate; +class Q_DECLARATIVE_EXPORT QmlNumberFormatter : public QObject, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + + Q_PROPERTY(QString text READ text NOTIFY textChanged) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(qreal number READ number WRITE setNumber) +public: + QmlNumberFormatter(QObject *parent=0); + ~QmlNumberFormatter(); + + QString text() const; + + qreal number() const; + void setNumber(const qreal &); + + QString format() const; + void setFormat(const QString &); + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void textChanged(); + +private: + Q_DISABLE_COPY(QmlNumberFormatter) + Q_DECLARE_PRIVATE(QmlNumberFormatter) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlNumberFormatter) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/qmlxmllistmodel.cpp b/src/declarative/util/qmlxmllistmodel.cpp new file mode 100644 index 0000000..3d90b44 --- /dev/null +++ b/src/declarative/util/qmlxmllistmodel.cpp @@ -0,0 +1,727 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlxmllistmodel_p.h" +#include "private/qobject_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QML_DEFINE_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole) +QML_DEFINE_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel) + +/*! + \qmlclass XmlRole QmlXmlListModelRole + \brief The XmlRole element allows you to specify a role for an XmlListModel. +*/ + +/*! + \qmlproperty string XmlRole::name + The name for the role. This name is used to access the model data for this role from Qml. + + \qml + XmlRole { name: "title"; query: "title/string()" } + + ... + + Component { + id: myDelegate + Text { text: title } + } + \endqml +*/ + +/*! + \qmlproperty string XmlRole::query + The relative XPath query for this role. The query should not start with a '/' (i.e. it must be + relative). + + \qml + XmlRole { name: "title"; query: "title/string()" } + \endqml +*/ + +class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QString query READ query WRITE setQuery) + +public: + QmlXmlListModelRole() {} + ~QmlXmlListModelRole() {} + + QString name() const { return m_name; } + void setName(const QString &name) { m_name = name; } + + QString query() const { return m_query; } + void setQuery(const QString &query) + { + if (query.startsWith(QLatin1Char('/'))) { + qmlInfo(this) << tr("An XmlRole query must not start with '/'"); + return; + } + m_query = query; + } + + bool isValid() { + return !m_name.isEmpty() && !m_query.isEmpty(); + } + +private: + QString m_name; + QString m_query; +}; + +QML_DECLARE_TYPE(QmlXmlListModelRole) + +class QmlXmlListModelPrivate; +struct QmlXmlRoleList : public QmlConcreteList +{ + QmlXmlRoleList(QmlXmlListModelPrivate *p) + : model(p) {} + virtual void append(QmlXmlListModelRole *role); + //XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well + // (and the model should emit the appropriate signals) + virtual void clear(); + virtual void removeAt(int i); + virtual void insert(int i, QmlXmlListModelRole *role); + + QmlXmlListModelPrivate *model; +}; + +class QmlXmlQuery : public QThread +{ + Q_OBJECT +public: + QmlXmlQuery(QObject *parent=0) + : QThread(parent), m_quit(false), m_restart(false), m_abort(false), m_queryId(0) { + } + ~QmlXmlQuery() { + m_mutex.lock(); + m_quit = true; + m_condition.wakeOne(); + m_mutex.unlock(); + + wait(); + } + + void abort() { + QMutexLocker locker(&m_mutex); + m_abort = true; + } + + int doQuery(QString query, QString namespaces, QByteArray data, QmlXmlRoleList *roleObjects) { + QMutexLocker locker(&m_mutex); + m_modelData.clear(); + m_size = 0; + m_data = data; + m_query = QLatin1String("doc($src)") + query; + m_namespaces = namespaces; + m_roleObjects = roleObjects; + if (!isRunning()) { + m_abort = false; + start(); + } else { + m_restart = true; + m_condition.wakeOne(); + } + m_queryId++; + return m_queryId; + } + + QList > modelData() { + QMutexLocker locker(&m_mutex); + return m_modelData; + } + +Q_SIGNALS: + void queryCompleted(int queryId, int size); + +protected: + void run() { + while (!m_quit) { + m_mutex.lock(); + int queryId = m_queryId; + doQueryJob(); + if (m_size > 0) + doSubQueryJob(); + m_data.clear(); // no longer needed + m_mutex.unlock(); + + m_mutex.lock(); + if (!m_abort && m_size > 0) + emit queryCompleted(queryId, m_size); + if (!m_restart) + m_condition.wait(&m_mutex); + m_abort = false; + m_restart = false; + m_mutex.unlock(); + } + } + +private: + void doQueryJob(); + void doSubQueryJob(); + +private: + QMutex m_mutex; + QWaitCondition m_condition; + bool m_quit; + bool m_restart; + bool m_abort; + QByteArray m_data; + QString m_query; + QString m_namespaces; + QString m_prefix; + int m_size; + int m_queryId; + const QmlXmlRoleList *m_roleObjects; + QList > m_modelData; +}; + +void QmlXmlQuery::doQueryJob() +{ + QString r; + QXmlQuery query; + QBuffer buffer(&m_data); + buffer.open(QIODevice::ReadOnly); + query.bindVariable(QLatin1String("src"), &buffer); + query.setQuery(m_namespaces + m_query); + query.evaluateTo(&r); + + //qDebug() << r; + + //always need a single root element + QByteArray xml = "\n" + r.toUtf8() + ""; + QBuffer b(&xml); + b.open(QIODevice::ReadOnly); + //qDebug() << xml; + + QString namespaces = QLatin1String("declare namespace dummy=\"http://qtsotware.com/dummy\";\n") + m_namespaces; + QString prefix = QLatin1String("doc($inputDocument)/dummy:items") + + m_query.mid(m_query.lastIndexOf(QLatin1Char('/'))); + + //figure out how many items we are dealing with + int count = -1; + { + QXmlResultItems result; + QXmlQuery countquery; + countquery.bindVariable(QLatin1String("inputDocument"), &b); + countquery.setQuery(namespaces + QLatin1String("count(") + prefix + QLatin1String(")")); + countquery.evaluateTo(&result); + QXmlItem item(result.next()); + if (item.isAtomicValue()) + count = item.toAtomicValue().toInt(); + } + //qDebug() << count; + + m_prefix = namespaces + prefix + QLatin1String("/"); + m_data = xml; + if (count > 0) + m_size = count; +} + +void QmlXmlQuery::doSubQueryJob() +{ + m_modelData.clear(); + + QBuffer b(&m_data); + b.open(QIODevice::ReadOnly); + + QXmlQuery subquery; + subquery.bindVariable(QLatin1String("inputDocument"), &b); + + //### we might be able to condense even further (query for everything in one go) + for (int i = 0; i < m_roleObjects->size(); ++i) { + QmlXmlListModelRole *role = m_roleObjects->at(i); + if (!role->isValid()) { + QList resultList; + for (int j = 0; j < m_size; ++j) + resultList << QVariant(); + m_modelData << resultList; + continue; + } + subquery.setQuery(m_prefix + QLatin1String("(let $v := ") + role->query() + QLatin1String(" return if ($v) then ") + role->query() + QLatin1String(" else \"\")")); + QXmlResultItems output3; + subquery.evaluateTo(&output3); + QXmlItem item(output3.next()); + QList resultList; + while (!item.isNull()) { + resultList << item.toAtomicValue(); //### we used to trim strings + item = output3.next(); + } + //### should warn here if things have gone wrong. + while (resultList.count() < m_size) + resultList << QVariant(); + m_modelData << resultList; + b.seek(0); + } + + //XXX this method is much slower, but would work better for incremental loading + /*for (int j = 0; j < m_size; ++j) { + QList resultList; + for (int i = 0; i < m_roleObjects->size(); ++i) { + QmlXmlListModelRole *role = m_roleObjects->at(i); + subquery.setQuery(m_prefix.arg(j+1) + role->query()); + if (role->isStringList()) { + QStringList data; + subquery.evaluateTo(&data); + resultList << QVariant(data); + //qDebug() << data; + } else { + QString s; + subquery.evaluateTo(&s); + if (role->isCData()) { + //un-escape + s.replace(QLatin1String("<"), QLatin1String("<")); + s.replace(QLatin1String(">"), QLatin1String(">")); + s.replace(QLatin1String("&"), QLatin1String("&")); + } + resultList << s.trimmed(); + //qDebug() << s; + } + b.seek(0); + } + m_modelData << resultList; + }*/ +} + + +//TODO: error handling (currently quite fragile) +// profile doQuery and doSubquery +// support complex/nested objects? +// how do we handle data updates (like rss feed -- usually items inserted at beginning) + + +class QmlXmlListModelPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QmlXmlListModel) +public: + QmlXmlListModelPrivate() + : isComponentComplete(true), size(-1), highestRole(Qt::UserRole) + , reply(0), status(QmlXmlListModel::Null), progress(0.0) + , queryId(-1), roleObjects(this) {} + + bool isComponentComplete; + QUrl src; + QString xml; + QString query; + QString namespaces; + int size; + QList roles; + QStringList roleNames; + int highestRole; + QNetworkReply *reply; + QmlXmlListModel::Status status; + qreal progress; + QmlXmlQuery qmlXmlQuery; + int queryId; + QmlXmlRoleList roleObjects; + QList > data; +}; + + +void QmlXmlRoleList::append(QmlXmlListModelRole *role) { + QmlConcreteList::append(role); + model->roles << model->highestRole; + model->roleNames << role->name(); + ++model->highestRole; +} + +//XXX clear, removeAt, and insert need to invalidate any cached data (in data table) as well +// (and the model should emit the appropriate signals) +void QmlXmlRoleList::clear() +{ + model->roles.clear(); + model->roleNames.clear(); + QmlConcreteList::clear(); +} + +void QmlXmlRoleList::removeAt(int i) +{ + model->roles.removeAt(i); + model->roleNames.removeAt(i); + QmlConcreteList::removeAt(i); +} + +//### we should enforce unique role names +void QmlXmlRoleList::insert(int i, QmlXmlListModelRole *role) +{ + QmlConcreteList::insert(i, role); + model->roles.insert(i, model->highestRole); + model->roleNames.insert(i, role->name()); + ++model->highestRole; +} + +/*! + \class QmlXmlListModel + \internal +*/ + +/*! + \qmlclass XmlListModel QmlXmlListModel + \brief The XmlListModel element allows you to specify a model using XPath expressions. + + XmlListModel allows you to construct a model from XML data that can then be used as a data source + for the view classes (ListView, PathView, GridView) and any other classes that interact with model + data (like Repeater). + + The following is an example of a model containing news from a Yahoo RSS feed: + \qml + XmlListModel { + id: feedModel + source: "http://rss.news.yahoo.com/rss/oceania" + query: "/rss/channel/item" + XmlRole { name: "title"; query: "title/string()" } + XmlRole { name: "link"; query: "link/string()" } + XmlRole { name: "description"; query: "description/string()" } + } + \endqml + \note The model is currently static, so the above is really just a snapshot of an RSS feed. To force a + reload of the entire model, you can call the reload function. +*/ + +QmlXmlListModel::QmlXmlListModel(QObject *parent) + : QListModelInterface(*(new QmlXmlListModelPrivate), parent) +{ + Q_D(QmlXmlListModel); + connect(&d->qmlXmlQuery, SIGNAL(queryCompleted(int,int)), + this, SLOT(queryCompleted(int,int))); +} + +QmlXmlListModel::~QmlXmlListModel() +{ +} + +/*! + \qmlproperty list XmlListModel::roles + + The roles to make available for this model. +*/ +QmlList *QmlXmlListModel::roleObjects() +{ + Q_D(QmlXmlListModel); + return &d->roleObjects; +} + +QHash QmlXmlListModel::data(int index, const QList &roles) const +{ + Q_D(const QmlXmlListModel); + QHash rv; + for (int i = 0; i < roles.size(); ++i) { + int role = roles.at(i); + int roleIndex = d->roles.indexOf(role); + rv.insert(role, roleIndex == -1 ? QVariant() : d->data.at(roleIndex).at(index)); + } + return rv; +} + +/*! + \qmlproperty int XmlListModel::count + The number of data entries in the model. +*/ +int QmlXmlListModel::count() const +{ + Q_D(const QmlXmlListModel); + return d->size; +} + +QList QmlXmlListModel::roles() const +{ + Q_D(const QmlXmlListModel); + return d->roles; +} + +QString QmlXmlListModel::toString(int role) const +{ + Q_D(const QmlXmlListModel); + int index = d->roles.indexOf(role); + if (index == -1) + return QString(); + return d->roleNames.at(index); +} + +/*! + \qmlproperty url XmlListModel::source + The location of the XML data source. + + If both source and xml are set, xml will be used. +*/ +QUrl QmlXmlListModel::source() const +{ + Q_D(const QmlXmlListModel); + return d->src; +} + +void QmlXmlListModel::setSource(const QUrl &src) +{ + Q_D(QmlXmlListModel); + if (d->src != src) { + d->src = src; + reload(); + } +} + +/*! + \qmlproperty string XmlListModel::xml + This property holds XML text set directly. + + The text is assumed to be UTF-8 encoded. + + If both source and xml are set, xml will be used. +*/ +QString QmlXmlListModel::xml() const +{ + Q_D(const QmlXmlListModel); + return d->xml; +} + +void QmlXmlListModel::setXml(const QString &xml) +{ + Q_D(QmlXmlListModel); + d->xml = xml; + reload(); +} + +/*! + \qmlproperty url XmlListModel::query + An absolute XPath query representing the base query for the model items. The query should start with + a '/' or '//'. +*/ +QString QmlXmlListModel::query() const +{ + Q_D(const QmlXmlListModel); + return d->query; +} + +void QmlXmlListModel::setQuery(const QString &query) +{ + Q_D(QmlXmlListModel); + if (!query.startsWith(QLatin1Char('/'))) { + qmlInfo(this) << tr("An XmlListModel query must start with '/' or \"//\""); + return; + } + + if (d->query != query) { + d->query = query; + reload(); + } +} + +/*! + \qmlproperty string XmlListModel::namespaceDeclarations + A set of declarations for the namespaces used in the query. +*/ +QString QmlXmlListModel::namespaceDeclarations() const +{ + Q_D(const QmlXmlListModel); + return d->namespaces; +} + +void QmlXmlListModel::setNamespaceDeclarations(const QString &declarations) +{ + Q_D(QmlXmlListModel); + if (d->namespaces != declarations) { + d->namespaces = declarations; + reload(); + } +} + +/*! + \qmlproperty enum XmlListModel::status + + This property holds the status of data source loading. It can be one of: + \list + \o Null - no data source has been set + \o Ready - nthe data source has been loaded + \o Loading - the data source is currently being loaded + \o Error - an error occurred while loading the data source + \endlist + + \sa progress + +*/ +QmlXmlListModel::Status QmlXmlListModel::status() const +{ + Q_D(const QmlXmlListModel); + return d->status; +} + +/*! + \qmlproperty real XmlListModel::progress + + This property holds the progress of data source loading, from 0.0 (nothing loaded) + to 1.0 (finished). + + \sa status +*/ +qreal QmlXmlListModel::progress() const +{ + Q_D(const QmlXmlListModel); + return d->progress; +} + +void QmlXmlListModel::classBegin() +{ + Q_D(QmlXmlListModel); + d->isComponentComplete = false; +} + +void QmlXmlListModel::componentComplete() +{ + Q_D(QmlXmlListModel); + d->isComponentComplete = true; + reload(); +} + +/*! + \qmlmethod XmlListModel::reload() + + Reloads the model. All the existing model data will be removed, and the model + will be rebuilt from scratch. +*/ +void QmlXmlListModel::reload() +{ + Q_D(QmlXmlListModel); + + if (!d->isComponentComplete) + return; + + d->qmlXmlQuery.abort(); + d->queryId = -1; + + //clear existing data + int count = d->size; + d->size = 0; + d->data.clear(); + if (count > 0) + emit itemsRemoved(0, count); + + if (d->src.isEmpty() && d->xml.isEmpty()) + return; + + if (d->reply) { + d->reply->abort(); + d->reply->deleteLater(); + d->reply = 0; + } + + if (!d->xml.isEmpty()) { + d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, d->xml.toUtf8(), &d->roleObjects); + d->progress = 1.0; + d->status = Ready; + emit progressChanged(d->progress); + emit statusChanged(d->status); + return; + } + + d->progress = 0.0; + d->status = Loading; + emit progressChanged(d->progress); + emit statusChanged(d->status); + + QNetworkRequest req(d->src); + d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); + QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(requestFinished())); + QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); +} + +void QmlXmlListModel::requestFinished() +{ + Q_D(QmlXmlListModel); + if (d->reply->error() != QNetworkReply::NoError) { + disconnect(d->reply, 0, this, 0); + d->reply->deleteLater(); + d->reply = 0; + d->status = Error; + } else { + d->status = Ready; + QByteArray data = d->reply->readAll(); + d->queryId = d->qmlXmlQuery.doQuery(d->query, d->namespaces, data, &d->roleObjects); + disconnect(d->reply, 0, this, 0); + d->reply->deleteLater(); + d->reply = 0; + } + d->progress = 1.0; + emit progressChanged(d->progress); + emit statusChanged(d->status); +} + +void QmlXmlListModel::requestProgress(qint64 received, qint64 total) +{ + Q_D(QmlXmlListModel); + if (d->status == Loading && total > 0) { + d->progress = qreal(received)/total; + emit progressChanged(d->progress); + } +} + +void QmlXmlListModel::queryCompleted(int id, int size) +{ + Q_D(QmlXmlListModel); + if (id != d->queryId) + return; + d->size = size; + if (size > 0) { + d->data = d->qmlXmlQuery.modelData(); + emit itemsInserted(0, d->size); + emit countChanged(); + } +} + +QT_END_NAMESPACE + +#include "qmlxmllistmodel.moc" diff --git a/src/declarative/util/qmlxmllistmodel_p.h b/src/declarative/util/qmlxmllistmodel_p.h new file mode 100644 index 0000000..18bf9d2 --- /dev/null +++ b/src/declarative/util/qmlxmllistmodel_p.h @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLXMLLISTMODEL_H +#define QMLXMLLISTMODEL_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlContext; + +class QmlXmlListModelRole; + +class QmlXmlListModelPrivate; +class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public QmlParserStatus +{ + Q_OBJECT + Q_INTERFACES(QmlParserStatus) + Q_ENUMS(Status) + + Q_PROPERTY(Status status READ status NOTIFY statusChanged) + Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) + Q_PROPERTY(QUrl source READ source WRITE setSource) + Q_PROPERTY(QString xml READ xml WRITE setXml) + Q_PROPERTY(QString query READ query WRITE setQuery) + Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) + Q_PROPERTY(QmlList *roles READ roleObjects) + Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_CLASSINFO("DefaultProperty", "roles") + +public: + QmlXmlListModel(QObject *parent = 0); + ~QmlXmlListModel(); + + virtual QHash data(int index, const QList &roles = (QList())) const; + virtual int count() const; + virtual QList roles() const; + virtual QString toString(int role) const; + + QmlList *roleObjects(); + + QUrl source() const; + void setSource(const QUrl&); + + QString xml() const; + void setXml(const QString&); + + QString query() const; + void setQuery(const QString&); + + QString namespaceDeclarations() const; + void setNamespaceDeclarations(const QString&); + + enum Status { Null, Ready, Loading, Error }; + Status status() const; + qreal progress() const; + + virtual void classBegin(); + virtual void componentComplete(); + +Q_SIGNALS: + void statusChanged(Status); + void progressChanged(qreal progress); + void countChanged(); + +public Q_SLOTS: + // ### need to use/expose Expiry to guess when to call this? + // ### property to auto-call this on reasonable Expiry? + // ### LastModified/Age also useful to guess. + // ### Probably also applies to other network-requesting types. + void reload(); + +private Q_SLOTS: + void requestFinished(); + void requestProgress(qint64,qint64); + void queryCompleted(int,int); + +private: + Q_DECLARE_PRIVATE(QmlXmlListModel) + Q_DISABLE_COPY(QmlXmlListModel) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlXmlListModel) + +QT_END_HEADER + +#endif // QMLXMLLISTMODEL_H diff --git a/src/declarative/util/qnumberformat.cpp b/src/declarative/util/qnumberformat.cpp new file mode 100644 index 0000000..c6a03e9 --- /dev/null +++ b/src/declarative/util/qnumberformat.cpp @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qnumberformat_p.h" + +QT_BEGIN_NAMESPACE + +QML_DEFINE_NOCREATE_TYPE(QNumberFormat) + +QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal), + _groupingSize(0) +{ + _locale = QLocale::system(); + _groupingSeparator = _locale.groupSeparator(); + _decimalSeparator = _locale.decimalPoint(); + _currencySymbol = QLatin1Char('$'); +} + +QNumberFormat::~QNumberFormat() +{ + +} + +void QNumberFormat::updateText() +{ + QTime t; + t.start(); + static int totalTime; + + handleFormat(); + + totalTime += t.elapsed(); + emit textChanged(); +} + +void QNumberFormat::handleFormat() +{ + // ### is extremely messy + if (_format.isEmpty()) { + _text = QString(QLatin1String("%1")).arg(_number, -1, 'f', -1); + return; + } + + QString inputString; + + // ### possible to use the following parsed data in the future + + int remainingLength = _format.size(); + int currentIndex = _format.size()-1; + + int maxDigits = 0; + int minDigits = 0; + int decimalLength = 0; + + while (remainingLength > 0) { + switch(_format.at(currentIndex).unicode()) { + case ',': + if (decimalLength && !_groupingSize) + setGroupingSize(maxDigits - decimalLength); + else if (!_groupingSize) + setGroupingSize(maxDigits); + break; + case '.': + if (!decimalLength) + decimalLength = maxDigits; + break; + case '0': + minDigits++; + case '#': + maxDigits++; + break; + default: + break; + } + currentIndex--; + remainingLength--; + } + + // round given the decimal length/precision + inputString = QString(QLatin1String("%1")).arg(_number, -1, 'f', decimalLength); + + QStringList parts = inputString.split(QLatin1Char('.')); + QStringList formatParts = _format.split(QLatin1Char('.')); + + if (formatParts.size() > 2 || parts.size() > 2 ) + return; + + QString formatInt = formatParts.at(0); + + QString formatDec; + if (formatParts.size() == 2) + formatDec = formatParts.at(1); + + QString integer = parts.at(0); + + QString decimal; + if (parts.size() == 2) + decimal = parts.at(1); + + QString outputDecimal = formatDecimal(formatDec, decimal); + QString outputInteger = formatInteger(formatInt, integer); + + // insert separators + if (_groupingSize) { + unsigned int count = 0; + for (int i = outputInteger.size()-1; i > 0; i--) { + if (outputInteger.at(i).digitValue() >= 0) { + if (count == _groupingSize - 1) { + count = 0; + outputInteger.insert(i, _groupingSeparator); + } + else + count++; + } + } + } + if (!outputDecimal.isEmpty()) + _text = outputInteger + _decimalSeparator + outputDecimal; + else + _text = outputInteger; +} + +QString QNumberFormat::formatInteger(const QString &formatInt, const QString &integer) +{ + if (formatInt.isEmpty() || integer.isEmpty()) + return QString(); + + QString outputInteger; + int formatIndex = formatInt.size()-1; + + //easier for carry? + for (int index= integer.size()-1; index >= 0; index--) { + if (formatIndex < 0) { + outputInteger.push_front(integer.at(index)); + } + else { + switch(formatInt.at(formatIndex).unicode()) { + case '0': + if (index > integer.size()-1) { + outputInteger.push_front(QLatin1Char('0')); + break; + } + case '#': + outputInteger.push_front(integer.at(index)); + break; + case ',': + index++; + break; + default: + outputInteger.push_front(formatInt.at(formatIndex)); + index++; + break; + } + formatIndex--; + } + } + while (formatIndex >= 0) { + if (formatInt.at(formatIndex).unicode() != '#' && formatInt.at(formatIndex).unicode() != ',') + outputInteger.push_front(formatInt.at(formatIndex)); + formatIndex--; + } + return outputInteger; +} + +QString QNumberFormat::formatDecimal(const QString &formatDec, const QString &decimal) +{ + QString outputDecimal; + + // up to max 6 decimal places + for (int index=formatDec.size()-1; index >= 0; index--) { + switch(formatDec.at(index).unicode()) { + case '0': + outputDecimal.push_front(decimal.at(index)); + break; + case '#': + if (decimal.at(index) != QLatin1Char('0') || outputDecimal.size() > 0) + outputDecimal.push_front(decimal.at(index)); + break; + default: + outputDecimal.push_front(formatDec.at(index)); + break; + } + } + return outputDecimal; +} + +QT_END_NAMESPACE diff --git a/src/declarative/util/qnumberformat_p.h b/src/declarative/util/qnumberformat_p.h new file mode 100644 index 0000000..1a7b8e4 --- /dev/null +++ b/src/declarative/util/qnumberformat_p.h @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef NUMBERFORMAT_H +#define NUMBERFORMAT_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +// TODO +// be able to set Locale, instead of default system for dynamic formatting +// add currency support +// add additional syntax, extend to format scientific, percentiles, significant digits etc + + +class QNumberFormat : public QObject +{ + Q_OBJECT + Q_ENUMS(NumberType) +public: + QNumberFormat(QObject *parent=0); + ~QNumberFormat(); + + enum NumberType { + Percent, + Scientific, + Currency, + Decimal + }; + + //external property, only visible + Q_PROPERTY(QString text READ text NOTIFY textChanged) + + //mutatable properties to modify the output (text) + Q_PROPERTY(qreal number READ number WRITE setNumber) + Q_PROPERTY(QString format READ format WRITE setFormat) + Q_PROPERTY(QLocale locale READ locale WRITE setLocale) + + //Format specific settings + Q_PROPERTY(unsigned short groupingSeparator READ groupingSeparator WRITE setGroupingSeparator) + Q_PROPERTY(unsigned short decimalSeperator READ decimalSeparator WRITE setDecimalSeparator) + Q_PROPERTY(unsigned int groupingSize READ groupingSize WRITE setGroupingSize) + Q_PROPERTY(unsigned short currencySymbol READ currencySymbol WRITE setCurrencySymbol) + + + QString text() const { return _text; } + + qreal number() const { return _number; } + void setNumber(qreal n) { + if (_number == n) + return; + _number = n; + updateText(); + } + + QString format() const { return _format; } + void setFormat(const QString &format) { + if (format.isEmpty()) + _format = QString::null; + else if (_format == format) + return; + + _format = format; + updateText(); + } + + QLocale locale() const { return _locale; } + void setLocale(const QLocale &locale) { _locale = locale; updateText(); } + + //Do we deal with unicode standard? or create our own + // ### since this is the backend for the number conversions, we will use the unicode + // the front-end will handle the QChar/QString -> short int + + unsigned short groupingSeparator() { return _groupingSeparator.unicode(); } + void setGroupingSeparator(unsigned short unicodeSymbol) + { + _groupingSeparator = QChar(unicodeSymbol); + } + + unsigned short decimalSeparator() { return _decimalSeparator.unicode(); } + void setDecimalSeparator(unsigned short unicodeSymbol) + { + _decimalSeparator = QChar(unicodeSymbol); + } + + unsigned short currencySymbol() { return _currencySymbol.unicode(); } + void setCurrencySymbol(unsigned short unicodeSymbol) + { + _currencySymbol = QChar(unicodeSymbol); + } + + unsigned int groupingSize() { return _groupingSize; } + void setGroupingSize(unsigned int size) + { + _groupingSize = size; + } + +Q_SIGNALS: + void textChanged(); + +private: + void updateText(); + void handleFormat(); + QString formatInteger(const QString &formatInt, const QString &integer); + QString formatDecimal(const QString &formatDec, const QString &decimal); + + qreal _number; + NumberType _type; + QChar _groupingSeparator; + QChar _decimalSeparator; + QChar _currencySymbol; + unsigned int _groupingSize; + + QLocale _locale; + QString _format; + + // only hooked member at the moment + QString _text; + +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QNumberFormat) + +QT_END_HEADER + +#endif diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri index f955ef6..4223f4e 100644 --- a/src/declarative/util/util.pri +++ b/src/declarative/util/util.pri @@ -21,7 +21,12 @@ SOURCES += \ util/qmltimer.cpp \ util/qmlbind.cpp \ util/qmlpropertymap.cpp \ - util/qmlpixmapcache.cpp + util/qmlpixmapcache.cpp \ + util/qnumberformat.cpp \ + util/qmlnumberformatter.cpp \ + util/qmldatetimeformatter.cpp \ + util/qmlbehavior.cpp \ + util/qmlfontloader.cpp HEADERS += \ util/qmlview.h \ @@ -49,4 +54,15 @@ HEADERS += \ util/qmltimer_p.h \ util/qmlbind_p.h \ util/qmlpropertymap_p.h \ - util/qmlpixmapcache_p.h + util/qmlpixmapcache_p.h \ + util/qnumberformat_p.h \ + util/qmlnumberformatter_p.h \ + util/qmldatetimeformatter_p.h \ + util/qmlbehavior_p.h \ + util/qmlfontloader_p.h + +contains(QT_CONFIG, xmlpatterns) { + QT+=xmlpatterns + SOURCES += util/qmlxmllistmodel.cpp + HEADERS += util/qmlxmllistmodel_p.h +} -- cgit v0.12 From 48ac542fbeb654d095f14363156a26364c74c006 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 14:53:53 +1000 Subject: Apply manually. --- src/network/kernel/qhostinfo_p.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 64c5152..afd3570 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -161,9 +161,11 @@ public Q_SLOTS: cond.wakeOne(); } #ifndef QT_NO_THREAD - if (!wait(QHOSTINFO_THREAD_WAIT)) + if (!wait(QHOSTINFO_THREAD_WAIT)) { terminate(); - wait(); + // Don't wait forever; see QTBUG-5296. + wait(QHOSTINFO_THREAD_WAIT); + } #endif } -- cgit v0.12 From d31c4b65ae552750bc9af21fca2a3748c544b5be Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:02:03 +1000 Subject: Quieter, better. --- tests/auto/declarative/runall.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh index e4b18da..2d0c848 100755 --- a/tests/auto/declarative/runall.sh +++ b/tests/auto/declarative/runall.sh @@ -1,6 +1,7 @@ #!/bin/sh Xnest :7 2>/dev/null & +sleep 1 trap "kill $!" EXIT export DISPLAY=:7 @@ -8,7 +9,13 @@ make install 2>&1 | while read line do case "$line" in + make*Error) echo "$line";; + make*Stop) echo "$line";; make*) ;; + */qmake*) ;; + */bin/moc*) ;; + *targ.debug*) ;; + g++*) ;; cd*) ;; PASS*) ;; QDEBUG*) ;; -- cgit v0.12 From e46072cc655e263863abd6bd94bfa628d8aeeeec Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:03:56 +1000 Subject: Fix error message (warning often have trailing spaces) --- tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp index 8fda991..a88026b 100644 --- a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp +++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp @@ -114,7 +114,7 @@ void tst_QmlGraphicsLoader::component() void tst_QmlGraphicsLoader::invalidUrl() { -// QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml)"); + QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml) "); QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), QUrl("file://" SRCDIR "/")); QmlGraphicsLoader *loader = qobject_cast(component.create()); -- cgit v0.12 From 239a0dcb704c5a0b1e10a366f8ffacb0db86916e Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 11 Nov 2009 15:13:11 +1000 Subject: Some tests can't be run in parallel. --- tests/auto/declarative/runall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh index 2d0c848..33087a1 100755 --- a/tests/auto/declarative/runall.sh +++ b/tests/auto/declarative/runall.sh @@ -5,7 +5,7 @@ sleep 1 trap "kill $!" EXIT export DISPLAY=:7 -make install 2>&1 | +make -k -j1 install 2>&1 | while read line do case "$line" in -- cgit v0.12 From 7b06c4ca4bd6f91528d1d9ebf44e2f566e817558 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 15:24:07 +1000 Subject: Doc fixes after \qmlmethod changes. --- src/declarative/graphicsitems/qmlgraphicsitem.cpp | 4 ++-- src/declarative/graphicsitems/qmlgraphicslistview.cpp | 4 ++-- src/declarative/graphicsitems/qmlgraphicsparticles.cpp | 2 +- src/declarative/util/qmllistmodel.cpp | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicsitem.cpp b/src/declarative/graphicsitems/qmlgraphicsitem.cpp index 572aa98..aa5c4cb 100644 --- a/src/declarative/graphicsitems/qmlgraphicsitem.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsitem.cpp @@ -1329,9 +1329,9 @@ QmlGraphicsKeysAttached *QmlGraphicsKeysAttached::qmlAttachedProperties(QObject Key handling is available to all Item-based visual elements via the \l {Keys}{Keys} attached property. The \e Keys attached property provides basic handlers such - as \l {Keys::onPressed(event)}{onPressed} and \l {Keys::onReleased(event)}{onReleased}, + as \l {Keys::onPressed}{onPressed} and \l {Keys::onReleased}{onReleased}, as well as handlers for specific keys, such as - \l {Keys::onCancelPressed(event)}{onCancelPressed}. The example below + \l {Keys::onCancelPressed}{onCancelPressed}. The example below assigns \l {qmlfocus}{focus} to the item and handles the Left key via the general \e onPressed handler and the Select key via the onSelectPressed handler: diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp index 12bf0d8..edcd094 100644 --- a/src/declarative/graphicsitems/qmlgraphicslistview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp @@ -1663,7 +1663,7 @@ void QmlGraphicsListView::keyPressEvent(QKeyEvent *event) } /*! - \qmlmethod ListView::incrementCurrentIndex + \qmlmethod ListView::incrementCurrentIndex() Increments the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the end. @@ -1680,7 +1680,7 @@ void QmlGraphicsListView::incrementCurrentIndex() } /*! - \qmlmethod ListView::decrementCurrentIndex + \qmlmethod ListView::decrementCurrentIndex() Decrements the current index. The current index will wrap if keyNavigationWraps is true and it is currently at the beginning. diff --git a/src/declarative/graphicsitems/qmlgraphicsparticles.cpp b/src/declarative/graphicsitems/qmlgraphicsparticles.cpp index 399e1a5..a0b41e8 100644 --- a/src/declarative/graphicsitems/qmlgraphicsparticles.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsparticles.cpp @@ -1169,7 +1169,7 @@ void QmlGraphicsParticles::setMotion(QmlGraphicsParticleMotion *motion) } /*! - \qmlmethod Particles::burst + \qmlmethod Particles::burst(int count, int emissionRate) Initiates a burst of particles. diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp index 19282eb..9e91147 100644 --- a/src/declarative/util/qmllistmodel.cpp +++ b/src/declarative/util/qmllistmodel.cpp @@ -467,7 +467,7 @@ void QmlListModel::remove(int index) } /*! - \qmlmethod ListModel::insert(index,dict) + \qmlmethod ListModel::insert(int index, jsobject dict) Adds a new item to the list model at position \a index, with the values in \a dict. @@ -500,7 +500,7 @@ void QmlListModel::insert(int index, const QScriptValue& valuemap) } /*! - \qmlmethod ListModel::move(from,to,n) + \qmlmethod ListModel::move(int from, int to, int n) Moves \a n items \a from one position \a to another. @@ -551,7 +551,7 @@ void QmlListModel::move(int from, int to, int n) } /*! - \qmlmethod ListModel::append(dict) + \qmlmethod ListModel::append(jsobject dict) Adds a new item to the end of the list model, with the values in \a dict. @@ -578,7 +578,7 @@ void QmlListModel::append(const QScriptValue& valuemap) } /*! - \qmlmethod object ListModel::get(index) + \qmlmethod object ListModel::get(int index) Returns the item at \a index in the list model. @@ -620,7 +620,7 @@ QScriptValue QmlListModel::get(int index) const } /*! - \qmlmethod ListModel::set(index,dict) + \qmlmethod ListModel::set(int index, jsobject dict) Changes the item at \a index in the list model with the values in \a dict. Properties not appearing in \a valuemap @@ -663,7 +663,7 @@ void QmlListModel::set(int index, const QScriptValue& valuemap) } /*! - \qmlmethod ListModel::set(index,property,value) + \qmlmethod ListModel::set(int index, string property, variant value) Changes the \a property of the item at \a index in the list model to \a value. -- cgit v0.12 From 544c936c8db0560174f27241fbbe41c172e4b0ce Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 11 Nov 2009 15:24:55 +1000 Subject: Don't display "QML" for attached signals/methods. --- tools/qdoc3/cppcodemarker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index a8f6a02..f3c8fa5 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -1127,7 +1127,7 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, "signal", "signals"); FastSection qmlattachedsignals(qmlClassNode, - "QML Attached Signals", + "Attached Signals", "signal", "signals"); FastSection qmlmethods(qmlClassNode, @@ -1135,7 +1135,7 @@ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, "method", "methods"); FastSection qmlattachedmethods(qmlClassNode, - "QML Attached Methods", + "Attached Methods", "method", "methods"); -- cgit v0.12