summaryrefslogtreecommitdiffstats
path: root/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
diff options
context:
space:
mode:
authorJason McDonald <jason.mcdonald@nokia.com>2009-09-04 06:38:54 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2009-09-04 06:38:54 (GMT)
commit161baea80667846f3d5e9c240bf6080d489209d3 (patch)
tree5dbc0bb2df5a986a3be915e6b085bf630666fdac /src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
parenteb8e64a43b59c4c299028049b57c4cdf6dee5efd (diff)
downloadQt-161baea80667846f3d5e9c240bf6080d489209d3.zip
Qt-161baea80667846f3d5e9c240bf6080d489209d3.tar.gz
Qt-161baea80667846f3d5e9c240bf6080d489209d3.tar.bz2
Add license headers to .l files.
Reviewed-by: Trust Me
Diffstat (limited to 'src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp')
0 files changed, 0 insertions, 0 deletions
eline) - storePath += itemSubPath(item.engineAsString(), item.formatAsString(), isBaseline); - else - storePath += itemSubPath(item.engineAsString(), item.formatAsString(), isBaseline) + runId + QLC('/'); + if (mapped.isEmpty()) + mapPlatformInfo(); QString itemName = item.scriptName; if (itemName.contains(QLC('.'))) @@ -313,15 +318,26 @@ QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, boo itemName.append(QLC('_')); itemName.append(QString::number(item.scriptChecksum, 16).rightJustified(4, QLC('0'))); + QStringList path; if (absolute) - storePath.prepend(BaselineServer::storagePath()); - return storePath + itemName + QLC('.'); + path += BaselineServer::storagePath(); + path += QLS(isBaseline ? "baselines" : "mismatches"); + path += item.engineAsString() + QLC('_') + item.formatAsString(); + path += mapped.value(PI_QtVersion); + path += mapped.value(PI_QMakeSpec); + path += mapped.value(PI_HostName); + if (!isBaseline) + path += runId; + path += itemName + QLC('.'); + + return path.join(QLS("/")); } QString BaselineHandler::updateAllBaselines(const QString &host, const QString &id, const QString &engine, const QString &format) { +#if 0 QString basePath(BaselineServer::storagePath()); QString srcDir(basePath + host + QLC('/') + itemSubPath(engine, format, false) + id); QString dstDir(basePath + host + QLC('/') + itemSubPath(engine, format)); @@ -352,12 +368,15 @@ QString BaselineHandler::updateAllBaselines(const QString &host, const QString & "Command output:
%2
").arg(proc.errorString(), proc.readAll().constData()); return res; +#else + return QString(); +#endif } QString BaselineHandler::updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline) { QString res; - QString basePath(BaselineServer::storagePath()); + QString basePath(BaselineServer::storagePath() + QLC('/')); QString srcBase(basePath + newBaseline.left(newBaseline.length() - 3)); QString dstDir(basePath + oldBaseline.left(oldBaseline.lastIndexOf(QLC('/')))); @@ -377,6 +396,7 @@ QString BaselineHandler::updateSingleBaseline(const QString &oldBaseline, const QString BaselineHandler::blacklistTest(const QString &scriptName, const QString &host, const QString &engine, const QString &format) { +#if 0 QString configFile(BaselineServer::storagePath() + host + QLC('/') + itemSubPath(engine, format) + QLS(".blacklist")); QFile file(configFile); @@ -387,11 +407,15 @@ QString BaselineHandler::blacklistTest(const QString &scriptName, const QString } else { return QLS("Unable to update blacklisted tests."); } +#else + return QString(); +#endif } QString BaselineHandler::whitelistTest(const QString &scriptName, const QString &host, const QString &engine, const QString &format) { +#if 0 QString configFile(BaselineServer::storagePath() + host + QLC('/') + itemSubPath(engine, format) + QLS(".blacklist")); QFile file(configFile); @@ -420,6 +444,9 @@ QString BaselineHandler::whitelistTest(const QString &scriptName, const QString } } return QLS("Unable to whitelist ") + scriptName + QLS(". Unable to open blacklist file."); +#else + return QString(); +#endif } void BaselineHandler::testPathMapping() @@ -433,6 +460,9 @@ void BaselineHandler::testPathMapping() << QLS("osl-mac-master-6.test.qt.nokia.com") << QLS("sv-xp-vs-010") << QLS("sv-xp-vs-011") + << QLS("sv-solaris-sparc-008") + << QLS("macbuilder-02.test.troll.no") + << QLS("bqvm1164") << QLS("chimera") << QLS("localhost"); @@ -445,11 +475,12 @@ void BaselineHandler::testPathMapping() plat.insert(PI_QtVersion, QLS("4.8.0")); plat.insert(PI_BuildKey, QLS("(nobuildkey)")); + plat.insert(PI_QMakeSpec, "linux-g++"); foreach(const QString& host, hosts) { - pathForRun = QString(); + mapped.clear(); plat.insert(PI_HostName, host); - qDebug() << "Baseline from" << host << "->" << pathForItem(item, true).remove(BaselineServer::storagePath()); - qDebug() << "Mismatch from" << host << "->" << pathForItem(item, false).remove(BaselineServer::storagePath()); + qDebug() << "Baseline from" << host << "->" << pathForItem(item, true); + qDebug() << "Mismatch from" << host << "->" << pathForItem(item, false); } } diff --git a/tests/arthur/baselineserver/src/baselineserver.h b/tests/arthur/baselineserver/src/baselineserver.h index e311527..be65a9d 100644 --- a/tests/arthur/baselineserver/src/baselineserver.h +++ b/tests/arthur/baselineserver/src/baselineserver.h @@ -115,18 +115,16 @@ private slots: private: void provideBaselineChecksums(const QByteArray &itemListBlock); void storeImage(const QByteArray &itemBlock, bool isBaseline); + void mapPlatformInfo(); QString pathForItem(const ImageItem &item, bool isBaseline = true, bool absolute = true); const char *logtime(); QString computeMismatchScore(const QImage& baseline, const QImage& rendered); - QString engineForItem(const ImageItem &item); - - static QString itemSubPath(const QString &engine, const QString &format, bool isBaseline = true); BaselineProtocol proto; PlatformInfo plat; + PlatformInfo mapped; bool connectionEstablished; QString runId; - QString pathForRun; HTMLPage report; }; diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp index ad7f8b7..29ce262 100644 --- a/tests/arthur/baselineserver/src/htmlpage.cpp +++ b/tests/arthur/baselineserver/src/htmlpage.cpp @@ -67,7 +67,7 @@ void HTMLPage::start(const QString &storagepath, const QString &runId, const Pla id = runId; plat = pinfo; address = hostAddress; - root = storagepath; + root = storagepath + QLC('/'); imageItems = itemList; QString dir = root + QLS("reports/"); QDir cwd; -- cgit v0.12 From 749632c12feb8a43594d52309ea630c2bc8c5161 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 11 Nov 2010 09:50:30 +0100 Subject: qdoc: Fixed virtualness and constness of the fileBase() function. Task-number: QTBUG-13939 --- tools/qdoc3/htmlgenerator.cpp | 9 ++++++--- tools/qdoc3/htmlgenerator.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 9e45f8c..76ee4e8 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -3413,7 +3413,7 @@ QString HtmlGenerator::protect(const QString &string, const QString &outputEncod #undef APPEND } -QString HtmlGenerator::fileBase(const Node *node) +QString HtmlGenerator::fileBase(const Node *node) const { QString result; @@ -3544,8 +3544,11 @@ QString HtmlGenerator::linkForNode(const Node *node, const Node *relative) return QString(); fn = fileName(node); -/* if (!node->url().isEmpty()) - return fn;*/ +#if 0 + if (!node->url().isEmpty()) + return fn; +#endif + #if 0 // ### reintroduce this test, without breaking .dcf files if (fn != outFileName()) diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index d885ada..b96d737 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -241,7 +241,7 @@ class HtmlGenerator : public PageGenerator void generateStatus(const Node *node, CodeMarker *marker); QString registerRef(const QString& ref); - QString fileBase(const Node *node); + virtual QString fileBase(const Node *node) const; #if 0 QString fileBase(const Node *node, const SectionIterator& section); #endif -- cgit v0.12 From fb0765f5285b8518b3336a6aa36de1adc37bc1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Thu, 11 Nov 2010 07:13:35 +0100 Subject: Fix a behaviour change of sizeHint() introduced by 6d4d265e7e67dde58 Commit 6d4d265e7e67dde58e45d7d89f4974d0bd8b70e4 added a behaviour change in the cases if there was an item with height-for-width and sizeHint() was called with no constraint. The commit tried to return the height needed for the preferred width, but it still did not satisfy the constraints, since the width used as the constraint could be less than the preferred width. This also meant that the sizeHint(Qt::MinimumSize) could actually be larger than the smallest possible size. The behaviour should be that it should return the smallest width possible regardless of height. For instance, for a label it could return the size of the longest word (to avoid hyphenation issues). The same logic applies for the height: It should return the smallest height possible regardless of width. For instance, for a label it could then return the height of the font. I also had to fix some stuff in the heightForWidthWithSpanning() autotest since it wrongly expected the maximum size to be QWIDGETSIZE_MAX in several of the cases. However, that is the current behaviour (and it is a bug), but it is unrelated to the problem with spans so I simply fix the test and mark them with QEXPECT_FAIL. Reviewed-by: John Tapsell --- src/gui/graphicsview/qgridlayoutengine.cpp | 95 ++++++++++------------ .../tst_qgraphicsgridlayout.cpp | 19 +++-- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index e486b4d..9785b15 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -1107,7 +1107,50 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi { QGridLayoutBox sizehint_totalBoxes[NOrientations]; - if(rowCount() < 1 || columnCount() < 1 || !hasDynamicConstraint()) { + bool sizeHintCalculated = false; + + if (hasDynamicConstraint() && rowCount() > 0 && columnCount() > 0) { + if (constraintOrientation() == Qt::Vertical) { + //We have items whose height depends on their width + if (constraint.width() >= 0) { + if(q_cachedDataForStyleInfo != styleInfo) + ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); + else + sizehint_totalBoxes[Hor] = q_totalBoxes[Hor]; + QVector sizehint_xx; + QVector sizehint_widths; + + sizehint_xx.resize(columnCount()); + sizehint_widths.resize(columnCount()); + qreal width = constraint.width(); + //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as + //constraints to find the row heights + q_columnData.calculateGeometries(0, columnCount(), width, sizehint_xx.data(), sizehint_widths.data(), + 0, sizehint_totalBoxes[Hor]); + ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, sizehint_xx.data(), sizehint_widths.data(), Qt::Vertical); + sizeHintCalculated = true; + } + } else { + if (constraint.height() >= 0) { + //We have items whose width depends on their height + ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical); + QVector sizehint_yy; + QVector sizehint_heights; + + sizehint_yy.resize(rowCount()); + sizehint_heights.resize(rowCount()); + qreal height = constraint.height(); + //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as + //constraints to find the column widths + q_rowData.calculateGeometries(0, rowCount(), height, sizehint_yy.data(), sizehint_heights.data(), + 0, sizehint_totalBoxes[Ver]); + ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, sizehint_yy.data(), sizehint_heights.data(), Qt::Vertical); + sizeHintCalculated = true; + } + } + } + + if (!sizeHintCalculated) { //No items with height for width, so it doesn't matter which order we do these in if(q_cachedDataForStyleInfo != styleInfo) { ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); @@ -1116,55 +1159,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi sizehint_totalBoxes[Hor] = q_totalBoxes[Hor]; sizehint_totalBoxes[Ver] = q_totalBoxes[Ver]; } - } else if(constraintOrientation() == Qt::Vertical) { - //We have items whose width depends on their height - if(q_cachedDataForStyleInfo != styleInfo) - ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); - else - sizehint_totalBoxes[Hor] = q_totalBoxes[Hor]; - QVector sizehint_xx; - QVector sizehint_widths; - - sizehint_xx.resize(columnCount()); - sizehint_widths.resize(columnCount()); - qreal width = constraint.width(); - if(width < 0) { - /* It's not obvious what the behaviour should be. */ -/* if(which == Qt::MaximumSize) - width = sizehint_totalBoxes[Hor].q_maximumSize; - else if(which == Qt::MinimumSize) - width = sizehint_totalBoxes[Hor].q_minimumSize; - else*/ - width = sizehint_totalBoxes[Hor].q_preferredSize; - } - //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as - //constraints to find the row heights - q_columnData.calculateGeometries(0, columnCount(), width, sizehint_xx.data(), sizehint_widths.data(), - 0, sizehint_totalBoxes[Hor]); - ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, sizehint_xx.data(), sizehint_widths.data(), Qt::Vertical); - } else { - //We have items whose height depends on their width - ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical); - QVector sizehint_yy; - QVector sizehint_heights; - - sizehint_yy.resize(rowCount()); - sizehint_heights.resize(rowCount()); - qreal height = constraint.height(); - if(height < 0) { -/* if(which == Qt::MaximumSize) - height = sizehint_totalBoxes[Ver].q_maximumSize; - else if(which == Qt::MinimumSize) - height = sizehint_totalBoxes[Ver].q_minimumSize; - else*/ - height = sizehint_totalBoxes[Ver].q_preferredSize; - } - //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as - //constraints to find the column widths - q_rowData.calculateGeometries(0, rowCount(), height, sizehint_yy.data(), sizehint_heights.data(), - 0, sizehint_totalBoxes[Ver]); - ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, sizehint_yy.data(), sizehint_heights.data(), Qt::Vertical); - } + } switch (which) { case Qt::MinimumSize: diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 174e4aa..ff49b27 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -2556,8 +2556,9 @@ void tst_QGraphicsGridLayout::heightForWidth() w11->setSizePolicy(sp); layout->addItem(w11, 1, 1); - QSizeF prefSize = layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)); - QCOMPARE(prefSize, QSizeF(10+200, 10+100)); + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(2, 2)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)), QSizeF(210, 110)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(30100, 30100)); QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 20001)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 20010)); @@ -2610,21 +2611,25 @@ void tst_QGraphicsGridLayout::heightForWidthWithSpanning() w->setSizePolicy(sp); layout->addItem(w, 0,0,2,2); - QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(1, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(1, 1)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)), QSizeF(200, 100)); - QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); + QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(30000, 30000)); QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100)); - QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX)); + QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 100)); QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 10000)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 10000)); - QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, QWIDGETSIZE_MAX)); + QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, 10000)); QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100)); - QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX)); + QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 10000)); } QTEST_MAIN(tst_QGraphicsGridLayout) -- cgit v0.12 From 772fbf9f5fb7578c5006f4f8a98856b8546f1f71 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 10 Nov 2010 19:32:29 +0100 Subject: Fix compilation by s/intptr_t/quintptr/ intptr_t is defined in some C header that we don't include. I don't know which one it is, but without it, it fails to compile with: declarative/qml/qdeclarativecontext.cpp:477: error: 'intptr_t' was not declared in this scope Reviewed-By: Trust Me --- src/declarative/qml/qdeclarativecompiledbindings.cpp | 2 +- src/declarative/qml/qdeclarativecontext.cpp | 4 ++-- src/declarative/qml/qdeclarativeobjectscriptclass.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp index 5f0fd56..fbe5829 100644 --- a/src/declarative/qml/qdeclarativecompiledbindings.cpp +++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp @@ -601,7 +601,7 @@ struct QDeclarativeBindingCompilerPrivate QDeclarativeImports imports; QDeclarativeEnginePrivate *engine; - QString contextName() const { return QLatin1String("$$$SCOPE_") + QString::number((intptr_t)context, 16); } + QString contextName() const { return QLatin1String("$$$SCOPE_") + QString::number((quintptr)context, 16); } bool compile(QDeclarativeJS::AST::Node *); diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp index 1e58a71..3ee0e6f 100644 --- a/src/declarative/qml/qdeclarativecontext.cpp +++ b/src/declarative/qml/qdeclarativecontext.cpp @@ -474,7 +474,7 @@ int QDeclarativeContextPrivate::context_count(QDeclarativeListProperty { QDeclarativeContext *context = static_cast(prop->object); QDeclarativeContextPrivate *d = QDeclarativeContextPrivate::get(context); - int contextProperty = (int)(intptr_t)prop->data; + int contextProperty = (int)(quintptr)prop->data; if (d->propertyValues.at(contextProperty).userType() != qMetaTypeId >()) { return 0; @@ -487,7 +487,7 @@ QObject *QDeclarativeContextPrivate::context_at(QDeclarativeListProperty(prop->object); QDeclarativeContextPrivate *d = QDeclarativeContextPrivate::get(context); - int contextProperty = (int)(intptr_t)prop->data; + int contextProperty = (int)(quintptr)prop->data; if (d->propertyValues.at(contextProperty).userType() != qMetaTypeId >()) { return 0; diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index ea92111..eff59df 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -421,7 +421,7 @@ QScriptValue QDeclarativeObjectScriptClass::tostring(QScriptContext *context, QS ret += QString::fromUtf8(obj->metaObject()->className()); ret += QLatin1String("(0x"); - ret += QString::number((intptr_t)obj,16); + ret += QString::number((quintptr)obj,16); if (!objectName.isEmpty()) { ret += QLatin1String(", \""); -- cgit v0.12 From 661c9f93a90a8855c4dd8b6a215312387387ee9c Mon Sep 17 00:00:00 2001 From: Philip Van Hoof Date: Mon, 1 Nov 2010 16:59:44 +0100 Subject: Push and pop the thread-default context for the current thread Merge-request: 869 Reviewed-by: Thiago Macieira (cherry picked from commit aa88b7044dd86850e6986aa80104bb38bb7b12eb) --- src/corelib/kernel/qeventdispatcher_glib.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index 8390275..6fa2707 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -311,6 +311,10 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context) } } +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_push_thread_default (mainContext); +#endif + // setup post event source postEventSource = reinterpret_cast(g_source_new(&postEventSourceFuncs, sizeof(GPostEventSource))); @@ -389,6 +393,9 @@ QEventDispatcherGlib::~QEventDispatcherGlib() d->postEventSource = 0; Q_ASSERT(d->mainContext != 0); +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_pop_thread_default (d->mainContext); +#endif g_main_context_unref(d->mainContext); d->mainContext = 0; } -- cgit v0.12 From 9022b0e50cac244790463905511ae5a868be3526 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 10 Nov 2010 11:28:36 +0100 Subject: Added an example for QTest::touchEvent to the documentation. Reviewed-by: trustme --- doc/src/snippets/code/src_qtestlib_qtestcase.cpp | 16 ++++++++++++++++ src/testlib/qtestcase.cpp | 3 +++ 2 files changed, 19 insertions(+) diff --git a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp index 6ae8939..adb0c34 100644 --- a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp +++ b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp @@ -230,5 +230,21 @@ widget.show(); QTest::qWaitForWindowShown(&widget); //! [24] +//! [25] +QWidget widget; + +QTest::touchEvent(&widget) + .press(0, QPoint(10, 10)); +QTest::touchEvent(&widget) + .stationary(0) + .press(1, QPoint(40, 10)); +QTest::touchEvent(&widget) + .move(0, QPoint(12, 12)) + .move(1, QPoint(45, 5)); +QTest::touchEvent(&widget) + .release(0) + .release(1); +//! [25] + } diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 17f1a6b..e3a8726 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -755,6 +755,9 @@ QT_BEGIN_NAMESPACE QTest::touchEvent to create a QTouchEventSequence instance. Add touch events to the sequence by calling press(), move(), release() and stationary(), and let the instance run out of scope to commit the sequence to the event system. + + Example: + \snippet doc/src/snippets/code/src_qtestlib_qtestcase.cpp 25 */ /*! -- cgit v0.12 From db1170458ca4a005f63e6aee9fe9cb346e8f54b6 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 11 Nov 2010 10:42:31 +0100 Subject: SSL internals: upon error, read all errors from OpenSSL ... and not only the last one. One call to OpenSSL can produce several errors, which we should always read all. Otherwise, malicious clients could intentionally poison the error queue. Inspired-by: Merge request 2290 Reviewed-by: Olivier Goffart Reviewed-by: Markus Goetz Task-number: QTBUG-14513 --- src/network/ssl/qsslsocket_openssl.cpp | 43 ++++++++++++++++++++-------------- src/network/ssl/qsslsocket_openssl_p.h | 1 + 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 2910538..1347b99 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -80,9 +80,6 @@ QT_BEGIN_NAMESPACE bool QSslSocketPrivate::s_libraryLoaded = false; bool QSslSocketPrivate::s_loadedCiphersAndCerts = false; -// Useful defines -#define SSL_ERRORSTR() QString::fromLocal8Bit(q_ERR_error_string(q_ERR_get_error(), NULL)) - /* \internal From OpenSSL's thread(3) manual page: @@ -272,7 +269,7 @@ init_context: } // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL context (%1)").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL context (%1)").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -297,7 +294,7 @@ init_context: if (!q_SSL_CTX_set_cipher_list(ctx, cipherString.data())) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Invalid or empty cipher list (%1)").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Invalid or empty cipher list (%1)").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -325,14 +322,14 @@ init_context: if (!configuration.localCertificate.isNull()) { // Require a private key as well. if (configuration.privateKey.isNull()) { - q->setErrorString(QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } // Load certificate if (!q_SSL_CTX_use_certificate(ctx, (X509 *)configuration.localCertificate.handle())) { - q->setErrorString(QSslSocket::tr("Error loading local certificate, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error loading local certificate, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } @@ -347,14 +344,14 @@ init_context: else q_EVP_PKEY_set1_DSA(pkey, (DSA *)configuration.privateKey.handle()); if (!q_SSL_CTX_use_PrivateKey(ctx, pkey)) { - q->setErrorString(QSslSocket::tr("Error loading private key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error loading private key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } // Check if the certificate matches the private key. if (!q_SSL_CTX_check_private_key(ctx)) { - q->setErrorString(QSslSocket::tr("Private key does not certify public key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Private key does not certify public key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } @@ -374,7 +371,7 @@ init_context: // Create and initialize SSL session if (!(ssl = q_SSL_new(ctx))) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL session, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL session, %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -389,7 +386,7 @@ init_context: writeBio = q_BIO_new(q_BIO_s_mem()); if (!readBio || !writeBio) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL session: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL session: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -868,7 +865,7 @@ void QSslSocketBackendPrivate::transmit() int writtenBytes = q_SSL_write(ssl, writeBuffer.readPointer(), nextDataBlockSize); if (writtenBytes <= 0) { // ### Better error handling. - q->setErrorString(QSslSocket::tr("Unable to write data: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Unable to write data: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -931,7 +928,7 @@ void QSslSocketBackendPrivate::transmit() plainSocket->read(data.data(), writtenToBio); } else { // ### Better error handling. - q->setErrorString(QSslSocket::tr("Unable to decrypt data: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Unable to decrypt data: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -1009,7 +1006,7 @@ void QSslSocketBackendPrivate::transmit() case SSL_ERROR_SSL: // error in the SSL library // we do not know exactly what the error is, nor whether we can recover from it, // so just return to prevent an endless loop in the outer "while" statement - q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -1019,7 +1016,7 @@ void QSslSocketBackendPrivate::transmit() // SSL_ERROR_WANT_X509_LOOKUP: can only happen with a // SSL_CTX_set_client_cert_cb(), which we do not call. // So this default case should never be triggered. - q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); break; @@ -1114,8 +1111,7 @@ bool QSslSocketBackendPrivate::startHandshake() // The handshake is not yet complete. break; default: - // ### Handle errors better - q->setErrorString(QSslSocket::tr("Error during SSL handshake: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error during SSL handshake: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::SslHandshakeFailedError); #ifdef QSSLSOCKET_DEBUG qDebug() << "QSslSocketBackendPrivate::startHandshake: error!" << q->errorString(); @@ -1291,6 +1287,19 @@ QList QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates return certificates; } +QString QSslSocketBackendPrivate::getErrorsFromOpenSsl() +{ + QString errorString; + unsigned long errNum; + while((errNum = q_ERR_get_error())) { + if (! errorString.isEmpty()) + errorString.append(QLatin1String(", ")); + const char *error = q_ERR_error_string(errNum, NULL); + errorString.append(QString::fromAscii(error)); // error is ascii according to man ERR_error_string + } + return errorString; +} + bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QString &hostname) { int wildcard = cn.indexOf(QLatin1Char('*')); diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h index dec98ae..bd5902d 100644 --- a/src/network/ssl/qsslsocket_openssl_p.h +++ b/src/network/ssl/qsslsocket_openssl_p.h @@ -117,6 +117,7 @@ public: static QSslCipher QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher); static QList STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509); Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname); + static QString getErrorsFromOpenSsl(); }; #if defined(Q_OS_SYMBIAN) -- cgit v0.12 From fac68dca46131d63f11c37210834073848f5a93d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 11 Nov 2010 10:39:09 +0100 Subject: Don't set -mfpu=neon globally if the compiler supports neon. By default only drawhelpers and image loaders will now use neon. If -mfpu=neon has been explicitly enabled in the mkspec, QT_ALWAYS_HAVE_NEON will be defined, allowing the use of neon intrinsics elsewhere. Task-number: QTBUG-15163 Reviewed-by: Benjamin Poulain --- configure | 5 ++--- src/corelib/corelib.pro | 7 ------- src/corelib/tools/qsimd.cpp | 2 +- src/corelib/tools/qsimd_p.h | 3 ++- src/corelib/tools/qstring.cpp | 2 +- src/gui/gui.pro | 3 +-- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/configure b/configure index a238300..5aab180 100755 --- a/configure +++ b/configure @@ -3526,7 +3526,7 @@ Usage: $relconf [-h] [-prefix ] [-prefix-install] [-bindir ] [-libdir [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv] [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui] [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2] - [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] + [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon] [-qtnamespace ] [-qtlibinfix ] [-separate-debug-info] [-armfpa] [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns] [-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend] @@ -3730,6 +3730,7 @@ cat << EOF -no-sse4.1.......... Do not compile with use of SSE4.1 instructions. -no-sse4.2.......... Do not compile with use of SSE4.2 instructions. -no-avx ............ Do not compile with use of AVX instructions. + -no-neon ........... Do not compile with use of NEON instructions. -qtnamespace Wraps all Qt library code in 'namespace {...}'. -qtlibinfix Renames all libQt*.so to libQt*.so. @@ -4161,8 +4162,6 @@ Qt for Embedded Linux only: -iwmmxt ............ Compile using the iWMMXt instruction set (available on some XScale CPUs). - - -no-neon ........... Do not compile with use of NEON instructions. EOF fi diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index b7d6034..a001940 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -37,10 +37,3 @@ symbian: { MMP_RULES -= PAGED MMP_RULES *= UNPAGED } - -neon { - DEFINES += QT_HAVE_NEON - QMAKE_CXXFLAGS *= -mfpu=neon -} - - diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index b2fe2da..63ebafb 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -135,7 +135,7 @@ static inline uint detectProcessorFeatures() #if defined(QT_HAVE_IWMMXT) // runtime detection only available when running as a previlegied process features = IWMMXT; -#elif defined(QT_HAVE_NEON) +#elif defined(QT_ALWAYS_HAVE_NEON) features = NEON; #endif diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 664543b..87fa770 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -105,7 +105,8 @@ QT_BEGIN_HEADER #endif // defined(QT_HAVE_SSE2) && (defined(__SSE2__) || defined(Q_CC_MSVC)) // NEON intrinsics -#if defined(QT_HAVE_NEON) +#if defined __ARM_NEON__ +#define QT_ALWAYS_HAVE_NEON #include #endif diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index bfbdb73..d4a1248 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -3572,7 +3572,7 @@ static QByteArray toLatin1_helper(const QChar *data, int length) } length = length % 16; } -#elif QT_HAVE_NEON +#elif QT_ALWAYS_HAVE_NEON // Refer to the documentation of the SSE2 implementation // this use eactly the same method as for SSE except: // 1) neon has unsigned comparison diff --git a/src/gui/gui.pro b/src/gui/gui.pro index 90b5de5..4d51fa8 100644 --- a/src/gui/gui.pro +++ b/src/gui/gui.pro @@ -64,13 +64,12 @@ symbian { neon:*-g++* { DEFINES += QT_HAVE_NEON - QMAKE_CXXFLAGS *= -mfpu=neon HEADERS += $$NEON_HEADERS SOURCES += $$NEON_SOURCES DRAWHELPER_NEON_ASM_FILES = $$NEON_ASM - neon_compiler.commands = $$QMAKE_CXX -c + neon_compiler.commands = $$QMAKE_CXX -c -mfpu=neon neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} neon_compiler.dependency_type = TYPE_C neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} -- cgit v0.12 From 76d9e79d1faf174a7052b197b0fe92425bb85f3a Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 11 Nov 2010 15:07:30 +0100 Subject: qdoc: Added QML Elements to the Assistant index Task-number: QTBUG-15081 --- tools/qdoc3/helpprojectwriter.cpp | 16 +++++++++------- tools/qdoc3/test/qt-build-docs.qdocconf | 8 ++++++-- tools/qdoc3/test/qt.qdocconf | 6 +++++- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp index 98246c4..63e8df7 100644 --- a/tools/qdoc3/helpprojectwriter.cpp +++ b/tools/qdoc3/helpprojectwriter.cpp @@ -49,6 +49,7 @@ #include "config.h" #include "node.h" #include "tree.h" +#include QT_BEGIN_NAMESPACE @@ -250,8 +251,9 @@ bool HelpProjectWriter::generateSection(HelpProject &project, foreach (const QString &name, project.subprojects.keys()) { SubProject subproject = project.subprojects[name]; // No selectors: accept all nodes. - if (subproject.selectors.isEmpty()) + if (subproject.selectors.isEmpty()) { project.subprojects[name].nodes[objName] = node; + } else if (subproject.selectors.contains(node->type())) { // Accept only the node types in the selectors hash. if (node->type() != Node::Fake) @@ -262,9 +264,10 @@ bool HelpProjectWriter::generateSection(HelpProject &project, const FakeNode *fakeNode = static_cast(node); if (subproject.selectors[node->type()].contains(fakeNode->subType()) && fakeNode->subType() != Node::ExternalPage && - !fakeNode->fullTitle().isEmpty()) + !fakeNode->fullTitle().isEmpty()) { project.subprojects[name].nodes[objName] = node; + } } } } @@ -527,13 +530,11 @@ void HelpProjectWriter::writeNode(HelpProject &project, QXmlStreamWriter &writer writer.writeStartElement("section"); writer.writeAttribute("ref", href); writer.writeAttribute("title", fakeNode->fullTitle()); - // qDebug() << "Title:" << fakeNode->fullTitle(); - if (fakeNode->subType() == Node::HeaderFile) { - + if ((fakeNode->subType() == Node::HeaderFile) || (fakeNode->subType() == Node::QmlClass)) { // Write subsections for all members, obsolete members and Qt 3 // members. - if (!project.memberStatus[node].isEmpty()) { + if (!project.memberStatus[node].isEmpty() || (fakeNode->subType() == Node::QmlClass)) { QString membersPath = href.left(href.size()-5) + "-members.html"; writer.writeStartElement("section"); writer.writeAttribute("ref", membersPath); @@ -690,8 +691,9 @@ void HelpProjectWriter::generateProject(HelpProject &project) if (subproject.sortPages) { QStringList titles = subproject.nodes.keys(); titles.sort(); - foreach (const QString &title, titles) + foreach (const QString &title, titles) { writeNode(project, writer, subproject.nodes[title]); + } } else { // Find a contents node and navigate from there, using the NextLink values. foreach (const Node *node, subproject.nodes) { diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf index dcabeb4..358f17f 100644 --- a/tools/qdoc3/test/qt-build-docs.qdocconf +++ b/tools/qdoc3/test/qt-build-docs.qdocconf @@ -62,11 +62,15 @@ qhp.Qt.extraFiles = index.html \ qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc qhp.Qt.customFilters.Qt.name = Qt 4.7.1 qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 -qhp.Qt.subprojects = classes overviews examples +qhp.Qt.subprojects = classes qmlelements overviews examples qhp.Qt.subprojects.classes.title = Classes -qhp.Qt.subprojects.classes.indexTitle = Qt's Classes +qhp.Qt.subprojects.classes.indexTitle = All Classes qhp.Qt.subprojects.classes.selectors = class fake:headerfile qhp.Qt.subprojects.classes.sortPages = true +qhp.Qt.subprojects.qmlelements.title = QML Elements +qhp.Qt.subprojects.qmlelements.indexTitle = QML Elements +qhp.Qt.subprojects.qmlelements.selectors = fake:qmlclass +qhp.Qt.subprojects.qmlelements.sortPages = true qhp.Qt.subprojects.overviews.title = Overviews qhp.Qt.subprojects.overviews.indexTitle = All Overviews and HOWTOs qhp.Qt.subprojects.overviews.selectors = fake:page,group,module diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index ea97205..947beb2 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -62,11 +62,15 @@ qhp.Qt.extraFiles = index.html \ qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc qhp.Qt.customFilters.Qt.name = Qt 4.7.1 qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 -qhp.Qt.subprojects = classes overviews examples +qhp.Qt.subprojects = classes qmlelements overviews examples qhp.Qt.subprojects.classes.title = Classes qhp.Qt.subprojects.classes.indexTitle = Qt's Classes qhp.Qt.subprojects.classes.selectors = class fake:headerfile qhp.Qt.subprojects.classes.sortPages = true +qhp.Qt.subprojects.qmlelements.title = QML Elements +qhp.Qt.subprojects.qmlelements.indexTitle = QML Elements +qhp.Qt.subprojects.qmlelements.selectors = fake:qmlclass +qhp.Qt.subprojects.qmlelements.sortPages = true qhp.Qt.subprojects.overviews.title = Overviews qhp.Qt.subprojects.overviews.indexTitle = All Overviews and HOWTOs qhp.Qt.subprojects.overviews.selectors = fake:page,group,module -- cgit v0.12 From 9a5b72eb64d698aff507d5c2b2ea6d19bda0b65e Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 9 Nov 2010 14:39:27 +0000 Subject: Send WinIdChange event when winId is set to zero This allows an observer to get a notification just before the window handle owned by a native widget is destroyed. Note that, at the point when the event is sent, the widget's internalWinId() will return the new value, but the old native window handle will not be destroyed until after the event handler is run. Task-number: QTMOBILITY-645 Reviewed-by: sroedal --- dist/changes-4.7.2 | 8 ++++++-- src/gui/kernel/qwidget.cpp | 9 ++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/dist/changes-4.7.2 b/dist/changes-4.7.2 index 49bdd8e..a18a237 100644 --- a/dist/changes-4.7.2 +++ b/dist/changes-4.7.2 @@ -45,8 +45,12 @@ QtCore QtGui ----- - - foo - * bar + - QWidget + * [QTMOBILITY-645] Send WinIdChange event when winId is set to zero. + The window handle of a native widget may be set to zero in two + situations: (i) temporarily, during reparenting and (ii) during + widget destruction. Previously, no WinIdChange event was sent in + either of these cases; now, it is sent in both cases. QtDBus ------ diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index e22ec55..cbf4886 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1673,13 +1673,8 @@ void QWidgetPrivate::setWinId(WId id) // set widget identifier } if(oldWinId != id) { - // Do not emit an event when the old winId is destroyed. This only - // happens (a) during widget destruction, and (b) immediately prior - // to creation of a new winId, for example as a result of re-parenting. - if(id != 0) { - QEvent e(QEvent::WinIdChange); - QCoreApplication::sendEvent(q, &e); - } + QEvent e(QEvent::WinIdChange); + QCoreApplication::sendEvent(q, &e); } } -- cgit v0.12 From d16fcbc6d6b00770a5106027c24ed7cf7e92c1d5 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 11 Nov 2010 17:27:01 +0000 Subject: SSL: Fix for systemCaCertificates being called first on symbian On symbian, thread names must be unique (actually kernel object names) When a thread exits, there may still be open handles, for example a debugger or RUndertaker so the thread name cannot be reused immediately. S60 has an RUndertaker instance in a background thread, which is used to display the "application closed" messages when a crash happens. Until that thread has run and checked the thread exit to see if it was a crash or not, the thread remains open. When systemCaCertificates is called as the first API call, it calls itself via ensureinitialised() to set the default CA certs. This double call should be addressed by QTBUG-15218. In any case, QSslSocket::systemCaCertificates() is intended to refresh from the system - if application code calls it too quickly in succession it could also trigger this bug. Task-number: QTBUG-15126 Reviewed-by: Markus Goetz --- src/network/ssl/qsslsocket_openssl.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 426b07a..f4bd423 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -659,8 +659,16 @@ TInt CSymbianCertificateRetriever::ThreadEntryPoint(TAny* aParams) void CSymbianCertificateRetriever::ConstructL() { - User::LeaveIfError(iThread.Create(_L("CertWorkerThread"), - CSymbianCertificateRetriever::ThreadEntryPoint, 16384, NULL, this)); + TInt err; + int i=0; + QString name(QLatin1String("CertWorkerThread-%1")); + //recently closed thread names remain in use for a while until all handles have been closed + //including users of RUndertaker + do { + err = iThread.Create(qt_QString2TPtrC(name.arg(i++)), + CSymbianCertificateRetriever::ThreadEntryPoint, 16384, NULL, this); + } while (err == KErrAlreadyExists); + User::LeaveIfError(err); } void CSymbianCertificateRetriever::DoCancel() -- cgit v0.12 From 978f67a14a1a28881214a6ae31c3852c6cfdc7c9 Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Thu, 11 Nov 2010 18:30:40 +0100 Subject: Add FreeBSD's certificate bundle to the certificates list. The FreeBSD base system does not ship a certificate bundle, but the ca_root_nss port provides one extracted from Mozilla's root CA list. As discussed in QTBUG-14013, it should be preferrable to have bundle files than separate certificate files, so the path for the certificate has been added directly. Signed-off-by: Raphael Kubo da Costa Merge-request: 896 Reviewed-by: Thiago Macieira --- src/network/ssl/qsslsocket_openssl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 1347b99..0aeaba9 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -797,6 +797,7 @@ QList QSslSocketPrivate::systemCaCertificates() systemCerts.append(QSslCertificate::fromPath(it.next())); } systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/pki/tls/certs/ca-bundle.crt"), QSsl::Pem)); // Fedora, Mandriva + systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/share/certs/ca-root-nss.crt"), QSsl::Pem)); // FreeBSD's ca_root_nss #elif defined(Q_OS_SYMBIAN) QList certs; -- cgit v0.12 From acde750479653837612131a847b2fb1246a1ff10 Mon Sep 17 00:00:00 2001 From: Sam Magnuson Date: Mon, 8 Nov 2010 13:21:05 -0800 Subject: Implement brush transformations for directfb. Merge-request: 915 Reviewed-by: Donald Carr (cherry picked from commit b62079cf17044e09999eb1808788926ea921fb05) --- .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 42 ++++++++++++++-------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index c16a242..85ff925 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -68,6 +68,14 @@ public: Matrix_BlitsUnsupported = (Matrix_NegativeScale|Matrix_RectsUnsupported) }; + inline static uint getTransformationType(const QTransform &transform) { + int ret = transform.type(); + if (qMin(transform.m11(), transform.m22()) < 0) { + ret |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; + } + return ret; + } + enum CompositionModeStatus { PorterDuff_None = 0x0, PorterDuff_Supported = 0x1, @@ -99,7 +107,7 @@ public: inline bool isSimpleBrush(const QBrush &brush) const; - void drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &pos); + void drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &pos, const QTransform &pixmapTransform); void blit(const QRectF &dest, IDirectFBSurface *surface, const QRectF &src); inline bool supportsStretchBlit() const; @@ -707,7 +715,8 @@ void QDirectFBPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap pix(data); QRasterPaintEngine::drawTiledPixmap(r, pix, offset); } else { - CLIPPED_PAINT(d->drawTiledPixmap(r, pixmap, offset)); + QTransform transform(state()->matrix); + CLIPPED_PAINT(d->drawTiledPixmap(r, pixmap, offset, transform)); } } @@ -827,9 +836,14 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush) return; } case Qt::TexturePattern: { + const QPointF &brushOrigin = state()->brushOrigin; + const QTransform stateTransform = state()->matrix; + QTransform transform(stateTransform); + transform.translate(brushOrigin.x(), brushOrigin.y()); + transform = brush.transform() * transform; if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_Supported) - || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) - || (!d->supportsStretchBlit() && state()->matrix.isScaling())) { + || (QDirectFBPaintEnginePrivate::getTransformationType(transform) & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) + || (!d->supportsStretchBlit() && transform.isScaling())) { break; } @@ -837,7 +851,7 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush) if (texture.pixmapData()->classId() != QPixmapData::DirectFBClass) break; - CLIPPED_PAINT(d->drawTiledPixmap(rect, texture, rect.topLeft() - state()->brushOrigin)); + CLIPPED_PAINT(d->drawTiledPixmap(stateTransform.mapRect(rect), texture, rect.topLeft() - brushOrigin, transform)); return; } default: break; @@ -948,10 +962,7 @@ void QDirectFBPaintEnginePrivate::unlock(QDirectFBPaintDevice *device) void QDirectFBPaintEnginePrivate::setTransform(const QTransform &transform) { - transformationType = transform.type(); - if (qMin(transform.m11(), transform.m22()) < 0) { - transformationType |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; - } + transformationType = getTransformationType(transform); setPen(q->state()->pen); } @@ -1153,10 +1164,12 @@ static inline qreal fixCoord(qreal rect_pos, qreal pixmapSize, qreal offset) return pos; } -void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &off) +void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, + const QPointF &off, const QTransform &pixmapTransform) { - Q_ASSERT(!(transformationType & Matrix_BlitsUnsupported)); const QTransform &transform = q->state()->matrix; + Q_ASSERT(!(getTransformationType(transform) & Matrix_BlitsUnsupported) && + !(getTransformationType(pixmapTransform) & Matrix_BlitsUnsupported)); const QRect destinationRect = transform.mapRect(dest).toRect().normalized(); QRect newClip = destinationRect; if (!currentClip.isEmpty()) @@ -1173,7 +1186,7 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix }; surface->SetClip(surface, &clip); - QPointF offset = off; + QPointF offset = pixmapTransform.inverted().map(off); Q_ASSERT(transform.type() <= QTransform::TxScale); QPixmapData *data = pixmap.pixmapData(); Q_ASSERT(data->classId() == QPixmapData::DirectFBClass); @@ -1187,13 +1200,14 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix prepareForBlit(blitFlags); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); - if (transform.isScaling()) { + IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); + if (transform.isScaling() || pixmapTransform.isScaling()) { Q_ASSERT(supportsStretchBlit()); Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); offset.rx() *= transform.m11(); offset.ry() *= transform.m22(); - const QSizeF mappedSize(pixmapSize.width() * transform.m11(), pixmapSize.height() * transform.m22()); + const QSizeF mappedSize(pixmapSize.width() * pixmapTransform.m11(), pixmapSize.height() * pixmapTransform.m22()); qreal y = fixCoord(destinationRect.y(), mappedSize.height(), offset.y()); const qreal startX = fixCoord(destinationRect.x(), mappedSize.width(), offset.x()); while (y <= destinationRect.bottom()) { -- cgit v0.12 From 540d5bde104dd924b24850c0ed8e8ee285b6ec69 Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Thu, 11 Nov 2010 17:33:36 +0000 Subject: Minor adjustments to merge-request 915 Fix minor stylistic issue raised by Oswald Removed duplicate sourceSurface pointer introduced by sibling merge request --- src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index 85ff925..ceed7ae 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -68,7 +68,8 @@ public: Matrix_BlitsUnsupported = (Matrix_NegativeScale|Matrix_RectsUnsupported) }; - inline static uint getTransformationType(const QTransform &transform) { + inline static uint getTransformationType(const QTransform &transform) + { int ret = transform.type(); if (qMin(transform.m11(), transform.m22()) < 0) { ret |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; @@ -1200,7 +1201,6 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix prepareForBlit(blitFlags); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); - IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); if (transform.isScaling() || pixmapTransform.isScaling()) { Q_ASSERT(supportsStretchBlit()); Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); -- cgit v0.12 From 924be25253471ababfcf560a6ca098543838c0aa Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Fri, 12 Nov 2010 13:23:41 +1000 Subject: Bump Qt version to 4.7.2. Reviewed-by: Trust Me --- src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri | 4 ++-- src/corelib/global/qglobal.h | 4 ++-- src/plugins/qpluginbase.pri | 2 +- src/qbase.pri | 2 +- tests/auto/selftests/expected_cmptest.txt | 2 +- tests/auto/selftests/expected_crashes_3.txt | 2 +- tests/auto/selftests/expected_longstring.txt | 2 +- tests/auto/selftests/expected_maxwarnings.txt | 2 +- tests/auto/selftests/expected_skip.txt | 2 +- tools/assistant/tools/assistant/doc/assistant.qdocconf | 2 +- tools/qdoc3/doc/files/qt.qdocconf | 8 ++++---- tools/qdoc3/test/assistant.qdocconf | 4 ++-- tools/qdoc3/test/designer.qdocconf | 4 ++-- tools/qdoc3/test/linguist.qdocconf | 4 ++-- tools/qdoc3/test/qdeclarative.qdocconf | 8 ++++---- tools/qdoc3/test/qmake.qdocconf | 4 ++-- tools/qdoc3/test/qt-build-docs.qdocconf | 8 ++++---- tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf | 8 ++++---- tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf | 8 ++++---- tools/qdoc3/test/qt.qdocconf | 8 ++++---- tools/qdoc3/test/qt_ja_JP.qdocconf | 8 ++++---- tools/qdoc3/test/qt_zh_CN.qdocconf | 8 ++++---- 22 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri index f2282f8..b98617f 100644 --- a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri +++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri @@ -1,5 +1,5 @@ -QT_WEBKIT_VERSION = 4.7.1 +QT_WEBKIT_VERSION = 4.7.2 QT_WEBKIT_MAJOR_VERSION = 4 QT_WEBKIT_MINOR_VERSION = 7 -QT_WEBKIT_PATCH_VERSION = 1 +QT_WEBKIT_PATCH_VERSION = 2 QT_CONFIG += webkit diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 35607d5..b148a1d 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -44,11 +44,11 @@ #include -#define QT_VERSION_STR "4.7.1" +#define QT_VERSION_STR "4.7.2" /* QT_VERSION is (major << 16) + (minor << 8) + patch. */ -#define QT_VERSION 0x040701 +#define QT_VERSION 0x040702 /* can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0)) */ diff --git a/src/plugins/qpluginbase.pri b/src/plugins/qpluginbase.pri index 84009d8..7cbffe0 100644 --- a/src/plugins/qpluginbase.pri +++ b/src/plugins/qpluginbase.pri @@ -1,6 +1,6 @@ TEMPLATE = lib isEmpty(QT_MAJOR_VERSION) { - VERSION=4.7.1 + VERSION=4.7.2 } else { VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} } diff --git a/src/qbase.pri b/src/qbase.pri index 4217618..af18af8 100644 --- a/src/qbase.pri +++ b/src/qbase.pri @@ -4,7 +4,7 @@ INCLUDEPATH *= $$QMAKE_INCDIR_QT/$$TARGET #just for today to have some compat isEmpty(QT_ARCH):!isEmpty(ARCH):QT_ARCH=$$ARCH #another compat that will rot for change #215700 TEMPLATE = lib isEmpty(QT_MAJOR_VERSION) { - VERSION=4.7.1 + VERSION=4.7.2 } else { VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} } diff --git a/tests/auto/selftests/expected_cmptest.txt b/tests/auto/selftests/expected_cmptest.txt index 7f3aa9a..fccaca3 100644 --- a/tests/auto/selftests/expected_cmptest.txt +++ b/tests/auto/selftests/expected_cmptest.txt @@ -1,5 +1,5 @@ ********* Start testing of tst_Cmptest ********* -Config: Using QTest library 4.7.1, Qt 4.7.1 +Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : tst_Cmptest::initTestCase() PASS : tst_Cmptest::compare_boolfuncs() PASS : tst_Cmptest::compare_pointerfuncs() diff --git a/tests/auto/selftests/expected_crashes_3.txt b/tests/auto/selftests/expected_crashes_3.txt index 7ded525..2558f68 100644 --- a/tests/auto/selftests/expected_crashes_3.txt +++ b/tests/auto/selftests/expected_crashes_3.txt @@ -1,5 +1,5 @@ ********* Start testing of tst_Crashes ********* -Config: Using QTest library 4.7.1, Qt 4.7.1 +Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : tst_Crashes::initTestCase() QFATAL : tst_Crashes::crash() Received signal 11 FAIL! : tst_Crashes::crash() Received a fatal error. diff --git a/tests/auto/selftests/expected_longstring.txt b/tests/auto/selftests/expected_longstring.txt index 9ad6f56..c56244b 100644 --- a/tests/auto/selftests/expected_longstring.txt +++ b/tests/auto/selftests/expected_longstring.txt @@ -1,5 +1,5 @@ ********* Start testing of tst_LongString ********* -Config: Using QTest library 4.7.1, Qt 4.7.1 +Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : tst_LongString::initTestCase() FAIL! : tst_LongString::failWithLongString() Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. diff --git a/tests/auto/selftests/expected_maxwarnings.txt b/tests/auto/selftests/expected_maxwarnings.txt index 949da13..7846435 100644 --- a/tests/auto/selftests/expected_maxwarnings.txt +++ b/tests/auto/selftests/expected_maxwarnings.txt @@ -1,5 +1,5 @@ ********* Start testing of MaxWarnings ********* -Config: Using QTest library 4.7.1, Qt 4.7.1 +Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : MaxWarnings::initTestCase() QWARN : MaxWarnings::warn() 0 QWARN : MaxWarnings::warn() 1 diff --git a/tests/auto/selftests/expected_skip.txt b/tests/auto/selftests/expected_skip.txt index 1f5bf7b..5c9e497 100644 --- a/tests/auto/selftests/expected_skip.txt +++ b/tests/auto/selftests/expected_skip.txt @@ -1,5 +1,5 @@ ********* Start testing of tst_Skip ********* -Config: Using QTest library 4.7.1, Qt 4.7.1 +Config: Using QTest library 4.7.2, Qt 4.7.2 PASS : tst_Skip::initTestCase() SKIP : tst_Skip::test() skipping all Loc: [/home/user/depot/qt-git/mainline/tests/auto/selftests/skip/tst_skip.cpp(68)] diff --git a/tools/assistant/tools/assistant/doc/assistant.qdocconf b/tools/assistant/tools/assistant/doc/assistant.qdocconf index 26cdafb..57abeae 100644 --- a/tools/assistant/tools/assistant/doc/assistant.qdocconf +++ b/tools/assistant/tools/assistant/doc/assistant.qdocconf @@ -12,5 +12,5 @@ HTML.footer = "


\n" \ "\n" \ "\n" \ "\n" \ - "\n" \ + "\n" \ "
Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies)Trademarks
Qt 4.7.1
Qt 4.7.2
" diff --git a/tools/qdoc3/doc/files/qt.qdocconf b/tools/qdoc3/doc/files/qt.qdocconf index 4546c7a..44cfbc1 100644 --- a/tools/qdoc3/doc/files/qt.qdocconf +++ b/tools/qdoc3/doc/files/qt.qdocconf @@ -22,7 +22,7 @@ edition.DesktopLight.groups = -graphicsview-api qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.indexTitle = Qt Reference Documentation qhp.Qt.indexRoot = @@ -36,9 +36,9 @@ qhp.Qt.extraFiles = classic.css \ images/dynamiclayouts-example.png \ images/stylesheet-coffee-plastique.png -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 qhp.Qt.subprojects = classes overviews examples qhp.Qt.subprojects.classes.title = Classes qhp.Qt.subprojects.classes.indexTitle = Qt's Classes diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf index 74b68df..0e9a2a8 100644 --- a/tools/qdoc3/test/assistant.qdocconf +++ b/tools/qdoc3/test/assistant.qdocconf @@ -13,7 +13,7 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = Assistant qhp.Assistant.file = assistant.qhp -qhp.Assistant.namespace = com.trolltech.assistant.471 +qhp.Assistant.namespace = com.trolltech.assistant.472 qhp.Assistant.virtualFolder = qdoc qhp.Assistant.indexTitle = Qt Assistant Manual qhp.Assistant.extraFiles = images/bg_l.png \ @@ -50,7 +50,7 @@ qhp.Assistant.extraFiles = images/bg_l.png \ style/style_ie8.css \ style/style.css -qhp.Assistant.filterAttributes = qt 4.7.1 tools assistant +qhp.Assistant.filterAttributes = qt 4.7.2 tools assistant qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual qhp.Assistant.customFilters.Assistant.filterAttributes = qt tools assistant qhp.Assistant.subprojects = manual examples diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf index ab66792..637399b 100644 --- a/tools/qdoc3/test/designer.qdocconf +++ b/tools/qdoc3/test/designer.qdocconf @@ -13,7 +13,7 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = Designer qhp.Designer.file = designer.qhp -qhp.Designer.namespace = com.trolltech.designer.471 +qhp.Designer.namespace = com.trolltech.designer.472 qhp.Designer.virtualFolder = qdoc qhp.Designer.indexTitle = Qt Designer Manual qhp.Designer.extraFiles = images/bg_l.png \ @@ -50,7 +50,7 @@ qhp.Designer.extraFiles = images/bg_l.png \ style/style_ie8.css \ style/style.css -qhp.Designer.filterAttributes = qt 4.7.1 tools designer +qhp.Designer.filterAttributes = qt 4.7.2 tools designer qhp.Designer.customFilters.Designer.name = Qt Designer Manual qhp.Designer.customFilters.Designer.filterAttributes = qt tools designer qhp.Designer.subprojects = manual examples diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf index 0d920e2..8ee298e 100644 --- a/tools/qdoc3/test/linguist.qdocconf +++ b/tools/qdoc3/test/linguist.qdocconf @@ -13,7 +13,7 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = Linguist qhp.Linguist.file = linguist.qhp -qhp.Linguist.namespace = com.trolltech.linguist.471 +qhp.Linguist.namespace = com.trolltech.linguist.472 qhp.Linguist.virtualFolder = qdoc qhp.Linguist.indexTitle = Qt Linguist Manual qhp.Linguist.extraFiles = images/bg_l.png \ @@ -50,7 +50,7 @@ qhp.Linguist.extraFiles = images/bg_l.png \ style/style_ie8.css \ style/style.css -qhp.Linguist.filterAttributes = qt 4.7.1 tools linguist +qhp.Linguist.filterAttributes = qt 4.7.2 tools linguist qhp.Linguist.customFilters.Linguist.name = Qt Linguist Manual qhp.Linguist.customFilters.Linguist.filterAttributes = qt tools linguist qhp.Linguist.subprojects = manual examples diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf index 9aaebcb..e68a935 100644 --- a/tools/qdoc3/test/qdeclarative.qdocconf +++ b/tools/qdoc3/test/qdeclarative.qdocconf @@ -21,7 +21,7 @@ edition.DesktopLight.groups = -graphicsview-api qhp.projects = Qml qhp.Qml.file = qml.qhp -qhp.Qml.namespace = com.trolltech.qml.471 +qhp.Qml.namespace = com.trolltech.qml.472 qhp.Qml.virtualFolder = qdoc qhp.Qml.indexTitle = Qml Reference @@ -61,9 +61,9 @@ qhp.Qml.extraFiles = images/bg_l.png \ style/style_ie8.css \ style/style.css -qhp.Qml.filterAttributes = qt 4.7.1 qtrefdoc -qhp.Qml.customFilters.Qt.name = Qt 4.7.1 -qhp.Qml.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qml.filterAttributes = qt 4.7.2 qtrefdoc +qhp.Qml.customFilters.Qt.name = Qt 4.7.2 +qhp.Qml.customFilters.Qt.filterAttributes = qt 4.7.2 qhp.Qml.subprojects = classes qhp.Qml.subprojects.classes.title = Elements qhp.Qml.subprojects.classes.indexTitle = Qml Elements diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf index be2e9d3..b5bc96c 100644 --- a/tools/qdoc3/test/qmake.qdocconf +++ b/tools/qdoc3/test/qmake.qdocconf @@ -13,7 +13,7 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = qmake qhp.qmake.file = qmake.qhp -qhp.qmake.namespace = com.trolltech.qmake.471 +qhp.qmake.namespace = com.trolltech.qmake.472 qhp.qmake.virtualFolder = qdoc qhp.qmake.indexTitle = QMake Manual qhp.qmake.extraFiles = images/bg_l.png \ @@ -50,7 +50,7 @@ qhp.qmake.extraFiles = images/bg_l.png \ style/style_ie8.css \ style/style.css -qhp.qmake.filterAttributes = qt 4.7.1 tools qmake +qhp.qmake.filterAttributes = qt 4.7.2 tools qmake qhp.qmake.customFilters.qmake.name = qmake Manual qhp.qmake.customFilters.qmake.filterAttributes = qt tools qmake qhp.qmake.subprojects = manual diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf index dcabeb4..5fae2f6 100644 --- a/tools/qdoc3/test/qt-build-docs.qdocconf +++ b/tools/qdoc3/test/qt-build-docs.qdocconf @@ -15,7 +15,7 @@ naturallanguage = en_US qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.indexTitle = Qt Reference Documentation qhp.Qt.indexRoot = @@ -59,9 +59,9 @@ qhp.Qt.extraFiles = index.html \ -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 qhp.Qt.subprojects = classes overviews examples qhp.Qt.subprojects.classes.title = Classes qhp.Qt.subprojects.classes.indexTitle = Qt's Classes diff --git a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf index 7e28fa2..24696d5 100644 --- a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf +++ b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf @@ -17,15 +17,15 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.title = Qt qhp.Qt.indexTitle = Qt qhp.Qt.selectors = fake:example -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc ja_JP -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc ja_JP +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 # Files not referenced in any qdoc file (last four are needed by qtdemo) # See also extraimages.HTML diff --git a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf index cfcc76d..7789bf7 100644 --- a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf @@ -17,15 +17,15 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.title = 教程 qhp.Qt.indexTitle = 教程 qhp.Qt.selectors = fake:example -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc zh_CN -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc zh_CN +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 # Files not referenced in any qdoc file (last four are needed by qtdemo) # See also extraimages.HTML diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index ea97205..8998751 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -17,7 +17,7 @@ naturallanguage = en_US qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.indexTitle = Qt Reference Documentation qhp.Qt.indexRoot = @@ -59,9 +59,9 @@ qhp.Qt.extraFiles = index.html \ style/style_ie8.css \ style/style.css -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 qhp.Qt.subprojects = classes overviews examples qhp.Qt.subprojects.classes.title = Classes qhp.Qt.subprojects.classes.indexTitle = Qt's Classes diff --git a/tools/qdoc3/test/qt_ja_JP.qdocconf b/tools/qdoc3/test/qt_ja_JP.qdocconf index 32bba06..a5c348c 100644 --- a/tools/qdoc3/test/qt_ja_JP.qdocconf +++ b/tools/qdoc3/test/qt_ja_JP.qdocconf @@ -19,15 +19,15 @@ indexes = $QTDIR/doc/html/qt.index qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.title = Qt qhp.Qt.indexTitle = Qt qhp.Qt.selectors = fake:example -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc ja_JP -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc ja_JP +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 # Files not referenced in any qdoc file (last four are needed by qtdemo) # See also extraimages.HTML diff --git a/tools/qdoc3/test/qt_zh_CN.qdocconf b/tools/qdoc3/test/qt_zh_CN.qdocconf index 40d3d5a..25f96b8 100644 --- a/tools/qdoc3/test/qt_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt_zh_CN.qdocconf @@ -19,15 +19,15 @@ indexes = $QTDIR/doc/html/qt.index qhp.projects = Qt qhp.Qt.file = qt.qhp -qhp.Qt.namespace = com.trolltech.qt.471 +qhp.Qt.namespace = com.trolltech.qt.472 qhp.Qt.virtualFolder = qdoc qhp.Qt.title = 教程 qhp.Qt.indexTitle = 教程 qhp.Qt.selectors = fake:example -qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc zh_CN -qhp.Qt.customFilters.Qt.name = Qt 4.7.1 -qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1 +qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc zh_CN +qhp.Qt.customFilters.Qt.name = Qt 4.7.2 +qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2 # Files not referenced in any qdoc file (last four are needed by qtdemo) # See also extraimages.HTML -- cgit v0.12 From 0b175f5f224e33f4e51873607fe78a4c203ab896 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 12 Nov 2010 13:39:58 +1000 Subject: Ensure loaded item's parent is set before component completion. Also documented Loader sizing behavior. Task-number: QTBUG-14873 Reviewed-by: Michael Brasser --- doc/src/snippets/declarative/loader/sizeitem.qml | 62 ++++++++++++++++++++++ doc/src/snippets/declarative/loader/sizeloader.qml | 62 ++++++++++++++++++++++ .../graphicsitems/qdeclarativeloader.cpp | 41 +++++++++++--- 3 files changed, 159 insertions(+), 6 deletions(-) create mode 100644 doc/src/snippets/declarative/loader/sizeitem.qml create mode 100644 doc/src/snippets/declarative/loader/sizeloader.qml diff --git a/doc/src/snippets/declarative/loader/sizeitem.qml b/doc/src/snippets/declarative/loader/sizeitem.qml new file mode 100644 index 0000000..6ace8d6 --- /dev/null +++ b/doc/src/snippets/declarative/loader/sizeitem.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation 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$ +** +****************************************************************************/ +//![0] +import QtQuick 1.0 + +Item { + width: 200; height: 200 + + Loader { + // position the Loader in the center of the parent + anchors.centerIn: parent + sourceComponent: rect + } + + Component { + id: rect + Rectangle { + width: 50 + height: 50 + color: "red" + } + } +} +//![0] diff --git a/doc/src/snippets/declarative/loader/sizeloader.qml b/doc/src/snippets/declarative/loader/sizeloader.qml new file mode 100644 index 0000000..eac7d57 --- /dev/null +++ b/doc/src/snippets/declarative/loader/sizeloader.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation 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$ +** +****************************************************************************/ +//![0] +import QtQuick 1.0 + +Item { + width: 200; height: 200 + + Loader { + // Explicitly set the size of the Loader to the parent item's size + anchors.fill: parent + sourceComponent: rect + } + + Component { + id: rect + Rectangle { + width: 50 + height: 50 + color: "red" + } + } +} +//![0] diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 109fbbb..1119b92 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -129,15 +129,41 @@ void QDeclarativeLoaderPrivate::initResize() The loaded item can be accessed using the \l item property. - Loader is like any other visual item and must be positioned and sized - accordingly to become visible. Once the component is loaded, the Loader - is automatically resized to the size of the component. - If the \l source or \l sourceComponent changes, any previously instantiated items are destroyed. Setting \l source to an empty string or setting \l sourceComponent to \c undefined destroys the currently loaded item, freeing resources and leaving the Loader empty. + \section2 Loader sizing behavior + + Loader is like any other visual item and must be positioned and sized + accordingly to become visible. + + \list + \o If an explicit size is not specified for the Loader, the Loader + is automatically resized to the size of the loaded item once the + component is loaded. + \o If the size of the Loader is specified explicitly by setting + the width, height or by anchoring, the loaded item will be resized + to the size of the Loader. + \endlist + + In both scenarios the size of the item and the Loader are identical. + This ensures that anchoring to the Loader is equivalent to anchoring + to the loaded item. + + \table + \row + \o sizeloader.qml + \o sizeitem.qml + \row + \o \snippet doc/src/snippets/declarative/loader/sizeloader.qml 0 + \o \snippet doc/src/snippets/declarative/loader/sizeitem.qml 0 + \row + \o The red rectangle will be sized to the size of the root item. + \o The red rectangle will be 50x50, centered in the root item. + \endtable + \section2 Receiving signals from loaded items @@ -343,12 +369,14 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() QDeclarativeContext *ctxt = new QDeclarativeContext(creationContext); ctxt->setContextObject(q); - QDeclarativeComponent *c = component; - QObject *obj = component->create(ctxt); + QDeclarativeGuard c = component; + QObject *obj = component->beginCreate(ctxt); if (component != c) { // component->create could trigger a change in source that causes // component to be set to something else. In that case we just // need to cleanup. + if (c) + c->completeCreate(); delete obj; delete ctxt; return; @@ -373,6 +401,7 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() delete ctxt; source = QUrl(); } + component->completeCreate(); emit q->sourceChanged(); emit q->statusChanged(); emit q->progressChanged(); -- cgit v0.12 From ec288ed3720ab3fdc41f3c3698fe58fb322ad090 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 12 Nov 2010 15:35:41 +1000 Subject: Ensure increment/decrementCurrentIndex always move items in the correct direction. With < 4 items the shortest distance algorithm doesn't work since it is equal distance either way. Task-number: QTBUG-15260 Reviewed-by: Yann Bodson --- .../graphicsitems/qdeclarativepathview.cpp | 30 +++++++++++++++------- .../graphicsitems/qdeclarativepathview_p_p.h | 4 ++- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index dc3d5ee..ea929cf 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -607,6 +607,8 @@ void QDeclarativePathView::setCurrentIndex(int idx) */ void QDeclarativePathView::incrementCurrentIndex() { + Q_D(QDeclarativePathView); + d->moveDirection = QDeclarativePathViewPrivate::Positive; setCurrentIndex(currentIndex()+1); } @@ -625,6 +627,7 @@ void QDeclarativePathView::decrementCurrentIndex() int idx = currentIndex()-1; if (idx < 0) idx = d->modelCount - 1; + d->moveDirection = QDeclarativePathViewPrivate::Negative; setCurrentIndex(idx); } } @@ -1636,7 +1639,7 @@ void QDeclarativePathViewPrivate::snapToCurrent() if (!model || modelCount <= 0) return; - qreal targetOffset = modelCount - currentIndex; + qreal targetOffset = qmlMod(modelCount - currentIndex, modelCount); moveReason = Other; offsetAdj = 0.0; @@ -1645,19 +1648,28 @@ void QDeclarativePathViewPrivate::snapToCurrent() const int duration = highlightMoveDuration; - if (targetOffset - offset > modelCount/2) { + if (moveDirection == Positive || (moveDirection == Shortest && targetOffset - offset > modelCount/2)) { qreal distance = modelCount - targetOffset + offset; - tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * offset / distance)); - tl.set(moveOffset, modelCount); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * (modelCount-targetOffset) / distance)); - } else if (targetOffset - offset <= -modelCount/2) { + if (targetOffset > moveOffset) { + tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * offset / distance)); + tl.set(moveOffset, modelCount); + tl.move(moveOffset, targetOffset, QEasingCurve(offset == 0.0 ? QEasingCurve::InOutQuad : QEasingCurve::OutQuad), int(duration * (modelCount-targetOffset) / distance)); + } else { + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), duration); + } + } else if (moveDirection == Negative || targetOffset - offset <= -modelCount/2) { qreal distance = modelCount - offset + targetOffset; - tl.move(moveOffset, modelCount, QEasingCurve(QEasingCurve::InQuad), int(duration * (modelCount-offset) / distance)); - tl.set(moveOffset, 0.0); - tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * targetOffset / distance)); + if (targetOffset < moveOffset) { + tl.move(moveOffset, modelCount, QEasingCurve(targetOffset == 0 ? QEasingCurve::InOutQuad : QEasingCurve::InQuad), int(duration * (modelCount-offset) / distance)); + tl.set(moveOffset, 0.0); + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * targetOffset / distance)); + } else { + tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), duration); + } } else { tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::InOutQuad), duration); } + moveDirection = Shortest; } QDeclarativePathViewAttached *QDeclarativePathView::qmlAttachedProperties(QObject *obj) diff --git a/src/declarative/graphicsitems/qdeclarativepathview_p_p.h b/src/declarative/graphicsitems/qdeclarativepathview_p_p.h index b217216..6232b83 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativepathview_p_p.h @@ -82,7 +82,7 @@ public: , dragMargin(0), deceleration(100) , moveOffset(this, &QDeclarativePathViewPrivate::setAdjustedOffset) , firstIndex(-1), pathItems(-1), requestedIndex(-1) - , moveReason(Other), attType(0), highlightComponent(0), highlightItem(0) + , moveReason(Other), moveDirection(Shortest), attType(0), highlightComponent(0), highlightItem(0) , moveHighlight(this, &QDeclarativePathViewPrivate::setHighlightPosition) , highlightPosition(0) , highlightRangeStart(0), highlightRangeEnd(0) @@ -173,6 +173,8 @@ public: QVariant modelVariant; enum MovementReason { Other, SetIndex, Mouse }; MovementReason moveReason; + enum MovementDirection { Shortest, Negative, Positive }; + MovementDirection moveDirection; QDeclarativeOpenMetaObjectType *attType; QDeclarativeComponent *highlightComponent; QDeclarativeItem *highlightItem; -- cgit v0.12 From 4a01dc326faa0bc7d61f67e8848e194c3c3b99c5 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 12 Nov 2010 15:54:50 +1000 Subject: Fix PathView key navigation docs. Task-number: QTBUG-15222 Reviewed-by: Yann Bodson --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index ea929cf..926bec2 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -373,7 +373,21 @@ void QDeclarativePathViewPrivate::regenerate() opacity of the items as they rotate. This additional code can be seen in the PathAttribute documentation.) - The \c focus can be set to \c true to enable keyboard navigation. + PathView does not automatically handle keyboard navigation. This is because + the keys to use for navigation will depend upon the shape of the path. Navigation + can be added quite simply by setting \c focus to \c true and calling + \l decrementCurrentIndex() or \l incrementCurrentIndex(), for example to navigate + using the left and right arrow keys: + + \code + PathView { + ... + focus: true + Keys.onLeftPressed: decrementCurrentIndex() + Keys.onRightPressed: incrementCurrentIndex() + } + \endcode + The path view itself is a focus scope (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details). Delegates are instantiated as needed and may be destroyed at any time. -- cgit v0.12 From 16575f7aef840b6aae0dc767468ab713fbcfd7a6 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 9 Nov 2010 16:39:20 +0200 Subject: Localize .loc and .pkg content based on TRANSLATIONS If developer specifies "CONFIG += localize_deployment" in .pro file, the generated .loc and .pkg will now use translatable strings from .ts files defined in TRANSLATIONS. The .ts files must have an underscore and Qt language code at the end of the filename body to be compatible with deployment localization. E.g. myapp_en.ts. Running lupdate will generate these entries into .ts files: - Application short caption - Application long caption - Package name - Smart installer package name Task-number: QTBUG-13917 Reviewed-by: Oswald Buddenhagen Reviewed-by: Janne Anttila Reviewed-by: axis --- demos/symbianpkgrules.pri | 5 +- doc/src/development/qmake-manual.qdoc | 8 + examples/symbianpkgrules.pri | 5 +- .../common/symbian/appCaptionForTranslation.cpp | 46 ++ .../common/symbian/packageNameForTranslation.cpp | 47 +++ mkspecs/common/symbian/symbian.conf | 63 ++- mkspecs/features/default_post.prf | 10 + mkspecs/features/symbian/default_post.prf | 12 + mkspecs/features/symbian/localize_deployment.prf | 82 ++++ mkspecs/features/symbian/qt.prf | 6 +- mkspecs/features/symbian/sis_targets.prf | 26 +- qmake/generators/symbian/symbian_makefile.h | 10 +- qmake/generators/symbian/symbiancommon.cpp | 467 ++++++++++++--------- qmake/generators/symbian/symbiancommon.h | 35 +- qmake/generators/symbian/symmake.cpp | 37 +- qmake/generators/symbian/symmake.h | 5 +- qmake/generators/symbian/symmake_abld.cpp | 10 +- qmake/generators/symbian/symmake_sbsv2.cpp | 13 +- src/s60installs/s60installs.pro | 8 +- tools/linguist/lupdate/main.cpp | 4 + 20 files changed, 638 insertions(+), 261 deletions(-) create mode 100644 mkspecs/common/symbian/appCaptionForTranslation.cpp create mode 100644 mkspecs/common/symbian/packageNameForTranslation.cpp create mode 100644 mkspecs/features/symbian/localize_deployment.prf diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri index c9cc492..ef6dfd8 100644 --- a/demos/symbianpkgrules.pri +++ b/demos/symbianpkgrules.pri @@ -2,12 +2,13 @@ RSS_RULES ="group_name=\"QtDemos\";" +nokiaVendor = "Nokia, Qt" vendorinfo = \ "; Localised Vendor name" \ - "%{\"Nokia, Qt\"}" \ + "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \ " " \ "; Unique Vendor name" \ - ":\"Nokia, Qt\"" \ + ":\"$$nokiaVendor\"" \ " " demos_deployment.pkg_prerules += vendorinfo diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc index 6531d25..c0ed940 100644 --- a/doc/src/development/qmake-manual.qdoc +++ b/doc/src/development/qmake-manual.qdoc @@ -1294,6 +1294,14 @@ test sections in generated bld.inf instead of their regular sections. Note that this only affects automatically generated bld.inf content; the content added via \c BLD_INF_RULES variable is not affected. + \row \o localize_deployment \o Makes \c lupdate tool add fields for + application captions and package file names into generated \c{.ts} + files. Qmake generates properly localized \c{.loc} and \c{.pkg} files + based on available translations. Translation file name bodies must + end with underscore and the language code for deployment localization + to work. E.g. \c{myapp_en.ts}. + \bold{Note:} All languages supported by Qt are not supported by Symbian, + so some \c{.ts} files may be ignored by qmake. \endtable These options have an effect on Linux/Unix platforms: diff --git a/examples/symbianpkgrules.pri b/examples/symbianpkgrules.pri index 0f615c7..fe9b487 100644 --- a/examples/symbianpkgrules.pri +++ b/examples/symbianpkgrules.pri @@ -2,12 +2,13 @@ RSS_RULES ="group_name=\"QtExamples\";" +nokiaVendor = "Nokia, Qt" vendorinfo = \ "; Localised Vendor name" \ - "%{\"Nokia, Qt\"}" \ + "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \ " " \ "; Unique Vendor name" \ - ":\"Nokia, Qt\"" \ + ":\"$$nokiaVendor\"" \ " " examples_deployment.pkg_prerules += vendorinfo diff --git a/mkspecs/common/symbian/appCaptionForTranslation.cpp b/mkspecs/common/symbian/appCaptionForTranslation.cpp new file mode 100644 index 0000000..c295147 --- /dev/null +++ b/mkspecs/common/symbian/appCaptionForTranslation.cpp @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the qmake spec 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$ +** +****************************************************************************/ + +//: Application short caption, currently only relevant for application projects in Symbian. +QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application short caption") + +//: Application long caption, currently only relevant for application projects in Symbian. +QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application long caption") diff --git a/mkspecs/common/symbian/packageNameForTranslation.cpp b/mkspecs/common/symbian/packageNameForTranslation.cpp new file mode 100644 index 0000000..bc4a7f4 --- /dev/null +++ b/mkspecs/common/symbian/packageNameForTranslation.cpp @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the qmake spec 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$ +** +****************************************************************************/ + +//: Installation package name, currently only relevant for Symbian projects that deploy something. +QT_TRANSLATE_NOOP("QtPackageNames", "Package name") + +//: Smart installer installation package name, currently only relevant for Symbian projects that +//: deploy something. +QT_TRANSLATE_NOOP("QtPackageNames", "Smart installer package name") diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 69188a8..f8586b0 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -130,6 +130,17 @@ QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib QMAKE_LIBS_NO_QT_ENTRY_GCCE = -llibcrt0_gcce.lib +# List of languages that have a Symbian language code mapping provided in localize_deployment.prf +SYMBIAN_SUPPORTED_LANGUAGES = \ + af sq am ar hy bn bg my be ca \ + hr cs da nl en et fi fr gd ka \ + de el gu he hi hu is id ga it \ + ja kn kk ko lo lv lt mk ms ml \ + mr mo mn nb pl pt pa ro ru sr \ + si sk sl so es sw sv tl ta te \ + th bo ti tr tk uk ur vi cy zu \ + nn + # These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins QT_IMPORTS_BASE_DIR = /resource/qt/imports @@ -194,17 +205,6 @@ isEmpty(S60_VERSION) { # multiple language compatible dependency statements him/herself. default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies - -# Supports S60 3.1, 3.2, 5.0, Symbian^3, and Symbian^4 by default -pkg_platform_dependencies = \ - "; Default HW/platform dependencies" \ - "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ - "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ - "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ - "[0x20022E6D],0,0,0,{\"S60ProductID\"}" \ - "[0x20032DE7],0,0,0,{\"S60ProductID\"}" \ - " " - DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment defineReplace(symbianRemoveSpecialCharacters) { @@ -225,3 +225,44 @@ defineReplace(symbianRemoveSpecialCharacters) { return ($$fixedStr) } +# Determines translations that are Symbian supported +defineTest(matchSymbianLanguages) { + SYMBIAN_MATCHED_LANGUAGES = + SYMBIAN_MATCHED_TRANSLATIONS = + + # Cannot parse .ts file for language here, so detect it from filename. + # Allow two and three character language and country codes. + for(translation, TRANSLATIONS) { + language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2) + contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) { + SYMBIAN_MATCHED_LANGUAGES += $$language + SYMBIAN_MATCHED_TRANSLATIONS += $$translation + } + } + + isEmpty(SYMBIAN_MATCHED_LANGUAGES): SYMBIAN_MATCHED_LANGUAGES = en + + export(SYMBIAN_MATCHED_LANGUAGES) + export(SYMBIAN_MATCHED_TRANSLATIONS) +} + +# Symbian pkg files that define multiple languages require a language specific string to be +# defined for various items, even though the string often needs to be same for all languages. +# This replacement method will generate correct string for such cases based on TRANSLATIONS +# variable. +defineReplace(addLanguageDependentPkgItem) { + localize_deployment:!isEmpty(TRANSLATIONS):isEmpty(SYMBIAN_MATCHED_LANGUAGES) { + matchSymbianLanguages() + } + + pkgItem = $$eval($$1) + pkgLanguageList = + + for(dummyItem, SYMBIAN_MATCHED_LANGUAGES) { + pkgLanguageList += "\"$$pkgItem\"" + } + + isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\"" + + return($$join(pkgLanguageList,",",,)) +} diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 09c6587..9fb9f10 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -110,3 +110,13 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST } QMAKE_EXTRA_TARGETS += check } + +# Add special translation sources for projects that require them. +# Note 1: Since lupdate will not parse regular config scopes right, contains checks are used instead. +# Note 2: Checking for last value of TEMPLATE is used instead of simple contains check because +# lupdate doesn't respect "-=" variable assignments and therefore always finds "app" +# as the first value of TEMPLATE variable. +contains(CONFIG, lupdate_run):contains(CONFIG, localize_deployment) { + equals($$list($$last(TEMPLATE)), app): SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/appCaptionForTranslation.cpp + SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/packageNameForTranslation.cpp +} diff --git a/mkspecs/features/symbian/default_post.prf b/mkspecs/features/symbian/default_post.prf index d9ff03d..ec6ecd0 100644 --- a/mkspecs/features/symbian/default_post.prf +++ b/mkspecs/features/symbian/default_post.prf @@ -52,3 +52,15 @@ isEmpty(TARGET.UID2) { } } } + +# Supports S60 3.1, 3.2, 5.0, Symbian^3, and Symbian^4 by default +platform_product_id = S60ProductID +platform_product_id = $$addLanguageDependentPkgItem(platform_product_id) +pkg_platform_dependencies = \ + "; Default HW/platform dependencies" \ + "[0x102032BE],0,0,0,{$$platform_product_id}" \ + "[0x102752AE],0,0,0,{$$platform_product_id}" \ + "[0x1028315F],0,0,0,{$$platform_product_id}" \ + "[0x20022E6D],0,0,0,{$$platform_product_id}" \ + "[0x20032DE7],0,0,0,{$$platform_product_id}" \ + " " diff --git a/mkspecs/features/symbian/localize_deployment.prf b/mkspecs/features/symbian/localize_deployment.prf new file mode 100644 index 0000000..5f52dbc --- /dev/null +++ b/mkspecs/features/symbian/localize_deployment.prf @@ -0,0 +1,82 @@ +SYMBIAN_LANG.af = 34 #Afrikaans +SYMBIAN_LANG.sq = 35 #Albanian +SYMBIAN_LANG.am = 36 #Amharic +SYMBIAN_LANG.ar = 37 #Arabic +SYMBIAN_LANG.hy = 38 #Armenian +SYMBIAN_LANG.bn = 41 #Bengali +SYMBIAN_LANG.bg = 42 #Bulgarian +SYMBIAN_LANG.my = 43 #Burmese +SYMBIAN_LANG.be = 40 #Byelorussian +SYMBIAN_LANG.ca = 44 #Catalan +SYMBIAN_LANG.hr = 45 #Croatian +SYMBIAN_LANG.cs = 25 #Czech +SYMBIAN_LANG.da = 07 #Danish +SYMBIAN_LANG.nl = 18 #Dutch +SYMBIAN_LANG.en = 01 #English(UK) +SYMBIAN_LANG.et = 49 #Estonian +SYMBIAN_LANG.fi = 09 #Finnish +SYMBIAN_LANG.fr = 02 #French +SYMBIAN_LANG.gd = 52 #Gaelic +SYMBIAN_LANG.ka = 53 #Georgian +SYMBIAN_LANG.de = 03 #German +SYMBIAN_LANG.el = 54 #Greek +SYMBIAN_LANG.gu = 56 #Gujarati +SYMBIAN_LANG.he = 57 #Hebrew +SYMBIAN_LANG.hi = 58 #Hindi +SYMBIAN_LANG.hu = 17 #Hungarian +SYMBIAN_LANG.is = 15 #Icelandic +SYMBIAN_LANG.id = 59 #Indonesian +SYMBIAN_LANG.ga = 60 #Irish +SYMBIAN_LANG.it = 05 #Italian +SYMBIAN_LANG.ja = 32 #Japanese +SYMBIAN_LANG.kn = 62 #Kannada +SYMBIAN_LANG.kk = 63 #Kazakh +SYMBIAN_LANG.ko = 65 #Korean +SYMBIAN_LANG.lo = 66 #Laothian +SYMBIAN_LANG.lv = 67 #Latvian +SYMBIAN_LANG.lt = 68 #Lithuanian +SYMBIAN_LANG.mk = 69 #Macedonian +SYMBIAN_LANG.ms = 70 #Malay +SYMBIAN_LANG.ml = 71 #Malayalam +SYMBIAN_LANG.mr = 72 #Marathi +SYMBIAN_LANG.mo = 73 #Moldavian +SYMBIAN_LANG.mn = 74 #Mongolian +SYMBIAN_LANG.nb = 08 #Norwegian +SYMBIAN_LANG.pl = 27 #Polish +SYMBIAN_LANG.pt = 13 #Portuguese +SYMBIAN_LANG.pa = 77 #Punjabi +SYMBIAN_LANG.ro = 78 #Romanian +SYMBIAN_LANG.ru = 16 #Russian +SYMBIAN_LANG.sr = 79 #Serbian +SYMBIAN_LANG.si = 80 #Singhalese +SYMBIAN_LANG.sk = 26 #Slovak +SYMBIAN_LANG.sl = 28 #Slovenian +SYMBIAN_LANG.so = 81 #Somali +SYMBIAN_LANG.es = 04 #Spanish +SYMBIAN_LANG.sw = 84 #Swahili +SYMBIAN_LANG.sv = 06 #Swedish +SYMBIAN_LANG.tl = 39 #Tagalog +SYMBIAN_LANG.ta = 87 #Tamil +SYMBIAN_LANG.te = 88 #Telugu +SYMBIAN_LANG.th = 33 #Thai +SYMBIAN_LANG.bo = 89 #Tibetan +SYMBIAN_LANG.ti = 90 #Tigrinya +SYMBIAN_LANG.tr = 14 #Turkish +SYMBIAN_LANG.tk = 92 #Turkmen +SYMBIAN_LANG.uk = 93 #Ukrainian +SYMBIAN_LANG.ur = 94 #Urdu +SYMBIAN_LANG.vi = 96 #Vietnamese +SYMBIAN_LANG.cy = 97 #Welsh +SYMBIAN_LANG.zu = 98 #Zulu +SYMBIAN_LANG.nn = 75 #Nynorsk + +isEmpty(SYMBIAN_MATCHED_LANGUAGES) { + matchSymbianLanguages() +} + +!isEmpty(SYMBIAN_MATCHED_TRANSLATIONS) { + # Generate dependencies to .ts files for pkg files + template_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS + installer_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS + stub_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS +} diff --git a/mkspecs/features/symbian/qt.prf b/mkspecs/features/symbian/qt.prf index b5d3d98..c8f97aa 100644 --- a/mkspecs/features/symbian/qt.prf +++ b/mkspecs/features/symbian/qt.prf @@ -25,9 +25,10 @@ INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH # Note: Qt libs package with full capabilities has UID3 of 0x2001E61C, # while self-signed version typically has temporary UID3 of 0xE001E61C. contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0xE001E61C):isEmpty(QT_LIBINFIX) { + qt_pkg_name = Qt pkg_depends_qt += \ "; Default dependency to Qt libraries" \ - "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {\"Qt\"}" + "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(qt_pkg_name)}" # Projects linking to webkit need dependency to webkit contains(QT, webkit): { @@ -38,9 +39,10 @@ contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0 QT_WEBKIT_PATCH_VERSION = $${QT_PATCH_VERSION} } + webkit_pkg_name = QtWebKit pkg_depends_webkit += \ "; Dependency to Qt Webkit" \ - "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {\"QtWebKit\"}" + "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(webkit_pkg_name)}" } else { default_deployment.pkg_prerules -= pkg_depends_webkit } diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf index e838e10..ad81803 100644 --- a/mkspecs/features/symbian/sis_targets.prf +++ b/mkspecs/features/symbian/sis_targets.prf @@ -12,6 +12,17 @@ else:!equals(DEPLOYMENT, default_deployment) { equals(GENERATE_SIS_TARGETS, true) { baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET)) + template_pkg_target.target = $${baseTarget}_template.pkg + template_pkg_target.depends += $$_PRO_FILE_ + template_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake + installer_pkg_target.target = $${baseTarget}_installer.pkg + installer_pkg_target.depends += $$_PRO_FILE_ + installer_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake + stub_pkg_target.target = $${baseTarget}_stub.pkg + stub_pkg_target.depends += $$_PRO_FILE_ + stub_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake + QMAKE_EXTRA_TARGETS += template_pkg_target installer_pkg_target stub_pkg_target + symbian-abld|symbian-sbsv2 { symbian-sbsv2 { @@ -35,6 +46,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) + sis_target.depends += $${baseTarget}_template.pkg ok_sis_target.target = ok_sis ok_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \ @@ -54,6 +66,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) + unsigned_sis_target.depends += $${baseTarget}_template.pkg ok_unsigned_sis_target.target = ok_unsigned_sis ok_unsigned_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET) @@ -67,7 +80,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) - installer_sis_target.depends = sis + installer_sis_target.depends = $${baseTarget}_installer.pkg sis ok_installer_sis_target.target = ok_installer_sis ok_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ @@ -79,7 +92,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) - unsigned_installer_sis_target.depends = unsigned_sis + unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis ok_unsigned_installer_sis_target.target = ok_unsigned_installer_sis ok_unsigned_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg @@ -104,6 +117,7 @@ equals(GENERATE_SIS_TARGETS, true) { , \ $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \ ) + stub_sis_target.depends += $${baseTarget}_stub.pkg ok_stub_sis_target.target = ok_stub_sis ok_stub_sis_target.commands = createpackage -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \ @@ -154,11 +168,11 @@ equals(GENERATE_SIS_TARGETS, true) { sis_target.target = sis sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \ - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) - sis_target.depends = first + sis_target.depends = first $${baseTarget}_template.pkg unsigned_sis_target.target = unsigned_sis unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg - unsigned_sis_target.depends = first + unsigned_sis_target.depends = first $${baseTarget}_template.pkg target_sis_target.target = $${sis_destdir}/$${baseTarget}.sis target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis @@ -166,11 +180,11 @@ equals(GENERATE_SIS_TARGETS, true) { installer_sis_target.target = installer_sis installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \ $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE) - installer_sis_target.depends = sis + installer_sis_target.depends = $${baseTarget}_installer.pkg sis unsigned_installer_sis_target.target = unsigned_installer_sis unsigned_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg - unsigned_installer_sis_target.depends = unsigned_sis + unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis !isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") { sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir diff --git a/qmake/generators/symbian/symbian_makefile.h b/qmake/generators/symbian/symbian_makefile.h index 94f0145..28a6206 100644 --- a/qmake/generators/symbian/symbian_makefile.h +++ b/qmake/generators/symbian/symbian_makefile.h @@ -79,18 +79,18 @@ public: } } + SymbianLocalizationList symbianLocalizationList; + parseTsFiles(&symbianLocalizationList); + if (generatePkg) { - generatePkgFile(iconFile, false); + generatePkgFile(iconFile, false, symbianLocalizationList); } - // Get the application translations and convert to symbian OS lang code, i.e. decical number - QStringList symbianLangCodes = symbianLangCodesFromTsFiles(); - if (targetType == TypeExe) { if (!this->project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) { writeRegRssFile(userRssRules); writeRssFile(numberOfIcons, iconFile); - writeLocFile(symbianLangCodes); + writeLocFile(symbianLocalizationList); } } diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp index 9d4f27e..2244a98 100644 --- a/qmake/generators/symbian/symbiancommon.cpp +++ b/qmake/generators/symbian/symbiancommon.cpp @@ -41,6 +41,7 @@ #include "symbiancommon.h" #include +#include // Included from tools/shared #include @@ -151,7 +152,9 @@ QString romPath(const QString& path) return QLatin1String("z:") + path; } -void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocBuild) +void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, + bool epocBuild, + const SymbianLocalizationList &symbianLocalizationList) { QMakeProject *project = generator->project; QString pkgFilename = Option::output_dir + QLatin1Char('/') + @@ -270,8 +273,17 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB // Apply some defaults if specific data does not exist in PKG pre-rules if (languageRules.isEmpty()) { - // language, (*** hardcoded to english atm, should be parsed from TRANSLATIONS) - languageRules << "; Language\n&EN\n\n"; + if (symbianLocalizationList.isEmpty()) { + languageRules << "; Language\n&EN\n\n"; + } else { + QStringList langCodes; + SymbianLocalizationListIterator iter(symbianLocalizationList); + while (iter.hasNext()) { + const SymbianLocalization &loc = iter.next(); + langCodes << loc.symbianLanguageCode; + } + languageRules << QString("; Languages\n&%1\n\n").arg(langCodes.join(",")); + } } else if (headerRules.isEmpty()) { // In case user defines langs, he must take care also about SIS header fprintf(stderr, "Warning: If language is defined with DEPLOYMENT pkg_prerules, also the SIS header must be defined\n"); @@ -320,12 +332,14 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB // Package header QString sisHeader = "; SIS header: name, uid, version\n#{\"%1\"},(%2),%3\n\n"; - QString visualTarget = project->values("DEPLOYMENT.display_name").join(" "); - if (visualTarget.isEmpty()) - visualTarget = generator->escapeFilePath(project->first("TARGET")); - visualTarget = removePathSeparators(visualTarget); - QString wrapperTarget = visualTarget + " installer"; + QString defaultVisualTarget = project->values("DEPLOYMENT.display_name").join(" "); + if (defaultVisualTarget.isEmpty()) + defaultVisualTarget = generator->escapeFilePath(project->first("TARGET")); + defaultVisualTarget = removePathSeparators(defaultVisualTarget); + + QString visualTarget = generatePkgNameForHeader(symbianLocalizationList, defaultVisualTarget, false); + QString wrapperTarget = generatePkgNameForHeader(symbianLocalizationList, defaultVisualTarget, true); if (installerSisHeader.startsWith("0x", Qt::CaseInsensitive)) { tw << sisHeader.arg(wrapperTarget).arg(installerSisHeader).arg(applicationVersion); @@ -344,7 +358,13 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB // Vendor name if (!containsStartWithItem('%', vendorRules)) { - vendorRules << "; Default localized vendor name\n%{\"Vendor\"}\n\n"; + QString vendorStr = QLatin1String("\"Vendor\","); + QString locVendors = vendorStr; + for (int i = 1; i < symbianLocalizationList.size(); i++) { + locVendors.append(vendorStr); + } + locVendors.chop(1); + vendorRules << QString("; Default localized vendor name\n%{%1}\n\n").arg(locVendors); } if (!containsStartWithItem(':', vendorRules)) { vendorRules << "; Default unique vendor name\n:\"Vendor\"\n\n"; @@ -385,6 +405,13 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB t << manufacturerStr << endl; } + // ### FIXME: remove epocBuild check once makefile based mkspecs support localized resource generation + if (epocBuild && symbianLocalizationList.size()) { + // Add localized resources to DEPLOYMENT if default resource deployment is done + addLocalizedResourcesToDeployment("default_resource_deployment.sources", symbianLocalizationList); + addLocalizedResourcesToDeployment("default_reg_deployment.sources", symbianLocalizationList); + } + // deploy files specified by DEPLOYMENT variable QString remoteTestPath; QString zDir; @@ -633,12 +660,9 @@ void SymbianCommonGenerator::writeRssFile(QString &numberOfIcons, QString &iconF } } -void SymbianCommonGenerator::writeLocFile(QStringList &symbianLangCodes) +void SymbianCommonGenerator::writeLocFile(const SymbianLocalizationList &symbianLocalizationList) { - QString filename(fixedTarget); - if (!Option::output_dir.isEmpty()) - filename = Option::output_dir + '/' + filename; - filename.append(".loc"); + QString filename = generateLocFileName(); QFile ft(filename); if (ft.open(QIODevice::WriteOnly)) { generatedFiles << ft.fileName(); @@ -658,11 +682,22 @@ void SymbianCommonGenerator::writeLocFile(QStringList &symbianLangCodes) t << "#ifdef LANGUAGE_SC" << endl; t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl; t << "#define STRING_r_caption \"" << displayName << "\"" << endl; - foreach(QString lang, symbianLangCodes) { - t << "#elif defined LANGUAGE_" << lang << endl; - t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl; - t << "#define STRING_r_caption \"" << displayName << "\"" << endl; + + SymbianLocalizationListIterator iter(symbianLocalizationList); + while (iter.hasNext()) { + const SymbianLocalization &loc = iter.next(); + QString shortCaption = loc.shortCaption; + QString longCaption = loc.longCaption; + if (shortCaption.isEmpty()) + shortCaption = displayName; + if (longCaption.isEmpty()) + longCaption = displayName; + + t << "#elif defined LANGUAGE_" << loc.symbianLanguageCode << endl; + t << "#define STRING_r_short_caption \"" << shortCaption << "\"" << endl; + t << "#define STRING_r_caption \"" << longCaption << "\"" << endl; } + t << "#else" << endl; t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl; t << "#define STRING_r_caption \"" << displayName << "\"" << endl; @@ -803,195 +838,49 @@ void SymbianCommonGenerator::writeCustomDefFile() } } -QStringList SymbianCommonGenerator::symbianLangCodesFromTsFiles() +void SymbianCommonGenerator::parseTsFiles(SymbianLocalizationList *symbianLocalizationList) { - QStringList tsfiles; - QStringList symbianLangCodes; - tsfiles << generator->project->values("TRANSLATIONS"); + if (!generator->project->isActiveConfig("localize_deployment")) { + return; + } - fillQt2S60LangMapTable(); + QStringList symbianTsFiles; - foreach(QString file, tsfiles) { - int extIndex = file.lastIndexOf("."); - int langIndex = file.lastIndexOf("_", (extIndex - file.length())); - langIndex += 1; - QString qtlang = file.mid(langIndex, extIndex - langIndex); - QString s60lang = qt2S60LangMapTable.value(qtlang, QString("SC")); + symbianTsFiles << generator->project->values("SYMBIAN_MATCHED_TRANSLATIONS"); - if (!symbianLangCodes.contains(s60lang) && s60lang != "SC") - symbianLangCodes += s60lang; - } + if (!symbianTsFiles.isEmpty()) { + fillQt2SymbianLocalizationList(symbianLocalizationList); - return symbianLangCodes; + QMutableListIterator iter(*symbianLocalizationList); + while (iter.hasNext()) { + SymbianLocalization &loc = iter.next(); + static QString matchStrTemplate = QLatin1String(".*_%1\\.ts"); + QString matchStr = matchStrTemplate.arg(loc.qtLanguageCode); + + foreach (QString file, symbianTsFiles) { + QRegExp matcher(matchStr); + if (matcher.exactMatch(file) && parseTsContent(file, &loc)) + break; + } + } + } } -void SymbianCommonGenerator::fillQt2S60LangMapTable() +void SymbianCommonGenerator::fillQt2SymbianLocalizationList(SymbianLocalizationList *symbianLocalizationList) { - qt2S60LangMapTable.reserve(170); // 165 items at time of writing. - qt2S60LangMapTable.insert("ab", "SC"); //Abkhazian // - qt2S60LangMapTable.insert("om", "SC"); //Afan // - qt2S60LangMapTable.insert("aa", "SC"); //Afar // - qt2S60LangMapTable.insert("af", "34"); //Afrikaans //Afrikaans - qt2S60LangMapTable.insert("sq", "35"); //Albanian //Albanian - qt2S60LangMapTable.insert("am", "36"); //Amharic //Amharic - qt2S60LangMapTable.insert("ar", "37"); //Arabic //Arabic - qt2S60LangMapTable.insert("hy", "38"); //Armenian //Armenian - qt2S60LangMapTable.insert("as", "SC"); //Assamese // - qt2S60LangMapTable.insert("ay", "SC"); //Aymara // - qt2S60LangMapTable.insert("az", "SC"); //Azerbaijani // - qt2S60LangMapTable.insert("ba", "SC"); //Bashkir // - qt2S60LangMapTable.insert("eu", "SC"); //Basque // - qt2S60LangMapTable.insert("bn", "41"); //Bengali //Bengali - qt2S60LangMapTable.insert("dz", "SC"); //Bhutani // - qt2S60LangMapTable.insert("bh", "SC"); //Bihari // - qt2S60LangMapTable.insert("bi", "SC"); //Bislama // - qt2S60LangMapTable.insert("br", "SC"); //Breton // - qt2S60LangMapTable.insert("bg", "42"); //Bulgarian //Bulgarian - qt2S60LangMapTable.insert("my", "43"); //Burmese //Burmese - qt2S60LangMapTable.insert("be", "40"); //Byelorussian //Belarussian - qt2S60LangMapTable.insert("km", "SC"); //Cambodian // - qt2S60LangMapTable.insert("ca", "44"); //Catalan //Catalan - qt2S60LangMapTable.insert("zh", "SC"); //Chinese // - qt2S60LangMapTable.insert("co", "SC"); //Corsican // - qt2S60LangMapTable.insert("hr", "45"); //Croatian //Croatian - qt2S60LangMapTable.insert("cs", "25"); //Czech //Czech - qt2S60LangMapTable.insert("da", "07"); //Danish //Danish - qt2S60LangMapTable.insert("nl", "18"); //Dutch //Dutch - qt2S60LangMapTable.insert("en", "01"); //English //English(UK) - qt2S60LangMapTable.insert("eo", "SC"); //Esperanto // - qt2S60LangMapTable.insert("et", "49"); //Estonian //Estonian - qt2S60LangMapTable.insert("fo", "SC"); //Faroese // - qt2S60LangMapTable.insert("fj", "SC"); //Fiji // - qt2S60LangMapTable.insert("fi", "09"); //Finnish //Finnish - qt2S60LangMapTable.insert("fr", "02"); //French //French - qt2S60LangMapTable.insert("fy", "SC"); //Frisian // - qt2S60LangMapTable.insert("gd", "52"); //Gaelic //Gaelic - qt2S60LangMapTable.insert("gl", "SC"); //Galician // - qt2S60LangMapTable.insert("ka", "53"); //Georgian //Georgian - qt2S60LangMapTable.insert("de", "03"); //German //German - qt2S60LangMapTable.insert("el", "54"); //Greek //Greek - qt2S60LangMapTable.insert("kl", "SC"); //Greenlandic // - qt2S60LangMapTable.insert("gn", "SC"); //Guarani // - qt2S60LangMapTable.insert("gu", "56"); //Gujarati //Gujarati - qt2S60LangMapTable.insert("ha", "SC"); //Hausa // - qt2S60LangMapTable.insert("he", "57"); //Hebrew //Hebrew - qt2S60LangMapTable.insert("hi", "58"); //Hindi //Hindi - qt2S60LangMapTable.insert("hu", "17"); //Hungarian //Hungarian - qt2S60LangMapTable.insert("is", "15"); //Icelandic //Icelandic - qt2S60LangMapTable.insert("id", "59"); //Indonesian //Indonesian - qt2S60LangMapTable.insert("ia", "SC"); //Interlingua // - qt2S60LangMapTable.insert("ie", "SC"); //Interlingue // - qt2S60LangMapTable.insert("iu", "SC"); //Inuktitut // - qt2S60LangMapTable.insert("ik", "SC"); //Inupiak // - qt2S60LangMapTable.insert("ga", "60"); //Irish //Irish - qt2S60LangMapTable.insert("it", "05"); //Italian //Italian - qt2S60LangMapTable.insert("ja", "32"); //Japanese //Japanese - qt2S60LangMapTable.insert("jv", "SC"); //Javanese // - qt2S60LangMapTable.insert("kn", "62"); //Kannada //Kannada - qt2S60LangMapTable.insert("ks", "SC"); //Kashmiri // - qt2S60LangMapTable.insert("kk", "63"); //Kazakh //Kazakh - qt2S60LangMapTable.insert("rw", "SC"); //Kinyarwanda // - qt2S60LangMapTable.insert("ky", "SC"); //Kirghiz // - qt2S60LangMapTable.insert("ko", "65"); //Korean //Korean - qt2S60LangMapTable.insert("ku", "SC"); //Kurdish // - qt2S60LangMapTable.insert("rn", "SC"); //Kurundi // - qt2S60LangMapTable.insert("lo", "66"); //Laothian //Laothian - qt2S60LangMapTable.insert("la", "SC"); //Latin // - qt2S60LangMapTable.insert("lv", "67"); //Latvian //Latvian - qt2S60LangMapTable.insert("ln", "SC"); //Lingala // - qt2S60LangMapTable.insert("lt", "68"); //Lithuanian //Lithuanian - qt2S60LangMapTable.insert("mk", "69"); //Macedonian //Macedonian - qt2S60LangMapTable.insert("mg", "SC"); //Malagasy // - qt2S60LangMapTable.insert("ms", "70"); //Malay //Malay - qt2S60LangMapTable.insert("ml", "71"); //Malayalam //Malayalam - qt2S60LangMapTable.insert("mt", "SC"); //Maltese // - qt2S60LangMapTable.insert("mi", "SC"); //Maori // - qt2S60LangMapTable.insert("mr", "72"); //Marathi //Marathi - qt2S60LangMapTable.insert("mo", "73"); //Moldavian //Moldovian - qt2S60LangMapTable.insert("mn", "74"); //Mongolian //Mongolian - qt2S60LangMapTable.insert("na", "SC"); //Nauru // - qt2S60LangMapTable.insert("ne", "SC"); //Nepali // - qt2S60LangMapTable.insert("nb", "08"); //Norwegian //Norwegian - qt2S60LangMapTable.insert("oc", "SC"); //Occitan // - qt2S60LangMapTable.insert("or", "SC"); //Oriya // - qt2S60LangMapTable.insert("ps", "SC"); //Pashto // - qt2S60LangMapTable.insert("fa", "SC"); //Persian // - qt2S60LangMapTable.insert("pl", "27"); //Polish //Polish - qt2S60LangMapTable.insert("pt", "13"); //Portuguese //Portuguese - qt2S60LangMapTable.insert("pa", "77"); //Punjabi //Punjabi - qt2S60LangMapTable.insert("qu", "SC"); //Quechua // - qt2S60LangMapTable.insert("rm", "SC"); //RhaetoRomance // - qt2S60LangMapTable.insert("ro", "78"); //Romanian //Romanian - qt2S60LangMapTable.insert("ru", "16"); //Russian //Russian - qt2S60LangMapTable.insert("sm", "SC"); //Samoan // - qt2S60LangMapTable.insert("sg", "SC"); //Sangho // - qt2S60LangMapTable.insert("sa", "SC"); //Sanskrit // - qt2S60LangMapTable.insert("sr", "79"); //Serbian //Serbian - qt2S60LangMapTable.insert("sh", "SC"); //SerboCroatian // - qt2S60LangMapTable.insert("st", "SC"); //Sesotho // - qt2S60LangMapTable.insert("tn", "SC"); //Setswana // - qt2S60LangMapTable.insert("sn", "SC"); //Shona // - qt2S60LangMapTable.insert("sd", "SC"); //Sindhi // - qt2S60LangMapTable.insert("si", "80"); //Singhalese //Sinhalese - qt2S60LangMapTable.insert("ss", "SC"); //Siswati // - qt2S60LangMapTable.insert("sk", "26"); //Slovak //Slovak - qt2S60LangMapTable.insert("sl", "28"); //Slovenian //Slovenian - qt2S60LangMapTable.insert("so", "81"); //Somali //Somali - qt2S60LangMapTable.insert("es", "04"); //Spanish //Spanish - qt2S60LangMapTable.insert("su", "SC"); //Sundanese // - qt2S60LangMapTable.insert("sw", "84"); //Swahili //Swahili - qt2S60LangMapTable.insert("sv", "06"); //Swedish //Swedish - qt2S60LangMapTable.insert("tl", "39"); //Tagalog //Tagalog - qt2S60LangMapTable.insert("tg", "SC"); //Tajik // - qt2S60LangMapTable.insert("ta", "87"); //Tamil //Tamil - qt2S60LangMapTable.insert("tt", "SC"); //Tatar // - qt2S60LangMapTable.insert("te", "88"); //Telugu //Telugu - qt2S60LangMapTable.insert("th", "33"); //Thai //Thai - qt2S60LangMapTable.insert("bo", "89"); //Tibetan //Tibetan - qt2S60LangMapTable.insert("ti", "90"); //Tigrinya //Tigrinya - qt2S60LangMapTable.insert("to", "SC"); //Tonga // - qt2S60LangMapTable.insert("ts", "SC"); //Tsonga // - qt2S60LangMapTable.insert("tr", "14"); //Turkish //Turkish - qt2S60LangMapTable.insert("tk", "92"); //Turkmen //Turkmen - qt2S60LangMapTable.insert("tw", "SC"); //Twi // - qt2S60LangMapTable.insert("ug", "SC"); //Uigur // - qt2S60LangMapTable.insert("uk", "93"); //Ukrainian //Ukrainian - qt2S60LangMapTable.insert("ur", "94"); //Urdu //Urdu - qt2S60LangMapTable.insert("uz", "SC"); //Uzbek // - qt2S60LangMapTable.insert("vi", "96"); //Vietnamese //Vietnamese - qt2S60LangMapTable.insert("vo", "SC"); //Volapuk // - qt2S60LangMapTable.insert("cy", "97"); //Welsh //Welsh - qt2S60LangMapTable.insert("wo", "SC"); //Wolof // - qt2S60LangMapTable.insert("xh", "SC"); //Xhosa // - qt2S60LangMapTable.insert("yi", "SC"); //Yiddish // - qt2S60LangMapTable.insert("yo", "SC"); //Yoruba // - qt2S60LangMapTable.insert("za", "SC"); //Zhuang // - qt2S60LangMapTable.insert("zu", "98"); //Zulu //Zulu - qt2S60LangMapTable.insert("nn", "75"); //Nynorsk //NorwegianNynorsk - qt2S60LangMapTable.insert("bs", "SC"); //Bosnian // - qt2S60LangMapTable.insert("dv", "SC"); //Divehi // - qt2S60LangMapTable.insert("gv", "SC"); //Manx // - qt2S60LangMapTable.insert("kw", "SC"); //Cornish // - qt2S60LangMapTable.insert("ak", "SC"); //Akan // - qt2S60LangMapTable.insert("kok", "SC"); //Konkani // - qt2S60LangMapTable.insert("gaa", "SC"); //Ga // - qt2S60LangMapTable.insert("ig", "SC"); //Igbo // - qt2S60LangMapTable.insert("kam", "SC"); //Kamba // - qt2S60LangMapTable.insert("syr", "SC"); //Syriac // - qt2S60LangMapTable.insert("byn", "SC"); //Blin // - qt2S60LangMapTable.insert("gez", "SC"); //Geez // - qt2S60LangMapTable.insert("kfo", "SC"); //Koro // - qt2S60LangMapTable.insert("sid", "SC"); //Sidamo // - qt2S60LangMapTable.insert("cch", "SC"); //Atsam // - qt2S60LangMapTable.insert("tig", "SC"); //Tigre // - qt2S60LangMapTable.insert("kaj", "SC"); //Jju // - qt2S60LangMapTable.insert("fur", "SC"); //Friulian // - qt2S60LangMapTable.insert("ve", "SC"); //Venda // - qt2S60LangMapTable.insert("ee", "SC"); //Ewe // - qt2S60LangMapTable.insert("wa", "SC"); //Walamo // - qt2S60LangMapTable.insert("haw", "SC"); //Hawaiian // - qt2S60LangMapTable.insert("kcg", "SC"); //Tyap // - qt2S60LangMapTable.insert("ny", "SC"); //Chewa // + static QString symbianCodePrefix = QLatin1String("SYMBIAN_LANG."); + + QStringList symbianLanguages = generator->project->values("SYMBIAN_MATCHED_LANGUAGES"); + + foreach (QString qtCode, symbianLanguages) { + SymbianLocalization newLoc; + QString symbianCodeVariable = symbianCodePrefix + qtCode; + newLoc.symbianLanguageCode = generator->project->first(symbianCodeVariable); + if (!newLoc.symbianLanguageCode.isEmpty()) { + newLoc.qtLanguageCode = qtCode; + symbianLocalizationList->append(newLoc); + } + } } void SymbianCommonGenerator::parsePreRules(const QString &deploymentVariable, @@ -1057,3 +946,183 @@ void SymbianCommonGenerator::parsePostRules(const QString &deploymentVariable, } } +bool SymbianCommonGenerator::parseTsContent(const QString &tsFilename, SymbianLocalization *loc) +{ + bool retval = true; + QMakeProject *project = generator->project; + QFile tsFile(tsFilename); + + if (tsFile.exists()) { + if (tsFile.open(QIODevice::ReadOnly)) { + static QString applicationCaptionsContext = QLatin1String("QtApplicationCaptions"); + static QString pkgNameContext = QLatin1String("QtPackageNames"); + static QString tsElement = QLatin1String("TS"); + static QString contextElement = QLatin1String("context"); + static QString nameElement = QLatin1String("name"); + static QString messageElement = QLatin1String("message"); + static QString sourceElement = QLatin1String("source"); + static QString translationElement = QLatin1String("translation"); + static QString shortCaptionId = QLatin1String("Application short caption"); + static QString longCaptionId = QLatin1String("Application long caption"); + static QString pkgDisplayNameId = QLatin1String("Package name"); + static QString installerPkgDisplayNameId = QLatin1String("Smart installer package name"); + static QString languageAttribute = QLatin1String("language"); + static QChar underscoreChar = QLatin1Char('_'); + + enum CurrentContext { + ContextUnknown, + ContextUninteresting, + ContextInteresting + }; + + QXmlStreamReader xml(&tsFile); + + while (xml.name() != tsElement) + xml.readNextStartElement(); + + while (xml.readNextStartElement()) { + if (xml.name() == contextElement) { + CurrentContext currentContext = ContextUnknown; + while (xml.readNextStartElement()) { + if (currentContext == ContextUnknown) { + // Expect name element before message elements + if (xml.name() == nameElement) { + QString nameText = xml.readElementText(); + if (nameText == applicationCaptionsContext || nameText == pkgNameContext) { + currentContext = ContextInteresting; + } else { + currentContext = ContextUninteresting; + } + } else { + xml.skipCurrentElement(); + } + } else if (currentContext == ContextInteresting) { + if (xml.name() == messageElement) { + QString source; + QString translation; + while (xml.readNextStartElement()) { + if (xml.name() == sourceElement) { + source = xml.readElementText(); + } else if (xml.name() == translationElement) { + translation = xml.readElementText(); + } else { + xml.skipCurrentElement(); + } + } + + if (source == shortCaptionId) { + if (loc->shortCaption.isEmpty()) { + loc->shortCaption = translation; + } else { + fprintf(stderr, "Warning: Duplicate application short caption defined in (%s).\n", + qPrintable(tsFilename)); + } + } else if (source == longCaptionId) { + if (loc->longCaption.isEmpty()) { + loc->longCaption = translation; + } else { + fprintf(stderr, "Warning: Duplicate application long caption defined in (%s).\n", + qPrintable(tsFilename)); + } + } else if (source == pkgDisplayNameId) { + if (loc->pkgDisplayName.isEmpty()) { + loc->pkgDisplayName = translation; + } else { + fprintf(stderr, "Warning: Duplicate package display name defined in (%s).\n", + qPrintable(tsFilename)); + } + } else if (source == installerPkgDisplayNameId) { + if (loc->installerPkgDisplayName.isEmpty()) { + loc->installerPkgDisplayName = translation; + } else { + fprintf(stderr, "Warning: Duplicate smart installer package display name defined in (%s).\n", + qPrintable(tsFilename)); + } + } + } else { + xml.skipCurrentElement(); + } + } else { + xml.skipCurrentElement(); + } + } + } else { + xml.skipCurrentElement(); + } + } + if (xml.hasError()) { + retval = false; + fprintf(stderr, "ERROR: Encountered error \"%s\" when parsing ts file (%s).\n", + qPrintable(xml.errorString()), qPrintable(tsFilename)); + } + } else { + retval = false; + fprintf(stderr, "Warning: Could not open ts file (%s).\n", qPrintable(tsFilename)); + } + } else { + retval = false; + fprintf(stderr, "Warning: ts file does not exist: (%s), unable to parse it.\n", + qPrintable(tsFilename)); + } + + return retval; +} + +QString SymbianCommonGenerator::generatePkgNameForHeader(const SymbianLocalizationList &symbianLocalizationList, + const QString &defaultName, + bool isForSmartInstaller) +{ + QStringList allNames; + QString noTranslation = defaultName; + + if (isForSmartInstaller) + noTranslation += QLatin1String(" installer"); + + SymbianLocalizationListIterator iter(symbianLocalizationList); + while (iter.hasNext()) { + const SymbianLocalization &loc = iter.next(); + QString currentName; + if (isForSmartInstaller) { + currentName = loc.installerPkgDisplayName; + } else { + currentName = loc.pkgDisplayName; + } + + if (currentName.isEmpty()) + currentName = noTranslation; + + allNames << currentName; + } + + if (!allNames.size()) + allNames << noTranslation; + + return allNames.join("\",\""); + +} + +void SymbianCommonGenerator::addLocalizedResourcesToDeployment(const QString &deploymentFilesVar, + const SymbianLocalizationList &symbianLocalizationList) +{ + QStringList locResources; + foreach (QString defaultResource, generator->project->values(deploymentFilesVar)) { + if (defaultResource.endsWith(".rsc")) { + defaultResource.chop(2); + SymbianLocalizationListIterator iter(symbianLocalizationList); + while (iter.hasNext()) { + const SymbianLocalization &loc = iter.next(); + locResources << QString(defaultResource + loc.symbianLanguageCode); + } + } + } + generator->project->values(deploymentFilesVar) << locResources; +} + +QString SymbianCommonGenerator::generateLocFileName() +{ + QString fileName(fixedTarget); + if (!Option::output_dir.isEmpty()) + fileName = Option::output_dir + QLatin1Char('/') + fileName; + fileName.append(".loc"); + return fileName; +} diff --git a/qmake/generators/symbian/symbiancommon.h b/qmake/generators/symbian/symbiancommon.h index 80f2079..1db5890 100644 --- a/qmake/generators/symbian/symbiancommon.h +++ b/qmake/generators/symbian/symbiancommon.h @@ -48,6 +48,20 @@ #define PRINT_FILE_CREATE_ERROR(filename) fprintf(stderr, "Error: Could not create '%s'\n", qPrintable(filename)); +class SymbianLocalization +{ +public: + QString qtLanguageCode; + QString symbianLanguageCode; + QString shortCaption; + QString longCaption; + QString pkgDisplayName; + QString installerPkgDisplayName; +}; + +typedef QList SymbianLocalizationList; +typedef QListIterator SymbianLocalizationListIterator; + class SymbianCommonGenerator { public: @@ -59,6 +73,7 @@ public: TypeSubdirs }; + SymbianCommonGenerator(MakefileGenerator *generator); virtual void init(); @@ -68,7 +83,9 @@ protected: QString removePathSeparators(QString &file); void removeSpecialCharacters(QString& str); void removeEpocSpecialCharacters(QString& str); - void generatePkgFile(const QString &iconFile, bool epocBuild); + void generatePkgFile(const QString &iconFile, + bool epocBuild, + const SymbianLocalizationList &symbianLocalizationList); bool containsStartWithItem(const QChar &c, const QStringList& src); void writeRegRssFile(QMap &useritems); @@ -76,15 +93,15 @@ protected: const QString &listTag, const QString &listItem); void writeRssFile(QString &numberOfIcons, QString &iconfile); - void writeLocFile(QStringList &symbianLangCodes); + void writeLocFile(const SymbianLocalizationList &symbianLocalizationList); void readRssRules(QString &numberOfIcons, QString &iconFile, QMap &userRssRules); void writeCustomDefFile(); - QStringList symbianLangCodesFromTsFiles(); - void fillQt2S60LangMapTable(); + void parseTsFiles(SymbianLocalizationList *symbianLocalizationList); + void fillQt2SymbianLocalizationList(SymbianLocalizationList *symbianLocalizationList); void parsePreRules(const QString &deploymentVariable, const QString &variableSuffix, @@ -95,7 +112,13 @@ protected: void parsePostRules(const QString &deploymentVariable, const QString &variableSuffix, QStringList *rawRuleList); - + bool parseTsContent(const QString &tsFilename, SymbianLocalization *loc); + QString generatePkgNameForHeader(const SymbianLocalizationList &symbianLocalizationList, + const QString &defaultName, + bool isForSmartInstaller); + void addLocalizedResourcesToDeployment(const QString &deploymentFilesVar, + const SymbianLocalizationList &symbianLocalizationList); + QString generateLocFileName(); protected: MakefileGenerator *generator; @@ -106,8 +129,6 @@ protected: QString privateDirUid; QString uid3; TargetType targetType; - - QHash qt2S60LangMapTable; }; #endif // SYMBIANCOMMON_H diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index 0b0033a..e1426ab 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -187,8 +187,8 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) QMap userRssRules; readRssRules(numberOfIcons, iconFile, userRssRules); - // Get the application translations and convert to symbian OS lang code, i.e. decical number - QStringList symbianLangCodes = symbianLangCodesFromTsFiles(); + SymbianLocalizationList symbianLocalizationList; + parseTsFiles(&symbianLocalizationList); // Generate pkg files if there are any actual files to deploy bool generatePkg = false; @@ -205,7 +205,7 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) } if (generatePkg) { - generatePkgFile(iconFile, true); + generatePkgFile(iconFile, true, symbianLocalizationList); } writeBldInfContent(t, generatePkg, iconFile); @@ -242,13 +242,13 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) writeMkFile(wrapperFileName, false); QString absoluteMmpFileName = Option::output_dir + QLatin1Char('/') + mmpFileName; - writeMmpFile(absoluteMmpFileName, symbianLangCodes); + writeMmpFile(absoluteMmpFileName, symbianLocalizationList); if (targetType == TypeExe) { if (!project->isActiveConfig("no_icon")) { writeRegRssFile(userRssRules); writeRssFile(numberOfIcons, iconFile); - writeLocFile(symbianLangCodes); + writeLocFile(symbianLocalizationList); } } @@ -489,7 +489,7 @@ void SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t) t << "// ==============================================================================" << endl << endl; } -void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symbianLangCodes) +void SymbianMakefileGenerator::writeMmpFile(QString &filename, const SymbianLocalizationList &symbianLocalizationList) { QFile ft(filename); if (ft.open(QIODevice::WriteOnly)) { @@ -501,7 +501,7 @@ void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb writeMmpFileTargetPart(t); - writeMmpFileResourcePart(t, symbianLangCodes); + writeMmpFileResourcePart(t, symbianLocalizationList); writeMmpFileMacrosPart(t); @@ -643,7 +643,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) Application registration resource files should be installed to the \private\10003a3f\import\apps directory. */ -void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes) +void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, const SymbianLocalizationList &symbianLocalizationList) { if ((targetType == TypeExe) && !project->isActiveConfig("no_icon")) { @@ -653,8 +653,10 @@ void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringL t << "SOURCEPATH\t\t\t. " << endl; t << "LANG SC "; // no endl - foreach(QString lang, symbianLangCodes) { - t << lang << " "; // no endl + SymbianLocalizationListIterator iter(symbianLocalizationList); + while (iter.hasNext()) { + const SymbianLocalization &loc = iter.next(); + t << loc.symbianLanguageCode << " "; // no endl } t << endl; t << MMP_START_RESOURCE "\t\t" << locTarget << endl; @@ -1108,3 +1110,18 @@ void SymbianMakefileGenerator::generateDistcleanTargets(QTextStream& t) t << "distclean: clean dodistclean" << endl; t << endl; } + +// Returns a string that can be used as a dependency to loc file on other targets +QString SymbianMakefileGenerator::generateLocFileTarget(QTextStream& t, const QString& locCmd) +{ + QString locFile; + if (targetType == TypeExe && !project->isActiveConfig("no_icon")) { + locFile = Option::fixPathToLocalOS(generateLocFileName()); + t << locFile << QLatin1String(": ") << project->values("SYMBIAN_MATCHED_TRANSLATIONS").join(" ") << endl; + t << locCmd << endl; + t << endl; + locFile += QLatin1Char(' '); + } + + return locFile; +} \ No newline at end of file diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h index a1a8e88..aba11de 100644 --- a/qmake/generators/symbian/symmake.h +++ b/qmake/generators/symbian/symmake.h @@ -97,11 +97,11 @@ protected: static bool removeDuplicatedStrings(QStringList& stringList); void writeMmpFileHeader(QTextStream &t); - void writeMmpFile(QString &filename, QStringList &symbianLangCodes); + void writeMmpFile(QString &filename, const SymbianLocalizationList &symbianLocalizationList); void writeMmpFileMacrosPart(QTextStream& t); void addMacro(QTextStream& t, const QString& value); void writeMmpFileTargetPart(QTextStream& t); - void writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes); + void writeMmpFileResourcePart(QTextStream& t, const SymbianLocalizationList &symbianLocalizationList); void writeMmpFileSystemIncludePart(QTextStream& t); void writeMmpFileIncludePart(QTextStream& t); void writeMmpFileLibraryPart(QTextStream& t); @@ -131,6 +131,7 @@ protected: const QString& itemSuffix); void generateDistcleanTargets(QTextStream& t); + QString generateLocFileTarget(QTextStream& t, const QString& locCmd); // Subclass implements virtual void writeBldInfExtensionRulesPart(QTextStream& t, const QString &iconTargetFile) = 0; diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index f895109..7059a52 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -267,12 +267,14 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool t << "\tbldmake bldfiles" << endl; t << endl; - t << "debug: $(ABLD)" << endl; + QString locFileDep = generateLocFileTarget(t, qmakeCmd); + + t << "debug: " << locFileDep << "$(ABLD)" << endl; foreach(QString item, debugPlatforms) { t << "\t$(ABLD)" << testClause << " build " << item << " udeb" << endl; } t << endl; - t << "release: $(ABLD)" << endl; + t << "release: " << locFileDep << "$(ABLD)" << endl; foreach(QString item, releasePlatforms) { t << "\t$(ABLD)" << testClause << " build " << item << " urel" << endl; } @@ -280,12 +282,12 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool // For more specific builds, targets are in this form: build-platform, e.g. release-armv5 foreach(QString item, debugPlatforms) { - t << "debug-" << item << ": $(ABLD)" << endl; + t << "debug-" << item << ": " << locFileDep << "$(ABLD)" << endl; t << "\t$(ABLD)" << testClause << " build " << item << " udeb" << endl; } foreach(QString item, releasePlatforms) { - t << "release-" << item << ": $(ABLD)" << endl; + t << "release-" << item << ": " << locFileDep << "$(ABLD)" << endl; t << "\t$(ABLD)" << testClause << " build " << item << " urel" << endl; } diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index d650e08..b3f8ba2 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -386,8 +386,9 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << endl; QString currentClause; + QString locFileDep = generateLocFileTarget(t, qmakeCmd); - t << "debug: " << BLD_INF_FILENAME << endl; + t << "debug: " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)"; foreach(QString clause, debugClauses) { t << clause; @@ -399,7 +400,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << clause; } t << endl; - t << "release: " << BLD_INF_FILENAME << endl; + t << "release: " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)"; foreach(QString clause, releaseClauses) { t << clause; @@ -431,7 +432,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo else // use generic arm clause clause = configClause(item, debugBuild, defaultRvctCompilerVersion, genericArmClause); - t << "debug-" << item << ": " << BLD_INF_FILENAME << endl; + t << "debug-" << item << ": " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)" << clause << endl; t << "clean-debug-" << item << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << clause << endl; @@ -444,7 +445,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo else // use generic arm clause clause = configClause(item, releaseBuild, defaultRvctCompilerVersion, genericArmClause); - t << "release-" << item << ": " << BLD_INF_FILENAME << endl; + t << "release-" << item << ": " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)" << clause << endl; t << "clean-release-" << item << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << clause << endl; @@ -454,11 +455,11 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo foreach(QString compilerVersion, allArmCompilerVersions) { QString debugClause = configClause(item, debugBuild, compilerVersion, armClause); QString releaseClause = configClause(item, releaseBuild, compilerVersion, armClause); - t << "debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; + t << "debug-" << item << "-" << compilerVersion << ": " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)" << debugClause << endl; t << "clean-debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << debugClause << endl; - t << "release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; + t << "release-" << item << "-" << compilerVersion << ": " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)" << releaseClause << endl; t << "clean-release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << releaseClause << endl; diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 65b8781..a236028 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -191,11 +191,9 @@ symbian: { qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtOpenVG$${QT_LIBINFIX}.dll graphicssystems_plugins.sources += $$QT_BUILD_TREE/plugins/graphicssystems/qvggraphicssystem$${QT_LIBINFIX}.dll # OpenVG requires Symbian^3 or later - pkg_platform_dependencies -= \ - "[0x101F7961],0,0,0,{\"S60ProductID\"}" \ - "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ - "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ - "[0x1028315F],0,0,0,{\"S60ProductID\"}" + pkg_platform_dependencies = \ + "[0x20022E6D],0,0,0,{\"S60ProductID\"}" \ + "[0x20032DE7],0,0,0,{\"S60ProductID\"}" } contains(QT_CONFIG, opengl) { diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp index 49906e0..76a8756 100644 --- a/tools/linguist/lupdate/main.cpp +++ b/tools/linguist/lupdate/main.cpp @@ -350,6 +350,10 @@ static void processProjects( ProFileEvaluator visitor; visitor.setVerbose(options & Verbose); + QHash lupdateConfig; + lupdateConfig.insert(QLatin1String("CONFIG"), QStringList(QLatin1String("lupdate_run"))); + visitor.addVariables(lupdateConfig); + QFileInfo pfi(proFile); ProFile pro(pfi.absoluteFilePath()); if (!visitor.queryProFile(&pro) || !visitor.accept(&pro)) { -- cgit v0.12 From 54ce087390724b5e03f95b93a5661d0a60765daa Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Fri, 12 Nov 2010 10:47:55 +0100 Subject: Crash fix, when the Object will be deleted during handling a QGestureEvent. The QGestures will now not be deleted immediatly. QGestureManager waits until all QGestureEvents are processed and will delete the QGestures afterwards. Task: QT-4022 Reviewed By: Zeno Albisser --- src/gui/kernel/qgesturemanager.cpp | 10 ++++++++-- src/gui/kernel/qgesturemanager_p.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 5e9a0cb..9519447 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -175,9 +175,9 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ m_activeGestures.remove(g); m_gestureOwners.remove(g); m_gestureTargets.remove(g); + m_gesturesToDelete.insert(g); } - qDeleteAll(gestures); iter = m_objectGestures.erase(iter); } else { ++iter; @@ -385,6 +385,11 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap > m_obsoleteGestures; QHash m_deletedRecognizers; + QSet m_gesturesToDelete; void cleanupGesturesForRemovedRecognizer(QGesture *gesture); QGesture *getState(QObject *widget, QGestureRecognizer *recognizer, -- cgit v0.12 From ad8e7b27427825bee730c55735cd2554407205e4 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 12 Nov 2010 11:28:09 +0200 Subject: Add Location as self signable capability in patch_capabilities.pl Location was not originally included in self-signable set, since in S60 3.1 devices it is not so. However, it is a lesser of two evils to make applications with Location capability not install on 3.1 devices than make them not work correctly on any devices, so Location is now included in the self-signable set in patch_capabilities.pl. Task-number: QTBUG-13891 Reviewed-by: Janne Koskinen --- bin/patch_capabilities.pl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl index 5230480..994d493 100755 --- a/bin/patch_capabilities.pl +++ b/bin/patch_capabilities.pl @@ -78,7 +78,7 @@ sub trim($) { my $nullDevice = "/dev/null"; $nullDevice = "NUL" if ($^O =~ /MSWin/); -my @capabilitiesToAllow = ("LocalServices", "NetworkServices", "ReadUserData", "UserEnvironment", "WriteUserData"); +my @capabilitiesToAllow = ("LocalServices", "NetworkServices", "ReadUserData", "UserEnvironment", "WriteUserData", "Location"); my @capabilitiesSpecified = (); # If arguments were given to the script, @@ -301,6 +301,9 @@ if (@ARGV) $_ = trim($_); if ($capabilitiesToAllow =~ /$_/) { push(@capabilitiesToSet, $_); + if (Location =~ /$_/i) { + print ("Patching: Warning - \"Location\" capability detected for binary: \"$binaryBaseName\". This capability is not self-signable for S60 3rd edition feature pack 1 devices, so installing this package on those devices will most likely not work.\n"); + } } else { push(@capabilitiesToDrop, $_); } @@ -319,6 +322,7 @@ if (@ARGV) # While libraries often have capabilities they do not themselves need just to enable them to be loaded by wider variety of processes, # executables are more likely to need every capability they have been assigned or they won't function correctly. print ("Patching: Executable with capabilities incompatible with self-signing detected: \"$binaryBaseName\". (Incompatible capabilities: \"$capsToDropStr\".) Reducing capabilities is only supported for libraries.\n"); + print ("Patching: Please use a proper developer certificate for signing this package.\n"); exit(1); } else { print ("Patching: The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package and will be removed: \"$capsToDropStr\".\n"); -- cgit v0.12 From 4e0865200244b70e6d4be62b57bdf248342834ba Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Fri, 12 Nov 2010 12:05:04 +0100 Subject: doc: Stated that the destructor does not call close(). Task-number: QTBUG-15277, QTBUG-8231 --- src/corelib/io/qiodevice.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp index 26e587d..68fb2bf 100644 --- a/src/corelib/io/qiodevice.cpp +++ b/src/corelib/io/qiodevice.cpp @@ -395,7 +395,10 @@ QIODevice::QIODevice(QIODevicePrivate &dd, QObject *parent) /*! - Destructs the QIODevice object. + The destructor is virtual, and QIODevice is an abstract base + class. This destructor does not call close(), but the subclass + destructor might. If you are in doubt, call close() before + destroying the QIODevice. */ QIODevice::~QIODevice() { -- cgit v0.12 From 5c129ceed8cb157354250e1a938f0b8af5dfe507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 12 Nov 2010 12:14:11 +0100 Subject: Add back the tests that were removed by commit fcda1b785bd7d86011f49bfe96cb22b04202933f Also add a proper test for the alignment problem --- .../tst_qgraphicsgridlayout.cpp | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index ff49b27..e448e4c 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -2306,6 +2306,11 @@ static QSizeF hfw1(Qt::SizeHint, const QSizeF &constraint) return result; } +static QSizeF hfw2(Qt::SizeHint /*which*/, const QSizeF &constraint) +{ + return QSizeF(constraint.width(), constraint.width()); +} + void tst_QGraphicsGridLayout::geometries_data() { @@ -2361,6 +2366,31 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400) ); + + QTest::newRow("hfw-h408") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .sizeHint(Qt::MinimumSize, QSizeF(40,40)) + .sizeHint(Qt::PreferredSize, QSizeF(50,400)) + .sizeHint(Qt::MaximumSize, QSizeF(500, 500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 408) + << (RectList() + << QRectF(0, 0, 50, 8) << QRectF(50, 0, 50, 8) + << QRectF(0, 8, 50,100) << QRectF(50, 8, 50,400) + ); QTest::newRow("hfw-h410") << (ItemList() << ItemDesc(0,0) .minSize(QSizeF(1,1)) @@ -2386,6 +2416,150 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 10, 50,100) << QRectF(50, 10, 50,400) ); + QTest::newRow("hfw-h470") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .sizeHint(Qt::MinimumSize, QSizeF(40,40)) + .sizeHint(Qt::PreferredSize, QSizeF(50,400)) + .sizeHint(Qt::MaximumSize, QSizeF(500,500)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 470) + << (RectList() + << QRectF(0, 0, 50,70) << QRectF(50, 0, 50,70) + << QRectF(0, 70, 50,100) << QRectF(50, 70, 50,400) + ); + + + // change layout width and verify + QTest::newRow("hfw-w100") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .sizeHint(Qt::MinimumSize, QSizeF(40,40)) + .sizeHint(Qt::PreferredSize, QSizeF(50,400)) + .sizeHint(Qt::MaximumSize, QSizeF(5000,5000)) + .heightForWidth(hfw1) + ) + << QSizeF(100, 401) + << (RectList() + << QRectF( 0, 0, 50, 1) << QRectF( 50, 0, 50, 1) + << QRectF( 0, 1, 50, 100) << QRectF( 50, 1, 50, 400) + ); + + QTest::newRow("hfw-w160") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .sizeHint(Qt::MinimumSize, QSizeF(40,40)) + .sizeHint(Qt::PreferredSize, QSizeF(50,400)) + .sizeHint(Qt::MaximumSize, QSizeF(5000,5000)) + .heightForWidth(hfw1) + ) + << QSizeF(160, 401) + << (RectList() + << QRectF( 0, 0, 80, 100) << QRectF( 80, 0, 80, 100) + << QRectF( 0, 100, 80, 100) << QRectF( 80, 100, 80, 250) + ); + + QTest::newRow("hfw-w500") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(0,1) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,0) + .minSize(QSizeF(1,1)) + .preferredSize(QSizeF(50,10)) + .maxSize(QSizeF(100, 100)) + << ItemDesc(1,1) + .sizeHint(Qt::MinimumSize, QSizeF(40,40)) + .sizeHint(Qt::PreferredSize, QSizeF(50,400)) + .sizeHint(Qt::MaximumSize, QSizeF(5000,5000)) + .heightForWidth(hfw1) + ) + << QSizeF(500, 401) + << (RectList() + << QRectF( 0, 0, 100, 100) << QRectF(100, 0, 100, 100) + << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400, 50) + ); + + QTest::newRow("hfw-alignment-defaults") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(100, 100)) + .maxSize(QSizeF(100, 100)) + .heightForWidth(hfw2) + << ItemDesc(1,0) + .minSize(QSizeF(200, 200)) + .maxSize(QSizeF(200, 200)) + .heightForWidth(hfw2) + << ItemDesc(2,0) + .minSize(QSizeF(300, 300)) + .maxSize(QSizeF(300, 300)) + ) + << QSizeF(300, 600) + << (RectList() + << QRectF(0, 0, 100, 100) + << QRectF(0, 100, 200, 200) + << QRectF(0, 300, 300, 300) + ); + + QTest::newRow("hfw-alignment2") << (ItemList() + << ItemDesc(0,0) + .minSize(QSizeF(100, 100)) + .maxSize(QSizeF(100, 100)) + .heightForWidth(hfw2) + .alignment(Qt::AlignRight) + << ItemDesc(1,0) + .minSize(QSizeF(200, 200)) + .maxSize(QSizeF(200, 200)) + .heightForWidth(hfw2) + .alignment(Qt::AlignHCenter) + << ItemDesc(2,0) + .minSize(QSizeF(300, 300)) + .maxSize(QSizeF(300, 300)) + ) + << QSizeF(300, 600) + << (RectList() + << QRectF(200, 0, 100, 100) + << QRectF( 50, 100, 200, 200) + << QRectF( 0, 300, 300, 300) + ); + } void tst_QGraphicsGridLayout::geometries() -- cgit v0.12 From 8f23788ec21896135f182778cf48362162b88969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 12 Nov 2010 13:16:53 +0100 Subject: Code style cleanup for merge request 847 --- src/gui/graphicsview/qgridlayoutengine.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index 9785b15..b7fe5a0 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -637,7 +637,7 @@ QRectF QGridLayoutItem::geometryWithin(qreal x, qreal y, qreal width, qreal heig if (dynamicConstraintOrientation() == Qt::Vertical) { if (size.width() > cellWidth) size = effectiveMaxSize(QSizeF(cellWidth, -1)); - } else if(size.height() > cellHeight) { + } else if (size.height() > cellHeight) { size = effectiveMaxSize(QSizeF(-1, cellHeight)); } } @@ -1113,7 +1113,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi if (constraintOrientation() == Qt::Vertical) { //We have items whose height depends on their width if (constraint.width() >= 0) { - if(q_cachedDataForStyleInfo != styleInfo) + if (q_cachedDataForStyleInfo != styleInfo) ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); else sizehint_totalBoxes[Hor] = q_totalBoxes[Hor]; @@ -1152,7 +1152,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi if (!sizeHintCalculated) { //No items with height for width, so it doesn't matter which order we do these in - if(q_cachedDataForStyleInfo != styleInfo) { + if (q_cachedDataForStyleInfo != styleInfo) { ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical); } else { @@ -1680,7 +1680,7 @@ void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo, q_heights.resize(rowCount()); q_descents.resize(rowCount()); - if(constraintOrientation() != Qt::Horizontal) { + if (constraintOrientation() != Qt::Horizontal) { //We might have items whose width depends on their height ensureColumnAndRowData(&q_columnData, &q_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal); //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as -- cgit v0.12 From 4ba3dadcae97bfde6216c32cfa339f8f0e0253c7 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 12 Nov 2010 13:16:03 +0100 Subject: qmake vcxproj generator: fix description of custom build tools The description of custom build tools that handle more than one extra compiler cannot be separated by ampersands in Visual Studio 2010. This seems to be a msbuild bug. We'll just circumvent this issue by changing the separator in the description to comma. Task-number: QTBUG-13986 Reviewed-by: ossi --- qmake/generators/win32/msbuild_objectmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index c963f46..c3436b4 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -2507,7 +2507,7 @@ bool VCXFilter::addExtraCompiler(const VCXFilterFile &info) // Output in info.additionalFile ----------- if (!CustomBuildTool.Description.isEmpty()) - CustomBuildTool.Description += " & "; + CustomBuildTool.Description += ", "; CustomBuildTool.Description += cmd_name; CustomBuildTool.CommandLine += VCToolBase::fixCommandLine(cmd.trimmed()); int space = cmd.indexOf(' '); -- cgit v0.12 From f31f50852b8bbfc658708be44e7d495637a63f4f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 10 Nov 2010 19:32:29 +0100 Subject: Fix compilation by s/intptr_t/quintptr/ intptr_t is defined in some C header that we don't include. I don't know which one it is, but without it, it fails to compile with: declarative/qml/qdeclarativecontext.cpp:477: error: 'intptr_t' was not declared in this scope Reviewed-By: Trust Me --- src/declarative/qml/qdeclarativecompiledbindings.cpp | 2 +- src/declarative/qml/qdeclarativecontext.cpp | 4 ++-- src/declarative/qml/qdeclarativeobjectscriptclass.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp index 5f0fd56..fbe5829 100644 --- a/src/declarative/qml/qdeclarativecompiledbindings.cpp +++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp @@ -601,7 +601,7 @@ struct QDeclarativeBindingCompilerPrivate QDeclarativeImports imports; QDeclarativeEnginePrivate *engine; - QString contextName() const { return QLatin1String("$$$SCOPE_") + QString::number((intptr_t)context, 16); } + QString contextName() const { return QLatin1String("$$$SCOPE_") + QString::number((quintptr)context, 16); } bool compile(QDeclarativeJS::AST::Node *); diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp index 1e58a71..3ee0e6f 100644 --- a/src/declarative/qml/qdeclarativecontext.cpp +++ b/src/declarative/qml/qdeclarativecontext.cpp @@ -474,7 +474,7 @@ int QDeclarativeContextPrivate::context_count(QDeclarativeListProperty { QDeclarativeContext *context = static_cast(prop->object); QDeclarativeContextPrivate *d = QDeclarativeContextPrivate::get(context); - int contextProperty = (int)(intptr_t)prop->data; + int contextProperty = (int)(quintptr)prop->data; if (d->propertyValues.at(contextProperty).userType() != qMetaTypeId >()) { return 0; @@ -487,7 +487,7 @@ QObject *QDeclarativeContextPrivate::context_at(QDeclarativeListProperty(prop->object); QDeclarativeContextPrivate *d = QDeclarativeContextPrivate::get(context); - int contextProperty = (int)(intptr_t)prop->data; + int contextProperty = (int)(quintptr)prop->data; if (d->propertyValues.at(contextProperty).userType() != qMetaTypeId >()) { return 0; diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index ea92111..eff59df 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -421,7 +421,7 @@ QScriptValue QDeclarativeObjectScriptClass::tostring(QScriptContext *context, QS ret += QString::fromUtf8(obj->metaObject()->className()); ret += QLatin1String("(0x"); - ret += QString::number((intptr_t)obj,16); + ret += QString::number((quintptr)obj,16); if (!objectName.isEmpty()) { ret += QLatin1String(", \""); -- cgit v0.12 From 4f8d55c493db989984ec64bd05453e14d7a0cab2 Mon Sep 17 00:00:00 2001 From: Philip Van Hoof Date: Mon, 1 Nov 2010 16:59:44 +0100 Subject: Push and pop the thread-default context for the current thread Merge-request: 869 Reviewed-by: Thiago Macieira (cherry picked from commit aa88b7044dd86850e6986aa80104bb38bb7b12eb) --- src/corelib/kernel/qeventdispatcher_glib.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index 8390275..6fa2707 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -311,6 +311,10 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context) } } +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_push_thread_default (mainContext); +#endif + // setup post event source postEventSource = reinterpret_cast(g_source_new(&postEventSourceFuncs, sizeof(GPostEventSource))); @@ -389,6 +393,9 @@ QEventDispatcherGlib::~QEventDispatcherGlib() d->postEventSource = 0; Q_ASSERT(d->mainContext != 0); +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_pop_thread_default (d->mainContext); +#endif g_main_context_unref(d->mainContext); d->mainContext = 0; } -- cgit v0.12 From 18ac111fe5fafed5ac2b5db97def3be2a898df7e Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 10 Nov 2010 11:28:36 +0100 Subject: Added an example for QTest::touchEvent to the documentation. Reviewed-by: trustme --- doc/src/snippets/code/src_qtestlib_qtestcase.cpp | 16 ++++++++++++++++ src/testlib/qtestcase.cpp | 3 +++ 2 files changed, 19 insertions(+) diff --git a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp index 6ae8939..adb0c34 100644 --- a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp +++ b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp @@ -230,5 +230,21 @@ widget.show(); QTest::qWaitForWindowShown(&widget); //! [24] +//! [25] +QWidget widget; + +QTest::touchEvent(&widget) + .press(0, QPoint(10, 10)); +QTest::touchEvent(&widget) + .stationary(0) + .press(1, QPoint(40, 10)); +QTest::touchEvent(&widget) + .move(0, QPoint(12, 12)) + .move(1, QPoint(45, 5)); +QTest::touchEvent(&widget) + .release(0) + .release(1); +//! [25] + } diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 17f1a6b..e3a8726 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -755,6 +755,9 @@ QT_BEGIN_NAMESPACE QTest::touchEvent to create a QTouchEventSequence instance. Add touch events to the sequence by calling press(), move(), release() and stationary(), and let the instance run out of scope to commit the sequence to the event system. + + Example: + \snippet doc/src/snippets/code/src_qtestlib_qtestcase.cpp 25 */ /*! -- cgit v0.12 From 7298b6b708752f68d16088e35e0aa9614052957c Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 11 Nov 2010 10:42:31 +0100 Subject: SSL internals: upon error, read all errors from OpenSSL ... and not only the last one. One call to OpenSSL can produce several errors, which we should always read all. Otherwise, malicious clients could intentionally poison the error queue. Inspired-by: Merge request 2290 Reviewed-by: Olivier Goffart Reviewed-by: Markus Goetz Task-number: QTBUG-14513 --- src/network/ssl/qsslsocket_openssl.cpp | 43 ++++++++++++++++++++-------------- src/network/ssl/qsslsocket_openssl_p.h | 1 + 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 426b07a..adeb6f9 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -81,9 +81,6 @@ QT_BEGIN_NAMESPACE bool QSslSocketPrivate::s_libraryLoaded = false; bool QSslSocketPrivate::s_loadedCiphersAndCerts = false; -// Useful defines -#define SSL_ERRORSTR() QString::fromLocal8Bit(q_ERR_error_string(q_ERR_get_error(), NULL)) - /* \internal From OpenSSL's thread(3) manual page: @@ -273,7 +270,7 @@ init_context: } // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL context (%1)").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL context (%1)").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -298,7 +295,7 @@ init_context: if (!q_SSL_CTX_set_cipher_list(ctx, cipherString.data())) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Invalid or empty cipher list (%1)").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Invalid or empty cipher list (%1)").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -326,14 +323,14 @@ init_context: if (!configuration.localCertificate.isNull()) { // Require a private key as well. if (configuration.privateKey.isNull()) { - q->setErrorString(QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } // Load certificate if (!q_SSL_CTX_use_certificate(ctx, (X509 *)configuration.localCertificate.handle())) { - q->setErrorString(QSslSocket::tr("Error loading local certificate, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error loading local certificate, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } @@ -348,14 +345,14 @@ init_context: else q_EVP_PKEY_set1_DSA(pkey, (DSA *)configuration.privateKey.handle()); if (!q_SSL_CTX_use_PrivateKey(ctx, pkey)) { - q->setErrorString(QSslSocket::tr("Error loading private key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error loading private key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } // Check if the certificate matches the private key. if (!q_SSL_CTX_check_private_key(ctx)) { - q->setErrorString(QSslSocket::tr("Private key does not certify public key, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Private key does not certify public key, %1").arg(getErrorsFromOpenSsl())); emit q->error(QAbstractSocket::UnknownSocketError); return false; } @@ -375,7 +372,7 @@ init_context: // Create and initialize SSL session if (!(ssl = q_SSL_new(ctx))) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL session, %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL session, %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -390,7 +387,7 @@ init_context: writeBio = q_BIO_new(q_BIO_s_mem()); if (!readBio || !writeBio) { // ### Bad error code - q->setErrorString(QSslSocket::tr("Error creating SSL session: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error creating SSL session: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return false; @@ -911,7 +908,7 @@ void QSslSocketBackendPrivate::transmit() int writtenBytes = q_SSL_write(ssl, writeBuffer.readPointer(), nextDataBlockSize); if (writtenBytes <= 0) { // ### Better error handling. - q->setErrorString(QSslSocket::tr("Unable to write data: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Unable to write data: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -974,7 +971,7 @@ void QSslSocketBackendPrivate::transmit() plainSocket->read(data.data(), writtenToBio); } else { // ### Better error handling. - q->setErrorString(QSslSocket::tr("Unable to decrypt data: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Unable to decrypt data: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -1052,7 +1049,7 @@ void QSslSocketBackendPrivate::transmit() case SSL_ERROR_SSL: // error in the SSL library // we do not know exactly what the error is, nor whether we can recover from it, // so just return to prevent an endless loop in the outer "while" statement - q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); return; @@ -1062,7 +1059,7 @@ void QSslSocketBackendPrivate::transmit() // SSL_ERROR_WANT_X509_LOOKUP: can only happen with a // SSL_CTX_set_client_cert_cb(), which we do not call. // So this default case should never be triggered. - q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::UnknownSocketError); emit q->error(QAbstractSocket::UnknownSocketError); break; @@ -1157,8 +1154,7 @@ bool QSslSocketBackendPrivate::startHandshake() // The handshake is not yet complete. break; default: - // ### Handle errors better - q->setErrorString(QSslSocket::tr("Error during SSL handshake: %1").arg(SSL_ERRORSTR())); + q->setErrorString(QSslSocket::tr("Error during SSL handshake: %1").arg(getErrorsFromOpenSsl())); q->setSocketError(QAbstractSocket::SslHandshakeFailedError); #ifdef QSSLSOCKET_DEBUG qDebug() << "QSslSocketBackendPrivate::startHandshake: error!" << q->errorString(); @@ -1334,6 +1330,19 @@ QList QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates return certificates; } +QString QSslSocketBackendPrivate::getErrorsFromOpenSsl() +{ + QString errorString; + unsigned long errNum; + while((errNum = q_ERR_get_error())) { + if (! errorString.isEmpty()) + errorString.append(QLatin1String(", ")); + const char *error = q_ERR_error_string(errNum, NULL); + errorString.append(QString::fromAscii(error)); // error is ascii according to man ERR_error_string + } + return errorString; +} + bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QString &hostname) { int wildcard = cn.indexOf(QLatin1Char('*')); diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h index b59a6c9..878c654 100644 --- a/src/network/ssl/qsslsocket_openssl_p.h +++ b/src/network/ssl/qsslsocket_openssl_p.h @@ -117,6 +117,7 @@ public: static QSslCipher QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher); static QList STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509); Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname); + static QString getErrorsFromOpenSsl(); }; #if defined(Q_OS_SYMBIAN) -- cgit v0.12 From 852fd6b9c05fd082a6a357faae18e63c2687058b Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Thu, 11 Nov 2010 18:30:40 +0100 Subject: Add FreeBSD's certificate bundle to the certificates list. The FreeBSD base system does not ship a certificate bundle, but the ca_root_nss port provides one extracted from Mozilla's root CA list. As discussed in QTBUG-14013, it should be preferrable to have bundle files than separate certificate files, so the path for the certificate has been added directly. Signed-off-by: Raphael Kubo da Costa Merge-request: 896 Reviewed-by: Thiago Macieira --- src/network/ssl/qsslsocket_openssl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index adeb6f9..70ef7ba 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -832,6 +832,7 @@ QList QSslSocketPrivate::systemCaCertificates() systemCerts.append(QSslCertificate::fromPath(it.next())); } systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/pki/tls/certs/ca-bundle.crt"), QSsl::Pem)); // Fedora, Mandriva + systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/share/certs/ca-root-nss.crt"), QSsl::Pem)); // FreeBSD's ca_root_nss #elif defined(Q_OS_SYMBIAN) QList certs; -- cgit v0.12 From ba086383365c16f68c7032fca7631570f61de648 Mon Sep 17 00:00:00 2001 From: Sam Magnuson Date: Mon, 8 Nov 2010 13:21:05 -0800 Subject: Implement brush transformations for directfb. Merge-request: 915 Reviewed-by: Donald Carr (cherry picked from commit b62079cf17044e09999eb1808788926ea921fb05) --- .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 42 ++++++++++++++-------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index c16a242..85ff925 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -68,6 +68,14 @@ public: Matrix_BlitsUnsupported = (Matrix_NegativeScale|Matrix_RectsUnsupported) }; + inline static uint getTransformationType(const QTransform &transform) { + int ret = transform.type(); + if (qMin(transform.m11(), transform.m22()) < 0) { + ret |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; + } + return ret; + } + enum CompositionModeStatus { PorterDuff_None = 0x0, PorterDuff_Supported = 0x1, @@ -99,7 +107,7 @@ public: inline bool isSimpleBrush(const QBrush &brush) const; - void drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &pos); + void drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &pos, const QTransform &pixmapTransform); void blit(const QRectF &dest, IDirectFBSurface *surface, const QRectF &src); inline bool supportsStretchBlit() const; @@ -707,7 +715,8 @@ void QDirectFBPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap pix(data); QRasterPaintEngine::drawTiledPixmap(r, pix, offset); } else { - CLIPPED_PAINT(d->drawTiledPixmap(r, pixmap, offset)); + QTransform transform(state()->matrix); + CLIPPED_PAINT(d->drawTiledPixmap(r, pixmap, offset, transform)); } } @@ -827,9 +836,14 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush) return; } case Qt::TexturePattern: { + const QPointF &brushOrigin = state()->brushOrigin; + const QTransform stateTransform = state()->matrix; + QTransform transform(stateTransform); + transform.translate(brushOrigin.x(), brushOrigin.y()); + transform = brush.transform() * transform; if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_Supported) - || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) - || (!d->supportsStretchBlit() && state()->matrix.isScaling())) { + || (QDirectFBPaintEnginePrivate::getTransformationType(transform) & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) + || (!d->supportsStretchBlit() && transform.isScaling())) { break; } @@ -837,7 +851,7 @@ void QDirectFBPaintEngine::fillRect(const QRectF &rect, const QBrush &brush) if (texture.pixmapData()->classId() != QPixmapData::DirectFBClass) break; - CLIPPED_PAINT(d->drawTiledPixmap(rect, texture, rect.topLeft() - state()->brushOrigin)); + CLIPPED_PAINT(d->drawTiledPixmap(stateTransform.mapRect(rect), texture, rect.topLeft() - brushOrigin, transform)); return; } default: break; @@ -948,10 +962,7 @@ void QDirectFBPaintEnginePrivate::unlock(QDirectFBPaintDevice *device) void QDirectFBPaintEnginePrivate::setTransform(const QTransform &transform) { - transformationType = transform.type(); - if (qMin(transform.m11(), transform.m22()) < 0) { - transformationType |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; - } + transformationType = getTransformationType(transform); setPen(q->state()->pen); } @@ -1153,10 +1164,12 @@ static inline qreal fixCoord(qreal rect_pos, qreal pixmapSize, qreal offset) return pos; } -void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, const QPointF &off) +void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPixmap &pixmap, + const QPointF &off, const QTransform &pixmapTransform) { - Q_ASSERT(!(transformationType & Matrix_BlitsUnsupported)); const QTransform &transform = q->state()->matrix; + Q_ASSERT(!(getTransformationType(transform) & Matrix_BlitsUnsupported) && + !(getTransformationType(pixmapTransform) & Matrix_BlitsUnsupported)); const QRect destinationRect = transform.mapRect(dest).toRect().normalized(); QRect newClip = destinationRect; if (!currentClip.isEmpty()) @@ -1173,7 +1186,7 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix }; surface->SetClip(surface, &clip); - QPointF offset = off; + QPointF offset = pixmapTransform.inverted().map(off); Q_ASSERT(transform.type() <= QTransform::TxScale); QPixmapData *data = pixmap.pixmapData(); Q_ASSERT(data->classId() == QPixmapData::DirectFBClass); @@ -1187,13 +1200,14 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix prepareForBlit(blitFlags); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); - if (transform.isScaling()) { + IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); + if (transform.isScaling() || pixmapTransform.isScaling()) { Q_ASSERT(supportsStretchBlit()); Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); offset.rx() *= transform.m11(); offset.ry() *= transform.m22(); - const QSizeF mappedSize(pixmapSize.width() * transform.m11(), pixmapSize.height() * transform.m22()); + const QSizeF mappedSize(pixmapSize.width() * pixmapTransform.m11(), pixmapSize.height() * pixmapTransform.m22()); qreal y = fixCoord(destinationRect.y(), mappedSize.height(), offset.y()); const qreal startX = fixCoord(destinationRect.x(), mappedSize.width(), offset.x()); while (y <= destinationRect.bottom()) { -- cgit v0.12 From 4034f4e99f4821947c8b4fd5e1470964ff9da740 Mon Sep 17 00:00:00 2001 From: Donald Carr Date: Thu, 11 Nov 2010 17:33:36 +0000 Subject: Minor adjustments to merge-request 915 Fix minor stylistic issue raised by Oswald Removed duplicate sourceSurface pointer introduced by sibling merge request --- src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index 85ff925..ceed7ae 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -68,7 +68,8 @@ public: Matrix_BlitsUnsupported = (Matrix_NegativeScale|Matrix_RectsUnsupported) }; - inline static uint getTransformationType(const QTransform &transform) { + inline static uint getTransformationType(const QTransform &transform) + { int ret = transform.type(); if (qMin(transform.m11(), transform.m22()) < 0) { ret |= QDirectFBPaintEnginePrivate::Matrix_NegativeScale; @@ -1200,7 +1201,6 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix prepareForBlit(blitFlags); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); - IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); if (transform.isScaling() || pixmapTransform.isScaling()) { Q_ASSERT(supportsStretchBlit()); Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); -- cgit v0.12 From e4d429f955a9db248b71c95f59902be01eaed062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Fri, 12 Nov 2010 14:34:46 +0100 Subject: Remove driver bug work-around from GL 2 paint engine. For platforms where the driver bug isn't fixed, the work-around should be done by packagers instead. Reviewed-by: Gunnar Sletta --- src/opengl/gl2paintengineex/qglengineshadersource_p.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h index a7ece0f..0d30f9a 100644 --- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h @@ -340,12 +340,7 @@ static const char* const qglslImageSrcFragmentShader = "\n\ uniform lowp sampler2D imageTexture; \n\ lowp vec4 srcPixel() \n\ { \n" -#ifdef QT_OPENGL_ES_2 - // work-around for driver bug - "return 1.0 * texture2D(imageTexture, textureCoords); \n" -#else "return texture2D(imageTexture, textureCoords); \n" -#endif "}\n"; static const char* const qglslCustomSrcFragmentShader = "\n\ -- cgit v0.12 From 41cc62e076c9fc01d9cd2c66325a785d1643f6b6 Mon Sep 17 00:00:00 2001 From: Ville Pernu Date: Fri, 12 Nov 2010 14:08:54 +0200 Subject: Fix for KERN-EXEC 0 caused by QNetworkAccessManager::get QT-4155 bug. Canceling Network Session before canceling connection notifier notifications causes a call to an invalid RConnection instance. Fix: CanceL Network session after canceling notifications. --- src/plugins/bearer/symbian/qnetworksession_impl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.cpp b/src/plugins/bearer/symbian/qnetworksession_impl.cpp index c5a39e1..53a5b4d 100644 --- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp +++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp @@ -1151,10 +1151,10 @@ void QNetworkSessionPrivateImpl::RunL() serviceConfig = QNetworkConfiguration(); iError = QNetworkSession::InvalidConfigurationError; QT_TRYCATCH_LEAVING(emit QNetworkSessionPrivate::error(iError)); - Cancel(); if (ipConnectionNotifier) { ipConnectionNotifier->StopNotifications(); } + Cancel(); QT_TRYCATCH_LEAVING(syncStateWithInterface()); break; case KErrCancel: // Connection attempt cancelled @@ -1173,10 +1173,10 @@ void QNetworkSessionPrivateImpl::RunL() iError = QNetworkSession::UnknownSessionError; } QT_TRYCATCH_LEAVING(emit QNetworkSessionPrivate::error(iError)); - Cancel(); if (ipConnectionNotifier) { ipConnectionNotifier->StopNotifications(); } + Cancel(); QT_TRYCATCH_LEAVING(syncStateWithInterface()); break; } @@ -1268,10 +1268,10 @@ bool QNetworkSessionPrivateImpl::newState(QNetworkSession::State newState, TUint serviceConfig = QNetworkConfiguration(); iError = QNetworkSession::SessionAbortedError; emit QNetworkSessionPrivate::error(iError); - Cancel(); if (ipConnectionNotifier) { ipConnectionNotifier->StopNotifications(); } + Cancel(); // Start handling IAP state change signals from QNetworkConfigurationManagerPrivate iHandleStateNotificationsFromManager = true; emitSessionClosed = true; // Emit SessionClosed after state change has been reported -- cgit v0.12 From 8593133729ca2a92cd5dcc87c5e56031708949bf Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 12 Nov 2010 13:16:03 +0100 Subject: qmake vcxproj generator: fix description of custom build tools The description of custom build tools that handle more than one extra compiler cannot be separated by ampersands in Visual Studio 2010. This seems to be a msbuild bug. We'll just circumvent this issue by changing the separator in the description to comma. Task-number: QTBUG-13986 Reviewed-by: ossi --- qmake/generators/win32/msbuild_objectmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index c963f46..c3436b4 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -2507,7 +2507,7 @@ bool VCXFilter::addExtraCompiler(const VCXFilterFile &info) // Output in info.additionalFile ----------- if (!CustomBuildTool.Description.isEmpty()) - CustomBuildTool.Description += " & "; + CustomBuildTool.Description += ", "; CustomBuildTool.Description += cmd_name; CustomBuildTool.CommandLine += VCToolBase::fixCommandLine(cmd.trimmed()); int space = cmd.indexOf(' '); -- cgit v0.12 From b9395570df56ae597514d294473ce0c6ba3bec06 Mon Sep 17 00:00:00 2001 From: aavit Date: Fri, 12 Nov 2010 15:29:16 +0100 Subject: Filter runs on git branch and repo --- tests/arthur/baselineserver/src/baselineserver.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index 2a2fc08..eb756fc 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -149,7 +149,6 @@ void BaselineHandler::receiveRequest() proto.socket.disconnectFromHost(); return; } - connectionEstablished = true; QString logMsg; foreach (QString key, plat.keys()) { if (key != PI_HostName && key != PI_HostAddress) @@ -157,6 +156,20 @@ void BaselineHandler::receiveRequest() } qDebug() << runId << logtime() << "Connection established with" << plat.value(PI_HostName) << "[" << qPrintable(plat.value(PI_HostAddress)) << "]" << logMsg; + + // Filter on branch + QString branch = plat.value(PI_PulseGitBranch); + if (branch.isEmpty()) { + // Not run by Pulse, i.e. ad hoc run: Ok. + } + else if (branch != QLS("master-integration") || !plat.value(PI_GitCommit).contains(QLS("Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into master-integration"))) { + qDebug() << runId << logtime() << "Did not pass branch/staging repo filter, disconnecting."; + // TBD: Cleaner termination + proto.socket.disconnectFromHost(); + return; + } + + connectionEstablished = true; return; } -- cgit v0.12 From 57ad39ec62175eeea023ca802448ebb1605dca23 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 12 Nov 2010 16:08:35 +0100 Subject: Don't pack Harfbuzz structs, this causes unaligned access crashes. The memory-greediest structs have been reordered anyway, so the gain from forcibly packing them is mostly negligible. Task-number: QTBUG-13395 Reviewed-by: Thiago Macieira --- src/3rdparty/harfbuzz/src/harfbuzz-buffer.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h | 9 --------- src/3rdparty/harfbuzz/src/harfbuzz-gdef.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-global.h | 4 ---- src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-gsub.h | 9 --------- src/3rdparty/harfbuzz/src/harfbuzz-open.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-shaper.h | 8 -------- src/3rdparty/harfbuzz/src/harfbuzz-stream.h | 8 -------- 10 files changed, 78 deletions(-) diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-buffer.h b/src/3rdparty/harfbuzz/src/harfbuzz-buffer.h index 0d7c2c2..0d631b2 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-buffer.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-buffer.h @@ -32,10 +32,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - typedef struct HB_GlyphItemRec_ { HB_UInt gindex; HB_UInt properties; @@ -93,10 +89,6 @@ hb_buffer_add_glyph( HB_Buffer buffer, HB_UInt properties, HB_UInt cluster ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_BUFFER_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h b/src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h index 2a6d958..94e9b43 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gdef-private.h @@ -33,11 +33,6 @@ HB_BEGIN_HEADER - -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* Attachment related structures */ struct HB_AttachPoint_ @@ -126,10 +121,6 @@ _HB_GDEF_LoadMarkAttachClassDef_From_LookupFlags( HB_GDEFHeader* gdef, HB_Lookup* lo, HB_UShort num_lookups ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_GDEF_PRIVATE_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gdef.h b/src/3rdparty/harfbuzz/src/harfbuzz-gdef.h index f9a03dd..ccb6bf9 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gdef.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gdef.h @@ -31,10 +31,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* GDEF glyph properties. Note that HB_GDEF_COMPONENT has no corresponding * flag in the LookupFlag field. */ #define HB_GDEF_BASE_GLYPH 0x0002 @@ -131,10 +127,6 @@ HB_Error HB_GDEF_Build_ClassDefinition( HB_GDEFHeader* gdef, HB_UShort* glyph_array, HB_UShort* class_array ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_GDEF_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-global.h b/src/3rdparty/harfbuzz/src/harfbuzz-global.h index bccd6a2..d4e6b46 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-global.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-global.h @@ -39,10 +39,6 @@ #define HB_END_HEADER /* nothing */ #endif -#if defined(__GNUC__) || defined(_MSC_VER) -#define HB_USE_PACKED_STRUCTS -#endif - HB_BEGIN_HEADER #ifndef FALSE diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h b/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h index 39f3159..63ba907 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h @@ -32,10 +32,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* shared tables */ #define VR_X_PLACEMENT_DEVICE 0 @@ -720,10 +716,6 @@ HB_INTERNAL void _HB_GPOS_Free_SubTable( HB_GPOS_SubTable* st, HB_UShort lookup_type ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_GPOS_PRIVATE_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h b/src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h index 7eb329e..df0c3f6 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gsub-private.h @@ -32,10 +32,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - typedef union HB_GSUB_SubTable_ HB_GSUB_SubTable; /* LookupType 1 */ @@ -474,10 +470,6 @@ HB_INTERNAL void _HB_GSUB_Free_SubTable( HB_GSUB_SubTable* st, HB_UShort lookup_type ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_GSUB_PRIVATE_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gsub.h b/src/3rdparty/harfbuzz/src/harfbuzz-gsub.h index b00df44..6e452bd 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gsub.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gsub.h @@ -31,11 +31,6 @@ HB_BEGIN_HEADER - -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* Lookup types for glyph substitution */ #define HB_GSUB_LOOKUP_SINGLE 1 @@ -139,10 +134,6 @@ HB_Error HB_GSUB_Register_Alternate_Function( HB_GSUBHeader* gsub, HB_Error HB_GSUB_Apply_String( HB_GSUBHeader* gsub, HB_Buffer buffer ); -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_GSUB_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-open.h b/src/3rdparty/harfbuzz/src/harfbuzz-open.h index 4ba6cf5..9ad7c98 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-open.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-open.h @@ -30,10 +30,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* Use this if a feature applies to all glyphs */ #define HB_ALL_GLYPHS 0xFFFF @@ -279,10 +275,6 @@ enum HB_Type_ typedef enum HB_Type_ HB_Type; -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif /* HARFBUZZ_OPEN_H */ diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.h b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.h index ab5c07a..470e27b 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.h @@ -34,10 +34,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - /* using anything else than signed or unsigned for bitfields in C is non standard, but accepted by almost all compilers. And it gives a significant reduction in @@ -258,10 +254,6 @@ typedef struct HB_Font_ { void *userData; } HB_FontRec; -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - typedef struct HB_ShaperItem_ HB_ShaperItem; struct HB_ShaperItem_ { diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-stream.h b/src/3rdparty/harfbuzz/src/harfbuzz-stream.h index a155cc2..cfbfb1c 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-stream.h +++ b/src/3rdparty/harfbuzz/src/harfbuzz-stream.h @@ -30,10 +30,6 @@ HB_BEGIN_HEADER -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(push, 1) -#endif - typedef struct HB_StreamRec_ { HB_Byte* base; @@ -42,10 +38,6 @@ typedef struct HB_StreamRec_ HB_UInt pos; } HB_StreamRec; -#ifdef HB_USE_PACKED_STRUCTS -#pragma pack(pop) -#endif - HB_END_HEADER #endif -- cgit v0.12 From 76055d4e4a3023ef6390d85a02688bb11df57284 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Sat, 13 Nov 2010 14:38:49 +0100 Subject: QNAM HTTP: Ignore double content-length headers Task-number: QTBUG-15311 Reviewed-by: ogoffart --- src/network/access/qhttpnetworkheader.cpp | 12 +++++++++++- src/network/access/qnetworkrequest.cpp | 10 ++++++++-- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 22 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/network/access/qhttpnetworkheader.cpp b/src/network/access/qhttpnetworkheader.cpp index 669f9cf..3eb2f3b 100644 --- a/src/network/access/qhttpnetworkheader.cpp +++ b/src/network/access/qhttpnetworkheader.cpp @@ -60,7 +60,17 @@ QHttpNetworkHeaderPrivate::QHttpNetworkHeaderPrivate(const QHttpNetworkHeaderPri qint64 QHttpNetworkHeaderPrivate::contentLength() const { bool ok = false; - QByteArray value = headerField("content-length"); + // We are not using the headerField() method here because servers might send us multiple content-length + // headers which is crap (see QTBUG-15311). Therefore just take the first content-length header field. + QByteArray value; + QList >::ConstIterator it = fields.constBegin(), + end = fields.constEnd(); + for ( ; it != end; ++it) + if (qstricmp("content-length", it->first) == 0) { + value = it->second; + break; + } + qint64 length = value.toULongLong(&ok); if (ok) return length; diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index b761af5..162392d 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -899,10 +899,16 @@ void QNetworkHeadersPrivate::parseAndSetHeader(const QByteArray &key, const QByt // is it a known header? QNetworkRequest::KnownHeaders parsedKey = parseHeaderName(key); if (parsedKey != QNetworkRequest::KnownHeaders(-1)) { - if (value.isNull()) + if (value.isNull()) { cookedHeaders.remove(parsedKey); - else + } else if (parsedKey == QNetworkRequest::ContentLengthHeader + && cookedHeaders.contains(QNetworkRequest::ContentLengthHeader)) { + // Only set the cooked header "Content-Length" once. + // See bug QTBUG-15311 + } else { cookedHeaders.insert(parsedKey, parseHeaderValue(parsedKey, value)); + } + } } diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index a986438..41b3e0a 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -301,6 +301,8 @@ private Q_SLOTS: void httpWithNoCredentialUsage(); + void qtbug15311doubleContentLength(); + // NOTE: This test must be last! void parentingRepliesToTheApp(); }; @@ -4724,6 +4726,26 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); } +void tst_QNetworkReply::qtbug15311doubleContentLength() +{ + QByteArray response("HTTP/1.0 200 OK\r\nContent-Length: 3\r\nServer: bogus\r\nContent-Length: 3\r\n\r\nABC"); + MiniHttpServer server(response); + server.doClose = true; + + QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); + QNetworkReplyPtr reply = manager.get(request); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + QVERIFY(reply->isFinished()); + QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->size(), qint64(3)); + QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(3)); + QCOMPARE(reply->rawHeader("Content-length"), QByteArray("3, 3")); + QCOMPARE(reply->readAll(), QByteArray("ABC")); +} + // NOTE: This test must be last testcase in tst_qnetworkreply! -- cgit v0.12 From 976f6e05d1220f6292633b28c174c0c96573f09a Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 15 Nov 2010 11:23:52 +1000 Subject: Remove unneeded semicolons. Extra semicolons break building with sun studio. Task-number: QTBUG-15326 Reviewed-by: Alan Alpert --- tests/auto/declarative/qdeclarativeecmascript/testtypes.h | 2 +- tests/auto/declarative/qdeclarativelanguage/testtypes.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index 40451c3..15c310f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -92,7 +92,7 @@ class MyQmlObject : public QObject Q_PROPERTY(QDeclarativeListProperty objectListProperty READ objectListProperty CONSTANT) Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty) Q_PROPERTY(QRegExp regExp READ regExp WRITE setRegExp) - Q_PROPERTY(int nonscriptable READ nonscriptable WRITE setNonscriptable SCRIPTABLE false); + Q_PROPERTY(int nonscriptable READ nonscriptable WRITE setNonscriptable SCRIPTABLE false) public: MyQmlObject(): myinvokableObject(0), m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {} diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h index 2b23a49..f8d785c 100644 --- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h +++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h @@ -112,7 +112,7 @@ class MyQmlObject : public QObject, public MyInterface Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType) Q_PROPERTY(MyQmlObject *qmlobjectProperty READ qmlobject WRITE setQmlobject) Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal) - Q_PROPERTY(int nonScriptable READ nonScriptable WRITE setNonScriptable SCRIPTABLE false); + Q_PROPERTY(int nonScriptable READ nonScriptable WRITE setNonScriptable SCRIPTABLE false) Q_INTERFACES(MyInterface) public: -- cgit v0.12 From b60d1cee999ff01a93521e831a2c58679559382e Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 15 Nov 2010 13:24:39 +1000 Subject: Fix failing visual tests One case of non-standardized text, and one case of what is presumably random number generation. Task-number: QTBUG-14792 --- .../qmlvisual/qdeclarativeparticles/particles.qml | 1 + .../qdeclarativetext/font/BorderedText.qml | 8 ++++ .../qmlvisual/qdeclarativetext/font/TestText.qml | 13 ------ .../font/data-X11/plaintext3.0.png | Bin 0 -> 29478 bytes .../qdeclarativetext/font/data-X11/plaintext3.qml | 11 ++++++ .../qmlvisual/qdeclarativetext/font/plaintext3.qml | 44 ++++++++++----------- 6 files changed, 42 insertions(+), 35 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.qml diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml index 78ba061..38506a0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml @@ -2,6 +2,7 @@ import QtQuick 1.0 import Qt.labs.particles 1.0 Rectangle { + property string skip: "May contain random numbers" width: 640; height: 480; color: "black" Particles { id:particlesAneverEmitting diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml new file mode 100644 index 0000000..6514694 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml @@ -0,0 +1,8 @@ +import QtQuick 1.0 +import "../../shared" 1.0 + +TestText { + property color bcolor: "blue" + text: "The quick brown fox\njumps over\nthe lazy dog." + Rectangle { id: border; color: "transparent"; border.color: bcolor; anchors.fill: parent; opacity: 0.2 } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml deleted file mode 100644 index 690cb15..0000000 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml +++ /dev/null @@ -1,13 +0,0 @@ -import QtQuick 1.0 - -Text { - id: testText - - property color bcolor: "blue" - - text: "The quick brown fox\njumps over\nthe lazy dog." - font.family: "Helvetica" - font.pointSize: 16 - - Rectangle { id: borderr; color: "transparent"; border.color: bcolor; anchors.fill: parent; opacity: 0.2 } -} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png new file mode 100644 index 0000000..d7de152 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.qml new file mode 100644 index 0000000..13f413a --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "plaintext3.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml index 087dfbe..715ada6 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 Rectangle { id: main - width: 800; height: 600 + width: 800; height: 400 Grid { @@ -12,51 +12,51 @@ Rectangle { Column { spacing: 4 - TestText { } - TestText { horizontalAlignment: Text.AlignHCenter } - TestText { horizontalAlignment: Text.AlignRight } + BorderedText { } + BorderedText { horizontalAlignment: Text.AlignHCenter } + BorderedText { horizontalAlignment: Text.AlignRight } } Column { spacing: 4 - TestText { wrapMode: Text.Wrap } - TestText { horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap } - TestText { horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap } + BorderedText { wrapMode: Text.Wrap } + BorderedText { horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap } + BorderedText { horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap } } Column { spacing: 4 - TestText { wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } } Column { spacing: 4 - TestText { width: 230; wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { width: 230; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { width: 230; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 230; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 230; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 230; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } } Column { spacing: 4 - TestText { width: 120; wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { width: 120; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } - TestText { width: 120; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 120; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 120; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap; elide: Text.ElideRight } + BorderedText { width: 120; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap; elide: Text.ElideRight } } Column { spacing: 4 - TestText { width: 120; wrapMode: Text.Wrap } - TestText { width: 120; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap } - TestText { width: 120; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap } + BorderedText { width: 120; wrapMode: Text.Wrap } + BorderedText { width: 120; horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap } + BorderedText { width: 120; horizontalAlignment: Text.AlignRight; wrapMode: Text.Wrap } } Column { spacing: 4 - TestText { width: 120 } - TestText { width: 120; horizontalAlignment: Text.AlignHCenter } - TestText { width: 120; horizontalAlignment: Text.AlignRight } + BorderedText { width: 120 } + BorderedText { width: 120; horizontalAlignment: Text.AlignHCenter } + BorderedText { width: 120; horizontalAlignment: Text.AlignRight } } } } -- cgit v0.12 From 7f00736ab2c4471fb11c12505f905526fa86c059 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 15 Nov 2010 14:44:50 +1000 Subject: ListView.SnapToItem with ListView.StrictlyEnforceRange is broken. The bounds behavior with ListView.StrictlyEnforceRange enabled should not be affected by snapping behavior in fixup() since ListView.StrictlyEnforceRange has a stronger positioning policy. Task-number: QTBUG-15329 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativelistview.cpp | 54 ++++++++-------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 94b1cb3..c7b027d 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1161,30 +1161,35 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m int oldDuration = fixupDuration; fixupDuration = moveReason == Mouse ? fixupDuration : 0; - if (snapMode != QDeclarativeListView::NoSnap) { + if (currentItem && haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) { + updateHighlight(); + qreal pos = currentItem->itemPosition(); + qreal viewPos = position(); + if (viewPos < pos + currentItem->itemSize() - highlightRangeEnd) + viewPos = pos + currentItem->itemSize() - highlightRangeEnd; + if (viewPos > pos - highlightRangeStart) + viewPos = pos - highlightRangeStart; + + timeline.reset(data.move); + if (viewPos != position()) { + if (fixupDuration) + timeline.move(data.move, -viewPos, QEasingCurve(QEasingCurve::InOutQuad), fixupDuration/2); + else + timeline.set(data.move, -viewPos); + } + vTime = timeline.time(); + } else if (snapMode != QDeclarativeListView::NoSnap) { FxListItem *topItem = snapItemAt(position()+highlightRangeStart); FxListItem *bottomItem = snapItemAt(position()+highlightRangeEnd); qreal pos; - if (topItem && bottomItem && haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) { - qreal topPos = qMin(topItem->position() - highlightRangeStart, -maxExtent); - qreal bottomPos = qMax(bottomItem->position() - highlightRangeEnd, -minExtent); - pos = qAbs(data.move + topPos) < qAbs(data.move + bottomPos) ? topPos : bottomPos; - } else if (topItem) { + if (topItem) { pos = qMax(qMin(topItem->position() - highlightRangeStart, -maxExtent), -minExtent); } else if (bottomItem) { - pos = qMax(qMin(bottomItem->position() - highlightRangeStart, -maxExtent), -minExtent); + pos = qMax(qMin(bottomItem->position() - highlightRangeStart, -maxExtent), -minExtent); } else { fixupDuration = oldDuration; return; } - if (currentItem && haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) { - updateHighlight(); - qreal currPos = currentItem->itemPosition(); - if (pos < currPos + currentItem->itemSize() - highlightRangeEnd) - pos = currPos + currentItem->itemSize() - highlightRangeEnd; - if (pos > currPos - highlightRangeStart) - pos = currPos - highlightRangeStart; - } qreal dist = qAbs(data.move + pos); if (dist > 0) { @@ -1195,25 +1200,6 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m timeline.set(data.move, -pos); vTime = timeline.time(); } - } else if (haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) { - if (currentItem) { - updateHighlight(); - qreal pos = currentItem->itemPosition(); - qreal viewPos = position(); - if (viewPos < pos + currentItem->itemSize() - highlightRangeEnd) - viewPos = pos + currentItem->itemSize() - highlightRangeEnd; - if (viewPos > pos - highlightRangeStart) - viewPos = pos - highlightRangeStart; - - timeline.reset(data.move); - if (viewPos != position()) { - if (fixupDuration) - timeline.move(data.move, -viewPos, QEasingCurve(QEasingCurve::InOutQuad), fixupDuration/2); - else - timeline.set(data.move, -viewPos); - } - vTime = timeline.time(); - } } else { QDeclarativeFlickablePrivate::fixup(data, minExtent, maxExtent); } -- cgit v0.12 From 153991a45647755c0186f985da255caa09444ff4 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 15 Nov 2010 17:35:12 +1000 Subject: ListView: items with size < 1.0 were layed out incorrectly. If the size of an item was less than one its endPosition() was less than its position(), which caused incorrect layout (overlapping items). Task-number: QTBUG-15242 Reviewed-by: Yann Bodson --- .../graphicsitems/qdeclarativelistview.cpp | 6 ++-- .../qdeclarativelistview/data/sizelessthan1.qml | 26 ++++++++++++++++ .../tst_qdeclarativelistview.cpp | 36 ++++++++++++++++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativelistview/data/sizelessthan1.qml diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index c7b027d..6be49ba 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -124,8 +124,8 @@ public: } qreal endPosition() const { return (view->orientation() == QDeclarativeListView::Vertical - ? item->y() + (item->height() > 0 ? item->height() : 1) - : item->x() + (item->width() > 0 ? item->width() : 1)) - 1; + ? item->y() + (item->height() >= 1.0 ? item->height() : 1) + : item->x() + (item->width() >= 1.0 ? item->width() : 1)) - 1; } void setPosition(qreal pos) { if (view->orientation() == QDeclarativeListView::Vertical) { @@ -736,7 +736,7 @@ void QDeclarativeListViewPrivate::layout() } if (!visibleItems.isEmpty()) { qreal oldEnd = visibleItems.last()->endPosition(); - qreal pos = visibleItems.first()->endPosition() + spacing + 1; + qreal pos = visibleItems.first()->position() + visibleItems.first()->size() + spacing; for (int i=1; i < visibleItems.count(); ++i) { FxListItem *item = visibleItems.at(i); item->setPosition(pos); diff --git a/tests/auto/declarative/qdeclarativelistview/data/sizelessthan1.qml b/tests/auto/declarative/qdeclarativelistview/data/sizelessthan1.qml new file mode 100644 index 0000000..77bfef8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/data/sizelessthan1.qml @@ -0,0 +1,26 @@ +import QtQuick 1.0 + +Rectangle { + width: 240 + height: 320 + color: "#ffffff" + Component { + id: myDelegate + Rectangle { + id: wrapper + objectName: "wrapper" + height: 0.5 + width: 240 + color: ((index % 2) == 1 ? "red" : "blue") + } + } + ListView { + id: list + objectName: "list" + focus: true + width: 240 + height: 320 + model: testModel + delegate: myDelegate + } +} diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 79fef7a..a4b4f21 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -100,6 +100,7 @@ private slots: void QTBUG_11105(); void footer(); void resizeView(); + void sizeLessThan1(); private: template void items(); @@ -1732,6 +1733,41 @@ void tst_QDeclarativeListView::resizeView() QCOMPARE(heightRatio.toReal(), 0.25); } +void tst_QDeclarativeListView::sizeLessThan1() +{ + QDeclarativeView *canvas = createView(); + + TestModel model; + for (int i = 0; i < 30; i++) + model.addItem("Item" + QString::number(i), ""); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + TestObject *testObject = new TestObject; + ctxt->setContextProperty("testObject", testObject); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/sizelessthan1.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + // Confirm items positioned correctly + int itemCount = findItems(contentItem, "wrapper").count(); + for (int i = 0; i < model.count() && i < itemCount; ++i) { + QDeclarativeItem *item = findItem(contentItem, "wrapper", i); + if (!item) qWarning() << "Item" << i << "not found"; + QTRY_VERIFY(item); + QTRY_COMPARE(item->y(), i*0.5); + } + + delete canvas; +} + void tst_QDeclarativeListView::qListModelInterface_items() { items(); -- cgit v0.12 From 113a23a61b3ac840cfdec2d2297b7881f495c924 Mon Sep 17 00:00:00 2001 From: Perttu Pohjonen Date: Mon, 15 Nov 2010 09:49:32 +0200 Subject: Fix for E32User-CBASE 46 Panic when using CActiveSchedulerWait Fixing the initial problem of this error opened up a possibility to start a new WLAN scan while there was one still ongoing. This caused a crash. Task-number: QT-3996 --- src/plugins/bearer/symbian/symbianengine.cpp | 41 ++++++++++++++++++++-------- src/plugins/bearer/symbian/symbianengine.h | 6 ++-- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp index b4dfc4d..33fa508 100644 --- a/src/plugins/bearer/symbian/symbianengine.cpp +++ b/src/plugins/bearer/symbian/symbianengine.cpp @@ -135,10 +135,9 @@ void SymbianEngine::initialize() updateConfigurations(); updateStatesToSnaps(); - updateAvailableAccessPoints(); // On first time updates synchronously (without WLAN scans) + updateAvailableAccessPoints(); // On first time updates (without WLAN scans) // Start monitoring IAP and/or SNAP changes in Symbian CommsDB startCommsDatabaseNotifications(); - iFirstUpdate = false; } SymbianEngine::~SymbianEngine() @@ -790,6 +789,12 @@ void SymbianEngine::accessPointScanningReady(TBool scanSuccessful, TConnMonIapIn mutex.unlock(); emit updateCompleted(); mutex.lock(); + } else { + iFirstUpdate = false; + if (iScanInQueue) { + iScanInQueue = EFalse; + updateAvailableAccessPoints(); + } } } @@ -976,7 +981,7 @@ void SymbianEngine::RunL() QMutexLocker locker(&mutex); if (iStatus != KErrCancel) { - // By default, start relistening notifications. Stop only if interesting event occurred. + // By default, start relistening notifications. Stop only if interesting event occured. iWaitingCommsDatabaseNotifications = true; RDbNotifier::TEvent event = STATIC_CAST(RDbNotifier::TEvent, iStatus.Int()); switch (event) { @@ -1356,27 +1361,39 @@ AccessPointsAvailabilityScanner::~AccessPointsAvailabilityScanner() void AccessPointsAvailabilityScanner::DoCancel() { iConnectionMonitor.CancelAsyncRequest(EConnMonGetPckgAttribute); + iScanActive = EFalse; + iOwner.iScanInQueue = EFalse; } void AccessPointsAvailabilityScanner::StartScanning() { - if (iOwner.iFirstUpdate) { - // On first update (the mgr is being instantiated) update only those bearers who - // don't need time-consuming scans (WLAN). - // Note: EBearerIdWCDMA covers also GPRS bearer - iConnectionMonitor.GetPckgAttribute(EBearerIdWCDMA, 0, KIapAvailability, iIapBuf, iStatus); + if (!iScanActive) { + iScanActive = ETrue; + if (iOwner.iFirstUpdate) { + // On first update (the mgr is being instantiated) update only those bearers who + // don't need time-consuming scans (WLAN). + // Note: EBearerIdWCDMA covers also GPRS bearer + iConnectionMonitor.GetPckgAttribute(EBearerIdWCDMA, 0, KIapAvailability, iIapBuf, iStatus); + } else { + iConnectionMonitor.GetPckgAttribute(EBearerIdAll, 0, KIapAvailability, iIapBuf, iStatus); + } + + if (!IsActive()) { + SetActive(); + } } else { - iConnectionMonitor.GetPckgAttribute(EBearerIdAll, 0, KIapAvailability, iIapBuf, iStatus); + // Queue scan for getting WLAN info after first request returns + if (iOwner.iFirstUpdate) { + iOwner.iScanInQueue = ETrue; + } } - - if (!IsActive()) - SetActive(); } void AccessPointsAvailabilityScanner::RunL() { QMutexLocker locker(&iOwner.mutex); + iScanActive = EFalse; if (iStatus.Int() != KErrNone) { iIapBuf().iCount = 0; QT_TRYCATCH_LEAVING(iOwner.accessPointScanningReady(false,iIapBuf())); diff --git a/src/plugins/bearer/symbian/symbianengine.h b/src/plugins/bearer/symbian/symbianengine.h index 7c1076e..337d4d1 100644 --- a/src/plugins/bearer/symbian/symbianengine.h +++ b/src/plugins/bearer/symbian/symbianengine.h @@ -207,6 +207,7 @@ private: // Data TBool iInitOk; TBool iUpdateGoingOn; TBool iUpdatePending; + TBool iScanInQueue; AccessPointsAvailabilityScanner* ipAccessPointsAvailabilityScanner; @@ -234,9 +235,10 @@ protected: // From CActive void DoCancel(); private: // Data - SymbianEngine& iOwner; + SymbianEngine& iOwner; RConnectionMonitor& iConnectionMonitor; - TConnMonIapInfoBuf iIapBuf; + TConnMonIapInfoBuf iIapBuf; + TBool iScanActive; }; QT_END_NAMESPACE -- cgit v0.12 From 659c889f64e76ec9aece2dd9e24a7f65875c46ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Mon, 15 Nov 2010 08:56:58 +0100 Subject: Add autotest to test a issue with stretches and preferred width. The issue seemed to claim that the preferred size was not respected when there was another item that could stretch along the same axis: "A widget with a horizontal stretch next to it should get its preferredWidth()". This seems to works as expected, so nothing to fix. Task-number: QTBUG-12835 --- .../tst_qgraphicsgridlayout.cpp | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index e448e4c..7170059 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -122,6 +122,7 @@ private slots: void task236367_maxSizeHint(); void heightForWidth(); void heightForWidthWithSpanning(); + void stretchAndHeightForWidth(); }; class RectWidget : public QGraphicsWidget @@ -2806,6 +2807,67 @@ void tst_QGraphicsGridLayout::heightForWidthWithSpanning() QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 10000)); } + +void tst_QGraphicsGridLayout::stretchAndHeightForWidth() +{ + QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); + QGraphicsGridLayout *layout = new QGraphicsGridLayout; + widget->setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + RectWidget *w1 = new RectWidget; + w1->setSizeHint(Qt::MinimumSize, QSizeF(10, 10)); + w1->setSizeHint(Qt::PreferredSize, QSizeF(100, 100)); + w1->setSizeHint(Qt::MaximumSize, QSizeF(500, 500)); + layout->addItem(w1, 0,0,1,1); + + RectWidget *w2 = new RectWidget; + w2->setSizeHint(Qt::MinimumSize, QSizeF(10, 10)); + w2->setSizeHint(Qt::PreferredSize, QSizeF(100, 100)); + w2->setSizeHint(Qt::MaximumSize, QSizeF(500, 500)); + layout->addItem(w2, 0,1,1,1); + layout->setColumnStretchFactor(1, 2); + + QApplication::sendPostedEvents(); + QGraphicsScene scene; + QGraphicsView *view = new QGraphicsView(&scene); + + scene.addItem(widget); + + view->show(); + + widget->resize(500, 100); + // w1 should stay at its preferred size + QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 100)); + QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 100)); + + + // only w1 has hfw + w1->setConstraintFunction(hfw); + QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp.setHeightForWidth(true); + w1->setSizePolicy(sp); + QApplication::sendPostedEvents(); + + QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 200)); + QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 200)); + + // only w2 has hfw + w2->setConstraintFunction(hfw); + w2->setSizePolicy(sp); + + w1->setConstraintFunction(0); + sp.setHeightForWidth(false); + w1->setSizePolicy(sp); + QApplication::sendPostedEvents(); + + QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 100)); + QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 50)); + +} + + QTEST_MAIN(tst_QGraphicsGridLayout) #include "tst_qgraphicsgridlayout.moc" -- cgit v0.12 From aa1a47af767eefea3e2ff248d1e7493031896fe8 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 15 Nov 2010 19:16:05 +1000 Subject: Stabilize visual test focusscope/test3.qml Colored rects are better than text. At least here. Task-number: QTBUG-14792 --- .../qmlvisual/focusscope/data/test3.0.png | Bin 1333 -> 509 bytes .../qmlvisual/focusscope/data/test3.1.png | Bin 994 -> 488 bytes .../qmlvisual/focusscope/data/test3.2.png | Bin 1156 -> 502 bytes .../qmlvisual/focusscope/data/test3.3.png | Bin 1057 -> 487 bytes .../qmlvisual/focusscope/data/test3.qml | 524 ++++++++++----------- .../declarative/qmlvisual/focusscope/test3.qml | 21 +- 6 files changed, 272 insertions(+), 273 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png index baac346..49113dd 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png index 25d3c66..609d1ab 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png index fc90552..8c81be6 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png index 2f0519e..c092535 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml index 686fc8d..5acfcc2 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml @@ -6,135 +6,135 @@ VisualTest { } Frame { msec: 16 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 32 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 48 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 64 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 80 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 96 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 112 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 128 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 144 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 160 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 176 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 192 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 208 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 224 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 240 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 256 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 272 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 288 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 304 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 320 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 336 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 352 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 368 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 384 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 400 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 416 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 432 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 448 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 464 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 480 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 496 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 512 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 528 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Key { type: 6 @@ -146,23 +146,23 @@ VisualTest { } Frame { msec: 544 - hash: "60101929d88be9177f4988573c35dcdb" + hash: "e24319b7e562a668e86ac17f4914bcb7" } Frame { msec: 560 - hash: "519bbcffcafe96253923994ce7cae971" + hash: "742f87f00d2d7e64b4a579823fa99df2" } Frame { msec: 576 - hash: "e46fd44935f37eadee7520f17ad7cf01" + hash: "db6793df1b6d00f4b6286253173ee2b5" } Frame { msec: 592 - hash: "2a0ed4cb9940ff82d4a56dc3dc94f333" + hash: "3da67f52ad1bc0ee55f8d6637286f420" } Frame { msec: 608 - hash: "a97ff19bb6493b7a026c9c549aafff04" + hash: "89e8c8fd913cb229f5adc221090d789c" } Key { type: 7 @@ -174,31 +174,31 @@ VisualTest { } Frame { msec: 624 - hash: "52fe44fff5c72e1585e000e73086c2e9" + hash: "d47cc2fe207628f4deddd58c3697171a" } Frame { msec: 640 - hash: "76f62e0619ed15894d7fb6fe9e1a7700" + hash: "9ab1f939324602533b14b20d6160ae57" } Frame { msec: 656 - hash: "aceb3ae38213d097bd0f50d64779fbda" + hash: "798b200076ec6688cda78fd273a9fde1" } Frame { msec: 672 - hash: "c62f8846e1076adcd7c9a8bc1164c0a8" + hash: "5c485ac62f637db9e3aa327dd1bee801" } Frame { msec: 688 - hash: "c62f8846e1076adcd7c9a8bc1164c0a8" + hash: "5c485ac62f637db9e3aa327dd1bee801" } Frame { msec: 704 - hash: "c62f8846e1076adcd7c9a8bc1164c0a8" + hash: "5c485ac62f637db9e3aa327dd1bee801" } Frame { msec: 720 - hash: "c62f8846e1076adcd7c9a8bc1164c0a8" + hash: "5c485ac62f637db9e3aa327dd1bee801" } Key { type: 6 @@ -210,19 +210,19 @@ VisualTest { } Frame { msec: 736 - hash: "9f3ab4856c51ee635b8dbce4778053f0" + hash: "75bbe5082eebec814c726adc8fc076ec" } Frame { msec: 752 - hash: "4fe79ffc2bb078c8cb8c3cdbb57d3c5e" + hash: "58d8051766872d54831bec4c8c7cbd63" } Frame { msec: 768 - hash: "9caefb6edbfeadacd54a9f4e06e40ddc" + hash: "f474b747b4b7bb2a5b2c418f35aa1b09" } Frame { msec: 784 - hash: "a8dc7e314b3bd2fb8d16bcf68bfbc7e8" + hash: "d561cf0dbded0b2bd85c7c88fb3afdd6" } Key { type: 7 @@ -234,27 +234,27 @@ VisualTest { } Frame { msec: 800 - hash: "342e75af68d345574c551ff65ac2f2de" + hash: "49c0616c4d5cedeb9fdb12fb7d7f504d" } Frame { msec: 816 - hash: "a26927b8cdfa8813c5e0661d154bb36b" + hash: "9e5c66cfc3af51b7a10f6a969452dafe" } Frame { msec: 832 - hash: "0214f5055daa4a761d2e791d06744ac5" + hash: "72d765f52ce8ab3748cd43d859285ca7" } Frame { msec: 848 - hash: "d2d4296a49de27da45381fa250fb1f38" + hash: "732987bbdc421c4650d7503387acd4de" } Frame { msec: 864 - hash: "a375e3df0b00754fa4208aecbf1b218d" + hash: "439456ecedad4674b6ecef415e53334b" } Frame { msec: 880 - hash: "a375e3df0b00754fa4208aecbf1b218d" + hash: "439456ecedad4674b6ecef415e53334b" } Key { type: 6 @@ -266,15 +266,15 @@ VisualTest { } Frame { msec: 896 - hash: "0cd7a1cfb7fafdb406b5e3a612dd61b7" + hash: "5f2d5dc55b551713c4219bc55124f7db" } Frame { msec: 912 - hash: "0315c0011c75f254337cb5e557dc6dad" + hash: "54e2150829c6201b3ba8eb61f4142de7" } Frame { msec: 928 - hash: "2633ea851ec228dc1d5149ef65b1c910" + hash: "f916ac803817b7cd7e29c05ac23449fc" } Key { type: 7 @@ -286,7 +286,7 @@ VisualTest { } Frame { msec: 944 - hash: "cd8870a81860a9926f4d5580dabf3479" + hash: "590b45a3fb1571428c8da48f026fab3b" } Frame { msec: 960 @@ -294,27 +294,27 @@ VisualTest { } Frame { msec: 976 - hash: "419ec77dceb052c41e072b9513124794" + hash: "24eebfd01ea479015fac91198ede9e0d" } Frame { msec: 992 - hash: "68fd88f83bf707fbc3ae29840bfb2110" + hash: "877ca6b70b6535f868d3a450045f70a0" } Frame { msec: 1008 - hash: "bfb514b9a9c57d6b78149b81f4adb177" + hash: "559a5c06ed2d1030d21f56aaaded8869" } Frame { msec: 1024 - hash: "bfb514b9a9c57d6b78149b81f4adb177" + hash: "559a5c06ed2d1030d21f56aaaded8869" } Frame { msec: 1040 - hash: "bfb514b9a9c57d6b78149b81f4adb177" + hash: "559a5c06ed2d1030d21f56aaaded8869" } Frame { msec: 1056 - hash: "bfb514b9a9c57d6b78149b81f4adb177" + hash: "559a5c06ed2d1030d21f56aaaded8869" } Key { type: 6 @@ -326,11 +326,11 @@ VisualTest { } Frame { msec: 1072 - hash: "e0707db3c9da95ab02be8dec08d1eea9" + hash: "f6d3d4fd5d9d1be96646891cbf0740e5" } Frame { msec: 1088 - hash: "78d405f63a5ed781ce36ed4844621a26" + hash: "2ba5d4da68051a96fed2b54804854a8e" } Key { type: 7 @@ -342,35 +342,35 @@ VisualTest { } Frame { msec: 1104 - hash: "d7dc78c2a3cb4a059322b20622dfa0ed" + hash: "2b1b72dfac63903377b427ef4149dfd7" } Frame { msec: 1120 - hash: "c7bfc322da4a3e112324bd024d271dda" + hash: "7ada77586dd0583a66c801b6faf78e2a" } Frame { msec: 1136 - hash: "a94d4a6f15404f10cad31ad5337f0f10" + hash: "a5c527fa2095e2d8949d36351994624a" } Frame { msec: 1152 - hash: "49f03ed7afac886a45268aef990cb176" + hash: "f89bf3f20d3f7284ba52338c1cfb91e1" } Frame { msec: 1168 - hash: "9fbacc43c6a796f81af102e95d05c17e" + hash: "e7de3174a111f26f4d92a273e2c43b61" } Frame { msec: 1184 - hash: "ec3231a8ba136d2edd5265c51cd82d4f" + hash: "d9ef1156a1f7bfe86f97717a600b31c9" } Frame { msec: 1200 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Frame { msec: 1216 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Key { type: 6 @@ -382,11 +382,11 @@ VisualTest { } Frame { msec: 1232 - hash: "b9bb4eee4ea2fe26178ece2be67111e3" + hash: "d92131f183e9d926a2718559f58f17cb" } Frame { msec: 1248 - hash: "06fe10dc99a8f28a64942bd76bdd401b" + hash: "9e5985271ddec748803ea3c72d40ad97" } Key { type: 7 @@ -398,63 +398,63 @@ VisualTest { } Frame { msec: 1264 - hash: "63f4e972f1b8f3273170436c673120ca" + hash: "2462ddfcf93f96ad6a3164c7f21e2948" } Frame { msec: 1280 - hash: "25a83b96f733add828557775d4aabe21" + hash: "4ce27e3e77d9c80982c5197c2a440dc4" } Frame { msec: 1296 - hash: "73de2ed5df81559c7a24d9a5b73a2ce9" + hash: "e4afa6dc35ddd52876af514ec151900e" } Frame { msec: 1312 - hash: "43bdf31d652394c4d2b881ca6ad326ed" + hash: "3e542da8a83e53c66fd96d2c003a8b67" } Frame { msec: 1328 - hash: "f5f564fcb39a7e007c30150c1a54283c" + hash: "6b0afb12551ada7501346125ac29071c" } Frame { msec: 1344 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1360 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1376 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1392 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1408 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1424 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1440 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1456 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1472 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 1488 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Key { type: 6 @@ -466,15 +466,15 @@ VisualTest { } Frame { msec: 1504 - hash: "a56bcb200f3ed037bfea052df2910902" + hash: "ca6c00b583f88efb6efe285a0903392b" } Frame { msec: 1520 - hash: "2b3561807f9681f6b875e7f4fcd33223" + hash: "2a2fcb90a6a7ae6d3d08f49c7a7177c0" } Frame { msec: 1536 - hash: "2cee5a4a22f72058a61cd9cb9d39e818" + hash: "3a7cd960ff367793e09d73302e57b6e4" } Key { type: 7 @@ -486,39 +486,39 @@ VisualTest { } Frame { msec: 1552 - hash: "cd1f3f9a2bcd0efd4ba252454c51e261" + hash: "581121ab5334a6122bf9ca4489c9b971" } Frame { msec: 1568 - hash: "b2d8e52a59d1141cfaf6b22ba9aa74cf" + hash: "8690456fa25a12ef28f014b86cc94c81" } Frame { msec: 1584 - hash: "f218a82081c0552d2caccaa840decfbb" + hash: "27a395e2e25eedba8f361a20f917590b" } Frame { msec: 1600 - hash: "ae20ae49364bddbe3dcd9e09c36b7423" + hash: "5eae6bbdd6acd7f21eccf277f21f4893" } Frame { msec: 1616 - hash: "63d8d2d948e3cab3a50ef4db61ca4c48" + hash: "f5ebab53b77dcea32e821c8e551077e4" } Frame { msec: 1632 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Frame { msec: 1648 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Frame { msec: 1664 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Frame { msec: 1680 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Key { type: 6 @@ -530,19 +530,19 @@ VisualTest { } Frame { msec: 1696 - hash: "c46539fd3ef1e01519b43855c0831213" + hash: "7c83c13e1d9e6456023ba7e2a1f3875c" } Frame { msec: 1712 - hash: "40a4666320efaa62904d390add745bb3" + hash: "f12f6c5111de654e90d462a4d44f12ec" } Frame { msec: 1728 - hash: "a490a1904e909f3e2ade5ee8a7e9dbf3" + hash: "dcb7712d8320bf4096a3af794facad4d" } Frame { msec: 1744 - hash: "2e67ac8bbc37731e590156348563bb98" + hash: "84f7c046592d31f403b56ee1fd6fcbc4" } Key { type: 7 @@ -554,35 +554,35 @@ VisualTest { } Frame { msec: 1760 - hash: "daab7eba2dbf88b920b1cc61aa114435" + hash: "1b05381e85ec8bbf69edacbedce01fb8" } Frame { msec: 1776 - hash: "5e6611b6024be9f48e6356bb46fe91db" + hash: "b2c148675ffe1ef5110602f7a4feab74" } Frame { msec: 1792 - hash: "6329448571671f77102e14f3f05d3a66" + hash: "d082931d05d2b2dc24ccfa5d7a703291" } Frame { msec: 1808 - hash: "2a40d32c1c81fb85dab745a05cca500b" + hash: "99783e2541d03a7ce9ee4e69a2b21993" } Frame { msec: 1824 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Frame { msec: 1840 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Frame { msec: 1856 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Frame { msec: 1872 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Key { type: 6 @@ -594,11 +594,11 @@ VisualTest { } Frame { msec: 1888 - hash: "899d92a8106e85ff1131c07af3971879" + hash: "06fbf3d840cbf170c94377d767d1d49f" } Frame { msec: 1904 - hash: "8566d59024d7dcf410d4d87e234f477c" + hash: "34f538738046a1d6932ef1a6f59eb6be" } Frame { msec: 1920 @@ -606,11 +606,11 @@ VisualTest { } Frame { msec: 1936 - hash: "ba9b93e9762667c4a7c123933720fb06" + hash: "855b97f29624ce545e50834a807694f8" } Frame { msec: 1952 - hash: "cffb82799861d551cc208b7fe2922ea2" + hash: "115f1c37d6492bbc4848cc4be6ddd2b0" } Key { type: 7 @@ -622,131 +622,131 @@ VisualTest { } Frame { msec: 1968 - hash: "efe3ec54dfd82b06d6cb8d7813030894" + hash: "40d5255e7e5ca12b90f5cbede1e9b2cd" } Frame { msec: 1984 - hash: "80934efe77a8e1d8460b55c0d5831a17" + hash: "3a6f6b4cee75f8b1b0b2b5674c3df0a8" } Frame { msec: 2000 - hash: "5954c3e6ebe78c50776cfa48c152cf46" + hash: "2c24eab593d56a7554f9ba925f858d5b" } Frame { msec: 2016 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2032 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2048 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2064 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2080 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2096 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2112 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2128 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2144 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2160 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2176 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2192 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2208 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2224 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2240 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2256 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2272 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2288 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2304 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2320 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2336 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2352 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2368 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2384 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2400 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2416 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2432 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2448 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Frame { msec: 2464 - hash: "588140c8a668842ec06e424692b57918" + hash: "bb10ef1703674147351968121ebe0154" } Key { type: 6 @@ -758,23 +758,23 @@ VisualTest { } Frame { msec: 2480 - hash: "4ba7e4ed21d496abc7ab4651afb5880b" + hash: "1e61fbb8c054c6b8fdb895d236514bfa" } Frame { msec: 2496 - hash: "497188bf0ef98eb246399f025b9259bc" + hash: "3a1b093963a0cb898a68f87a3c2056a9" } Frame { msec: 2512 - hash: "173049c273e4ea2f63428c0838f029ef" + hash: "9fe3eb5cbc621401be9ab7bc7d28bb24" } Frame { msec: 2528 - hash: "c8199565d52abb5bdf64b31c2f965038" + hash: "1bb16e3d17506913e295d68e8d4ffa88" } Frame { msec: 2544 - hash: "995ca28ee06c376a8527992b1396374a" + hash: "19389ae4da2ad3bc7076632366db55c7" } Key { type: 7 @@ -786,23 +786,23 @@ VisualTest { } Frame { msec: 2560 - hash: "62b4b4b4e35cb3594b827a3f0488e016" + hash: "5f1731dd62f61ddafb7cfe66167b7408" } Frame { msec: 2576 - hash: "5cd79f2fff8e35c2ce6167d3a3999bc2" + hash: "e37b8399f9ea92a91b0d98b01a4ef72b" } Frame { msec: 2592 - hash: "3c64ff196b49488d48214562849deec7" + hash: "e1282e3afc46fa8828a138e4722707b5" } Frame { msec: 2608 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Frame { msec: 2624 - hash: "6579f0cfe1fd762818d69ded26e47c77" + hash: "503ff7e940ac59006c1486e3d2027d35" } Key { type: 6 @@ -814,23 +814,23 @@ VisualTest { } Frame { msec: 2640 - hash: "3ae9139845494acafc2212843271e80c" + hash: "925852b350354bb596d749fe31828147" } Frame { msec: 2656 - hash: "9bd81bd575c63bbedbcb19452e52f9aa" + hash: "1e302775a002185b888b590cc6533b28" } Frame { msec: 2672 - hash: "8a8fd3ec0ac02d3e8d37ade92e5b0b28" + hash: "b147169c3688148bda5b82afa1f5d2dc" } Frame { msec: 2688 - hash: "3da79a037c7c8fca1a133c65766cd7a4" + hash: "34964e45ff808595845f4a868be3782e" } Frame { msec: 2704 - hash: "31f24ec970184bf253ce0a80cca8c15d" + hash: "b86ef7d97f20c3894dc5a551f41ab9c4" } Key { type: 7 @@ -842,23 +842,23 @@ VisualTest { } Frame { msec: 2720 - hash: "8e41287dd7f3d17107336f79ea4a57b5" + hash: "dc9981cb1833b34fc4fc9b833281348e" } Frame { msec: 2736 - hash: "0eced41494be06a4a2d11aee076c0eab" + hash: "b28644e06195849afd44143bd60aa27d" } Frame { msec: 2752 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Frame { msec: 2768 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Frame { msec: 2784 - hash: "f29a9aa2e469e3fb4bedfe11523212c9" + hash: "738278d39b73bfa15fc8b19b5720bbd7" } Key { type: 6 @@ -870,23 +870,23 @@ VisualTest { } Frame { msec: 2800 - hash: "2161ebbc0b1a8326d778657ded7993a8" + hash: "745230d107911d033ebeb58dc8a94445" } Frame { msec: 2816 - hash: "65bdbbcea1cf5629e1c04ff09bd2b867" + hash: "81cc4ac88a51518cf50cd6b46c3e0cb7" } Frame { msec: 2832 - hash: "4cfe120b55285efb9484f696146fa297" + hash: "10b7cff34298222ee305c9895bcdef21" } Frame { msec: 2848 - hash: "d50ded95cf2418ef2ab3c4d7dd32babe" + hash: "622a027091c1577a646ece0331016783" } Frame { msec: 2864 - hash: "722e3342d833809e2e6c6ecb5774fb86" + hash: "ab527747f9918774c7a4cfb476cc31f4" } Key { type: 7 @@ -902,19 +902,19 @@ VisualTest { } Frame { msec: 2896 - hash: "0193889d59dc40150eab584dd1665b5e" + hash: "fa7e0091764dc67878bce696f728254d" } Frame { msec: 2912 - hash: "cd39f2cee2cf7507203a340ceaa961f5" + hash: "19a2f59bfe96a0a33ff45ab72cc2a2fc" } Frame { msec: 2928 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Frame { msec: 2944 - hash: "270321ae5fe7a0e457d2897480e5bbbc" + hash: "202d4ca464f73e28a286ebed05e86d9d" } Key { type: 6 @@ -926,27 +926,27 @@ VisualTest { } Frame { msec: 2960 - hash: "d19642853fc07a54711b6afbca4453fd" + hash: "6b172121f35f9667f40b0006d5875685" } Frame { msec: 2976 - hash: "70db31594995fa6c05347ebc5aedd063" + hash: "6e65dfe717a69de65d58e059904bb00a" } Frame { msec: 2992 - hash: "8d8ab3076baae893037a1b16880db6b6" + hash: "e660212f2d7d477213ef8b8262e8f2b1" } Frame { msec: 3008 - hash: "32c05a581d854a828f2049c5aa588afd" + hash: "df1e770a7177b7871cf734c47e1227ba" } Frame { msec: 3024 - hash: "7f8f111aa6e8e802beca3b7fd2a28007" + hash: "9d103d49ea30b04f3e97ecad3c13a816" } Frame { msec: 3040 - hash: "c0ae8434516e2f77d78279c8e37a9f0a" + hash: "4602aaf8b65c4ff5b9c8d4ba8d5b89d5" } Key { type: 7 @@ -958,27 +958,27 @@ VisualTest { } Frame { msec: 3056 - hash: "7cc66b7432d2c73258e4c7910870d166" + hash: "bf029f1cb5ddf0dc3931b47895a2141d" } Frame { msec: 3072 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Frame { msec: 3088 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Frame { msec: 3104 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Frame { msec: 3120 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Frame { msec: 3136 - hash: "070bec590f2379198933cf68db678821" + hash: "0b216b28513d00939531e409aac328e8" } Key { type: 6 @@ -990,15 +990,15 @@ VisualTest { } Frame { msec: 3152 - hash: "f45969e94df0c5ea7c153e6952479ec8" + hash: "807fe46158fdc72c45cd6c8024ce705d" } Frame { msec: 3168 - hash: "55f4733f50b90d723c88ef74d66ee8a9" + hash: "58dc1ca8e39488479acdb79762000ad5" } Frame { msec: 3184 - hash: "980ea06fe8405ce29514cbc752a581c2" + hash: "48dd97d986ee545f6727128b7a06529f" } Key { type: 7 @@ -1010,27 +1010,27 @@ VisualTest { } Frame { msec: 3200 - hash: "0a5a6d62d13876c9562253645381702a" + hash: "a7f0c00cb4bbbd65c02b3949c90564ad" } Frame { msec: 3216 - hash: "0ade580a20e10d9887d6bc544025770e" + hash: "3f1c40e8d17b83ff3a251d9284bd4282" } Frame { msec: 3232 - hash: "707524f7b0fad3879d41c8ff5d339b87" + hash: "d7527558128467c64cf0a07289158238" } Frame { msec: 3248 - hash: "1786e49beb751b4b8cf4492f63b3db77" + hash: "3af9f7618d0c9ffedb942ae422d61dcb" } Frame { msec: 3264 - hash: "a44ca7861ccd844eb284ab310751351a" + hash: "eb1703107106afc54d47d8600ea40f18" } Frame { msec: 3280 - hash: "bfb514b9a9c57d6b78149b81f4adb177" + hash: "559a5c06ed2d1030d21f56aaaded8869" } Key { type: 6 @@ -1042,19 +1042,19 @@ VisualTest { } Frame { msec: 3296 - hash: "e36d2476c9954e6a4372ded19efd06a1" + hash: "c9a69d9ad499e6537ef047382dc01460" } Frame { msec: 3312 - hash: "c324cc45624346f32a776a87ec5fcc7e" + hash: "594911681db91c825b93633b6aa3fe1f" } Frame { msec: 3328 - hash: "fcf1629f58a73492f1afa74672013602" + hash: "f566d5e728e9a45c7d339282c0c6709c" } Frame { msec: 3344 - hash: "853e27fd37b764a852a2c4fabbaae6bc" + hash: "49f1d0164a1ae3c361421635a2038697" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 3360 - hash: "a75d77b15211080e12b397c3cee93568" + hash: "a22b4ea9973c03042a3cfa5d23a79c86" } Frame { msec: 3376 - hash: "936fb8c2c0909a77a9bdc654d91d13ad" + hash: "abab27079cd52caaaf421d1b4d8d8066" } Frame { msec: 3392 - hash: "f11dde44c028dbd299bc6733218969f7" + hash: "e528a9ab6ae13518fa541d7f2c6e09a8" } Frame { msec: 3408 - hash: "a375e3df0b00754fa4208aecbf1b218d" + hash: "439456ecedad4674b6ecef415e53334b" } Frame { msec: 3424 - hash: "a375e3df0b00754fa4208aecbf1b218d" + hash: "439456ecedad4674b6ecef415e53334b" } Frame { msec: 3440 - hash: "a375e3df0b00754fa4208aecbf1b218d" + hash: "439456ecedad4674b6ecef415e53334b" } Key { type: 6 @@ -1098,11 +1098,11 @@ VisualTest { } Frame { msec: 3456 - hash: "3ce1288d66836b6224f471903454be37" + hash: "57543f91e958840efcad1948a19aa8e1" } Frame { msec: 3472 - hash: "9bff5f42f23b504ee013df4834ed884c" + hash: "534fc45fdace49ebf444e393b57c1315" } Key { type: 7 @@ -1114,31 +1114,31 @@ VisualTest { } Frame { msec: 3488 - hash: "523df7cc8d991695722b521282824627" + hash: "0eee986f096e3ebddf61d3b0a18f2eff" } Frame { msec: 3504 - hash: "5c16f8efbab40bcf8016bd7334eb99fa" + hash: "74f702ca61d97d31f79d8ce3be53eee7" } Frame { msec: 3520 - hash: "bee74f34ee101f0fef0967801498de75" + hash: "1f0b630548fe93f93550439b4945bdda" } Frame { msec: 3536 - hash: "a08ee211d870bc3f97f1e698cd887908" + hash: "1eb442ca5e7e1f476d8297c3bdb7bbd1" } Frame { msec: 3552 - hash: "89ac21176fd4ce1bbbd0b7dd6904c12c" + hash: "1689cba06c74a6204d80cc651b1d2150" } Frame { msec: 3568 - hash: "95608d850a3c5cfbded1aafb33885bad" + hash: "8711b6647c4146dfa3e3c680fbd1bf08" } Frame { msec: 3584 - hash: "c62f8846e1076adcd7c9a8bc1164c0a8" + hash: "5c485ac62f637db9e3aa327dd1bee801" } Key { type: 6 @@ -1150,19 +1150,19 @@ VisualTest { } Frame { msec: 3600 - hash: "54705722d344bfbe829211019f2865ba" + hash: "0ac2726d000ba2ef1097a49f37d5c209" } Frame { msec: 3616 - hash: "d63b2ce9e16583671a5e6d266393b11c" + hash: "83d00571e499039b7f577e393eed881a" } Frame { msec: 3632 - hash: "3979df5d0aa1c3610e1d3562e34385c6" + hash: "46724d427a8f6d7737abcacd76701259" } Frame { msec: 3648 - hash: "782d14c3a1baf9a3017ec5b514492860" + hash: "a63554a4839e8874cbebe5204d43c6d5" } Key { type: 7 @@ -1174,47 +1174,47 @@ VisualTest { } Frame { msec: 3664 - hash: "0d219c97e1278474b74ed16f29fae1a1" + hash: "5946c98c4204d454a41575242db5fd45" } Frame { msec: 3680 - hash: "3df0e87dd3d5f50b9c4bb3db8d73d421" + hash: "a3d0107e71a6b454f8fdc7557eb9ce18" } Frame { msec: 3696 - hash: "1c5e5da874ae95548431677246c80734" + hash: "86d9ad1831acc4a73075e6792efb7db4" } Frame { msec: 3712 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3728 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3744 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3760 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3776 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3792 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3808 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3824 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3840 @@ -1222,106 +1222,106 @@ VisualTest { } Frame { msec: 3856 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3872 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3888 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3904 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3920 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3936 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3952 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3968 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3984 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4000 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4016 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4032 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4048 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4064 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4080 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4096 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4112 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4128 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4144 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4160 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4176 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4192 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4208 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4224 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4240 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 4256 - hash: "4a753a2b626eaf8336cd5e5d04d05d5b" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } } diff --git a/tests/auto/declarative/qmlvisual/focusscope/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/test3.qml index 01fb580..90c2357 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/test3.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/test3.qml @@ -12,15 +12,15 @@ Rectangle { ListModel { id: model - ListElement { name: "1" } - ListElement { name: "2" } - ListElement { name: "3" } - ListElement { name: "4" } - ListElement { name: "5" } - ListElement { name: "6" } - ListElement { name: "7" } - ListElement { name: "8" } - ListElement { name: "9" } + ListElement { name: "red" } + ListElement { name: "orange" } + ListElement { name: "yellow" } + ListElement { name: "green" } + ListElement { name: "cyan" } + ListElement { name: "blue" } + ListElement { name: "indigo" } + ListElement { name: "violet" } + ListElement { name: "pink" } } Component { @@ -33,8 +33,7 @@ Rectangle { focus: true Keys.onDigit9Pressed: console.log(name) width: 50; height: 50; - color: root.ListView.isCurrentItem?"red":"green" - Text { text: name; anchors.centerIn: parent } + color: root.ListView.isCurrentItem?"black":name } } } -- cgit v0.12 From 69d9e773c246b39561fb86861491aad6d9d34060 Mon Sep 17 00:00:00 2001 From: Petri Latvala Date: Wed, 10 Nov 2010 12:38:22 +0200 Subject: Remove -fno-omit-frame-pointer and -fno-optimize-sibling-calls in mkspecs, add -Wno-psabi Reviewed-by: Adrian Constantin --- mkspecs/linux-g++-maemo/qmake.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkspecs/linux-g++-maemo/qmake.conf b/mkspecs/linux-g++-maemo/qmake.conf index a977e7a..f023634 100644 --- a/mkspecs/linux-g++-maemo/qmake.conf +++ b/mkspecs/linux-g++-maemo/qmake.conf @@ -21,8 +21,8 @@ QMAKE_LIBDIR_X11 = /usr/lib QMAKE_LIBDIR_OPENGL = /usr/lib # We still need to generate debug symbols in release mode to put into the *-dbg packages: -QMAKE_CFLAGS_RELEASE += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls -QMAKE_CXXFLAGS_RELEASE += -g -fno-omit-frame-pointer -fno-optimize-sibling-calls +QMAKE_CFLAGS_RELEASE += -g -Wno-psabi +QMAKE_CXXFLAGS_RELEASE += -g -Wno-psabi # Work round PowerVR SGX 1.3 driver bug with glScissor & FBOs: DEFINES += QT_GL_NO_SCISSOR_TEST -- cgit v0.12 From 96f8a8f87c28df9c753d9f3494d806a6dea24ba7 Mon Sep 17 00:00:00 2001 From: Adrian Constantin Date: Mon, 15 Nov 2010 11:13:22 +0200 Subject: Enable OpenGL scissors test Reviewed-by: Petri Latvala --- mkspecs/linux-g++-maemo/qmake.conf | 3 --- 1 file changed, 3 deletions(-) diff --git a/mkspecs/linux-g++-maemo/qmake.conf b/mkspecs/linux-g++-maemo/qmake.conf index f023634..0178f14 100644 --- a/mkspecs/linux-g++-maemo/qmake.conf +++ b/mkspecs/linux-g++-maemo/qmake.conf @@ -24,7 +24,4 @@ QMAKE_LIBDIR_OPENGL = /usr/lib QMAKE_CFLAGS_RELEASE += -g -Wno-psabi QMAKE_CXXFLAGS_RELEASE += -g -Wno-psabi -# Work round PowerVR SGX 1.3 driver bug with glScissor & FBOs: -DEFINES += QT_GL_NO_SCISSOR_TEST - load(qt_config) -- cgit v0.12 From 8fc0d1c36cae1b0d659e119032af006b8f8eca52 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 15 Nov 2010 19:44:40 +1000 Subject: Take snapshots starting from the first frame Partly because it's invaluble for the times people forget to record a test as a snapshot, partly because it provides more data on the initial state of the test case. Task-number: QTBUG-14792 --- tools/qml/qdeclarativetester.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index eaf3403..499822a 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -286,7 +286,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) fe.msec = msec; if (msec == 0 || !(options & QDeclarativeViewer::TestImages)) { // Skip first frame, skip if not doing images - } else if (0 == (m_savedFrameEvents.count() % 60) || snapshot) { + } else if (0 == (m_savedFrameEvents.count()-1 % 60) || snapshot) { fe.image = img; } else { QCryptographicHash hash(QCryptographicHash::Md5); @@ -356,6 +356,11 @@ void QDeclarativeTester::updateCurrentTime(int msec) if (options & QDeclarativeViewer::TestImages && !(options & QDeclarativeViewer::Record) && !frame->image().isEmpty()) { QImage goodImage(frame->image().toLocalFile()); + if (frame->msec() == 16 && goodImage.size() != img.size()){ + //Also an image mismatch, but this warning is more informative. Only checked at start though. + qWarning() << "QDeclarativeTester(" << m_script << "): Size mismatch. This test must be run at " << goodImage.size(); + imagefailure(); + } if (goodImage != img) { QString reject(frame->image().toLocalFile() + ".reject.png"); qWarning() << "QDeclarativeTester: Image mismatch. Reject saved to:" -- cgit v0.12 From 1150f994464719000071f7ef5836c9e1dd695c65 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 15 Nov 2010 20:18:21 +1000 Subject: Update all qmlvisual tests Previous commit means that the snapshots are in different frames. All tests must be updated. Task-number: QTBUG-14792 --- .../qmlvisual/ListView/data/basic1.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic1.qml | 2 +- .../qmlvisual/ListView/data/basic2.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic2.qml | 2 +- .../qmlvisual/ListView/data/basic3.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic3.qml | 2 +- .../qmlvisual/ListView/data/basic4.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic4.qml | 2 +- .../qmlvisual/ListView/data/enforcerange.0.png | Bin 680 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.qml | 14 +- .../qmlvisual/ListView/data/itemlist.0.png | Bin 976 -> 976 bytes .../qmlvisual/ListView/data/itemlist.qml | 16 +- .../qmlvisual/ListView/data/listview.0.png | Bin 1585 -> 1525 bytes .../qmlvisual/ListView/data/listview.qml | 14 +- .../Package_Views/data/packageviews.0.png | Bin 797 -> 766 bytes .../qmlvisual/Package_Views/data/packageviews.qml | 14 +- .../bindinganimation/data/bindinganimation.0.png | Bin 830 -> 832 bytes .../bindinganimation/data/bindinganimation.qml | 8 +- .../data-X11/colorAnimation-visual.0.png | Bin 627 -> 622 bytes .../data-X11/colorAnimation-visual.1.png | Bin 626 -> 626 bytes .../data-X11/colorAnimation-visual.2.png | Bin 625 -> 625 bytes .../data-X11/colorAnimation-visual.qml | 8 +- .../qmlvisual/animation/easing/data/easing.0.png | Bin 3393 -> 3116 bytes .../qmlvisual/animation/easing/data/easing.qml | 8 +- .../qmlvisual/animation/loop/data/loop.0.png | Bin 508 -> 502 bytes .../qmlvisual/animation/loop/data/loop.qml | 14 +- .../data/parallelAnimation-visual.0.png | Bin 0 -> 777 bytes .../data/parallelAnimation-visual.qml | 6 +- .../data/parentAnimation-visual.0.png | Bin 0 -> 3742 bytes .../data/parentAnimation-visual.qml | 16 +- .../parentAnimation2/data/parentAnimation2.0.png | Bin 2046 -> 2011 bytes .../parentAnimation2/data/parentAnimation2.qml | 12 +- .../data/pauseAnimation-visual.0.png | Bin 0 -> 3224 bytes .../pauseAnimation/data/pauseAnimation-visual.qml | 16 +- .../data/propertyAction-visual.0.png | Bin 335 -> 336 bytes .../propertyAction/data/propertyAction-visual.qml | 8 +- .../animation/qtbug10586/data/qtbug10586.0.png | Bin 1135 -> 1131 bytes .../animation/qtbug10586/data/qtbug10586.qml | 8 +- .../animation/qtbug13398/data/qtbug13398.0.png | Bin 1265 -> 1281 bytes .../animation/qtbug13398/data/qtbug13398.qml | 4 +- .../animation/reanchor/data/reanchor.0.png | Bin 637 -> 637 bytes .../qmlvisual/animation/reanchor/data/reanchor.qml | 22 +- .../scriptAction/data/scriptAction-visual.0.png | Bin 335 -> 334 bytes .../scriptAction/data/scriptAction-visual.qml | 6 +- .../qmlvisual/fillmode/data/fillmode.0.png | Bin 28900 -> 28900 bytes .../qmlvisual/focusscope/data/test.0.png | Bin 1968 -> 1974 bytes .../declarative/qmlvisual/focusscope/data/test.qml | 8 +- .../qmlvisual/focusscope/data/test2.qml | 4 +- .../qmlvisual/focusscope/data/test3.0.png | Bin 509 -> 487 bytes .../qmlvisual/focusscope/data/test3.qml | 10 +- .../data/animated-smooth.0.png | Bin 89135 -> 9375 bytes .../data/animated-smooth.qml | 6 +- .../qdeclarativeborderimage/data/animated.0.png | Bin 30167 -> 9375 bytes .../qdeclarativeborderimage/data/animated.qml | 6 +- .../data/flickable-horizontal.0.png | Bin 1423 -> 1439 bytes .../data/flickable-horizontal.qml | 10 +- .../data/flickable-vertical.0.png | Bin 1971 -> 1966 bytes .../data/flickable-vertical.qml | 30 +- .../qdeclarativeflipable/data/test-flipable.0.png | Bin 1090 -> 942 bytes .../qdeclarativeflipable/data/test-flipable.qml | 16 +- .../data/test_flipable_resize.0.png | Bin 0 -> 1649 bytes .../data/test_flipable_resize.qml | 4 +- .../qdeclarativegridview/data/gridview.0.png | Bin 1318 -> 1318 bytes .../qdeclarativegridview/data/gridview.qml | 24 +- .../qdeclarativegridview/data/gridview2.0.png | Bin 1310 -> 1325 bytes .../qdeclarativegridview/data/gridview2.qml | 666 ++++++++--------- .../qdeclarativemousearea/data/drag.0.png | Bin 1578 -> 1578 bytes .../qmlvisual/qdeclarativemousearea/data/drag.qml | 18 +- .../data/mousearea-flickable.0.png | Bin 1701 -> 1701 bytes .../data/mousearea-flickable.qml | 32 +- .../data/mousearea-visual.0.png | Bin 0 -> 486 bytes .../data/mousearea-visual.qml | 32 +- .../qdeclarativeparticles/data/particles.0.png | Bin 9951 -> 1055 bytes .../qdeclarativeparticles/data/particles.qml | 8 +- .../qdeclarativepathview/data/test-pathview-2.qml | 16 +- .../qdeclarativepathview/data/test-pathview.0.png | Bin 2412 -> 2371 bytes .../qdeclarativepathview/data/test-pathview.qml | 14 +- .../qdeclarativepositioners/data/dynamic.0.png | Bin 1429 -> 263 bytes .../qdeclarativepositioners/data/dynamic.qml | 798 ++++++++++----------- .../data/usingRepeater.0.png | Bin 0 -> 1199 bytes .../qdeclarativepositioners/data/usingRepeater.qml | 2 +- .../data/smoothedfollow.0.png | Bin 3692 -> 3680 bytes .../data/smoothedfollow.qml | 8 +- .../qdeclarativespringanimation/data/clock.0.png | Bin 16437 -> 16333 bytes .../qdeclarativespringanimation/data/clock.qml | 6 +- .../qdeclarativespringanimation/data/follow.0.png | Bin 975 -> 941 bytes .../qdeclarativespringanimation/data/follow.qml | 18 +- .../align/data-X11/multilineAlign.0.png | Bin 1895 -> 1870 bytes .../align/data-X11/multilineAlign.qml | 4 +- .../baseline/data-X11/parentanchor.0.png | Bin 0 -> 3854 bytes .../baseline/data-X11/parentanchor.qml | 2 +- .../bugs/data-X11/QTBUG-14469.0.png | Bin 422 -> 210 bytes .../qdeclarativetext/bugs/data-X11/QTBUG-14469.qml | 4 +- .../qdeclarativetext/data-X11/qtbug_14865.qml | 4 +- .../qdeclarativetext/elide/data-X11/elide.qml | 6 +- .../qdeclarativetext/elide/data-X11/elide2.0.png | Bin 2795 -> 2910 bytes .../qdeclarativetext/elide/data-X11/elide2.qml | 12 +- .../elide/data-X11/multilength.0.png | Bin 2285 -> 2500 bytes .../elide/data-X11/multilength.qml | 12 +- .../data-X11/cursorDelegate.0.png | Bin 3171 -> 3133 bytes .../data-X11/cursorDelegate.qml | 12 +- .../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 2483 -> 2443 bytes .../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 2474 -> 4804 bytes .../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 2480 -> 4801 bytes .../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 2443 -> 4791 bytes .../qdeclarativetextedit/data-X11/qt-669.qml | 10 +- .../data-X11/usingMultilineEdit.0.png | Bin 4006 -> 3997 bytes .../data-X11/usingMultilineEdit.10.png | Bin 6055 -> 6074 bytes .../data-X11/usingMultilineEdit.11.png | Bin 6055 -> 6074 bytes .../data-X11/usingMultilineEdit.8.png | Bin 6051 -> 6072 bytes .../data-X11/usingMultilineEdit.9.png | Bin 6055 -> 6074 bytes .../data-X11/usingMultilineEdit.qml | 26 +- .../qdeclarativetextedit/data-X11/wrap.0.png | Bin 8764 -> 8344 bytes .../qdeclarativetextedit/data-X11/wrap.1.png | Bin 8922 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.2.png | Bin 9175 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.3.png | Bin 9553 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.4.png | Bin 9975 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.5.png | Bin 9977 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.6.png | Bin 9977 -> 1110 bytes .../qdeclarativetextedit/data-X11/wrap.qml | 16 +- .../data-X11/cursorDelegate.0.png | Bin 3153 -> 3133 bytes .../data-X11/cursorDelegate.qml | 12 +- .../qdeclarativetextinput/data-X11/echoMode.0.png | Bin 580 -> 256 bytes .../qdeclarativetextinput/data-X11/echoMode.qml | 8 +- .../qdeclarativetextinput/data-X11/hAlign.0.png | Bin 0 -> 10607 bytes .../qdeclarativetextinput/data-X11/hAlign.qml | 2 +- .../data-X11/usingLineEdit.0.png | Bin 2659 -> 2648 bytes .../data-X11/usingLineEdit.qml | 36 +- 128 files changed, 1052 insertions(+), 1052 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic1.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic2.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic3.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic4.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic1.0.png b/tests/auto/declarative/qmlvisual/ListView/data/basic1.0.png new file mode 100644 index 0000000..049d9c8 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/basic1.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml index 6670ae5..838b708 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7b874555d744b10ed666dcb6fad79a19" + image: "basic1.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic2.0.png b/tests/auto/declarative/qmlvisual/ListView/data/basic2.0.png new file mode 100644 index 0000000..049d9c8 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/basic2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml index 283b443..327fbf3 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7b874555d744b10ed666dcb6fad79a19" + image: "basic2.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic3.0.png b/tests/auto/declarative/qmlvisual/ListView/data/basic3.0.png new file mode 100644 index 0000000..049d9c8 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/basic3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml index 2ee835a..030a842 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7b874555d744b10ed666dcb6fad79a19" + image: "basic3.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic4.0.png b/tests/auto/declarative/qmlvisual/ListView/data/basic4.0.png new file mode 100644 index 0000000..049d9c8 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/basic4.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml index 3bbf836..c2b1470 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7b874555d744b10ed666dcb6fad79a19" + image: "basic4.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png index d466434..5c0b6a6 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml index 20ed077..faa806f 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "19c43fcf2875769c9a15f1ce317a0f1e" + image: "enforcerange.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "enforcerange.0.png" + hash: "19c43fcf2875769c9a15f1ce317a0f1e" } Frame { msec: 976 @@ -602,7 +602,7 @@ VisualTest { } Frame { msec: 1920 - image: "enforcerange.1.png" + hash: "b64810845a97bedf6fe11c043457c197" } Frame { msec: 1936 @@ -842,7 +842,7 @@ VisualTest { } Frame { msec: 2880 - image: "enforcerange.2.png" + hash: "a4ff6c6c43697808f9ad7387d152cef3" } Frame { msec: 2896 @@ -1210,7 +1210,7 @@ VisualTest { } Frame { msec: 3840 - image: "enforcerange.3.png" + hash: "19c43fcf2875769c9a15f1ce317a0f1e" } Frame { msec: 3856 @@ -1650,7 +1650,7 @@ VisualTest { } Frame { msec: 4800 - image: "enforcerange.4.png" + hash: "da5a30a6f9f40fbb5e2b150965be8ac0" } Frame { msec: 4816 @@ -1890,7 +1890,7 @@ VisualTest { } Frame { msec: 5760 - image: "enforcerange.5.png" + hash: "b64810845a97bedf6fe11c043457c197" } Frame { msec: 5776 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png index 6a589c6..75d2089 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml index 6d09bc0..097080c 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "bf47cc398a702dd17c8efebb3d2f8073" + image: "itemlist.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "itemlist.0.png" + hash: "bf47cc398a702dd17c8efebb3d2f8073" } Frame { msec: 976 @@ -602,7 +602,7 @@ VisualTest { } Frame { msec: 1920 - image: "itemlist.1.png" + hash: "75ab445a739fb2415e20e8997b043656" } Frame { msec: 1936 @@ -850,7 +850,7 @@ VisualTest { } Frame { msec: 2880 - image: "itemlist.2.png" + hash: "99f9988040a389576cb6420b5391f768" } Frame { msec: 2896 @@ -1170,7 +1170,7 @@ VisualTest { } Frame { msec: 3840 - image: "itemlist.3.png" + hash: "88143ff6c278a5433b314b551b7b8b1d" } Frame { msec: 3856 @@ -1490,7 +1490,7 @@ VisualTest { } Frame { msec: 4800 - image: "itemlist.4.png" + hash: "99f9988040a389576cb6420b5391f768" } Frame { msec: 4816 @@ -1810,7 +1810,7 @@ VisualTest { } Frame { msec: 5760 - image: "itemlist.5.png" + hash: "35fe67a91e50f8ebc896451b39cb8f1c" } Frame { msec: 5776 @@ -2050,7 +2050,7 @@ VisualTest { } Frame { msec: 6720 - image: "itemlist.6.png" + hash: "bf47cc398a702dd17c8efebb3d2f8073" } Frame { msec: 6736 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png index c7fa695..71926d7 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml index 45f96e1..07718ca 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "3b88645092be28037fca4a6034f5b2f7" + image: "listview.0.png" } Frame { msec: 32 @@ -298,7 +298,7 @@ VisualTest { } Frame { msec: 960 - image: "listview.0.png" + hash: "d193987835dc12e4391e55ff5fee4ce1" } Frame { msec: 976 @@ -650,7 +650,7 @@ VisualTest { } Frame { msec: 1920 - image: "listview.1.png" + hash: "02f34b6fde613c7c5928285bf81837d6" } Frame { msec: 1936 @@ -1034,7 +1034,7 @@ VisualTest { } Frame { msec: 2880 - image: "listview.2.png" + hash: "5387de4152cac542735a4debf997b56f" } Frame { msec: 2896 @@ -1394,7 +1394,7 @@ VisualTest { } Frame { msec: 3840 - image: "listview.3.png" + hash: "294e6961316b028201657ab6b244559f" } Mouse { type: 5 @@ -1834,7 +1834,7 @@ VisualTest { } Frame { msec: 4800 - image: "listview.4.png" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4816 @@ -2130,7 +2130,7 @@ VisualTest { } Frame { msec: 5760 - image: "listview.5.png" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5776 diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png index f94e879..85f8691 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml index 1804382..fb5e8fb 100644 --- a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml +++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7cf95f1bc67a90c0df788787589a75a9" + image: "packageviews.0.png" } Frame { msec: 32 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - image: "packageviews.0.png" + hash: "9748e4da669f474bf10abfe7a9c013fd" } Frame { msec: 976 @@ -530,7 +530,7 @@ VisualTest { } Frame { msec: 1920 - image: "packageviews.1.png" + hash: "6056cb02b921b56c63696d7fe9fe90fa" } Frame { msec: 1936 @@ -818,7 +818,7 @@ VisualTest { } Frame { msec: 2880 - image: "packageviews.2.png" + hash: "7bb02b032c1dcb4a7b3e6604ea5a8a8d" } Frame { msec: 2896 @@ -1114,7 +1114,7 @@ VisualTest { } Frame { msec: 3840 - image: "packageviews.3.png" + hash: "6dbc00069eca813c20731afdf0d25e35" } Frame { msec: 3856 @@ -1426,7 +1426,7 @@ VisualTest { } Frame { msec: 4800 - image: "packageviews.4.png" + hash: "a703cbbef38b49be2d3033163ad450e7" } Frame { msec: 4816 @@ -1714,7 +1714,7 @@ VisualTest { } Frame { msec: 5760 - image: "packageviews.5.png" + hash: "8d52a504170547407fad6d8785b7199b" } Frame { msec: 5776 diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png index cba9bce..24c11be 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png and b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml index b4c7542..f07bdb2 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + image: "bindinganimation.0.png" } Frame { msec: 32 @@ -250,7 +250,7 @@ VisualTest { } Frame { msec: 960 - image: "bindinganimation.0.png" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 976 @@ -506,7 +506,7 @@ VisualTest { } Frame { msec: 1920 - image: "bindinganimation.1.png" + hash: "abc2ec0bc7a93e75b5823310e6284db1" } Frame { msec: 1936 @@ -810,7 +810,7 @@ VisualTest { } Frame { msec: 2880 - image: "bindinganimation.2.png" + hash: "82363265ed2b611a54f8d48b2af22f11" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png index c5e8029..99748a7 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png index b0f69c2..b75ba61 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png index 1317eef..4320f6f 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml index eb4564c..d318bda 100644 --- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "acc736435c9f84aa82941ba561bc5dbc" + image: "colorAnimation-visual.0.png" } Frame { msec: 32 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - image: "colorAnimation-visual.0.png" + hash: "2d133e7ee60c97386f57838b3f0976c7" } Frame { msec: 976 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1920 - image: "colorAnimation-visual.1.png" + hash: "02bafb5a81ca66f7670ac93de5123860" } Frame { msec: 1936 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 2880 - image: "colorAnimation-visual.2.png" + hash: "8c0fcda4f8956394c53fc4ba18caa850" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png index 4f75bfd..28b6fb6 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png and b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml index 5923222..8048608 100644 --- a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml +++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + image: "easing.0.png" } Frame { msec: 32 @@ -250,7 +250,7 @@ VisualTest { } Frame { msec: 960 - image: "easing.0.png" + hash: "4c9de74276d32c5b2787cf75e612f97d" } Frame { msec: 976 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1920 - image: "easing.1.png" + hash: "2d2ce71a074f045916a207044abd055a" } Frame { msec: 1936 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 2880 - image: "easing.2.png" + hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png index f4301d3..ca37de9 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml index 58d0b26..1d326b5 100644 --- a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml +++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "eff7cc4b163dceb6084270cc589393f1" + image: "loop.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "loop.0.png" + hash: "0de25d97a43cf1a7551c8e8dd1943039" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "loop.1.png" + hash: "72c0bf8225504e86ff023242b84513a8" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "loop.2.png" + hash: "d57e1a10e48938e1f7fc219220fe1204" } Frame { msec: 2896 @@ -962,7 +962,7 @@ VisualTest { } Frame { msec: 3840 - image: "loop.3.png" + hash: "fd7157aef6dfb303472cd33b176f91d8" } Frame { msec: 3856 @@ -1202,7 +1202,7 @@ VisualTest { } Frame { msec: 4800 - image: "loop.4.png" + hash: "2fb9e078573ebd1a5cf0f615c97f1d20" } Frame { msec: 4816 @@ -1442,7 +1442,7 @@ VisualTest { } Frame { msec: 5760 - image: "loop.5.png" + hash: "99789b6e168355a3960986c7d1f21f82" } Frame { msec: 5776 diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png new file mode 100644 index 0000000..e60cc38 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml index 8fd5944..1dd1259 100644 --- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "4faa7727bafeea0771f2db62f0141ac9" + image: "parallelAnimation-visual.0.png" } Frame { msec: 32 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - image: "parallelAnimation.0.png" + hash: "115cb0b4c2c0dcd44618b5891aa210e1" } Frame { msec: 976 @@ -399,7 +399,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png new file mode 100644 index 0000000..fded8c3 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml index edefd01..7388b79 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "4135271d78a5c63c3837a09c86f35ebe" + image: "parentAnimation-visual.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "parentAnimation.0.png" + hash: "4135271d78a5c63c3837a09c86f35ebe" } Frame { msec: 976 @@ -490,7 +490,7 @@ VisualTest { } Frame { msec: 1920 - image: "parentAnimation.1.png" + hash: "f1bc451d1f62cfb5dd60a7ea483d3844" } Frame { msec: 1936 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 2880 - image: "parentAnimation.2.png" + hash: "4135271d78a5c63c3837a09c86f35ebe" } Frame { msec: 2896 @@ -1002,7 +1002,7 @@ VisualTest { } Frame { msec: 3840 - image: "parentAnimation.3.png" + hash: "c8269ecdcd1c898b48280d10a20674b7" } Frame { msec: 3856 @@ -1274,7 +1274,7 @@ VisualTest { } Frame { msec: 4800 - image: "parentAnimation.4.png" + hash: "b24ae0cb512abfd2606ff9c20a6751bf" } Frame { msec: 4816 @@ -1522,7 +1522,7 @@ VisualTest { } Frame { msec: 5760 - image: "parentAnimation.5.png" + hash: "4135271d78a5c63c3837a09c86f35ebe" } Frame { msec: 5776 @@ -1591,7 +1591,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.0.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.0.png index 135911c..03ae932 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.0.png and b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml index 9e1b923..ad3b5bb 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "b3bfd7a06d3e246f4256ab5a267360b0" + image: "parentAnimation2.0.png" } Frame { msec: 32 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - image: "parentAnimation2.0.png" + hash: "5983f3e0800859134bff0182fe9e0142" } Frame { msec: 976 @@ -514,7 +514,7 @@ VisualTest { } Frame { msec: 1920 - image: "parentAnimation2.1.png" + hash: "3210f97ac2799d84fc1d872c4c2994f7" } Frame { msec: 1936 @@ -762,7 +762,7 @@ VisualTest { } Frame { msec: 2880 - image: "parentAnimation2.2.png" + hash: "acab4a79f22ebc8a45759ae282e8f3db" } Frame { msec: 2896 @@ -967,7 +967,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -1018,6 +1018,6 @@ VisualTest { } Frame { msec: 3840 - image: "parentAnimation2.3.png" + hash: "b3bfd7a06d3e246f4256ab5a267360b0" } } diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.0.png new file mode 100644 index 0000000..cb0971a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml index 8e1e1d7..b2fa1f4 100644 --- a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "a350b70c5238a340e85fd4a3ec0390a3" + image: "pauseAnimation-visual.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "pauseAnimation.0.png" + hash: "f1e0301430d153fb9d15eaffdfcd5c58" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "pauseAnimation.1.png" + hash: "3042003c067b257de2cb32f650dde693" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "pauseAnimation.2.png" + hash: "a350b70c5238a340e85fd4a3ec0390a3" } Frame { msec: 2896 @@ -962,7 +962,7 @@ VisualTest { } Frame { msec: 3840 - image: "pauseAnimation.3.png" + hash: "7c27ef654e645679c90520d6cf00b0c4" } Frame { msec: 3856 @@ -1202,7 +1202,7 @@ VisualTest { } Frame { msec: 4800 - image: "pauseAnimation.4.png" + hash: "336d31586171f22d541b989d24b95cbb" } Frame { msec: 4816 @@ -1442,7 +1442,7 @@ VisualTest { } Frame { msec: 5760 - image: "pauseAnimation.5.png" + hash: "ce57e27af329eba4fac3ab891f0407ce" } Frame { msec: 5776 @@ -1599,7 +1599,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png index a02c063..7d2b66e 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml index 09febd7..3216c0a 100644 --- a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "1e5ac43e0f553886bcb2b4016f7e3414" + image: "propertyAction-visual.0.png" } Frame { msec: 32 @@ -250,7 +250,7 @@ VisualTest { } Frame { msec: 960 - image: "propertyAction-visual.0.png" + hash: "4ba1bf769de9bc45630485d06642dc30" } Frame { msec: 976 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1920 - image: "propertyAction-visual.1.png" + hash: "81c157daf3086b21ea2ba39277a31f3d" } Frame { msec: 1936 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 2880 - image: "propertyAction-visual.2.png" + hash: "1e5ac43e0f553886bcb2b4016f7e3414" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.0.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.0.png index 3545e5a..4af1744 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.0.png and b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml index 774cc13..48ca755 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "0755ae54acb6af587bbf7ca509146e0f" + image: "qtbug10586.0.png" } Frame { msec: 32 @@ -338,7 +338,7 @@ VisualTest { } Frame { msec: 960 - image: "qtbug10586.0.png" + hash: "dff3c85f1bb42138410e9db7be98425b" } Frame { msec: 976 @@ -666,7 +666,7 @@ VisualTest { } Frame { msec: 1920 - image: "qtbug10586.1.png" + hash: "d84bf962449716cc64cb34b285926c48" } Frame { msec: 1936 @@ -906,7 +906,7 @@ VisualTest { } Frame { msec: 2880 - image: "qtbug10586.2.png" + hash: "7454984bc5316de021b87d04daf0e8bb" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png index 16adc51..29f7c75 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png and b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml index 0cc98ce..fce5474 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "2452007928bf86b9c42e666c7a7afc89" + image: "qtbug13398.0.png" } Frame { msec: 32 @@ -266,7 +266,7 @@ VisualTest { } Frame { msec: 960 - image: "qtbug13398.0.png" + hash: "e09a359578935b988ac1cc8c40b25547" } Frame { msec: 976 diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png index 454f6c1..f08e048 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml index b4ee569..9628802 100644 --- a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml +++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "213811853dbefdc418099721e3bf8651" + image: "reanchor.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "reanchor.0.png" + hash: "213811853dbefdc418099721e3bf8651" } Frame { msec: 976 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1920 - image: "reanchor.1.png" + hash: "ad3837dcf3e69274ac2918d796974f29" } Frame { msec: 1936 @@ -770,7 +770,7 @@ VisualTest { } Frame { msec: 2880 - image: "reanchor.2.png" + hash: "213811853dbefdc418099721e3bf8651" } Frame { msec: 2896 @@ -1026,7 +1026,7 @@ VisualTest { } Frame { msec: 3840 - image: "reanchor.3.png" + hash: "213811853dbefdc418099721e3bf8651" } Frame { msec: 3856 @@ -1282,7 +1282,7 @@ VisualTest { } Frame { msec: 4800 - image: "reanchor.4.png" + hash: "df51ffd71a82742af7c06f8a786f6bf2" } Frame { msec: 4816 @@ -1522,7 +1522,7 @@ VisualTest { } Frame { msec: 5760 - image: "reanchor.5.png" + hash: "1137e22c68e043950811dee295e19b04" } Frame { msec: 5776 @@ -1778,7 +1778,7 @@ VisualTest { } Frame { msec: 6720 - image: "reanchor.6.png" + hash: "213811853dbefdc418099721e3bf8651" } Frame { msec: 6736 @@ -2034,7 +2034,7 @@ VisualTest { } Frame { msec: 7680 - image: "reanchor.7.png" + hash: "213811853dbefdc418099721e3bf8651" } Frame { msec: 7696 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 8640 - image: "reanchor.8.png" + hash: "b36a09269dfc9173ff8583a62ae87e8a" } Frame { msec: 8656 @@ -2419,7 +2419,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.0.png b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.0.png index e7571f2..5bf32dd 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml index 82303ef..5c2f098 100644 --- a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "c5d2b291578c11c11452c29dc02bcad9" + image: "scriptAction-visual.0.png" } Frame { msec: 32 @@ -250,7 +250,7 @@ VisualTest { } Frame { msec: 960 - image: "scriptAction-visual.0.png" + hash: "1761f6606bbdf5772594cf96412337ca" } Frame { msec: 976 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1920 - image: "scriptAction-visual.1.png" + hash: "6741d853f099a5a98fcdf87053b69ec8" } Frame { msec: 1936 diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png index ee07a68..b551e6b 100644 Binary files a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png and b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png index 986a164..fd28a93 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml index da99cfd..6294112 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "94675f9c9afb6834b91a69fd0ce35a22" + image: "test.0.png" } Frame { msec: 32 @@ -290,7 +290,7 @@ VisualTest { } Frame { msec: 960 - image: "test.0.png" + hash: "f369109744055d30eadf2832a028a104" } Frame { msec: 976 @@ -594,7 +594,7 @@ VisualTest { } Frame { msec: 1920 - image: "test.1.png" + hash: "f369109744055d30eadf2832a028a104" } Frame { msec: 1936 @@ -882,7 +882,7 @@ VisualTest { } Frame { msec: 2880 - image: "test.2.png" + hash: "94675f9c9afb6834b91a69fd0ce35a22" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml index ff977ac..2bff871 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "4823f4520db0c1f64d887f172b3efa17" + image: "test2.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "test2.0.png" + hash: "4823f4520db0c1f64d887f172b3efa17" } Frame { msec: 976 diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png index 49113dd..c092535 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml index 5acfcc2..d7b19a1 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "cb3a3cca07a49fadf8bb00834ea24f73" + image: "test3.0.png" } Frame { msec: 32 @@ -290,7 +290,7 @@ VisualTest { } Frame { msec: 960 - image: "test3.0.png" + hash: "b5a811e6d1b956af67c6df4c9eabd0a3" } Frame { msec: 976 @@ -602,7 +602,7 @@ VisualTest { } Frame { msec: 1920 - image: "test3.1.png" + hash: "2553f91e5ea5a4da70eb3825a0cdfa10" } Frame { msec: 1936 @@ -898,7 +898,7 @@ VisualTest { } Frame { msec: 2880 - image: "test3.2.png" + hash: "1bf8a37b5aeb9df37f97083ce19a0c1a" } Frame { msec: 2896 @@ -1218,7 +1218,7 @@ VisualTest { } Frame { msec: 3840 - image: "test3.3.png" + hash: "cb3a3cca07a49fadf8bb00834ea24f73" } Frame { msec: 3856 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png index b6ef0f5..bebca88 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml index 1200099..7bec3fb 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "aec13bcab337e55832b0a02fb5c6b526" + image: "animated-smooth.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "animated-smooth.0.png" + hash: "d9ab04d0a6a9373e5622e1124db17866" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "animated-smooth.1.png" + hash: "a9b6aeb509076bf17c2068ce280326fb" } Frame { msec: 1936 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png index 3efd596..bebca88 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml index 236003a..55cf602 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "aec13bcab337e55832b0a02fb5c6b526" + image: "animated.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "animated.0.png" + hash: "d1ed4916cb1ecff60277d74369ff311b" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "animated.1.png" + hash: "b63e4d1686057828fd8781f1c33585f5" } Frame { msec: 1936 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png index f8b7339..e1b0967 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml index 92f108c..0b84ecd 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + image: "flickable-horizontal.0.png" } Frame { msec: 32 @@ -314,7 +314,7 @@ VisualTest { } Frame { msec: 960 - image: "flickable-horizontal.0.png" + hash: "a2093589363ac2d50491412e99e0193a" } Frame { msec: 976 @@ -594,7 +594,7 @@ VisualTest { } Frame { msec: 1920 - image: "flickable-horizontal.1.png" + hash: "21e0f21edc77424e8327c9a3350ecc1d" } Mouse { type: 5 @@ -874,7 +874,7 @@ VisualTest { } Frame { msec: 2880 - image: "flickable-horizontal.2.png" + hash: "43fa578250e214ed9ad6894329a27c54" } Frame { msec: 2896 @@ -1354,7 +1354,7 @@ VisualTest { } Frame { msec: 3840 - image: "flickable-horizontal.3.png" + hash: "d73c1059219c0655968af268d22e2c18" } Frame { msec: 3856 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png index 67f2de8..d525858 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml index 86fd3ca..dc24d99 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + image: "flickable-vertical.0.png" } Frame { msec: 32 @@ -346,7 +346,7 @@ VisualTest { } Frame { msec: 960 - image: "flickable-vertical.0.png" + hash: "f1192763bfb9efacc47828866abacaea" } Frame { msec: 976 @@ -658,7 +658,7 @@ VisualTest { } Frame { msec: 1920 - image: "flickable-vertical.1.png" + hash: "c591e684fa9a8888d6117af66eaec299" } Frame { msec: 1936 @@ -994,7 +994,7 @@ VisualTest { } Frame { msec: 2880 - image: "flickable-vertical.2.png" + hash: "96fb3652bfcf0aac1e35a2e50532816f" } Mouse { type: 5 @@ -1498,7 +1498,7 @@ VisualTest { } Frame { msec: 3840 - image: "flickable-vertical.3.png" + hash: "b0e76c5cfeb797888e8c032b3f2781bd" } Frame { msec: 3856 @@ -1762,7 +1762,7 @@ VisualTest { } Frame { msec: 4800 - image: "flickable-vertical.4.png" + hash: "b0e76c5cfeb797888e8c032b3f2781bd" } Frame { msec: 4816 @@ -2154,7 +2154,7 @@ VisualTest { } Frame { msec: 5760 - image: "flickable-vertical.5.png" + hash: "5eb13b99216b29a54d4676c171949cf6" } Mouse { type: 5 @@ -2442,7 +2442,7 @@ VisualTest { } Frame { msec: 6720 - image: "flickable-vertical.6.png" + hash: "4cd763300154da47a8ce8fc13b2213c5" } Frame { msec: 6736 @@ -2698,7 +2698,7 @@ VisualTest { } Frame { msec: 7680 - image: "flickable-vertical.7.png" + hash: "1889f1f0e319b90b6a68d76df6eebe96" } Frame { msec: 7696 @@ -3154,7 +3154,7 @@ VisualTest { } Frame { msec: 8640 - image: "flickable-vertical.8.png" + hash: "1889f1f0e319b90b6a68d76df6eebe96" } Frame { msec: 8656 @@ -3754,7 +3754,7 @@ VisualTest { } Frame { msec: 9600 - image: "flickable-vertical.9.png" + hash: "b3003855e3805c0a514bf2c7a42d398f" } Mouse { type: 5 @@ -4242,7 +4242,7 @@ VisualTest { } Frame { msec: 10560 - image: "flickable-vertical.10.png" + hash: "b0e76c5cfeb797888e8c032b3f2781bd" } Mouse { type: 5 @@ -4602,7 +4602,7 @@ VisualTest { } Frame { msec: 11520 - image: "flickable-vertical.11.png" + hash: "b0e76c5cfeb797888e8c032b3f2781bd" } Frame { msec: 11536 @@ -5122,7 +5122,7 @@ VisualTest { } Frame { msec: 12480 - image: "flickable-vertical.12.png" + hash: "b0e76c5cfeb797888e8c032b3f2781bd" } Mouse { type: 5 @@ -5498,7 +5498,7 @@ VisualTest { } Frame { msec: 13440 - image: "flickable-vertical.13.png" + hash: "f77f12bdb352d5a8470ae8c93ae3646e" } Frame { msec: 13456 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png index 53a8b42..b3ae1bc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml index d2d46e4..4b089d1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "7e16e6360fc2e9db67dbf11d58042745" + image: "test-flipable.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "test-flipable.0.png" + hash: "c03406106847c03c73f5897e65690925" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "test-flipable.1.png" + hash: "1e8348fbb51871dffe9543fca19bb452" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "test-flipable.2.png" + hash: "373141f99bc88c40ead161502c9750e9" } Frame { msec: 2896 @@ -962,7 +962,7 @@ VisualTest { } Frame { msec: 3840 - image: "test-flipable.3.png" + hash: "464a78e75e10b62773ab64af4fc4c7aa" } Frame { msec: 3856 @@ -1202,7 +1202,7 @@ VisualTest { } Frame { msec: 4800 - image: "test-flipable.4.png" + hash: "03f17b2cd781f2ee0ae5664a0491166c" } Frame { msec: 4816 @@ -1442,7 +1442,7 @@ VisualTest { } Frame { msec: 5760 - image: "test-flipable.5.png" + hash: "73c06997014af4e008b546b53fe349fb" } Frame { msec: 5776 @@ -1559,7 +1559,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.0.png new file mode 100644 index 0000000..814cc89 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml index d1a5ade..08c5e16 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "04382a80a203e1fe3d0d4944c9195e0b" + image: "test_flipable_resize.0.png" } Frame { msec: 32 @@ -187,7 +187,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png index c675be7..b053048 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml index a3e5ea0..2f7ed93 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "c33447c78ea64452ec3cd1696fb502eb" + image: "gridview.0.png" } Frame { msec: 32 @@ -274,7 +274,7 @@ VisualTest { } Frame { msec: 960 - image: "gridview.0.png" + hash: "02c632713d0dc64bff9d8e58f745df95" } Frame { msec: 976 @@ -546,7 +546,7 @@ VisualTest { } Frame { msec: 1920 - image: "gridview.1.png" + hash: "8304d2432168a2ea8a887d9a135b40b4" } Frame { msec: 1936 @@ -826,7 +826,7 @@ VisualTest { } Frame { msec: 2880 - image: "gridview.2.png" + hash: "e9112eea445585b17d58b6f9ba039c39" } Frame { msec: 2896 @@ -1106,7 +1106,7 @@ VisualTest { } Frame { msec: 3840 - image: "gridview.3.png" + hash: "e63d987ba303a42046827f14941b444a" } Frame { msec: 3856 @@ -1394,7 +1394,7 @@ VisualTest { } Frame { msec: 4800 - image: "gridview.4.png" + hash: "11150995098af8516513230360d40108" } Frame { msec: 4816 @@ -1666,7 +1666,7 @@ VisualTest { } Frame { msec: 5760 - image: "gridview.5.png" + hash: "3de570332e8a1e01f409d892feb7930e" } Frame { msec: 5776 @@ -1946,7 +1946,7 @@ VisualTest { } Frame { msec: 6720 - image: "gridview.6.png" + hash: "dcf8c3078973ad99fbbcc763e433de11" } Frame { msec: 6736 @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 7680 - image: "gridview.7.png" + hash: "2a5a7dfcd64200864abfa9267e802f4e" } Frame { msec: 7696 @@ -2506,7 +2506,7 @@ VisualTest { } Frame { msec: 8640 - image: "gridview.8.png" + hash: "fb8acbfc93b64d960abb17f097fe36fe" } Key { type: 7 @@ -2786,7 +2786,7 @@ VisualTest { } Frame { msec: 9600 - image: "gridview.9.png" + hash: "02c632713d0dc64bff9d8e58f745df95" } Frame { msec: 9616 @@ -2831,7 +2831,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png index 3021d58..27e0783 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml index 1c90af9..8ac4cbf 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "dba2f6f1c773bd4cd9523108fca861c4" + image: "gridview2.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "gridview2.0.png" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 976 @@ -330,27 +330,27 @@ VisualTest { } Frame { msec: 1280 - hash: "aaec7184a27e6700d96ffff376b8fa53" + hash: "4ffd56d59c14ba676393686d753951d7" } Frame { msec: 1296 - hash: "3fa3a890a4ff4a59336a9a2d478d0dde" + hash: "e2f7702ed749330b2f027aa73967a4cf" } Frame { msec: 1312 - hash: "3711c6c2f4f9aba7f2c72bd1f1d85016" + hash: "3f4dcee547e925db9b3da1fa08bab3c9" } Frame { msec: 1328 - hash: "23da2f9a800b805ce7b77ff08218907d" + hash: "12b0bf8abbb9b6a0597eccebe5322551" } Frame { msec: 1344 - hash: "12e4bc953b06cdaad0720f87fb96a37e" + hash: "23da2f9a800b805ce7b77ff08218907d" } Frame { msec: 1360 - hash: "46e69658bda69bab202a2790a76ba1cd" + hash: "9c039c94a4202b99bf913891bdcb3698" } Key { type: 7 @@ -362,27 +362,27 @@ VisualTest { } Frame { msec: 1376 - hash: "44608e67c69b92ccbb45e119e1158fe3" + hash: "dd7c95ca98c4f37837c2ff7f03243fc3" } Frame { msec: 1392 - hash: "97a309b47017d38294644a486a7ce68e" + hash: "6f31f7af4e68ab0eab101e7ae840b4b6" } Frame { msec: 1408 - hash: "41f42b50b22e0496c8aca5019b24b9cb" + hash: "29943a44b9830bb64b3e5a3b6abd8c42" } Frame { msec: 1424 - hash: "8603ea1cb60c804563f50bc41c0180fe" + hash: "93d37221e8e022c84e35c7bd44b0644e" } Frame { msec: 1440 - hash: "e29777fa70daafe9640c6e9bb7bd63d6" + hash: "9ce3cd471dba7fe94de4e9ad321803b2" } Frame { msec: 1456 - hash: "2c4c360320f527e99fee799e68c2c0aa" + hash: "0d30916c7e05ff8609af5894f47a89bb" } Frame { msec: 1472 @@ -430,23 +430,23 @@ VisualTest { } Frame { msec: 1616 - hash: "17027b7c099b11cb5382f30dbbd1e647" + hash: "6775c78beca0f078c5f2c57370de1946" } Frame { msec: 1632 - hash: "0e17461a4ca843f9903b7f03e99a0b00" + hash: "898709f3871e13825baf48861930f26c" } Frame { msec: 1648 - hash: "a5e61901920553e59892fa405beea15a" + hash: "c1a568599592a3f455ad550c2e4878a8" } Frame { msec: 1664 - hash: "310eaf71fe8d3807606e58a666c65ccd" + hash: "a80d8cbf0c6fe8383badbb2badb361ad" } Frame { msec: 1680 - hash: "76f556d05fb77082f33eb1836c10587a" + hash: "310eaf71fe8d3807606e58a666c65ccd" } Key { type: 7 @@ -458,31 +458,31 @@ VisualTest { } Frame { msec: 1696 - hash: "4e7e4b7790a96396e7ea3533b5c32ed9" + hash: "0f317f50b0d2a4c5daf819431527416e" } Frame { msec: 1712 - hash: "b065287b6490f58ca6f0e9eb2027cf20" + hash: "d251b64b794902fe2c5da3cee43ff82d" } Frame { msec: 1728 - hash: "907cd9dbdffa1d395caaabd466dc8e86" + hash: "757adc256e1b5d739c29ee82bdacfa16" } Frame { msec: 1744 - hash: "3b144e5b4867328beafa3020ce931480" + hash: "1c20e69e033a5fa4825fd46f51d1e348" } Frame { msec: 1760 - hash: "b59b2b60b7d55424b61b1b0ed3e227b8" + hash: "03cbcd361ec24925222802c8ece99793" } Frame { msec: 1776 - hash: "4032e934871b315b68c7c2abea42efee" + hash: "dffaa2dd4d6dd89a1b26d5db38906059" } Frame { msec: 1792 - hash: "8f80127b2f8d6fc10aa84062544cc381" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 1808 @@ -514,7 +514,7 @@ VisualTest { } Frame { msec: 1920 - image: "gridview2.1.png" + hash: "77d5193bc5f53fe5cb98a236c55f841e" } Frame { msec: 1936 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 2048 - hash: "a45d2630872a14541f39b862e15ff461" + hash: "1f046afe50ee5e1fc07e89a40528351c" } Frame { msec: 2064 - hash: "714711d7382ef8bba5fb39e2e44bd59c" + hash: "132fbaa8fc2890d48f1916a25cb09887" } Frame { msec: 2080 - hash: "63deed0356e761f94f88be18a7d10053" + hash: "e904c892dc27ff1700009470f234ce0d" } Frame { msec: 2096 - hash: "d5b4fc1b568a4a1b63a91b422272c704" + hash: "0968397c7a209059cd466c61ac891081" } Frame { msec: 2112 - hash: "b6d2c80925cc6b4b7b297bd6ee903c7c" + hash: "d5b4fc1b568a4a1b63a91b422272c704" } Key { type: 7 @@ -582,31 +582,31 @@ VisualTest { } Frame { msec: 2128 - hash: "38117482196360353586cb7ace593894" + hash: "a980a2e7bd10328fbd4400e799aa7c24" } Frame { msec: 2144 - hash: "2301f3a148bf4e311cc8ce011ddf65f8" + hash: "b74be5349822d52ced201d7f34a96122" } Frame { msec: 2160 - hash: "2a4982a0961f89a15618f8d4c2081f5a" + hash: "f7c6dbcd7d55b3230af463098f346bd8" } Frame { msec: 2176 - hash: "acf8666d6a8a29925f3895aa8e93f713" + hash: "393358a0ee7636a535f14f0dc9c3d609" } Frame { msec: 2192 - hash: "967ed026bc92a6d2747c5227105543a6" + hash: "cad337b87b629b1eee78407aacfd279e" } Frame { msec: 2208 - hash: "ff72f3fb95f25990c99c1c14cfef57da" + hash: "d90b762e62867e3ff928160bed85d2ff" } Frame { msec: 2224 - hash: "0874a4f863596c3860dcf5b1f7f6ceb2" + hash: "520445d8619ad9bdde0db0e61f17567c" } Frame { msec: 2240 @@ -658,31 +658,31 @@ VisualTest { } Frame { msec: 2400 - hash: "7c4bbf0423d63d7642d218cac56a6215" + hash: "5c9801ffdb07be53524cf0a4f8709ee4" } Frame { msec: 2416 - hash: "e8c77dbc89721b51549f8d46453fe09d" + hash: "adef25d77f816e40ec02886187f456bf" } Frame { msec: 2432 - hash: "7953503590b639872ac12215695e8cea" + hash: "56290066fa32054bb7e1669bbda3f3bb" } Frame { msec: 2448 - hash: "edaee946a2e25fed6de9acfda0d44a14" + hash: "101b94bcf3f536bd64f0ac50f21cd5de" } Frame { msec: 2464 - hash: "4996ef39bb0122c10d65f8dd8674b386" + hash: "edaee946a2e25fed6de9acfda0d44a14" } Frame { msec: 2480 - hash: "ede7c6ca9d6deb7819c3715e98755d6e" + hash: "b170b60632b17595713dd911afc46fcc" } Frame { msec: 2496 - hash: "e703fad2fcf9244ec9865200c7d17ce3" + hash: "57550914cd214025c6b1f3dfa446417f" } Key { type: 7 @@ -694,23 +694,23 @@ VisualTest { } Frame { msec: 2512 - hash: "e2bfc16fd893bb3eb0e5df89a0169af3" + hash: "3fd7252f5e61e3c348219a54fd5b95d9" } Frame { msec: 2528 - hash: "cfd0eb2bc378bd46644f3f7820150685" + hash: "c6c27dd386e40bc0a02ad8104301d391" } Frame { msec: 2544 - hash: "442b05b04762c2bcda291aaa0341398e" + hash: "dd476c04d3612f940e1959030ee8e264" } Frame { msec: 2560 - hash: "55842a6503057eea98e2075ef160873e" + hash: "f2f8d9bb8a1865237398421f6a6d89dc" } Frame { msec: 2576 - hash: "730f80233dacf1119660a76d2a34c5fc" + hash: "d4a48ee79a18cc5c0bc123fbb40c3efd" } Frame { msec: 2592 @@ -766,23 +766,23 @@ VisualTest { } Frame { msec: 2768 - hash: "4d04c12bc7fab0b22df3135bf3a87a22" + hash: "f13bc957329adad9dcb1ce0c408eeaaf" } Frame { msec: 2784 - hash: "fdca5a3f8312452feba7f37b1caa6419" + hash: "9a676805f3474f924cbe7ea21ee9dcab" } Frame { msec: 2800 - hash: "97b955e0f8cde30299b238d9ac0eb308" + hash: "f0161b0d27757137bcb7fd3e6db2280c" } Frame { msec: 2816 - hash: "19664de1a738458810896959ba4087ad" + hash: "c7034a0e8956c9f483c128a934d68fa7" } Frame { msec: 2832 - hash: "4f9a4b6de6a2969e4639076a8f7c258e" + hash: "19664de1a738458810896959ba4087ad" } Key { type: 7 @@ -794,31 +794,31 @@ VisualTest { } Frame { msec: 2848 - hash: "a10f18aa686be2681a48082ec9f01df7" + hash: "c5d5ff1884dd0ede23097530c249678c" } Frame { msec: 2864 - hash: "b8f39a6cca377dd573429d879286dd63" + hash: "131ae4a26ad06bbef105668d30e154aa" } Frame { msec: 2880 - image: "gridview2.2.png" + hash: "5d6ba09a5038e00007af0fa3f89b67b8" } Frame { msec: 2896 - hash: "3301e52a46efbc49882401c77853ffde" + hash: "c88c120d64171197e4050cb73b56a766" } Frame { msec: 2912 - hash: "0c614597f17496ebc701efe7b0c1fbb6" + hash: "9d5ee2458abc5dfd56abfd42c906270f" } Frame { msec: 2928 - hash: "6dda2d6b034c932e279cf216c9b3e6ad" + hash: "823b5d63768f5a18e795d5ed61f4dec8" } Frame { msec: 2944 - hash: "7bf08cd5fe3ad3f83bbef28f452e0545" + hash: "1b7ebcf0e3d68e429cb04966120985e5" } Frame { msec: 2960 @@ -854,35 +854,35 @@ VisualTest { } Frame { msec: 3056 - hash: "0fe7d46e7c18ce7bb5a098c5c662d557" + hash: "1a8a32127c1b699bc282b0c209117a00" } Frame { msec: 3072 - hash: "cd5df541cc1ed545bc27da9e4a937261" + hash: "2f5f2ab12410c070a7c05a1674e273fe" } Frame { msec: 3088 - hash: "35762467b83fee1870cff9b0436994d3" + hash: "afe7c2cd74cc90d67e8c068eaf5988eb" } Frame { msec: 3104 - hash: "75a620b42caabf5b1576041dbd4c2808" + hash: "e063d9eb45dc42b3f8b66937b7b4c19a" } Frame { msec: 3120 - hash: "f1b06290a6cbd48b8d3d4ce1e42ed754" + hash: "75a620b42caabf5b1576041dbd4c2808" } Frame { msec: 3136 - hash: "8e1a50dc082828587a4656117760a852" + hash: "2e2b9db4d2f19035c7c29489332b2550" } Frame { msec: 3152 - hash: "aae8e5f166e736040138d8e222a844dd" + hash: "32370cba80db8eaf1f5cd9b73d3472ed" } Frame { msec: 3168 - hash: "f69e5cf2bcb26fe49126776695b0b7e0" + hash: "3a79c47a8eb8bb79316e61a7eed58e57" } Key { type: 7 @@ -894,19 +894,19 @@ VisualTest { } Frame { msec: 3184 - hash: "7b482fece0255ea07496ef0545b008a2" + hash: "c84e47182ef6ebec61163f9b42d03c64" } Frame { msec: 3200 - hash: "3f96eaebfebe8d4eeb347b201b59ab11" + hash: "6a0a83a39e6ab82b5437d46468e4776d" } Frame { msec: 3216 - hash: "9943626d2226c3be711c8213906133f0" + hash: "945929656c1d27bcba51ce908e72a770" } Frame { msec: 3232 - hash: "fd5fd8177b3957c27f1de0d95621351a" + hash: "506283ccfe9670633ce0bf60b437b37b" } Frame { msec: 3248 @@ -958,31 +958,31 @@ VisualTest { } Frame { msec: 3408 - hash: "fb437f6c23561092a124e498f1604ff2" + hash: "7d12bcac0fcaaff7467c444ab89f1e06" } Frame { msec: 3424 - hash: "402ba144bbb7260eec4553e68eb35cda" + hash: "2f4538eec0c704af25b0a73d5a8dded4" } Frame { msec: 3440 - hash: "76a983de9e85e0c81dfb8908252bd6c9" + hash: "4722cbfba5de7e4f7b3cee10bd0f75b5" } Frame { msec: 3456 - hash: "09219f55fae47a0afed887ebf68a36bc" + hash: "3a6df7e6d771c6edc5218ad9a4bf6ab0" } Frame { msec: 3472 - hash: "344e81cc262093facef2f6a235a734dc" + hash: "09219f55fae47a0afed887ebf68a36bc" } Frame { msec: 3488 - hash: "8f1c5544eb537555b1c59a377b15e31d" + hash: "c04c0010761f572c5b16963699c70135" } Frame { msec: 3504 - hash: "606b9bb549fe2e4bbd09d67b7dea0d1a" + hash: "52d59ffff0f2109f9a584f3582158798" } Key { type: 7 @@ -994,23 +994,23 @@ VisualTest { } Frame { msec: 3520 - hash: "63e239c97bd01a61cb31ef2869e7f47c" + hash: "9b1d58189c56205ba8963671bfb86742" } Frame { msec: 3536 - hash: "f7c176550c39f8a1ad64590cf33a60a4" + hash: "7de84895e12919ffe935b23372db95db" } Frame { msec: 3552 - hash: "8581cb14ed81efdf9abb638b5e542cc3" + hash: "d9c5b4c2a7831c216fe2266fe26306b0" } Frame { msec: 3568 - hash: "7a1e9354ecc49d8bc27d303c7bdc81f9" + hash: "1c2bc039c48e7e9da07165f405a6f207" } Frame { msec: 3584 - hash: "610288b97276ee03702ed8a814ef333d" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 3600 @@ -1074,19 +1074,19 @@ VisualTest { } Frame { msec: 3808 - hash: "9713c6b9aff051dd0cc45c545d34b688" + hash: "abf9f5ef21fb62e5ad89ae2640a5a7e1" } Frame { msec: 3824 - hash: "1f8fd4d759e343720a8681b6ad126b72" + hash: "58103d91498617585163e0508bdb724d" } Frame { msec: 3840 - image: "gridview2.3.png" + hash: "c46ea52b070681155466b30096379c4f" } Frame { msec: 3856 - hash: "8550d916d91a40b0c3a886b962e07ffc" + hash: "b78cfa8624a7f7b382bb628648f8a9df" } Key { type: 7 @@ -1098,143 +1098,143 @@ VisualTest { } Frame { msec: 3872 - hash: "df0c2e474139e79429bfc19c79a65ef8" + hash: "523667a6f3213fb67de1744636780831" } Frame { msec: 3888 - hash: "acfb99d081d754276e5ed59bd590aeab" + hash: "f0b7d38f695a29f6787dc3683a05a7c8" } Frame { msec: 3904 - hash: "2b34cd101b442f7a3de2893fd5514c16" + hash: "1e5cf55e27217e67a5deb89e2d46349a" } Frame { msec: 3920 - hash: "df92ced66faa1d59354d8010278438ec" + hash: "c49869491f484d07da838a21564e5e19" } Frame { msec: 3936 - hash: "dd39a8e6fa3784453461193a6da416cd" + hash: "1acce2b796476d2d7d130749b06f334f" } Frame { msec: 3952 - hash: "5670e8f91ea2df451f0974a51cd77d7d" + hash: "19ee6550b52517345859f9feb0b0d5a4" } Frame { msec: 3968 - hash: "74b97a09bfe7400872a2c6214e04a5ac" + hash: "d2f360af319c740ad095ee0a463fa6fa" } Frame { msec: 3984 - hash: "cfd55b963506ab54cf09a7311e84bcc9" + hash: "032326c6cf2a9da09c2388626ce942ef" } Frame { msec: 4000 - hash: "59657ee9293c03f064d62de826931435" + hash: "ba2a7178b7c68001ecfdfea053507d0e" } Frame { msec: 4016 - hash: "31f6a4adf31be5ed0af0ea4097e3acee" + hash: "9afddf683c810e288ed0da2fa44c5182" } Frame { msec: 4032 - hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + hash: "93a7145e4bafa1e40a1db013b1c4337c" } Frame { msec: 4048 - hash: "9dc38985113124130e2ca7950e0bd144" + hash: "3d48687ecb20a8670dd656c5705a0797" } Frame { msec: 4064 - hash: "786e6e8b9e74876a6f393d61a78b8fc7" + hash: "7578264d5ea215f7fde90478ba5e6d32" } Frame { msec: 4080 - hash: "1f4d59a4e4684aab309363a711b30006" + hash: "fb84bbce52e9c4dc4efc1eed7e863007" } Frame { msec: 4096 - hash: "a11e332de151b43051796e16dbcf75c3" + hash: "df5d88d8421af767057fc4b3d0de23b1" } Frame { msec: 4112 - hash: "1a0e82029ae107cb2a018786752433ff" + hash: "dae3e3e10fe7e0ddcf10a7bb4ecc3f1a" } Frame { msec: 4128 - hash: "b14c51977c7fbf51f9cf6fec309bff6a" + hash: "eb15ba34411afd416dea5bc2b18cfb27" } Frame { msec: 4144 - hash: "2b418f811992399c3f87c268db745632" + hash: "5f51ade6a1400093e9dd2b80d6f7a6ca" } Frame { msec: 4160 - hash: "0e9a056207053ca98c4e9f42de244c62" + hash: "5e240752b752ca2ed4e6087f4deb0fbf" } Frame { msec: 4176 - hash: "1945c3f9e3a1337e7d111e15adea345f" + hash: "ae1931b9f168211c44c7269a245635fd" } Frame { msec: 4192 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4208 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4224 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4240 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4256 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4272 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4288 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4304 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4320 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4336 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4352 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4368 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4384 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4400 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4416 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Key { type: 6 @@ -1246,31 +1246,31 @@ VisualTest { } Frame { msec: 4432 - hash: "d8cf36b6cc15a01ead815d814ae81cb4" + hash: "83588693715deadea8b875d6c6547371" } Frame { msec: 4448 - hash: "1945c3f9e3a1337e7d111e15adea345f" + hash: "ae1931b9f168211c44c7269a245635fd" } Frame { msec: 4464 - hash: "0e9a056207053ca98c4e9f42de244c62" + hash: "a8e4b69162a6298929c12a91e60f20c1" } Frame { msec: 4480 - hash: "2b418f811992399c3f87c268db745632" + hash: "ca4694bbbdc206c46600c894ed853390" } Frame { msec: 4496 - hash: "b14c51977c7fbf51f9cf6fec309bff6a" + hash: "21b2f2ee716d6b28066d44bfdc57babf" } Frame { msec: 4512 - hash: "1a0e82029ae107cb2a018786752433ff" + hash: "d37df25a59f3ba88b78f548521a6e5b2" } Frame { msec: 4528 - hash: "a11e332de151b43051796e16dbcf75c3" + hash: "b554cb62b97bbbb671d9b34389d4187a" } Key { type: 7 @@ -1282,75 +1282,75 @@ VisualTest { } Frame { msec: 4544 - hash: "1f4d59a4e4684aab309363a711b30006" + hash: "d28889303f98c47665247009bcfd68e7" } Frame { msec: 4560 - hash: "786e6e8b9e74876a6f393d61a78b8fc7" + hash: "80e7808641fc79c893a02842f641249b" } Frame { msec: 4576 - hash: "9dc38985113124130e2ca7950e0bd144" + hash: "4f3a39e8c61ad9197e7f24058671e510" } Frame { msec: 4592 - hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76" + hash: "ba2a7178b7c68001ecfdfea053507d0e" } Frame { msec: 4608 - hash: "31f6a4adf31be5ed0af0ea4097e3acee" + hash: "ca1c72729c41845151820d362721a1e7" } Frame { msec: 4624 - hash: "59657ee9293c03f064d62de826931435" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4640 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4656 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4672 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4688 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4704 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4720 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4736 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4752 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4768 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4784 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4800 - image: "gridview2.4.png" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4816 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Key { type: 6 @@ -1362,27 +1362,27 @@ VisualTest { } Frame { msec: 4832 - hash: "23aa652a0de7fced4a780d72f0940a1b" + hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" } Frame { msec: 4848 - hash: "d46eea049d6156a5e85d9c6811d9d367" + hash: "1176eed6f023a843a646517e60f848b5" } Frame { msec: 4864 - hash: "d5796ae85247cb8502f92f0d044e4e1f" + hash: "26eca367a7fe38ac123fa63cfbb20421" } Frame { msec: 4880 - hash: "90987ac49c1a4e6b668436e3ff631e6c" + hash: "d471f06d345e5a09bf4ea540b80fe1e3" } Frame { msec: 4896 - hash: "c38d69759ad80242b1fe83ba191cd421" + hash: "e3694d271e363df1b212d975a464df62" } Frame { msec: 4912 - hash: "09d08aed76a04e492d8a39cc4dd2b8f5" + hash: "3dc24a10bbf6a6a0ba85f50de8646305" } Key { type: 7 @@ -1394,175 +1394,175 @@ VisualTest { } Frame { msec: 4928 - hash: "9671d2ff9a2ef46ce3c750a1965404a4" + hash: "08e7979e36a9a8a500193020ab68c616" } Frame { msec: 4944 - hash: "f55857816d666ece4a7987a70883b3d1" + hash: "bd91601e455c2c37c786f907bd20b447" } Frame { msec: 4960 - hash: "a2d80527b30316d9120b057bbfcfa666" + hash: "e4b676fc9752f3bff5353a2bf528b3ac" } Frame { msec: 4976 - hash: "87ca69287c1469cbc7e65d1673016de7" + hash: "c772188a68cc0958c247145005d580ef" } Frame { msec: 4992 - hash: "51588c7ebbe2dcd87a3c9bebf028aee3" + hash: "eded946d9e7c6418e3933624fe2f1dbf" } Frame { msec: 5008 - hash: "917a9a171273fe9fd4c450eeed6f58ed" + hash: "46a2dd2bfa66a3781a00fe466e05eeb0" } Frame { msec: 5024 - hash: "6e7ade250a9a9692caee2a220dd2ac53" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5040 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5056 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5072 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5088 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5104 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5120 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5136 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5152 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5168 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5184 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5200 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5216 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5232 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5248 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5264 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5280 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5296 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5312 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5328 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5344 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5360 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5376 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5392 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5408 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5424 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5440 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5456 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5472 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5488 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5504 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5520 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5536 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5552 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5568 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5584 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5600 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Key { type: 6 @@ -1574,31 +1574,31 @@ VisualTest { } Frame { msec: 5616 - hash: "ca2dcb16d553889a3a57b48700c2a595" + hash: "4e11a072f1136c2c6298e6cfb25700dd" } Frame { msec: 5632 - hash: "c5c9aab9bea757f1c451e89df72bd836" + hash: "e44ee0f83cbd176620d5c91851402b5b" } Frame { msec: 5648 - hash: "a8cf3085f8c3b743f3f15db1ad7b8801" + hash: "c18bc8109b350673faf64b4722e86f3d" } Frame { msec: 5664 - hash: "c25a92050eced1c304506572723273a3" + hash: "1b552ed8555c61e1fa664e6c88aee64d" } Frame { msec: 5680 - hash: "cff981039c1a3eb6c3c1a20f142fbae2" + hash: "11284c77b23ba4b4b0c664b387dc9d48" } Frame { msec: 5696 - hash: "930765587fe3355873bbdff66b812b74" + hash: "fbd015d60a8ada6a671301d01846b4c8" } Frame { msec: 5712 - hash: "6a60f97c7b39add465e1bd366e9c644b" + hash: "1456fca256ab6fdf930dd079ee8b77a7" } Key { type: 7 @@ -1610,99 +1610,99 @@ VisualTest { } Frame { msec: 5728 - hash: "7a1fd3c488d1064a75dc598c9a773291" + hash: "bf7f688319a89ade564734d7fc658167" } Frame { msec: 5744 - hash: "e2ecd7e68e27eb3d2dcb5e368d3ee5a0" + hash: "68819e722d6032881824448ed63248b2" } Frame { msec: 5760 - image: "gridview2.5.png" + hash: "510589f35813c6c1d6484f614da92ae3" } Frame { msec: 5776 - hash: "20f3aaca2efc3066076e73d1d95e5363" + hash: "03714e1fe57c2a438b0c89374a0d51b4" } Frame { msec: 5792 - hash: "b18d476cadc36e22dddc3185f595c123" + hash: "37f9e630ac66e999046d686078cf5a68" } Frame { msec: 5808 - hash: "8cbc47555178c8ee355774eab17b4b19" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5824 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5840 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5856 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5872 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5888 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5904 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5920 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5936 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5952 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5968 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 5984 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6000 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6016 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6032 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6048 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6064 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6080 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6096 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Key { type: 6 @@ -1714,39 +1714,39 @@ VisualTest { } Frame { msec: 6112 - hash: "e488fb76fb550fba51b95bee3fee80d5" + hash: "b534ccea1f69ececc54d943e73b7e9f4" } Frame { msec: 6128 - hash: "8c2fab0c73d1cfbeeb0ec937085d6b3b" + hash: "f45eb6005981864d7e4d1379a4390b02" } Frame { msec: 6144 - hash: "5d9353517177ef7c6314d8a65cb009ec" + hash: "a644905acb7cf6e4d9351f1140985a98" } Frame { msec: 6160 - hash: "ed8de504f7e2028cd369c1555314fd81" + hash: "011be55b909843b2506c5a97e7571e51" } Frame { msec: 6176 - hash: "8fe84d8badbe5bd08d097ba6bda10611" + hash: "35b224d84ae3a4bdba0ace487471f0a6" } Frame { msec: 6192 - hash: "d77419a55a3cf933505e793bb258e6af" + hash: "dcfd5536e6065a19650fe67914211223" } Frame { msec: 6208 - hash: "457ac82be02e2f5e08e51ccc78c94781" + hash: "8ad99c352901c54ecc601ca2ac8c1f08" } Frame { msec: 6224 - hash: "e57e2852f065afff9c24c5bc9f29edee" + hash: "e4774d15b45865b9f445f679cd0414ea" } Frame { msec: 6240 - hash: "f72cd6ad3324936c3a18c264e23e05a9" + hash: "a5b78dfb09b9031f0aabfa7439cbc433" } Key { type: 7 @@ -1758,127 +1758,127 @@ VisualTest { } Frame { msec: 6256 - hash: "a4bf7eae6fc7a05239d09421ae95304a" + hash: "20b87dc26080f8e8e070b2fa299f496a" } Frame { msec: 6272 - hash: "423f3bd07df8bee25818644c07201a3c" + hash: "0e6d05d1df8328ca17d953476d19ae14" } Frame { msec: 6288 - hash: "225e9c698424f287b9458b7839b4479b" + hash: "e2b1ec6b985bbc57f0384a49f3af545c" } Frame { msec: 6304 - hash: "0f463db7e4acc184a4efb7b5e5c0d397" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6320 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6336 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6352 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6368 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6384 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6400 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6416 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6432 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6448 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6464 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6480 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6496 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6512 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6528 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6544 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6560 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6576 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6592 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6608 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6624 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6640 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6656 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6672 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6688 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6704 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6720 - image: "gridview2.6.png" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6736 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Key { type: 6 @@ -1890,27 +1890,27 @@ VisualTest { } Frame { msec: 6752 - hash: "b92ad1c3be35c46c0d12bf7701c56f23" + hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" } Frame { msec: 6768 - hash: "738f6bcc043d221488285c7e529b1d1c" + hash: "6cbeb42ae5aa75638fedcaf38d25370a" } Frame { msec: 6784 - hash: "cb0a4e8e79372dd67e8ecfea2143a47c" + hash: "fe3b287b14cbfbca4e19a2de979e9e16" } Frame { msec: 6800 - hash: "544d1825b36f4e7950c1a62b26c1fd9b" + hash: "69650da29b84b8009c30de516fb9b623" } Frame { msec: 6816 - hash: "df99396622342b4f092b0db34a224c3d" + hash: "5cbcaf1e6916aa635e31ac4219e387f7" } Frame { msec: 6832 - hash: "47391f51e5df2249a6ca1f1f6e8e80e0" + hash: "acb7f98da26b70bebe20336c51449318" } Key { type: 7 @@ -1922,19 +1922,19 @@ VisualTest { } Frame { msec: 6848 - hash: "d8079a874ca18d00aeeb611effcbeb8b" + hash: "8588b82fadca8ea18d4cc268508119e0" } Frame { msec: 6864 - hash: "4cfd9264af6935aca425da75ebb2d7cc" + hash: "e2cf9055220b1c8126423df30e3607ed" } Frame { msec: 6880 - hash: "aee6547cb653cd2d56d07285d836149d" + hash: "d06e77ff2044ba3f6fc1664af5720a0a" } Frame { msec: 6896 - hash: "969720f17eae51258e2e143e14bfa737" + hash: "b931ef84ecc38676d602638081b1f126" } Frame { msec: 6912 @@ -1998,203 +1998,203 @@ VisualTest { } Frame { msec: 7152 - hash: "beeaec4b983c970ae448e33047dfdfea" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7168 - hash: "7c415ab1b7d8e25b71af75d3eec8ee4a" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7184 - hash: "8913037e57b9a6a58b68f2d6e69b1bd1" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7200 - hash: "19e59e9409fdaf90ccf75606b58688b7" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7216 - hash: "1ae71ef5b1006f637bd8df0769af65a6" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7232 - hash: "1f0aa8b368b2dbccafd54b923d8cce95" + hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad" } Frame { msec: 7248 - hash: "c5079fb25a8c80a995d7aa5fbbd91428" + hash: "d30ed063d99d02f6d8302847e83d60a1" } Frame { msec: 7264 - hash: "59f41220fa5d23db298c9e94f115c17b" + hash: "30b128c6248cb35ee4c55e1c2129a19c" } Frame { msec: 7280 - hash: "48259dfe8b266d9e7f50b187be98c3cb" + hash: "1ae71ef5b1006f637bd8df0769af65a6" } Frame { msec: 7296 - hash: "f7554552598351c3b8dfcbe3ebc32b3b" + hash: "6bd6f0c35aeede01d1a8e42c81cd6fb8" } Frame { msec: 7312 - hash: "219e9cd84d7e5c5c0e6cb80100aa3ab5" + hash: "ca90dcb70d416616dcae2df84956cff1" } Frame { msec: 7328 - hash: "5578e870ee8ce00bce5a59bb25e3d0a9" + hash: "a33bc4f7c40fa3eb36803c20222d75f6" } Frame { msec: 7344 - hash: "4d9cebbf750c03380694245e0e22ab94" + hash: "12430a710362b47fef8dfc022b789e07" } Frame { msec: 7360 - hash: "a60a8032e97ed0a3caa05012c1283de5" + hash: "a18abef207f5f6bbd260ca98cce91380" } Frame { msec: 7376 - hash: "3bee20b349a7e9d67f7770ede6da8673" + hash: "e853ea2eba5e3baeba0f43e57d2415ba" } Frame { msec: 7392 - hash: "d8c34576c25fb8b5e4fa12680ac32e99" + hash: "294cff3e6d3a1101f76d2ecce14e11a1" } Frame { msec: 7408 - hash: "cd1360aa7db7c3b2f2012dfc44de2198" + hash: "c38ee992a1b435c12a66e4d49d78c2ed" } Frame { msec: 7424 - hash: "cd82782f63c9a7d21d51b3440c2f038b" + hash: "54775aed3a6283c1fa330d65de5bc70c" } Frame { msec: 7440 - hash: "e59061967a841aa45607c0828b687527" + hash: "eba9a696d9ab1e8da7c6c59787d3f311" } Frame { msec: 7456 - hash: "01962406c9aaf1aa8bf3ab49e30ddf5f" + hash: "2048cd8abb56be34f9e475d7f92b6153" } Frame { msec: 7472 - hash: "5a5732a568189e598c7985ee806bc67e" + hash: "d56b4a04f1d2835a0852ea20e8e2f451" } Frame { msec: 7488 - hash: "54775aed3a6283c1fa330d65de5bc70c" + hash: "f5afb489b7aee20b45c9f5eb5a9eb8d7" } Frame { msec: 7504 - hash: "66640b4a5c1e68924b25de24e3c3f008" + hash: "26f25129f9d2c73a7a5168c73e299919" } Frame { msec: 7520 - hash: "76999d3125f20ba47dbdff38ee722a8a" + hash: "6f23e3c4ec738903b5011cbee1141b00" } Frame { msec: 7536 - hash: "5159c81533bee8825cff11910bcb90dc" + hash: "e10d4bf08980ea7d079a2f359ee62b95" } Frame { msec: 7552 - hash: "ac0295495345987d1e000f6bb2436927" + hash: "eb0a656e8feabcb131e59c66b64f7d09" } Frame { msec: 7568 - hash: "d56b4a04f1d2835a0852ea20e8e2f451" + hash: "94cfa3f71326f6e188fee32c0970de30" } Frame { msec: 7584 - hash: "ae41fe23e2ab508d7642973c0d9d35b0" + hash: "8bc4274a3f0498d600405409f69c1d16" } Frame { msec: 7600 - hash: "730ca01fbee6ec4928715ec52773c06c" + hash: "995cb12e1d07488ae4139d2c67552dc6" } Frame { msec: 7616 - hash: "ad1fa52c617a2b119d61eb9fb7d58a82" + hash: "2d9d9f3fb43e2280b0dea054dc8d7dd4" } Frame { msec: 7632 - hash: "c74321a822b515a393e8e218bd45e8e3" + hash: "dd68eb502e1fe114a24d902b50a5dff9" } Frame { msec: 7648 - hash: "a9e2f3bee1d47166204c74bdf90cd8c8" + hash: "b2738b11e34c5d7840e9aacc443cc1f0" } Frame { msec: 7664 - hash: "e10d4bf08980ea7d079a2f359ee62b95" + hash: "de148713c156476ca7c4021633596782" } Frame { msec: 7680 - image: "gridview2.7.png" + hash: "0e273dbaaab76058b6e04a830bbd80d3" } Frame { msec: 7696 - hash: "9f0ba6051e684e54ff4e36d980a7e600" + hash: "5b3d4cd60019fb3382534949342f63ce" } Frame { msec: 7712 - hash: "aa6268d8d7fb3d2b91db3e225e8c818a" + hash: "5dcad019a1c0eaaab381a7602e1914ff" } Frame { msec: 7728 - hash: "8e547e55279b1929f42bf51e753f142e" + hash: "e046dc0869cc629de5037214af1d58f8" } Frame { msec: 7744 - hash: "5386c71f8d6701379e177f161d714da2" + hash: "affc71688994d6b6763e78305ba1d6b3" } Frame { msec: 7760 - hash: "a184e9e6012c72fc1aeaed9f98b0fb1e" + hash: "d5ec397fdf17bf864e4575543c535dad" } Frame { msec: 7776 - hash: "777a6b70ca77c45e2e5e3914cc328dcb" + hash: "b37cb5816c2077b8018f78985b91fdeb" } Frame { msec: 7792 - hash: "424f73f25a1e91126f951838d45adc3b" + hash: "a3060fa79b1f7f0d9e61ad8c69be19ed" } Frame { msec: 7808 - hash: "3f7f2eb6b9a5d19fbfcd700baf566dfb" + hash: "236dcbaf20e11335efc64b2ce87b551d" } Frame { msec: 7824 - hash: "c3c4c72b25c2295b82a5fd7454942f77" + hash: "09af1c488b56dc3c7c3893b024f6d53f" } Frame { msec: 7840 - hash: "3b35e93d3eb9d28c5c03d6d353f805d2" + hash: "ef2bf66ac68002102476d3cfe4501cb7" } Frame { msec: 7856 - hash: "5dcad019a1c0eaaab381a7602e1914ff" + hash: "165c02de63604aa118d9f8995e6b45af" } Frame { msec: 7872 - hash: "602a5c569555767413bf445af44c744f" + hash: "fb790a0e4bc20afe24639dadf50a03c0" } Frame { msec: 7888 - hash: "3e9facab95dae772f695b6f7c5175063" + hash: "881298b629aeaeb23fa9e9eb446912d2" } Frame { msec: 7904 - hash: "0921220ec36ca7b25eaae699872a2006" + hash: "2175ff436c42616147b2e71b91e34060" } Frame { msec: 7920 - hash: "1d5fa7fd630af62bcc805bdc6686df37" + hash: "85bc0cd40ddc08814a2c3677e7e43bcf" } Frame { msec: 7936 - hash: "165c02de63604aa118d9f8995e6b45af" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 7952 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 8640 - image: "gridview2.8.png" + hash: "33d81c39d16c6a326012499796e50e03" } Frame { msec: 8656 @@ -2391,7 +2391,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png index 5b7b426..dd992cc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml index b88bd83..907480e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "668cc6d9d699b947a7c0f3ff4b26853f" + image: "drag.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "drag.0.png" + hash: "668cc6d9d699b947a7c0f3ff4b26853f" } Frame { msec: 976 @@ -554,7 +554,7 @@ VisualTest { } Frame { msec: 1920 - image: "drag.1.png" + hash: "a611a57ed2bdf4eaa5e13612346ecce7" } Mouse { type: 5 @@ -1426,7 +1426,7 @@ VisualTest { } Frame { msec: 2880 - image: "drag.2.png" + hash: "9356ce797d12ae076af947cd0e658551" } Mouse { type: 5 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 3840 - image: "drag.3.png" + hash: "668cc6d9d699b947a7c0f3ff4b26853f" } Mouse { type: 5 @@ -2962,7 +2962,7 @@ VisualTest { } Frame { msec: 4800 - image: "drag.4.png" + hash: "c6d398d42d968763c7597728e86304f2" } Mouse { type: 5 @@ -3850,7 +3850,7 @@ VisualTest { } Frame { msec: 5760 - image: "drag.5.png" + hash: "f0454d80a51c5f2226bd45aba58dc1e9" } Mouse { type: 5 @@ -4730,7 +4730,7 @@ VisualTest { } Frame { msec: 6720 - image: "drag.6.png" + hash: "bf4b18a73b53c0a554f9bb0ac32a465d" } Mouse { type: 5 @@ -5122,7 +5122,7 @@ VisualTest { } Frame { msec: 7680 - image: "drag.7.png" + hash: "2c1ce07ab6ce0072f6cb205f1e5297e0" } Frame { msec: 7696 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png index c9536dc..87305b3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml index 50ef6e8..0371a26 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "cc1fd2f4c3be318052254a9b6be7a57b" + image: "mousearea-flickable.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "mousearea-flickable.0.png" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "mousearea-flickable.1.png" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Frame { msec: 1936 @@ -730,7 +730,7 @@ VisualTest { } Frame { msec: 2880 - image: "mousearea-flickable.2.png" + hash: "4a60ab820ca66548384b2257b21de8ec" } Frame { msec: 2896 @@ -970,7 +970,7 @@ VisualTest { } Frame { msec: 3840 - image: "mousearea-flickable.3.png" + hash: "4a60ab820ca66548384b2257b21de8ec" } Frame { msec: 3856 @@ -1474,7 +1474,7 @@ VisualTest { } Frame { msec: 4800 - image: "mousearea-flickable.4.png" + hash: "b66571ae47bf129be88dc66785a81a7d" } Mouse { type: 5 @@ -2090,7 +2090,7 @@ VisualTest { } Frame { msec: 5760 - image: "mousearea-flickable.5.png" + hash: "d75a43305e2884759ca41d7b1cbadf52" } Frame { msec: 5776 @@ -2338,7 +2338,7 @@ VisualTest { } Frame { msec: 6720 - image: "mousearea-flickable.6.png" + hash: "037386eb30a5e8d53a20a11258ee0f60" } Frame { msec: 6736 @@ -2578,7 +2578,7 @@ VisualTest { } Frame { msec: 7680 - image: "mousearea-flickable.7.png" + hash: "037386eb30a5e8d53a20a11258ee0f60" } Frame { msec: 7696 @@ -3178,7 +3178,7 @@ VisualTest { } Frame { msec: 8640 - image: "mousearea-flickable.8.png" + hash: "524db6ce45674c777d72f9206415be2f" } Mouse { type: 5 @@ -3546,7 +3546,7 @@ VisualTest { } Frame { msec: 9600 - image: "mousearea-flickable.9.png" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Frame { msec: 9616 @@ -3794,7 +3794,7 @@ VisualTest { } Frame { msec: 10560 - image: "mousearea-flickable.10.png" + hash: "90cdfe8920f115fd55cde6fdbd95e867" } Frame { msec: 10576 @@ -4346,7 +4346,7 @@ VisualTest { } Frame { msec: 11520 - image: "mousearea-flickable.11.png" + hash: "72e75cfa62993593303b25cbff4af0e6" } Mouse { type: 5 @@ -4858,7 +4858,7 @@ VisualTest { } Frame { msec: 12480 - image: "mousearea-flickable.12.png" + hash: "86b32befe0dada5bdce82a7dd14777ce" } Frame { msec: 12496 @@ -5083,7 +5083,7 @@ VisualTest { Key { type: 6 key: 16777251 - modifiers: 0 + modifiers: 134217728 text: "" autorep: false count: 1 @@ -5106,7 +5106,7 @@ VisualTest { } Frame { msec: 13440 - image: "mousearea-flickable.13.png" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Frame { msec: 13456 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.0.png new file mode 100644 index 0000000..e2e90d2 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml index 433fd82..63c2012 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + image: "mousearea-visual.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "mouseregion.0.png" + hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" } Frame { msec: 976 @@ -634,7 +634,7 @@ VisualTest { } Frame { msec: 1920 - image: "mouseregion.1.png" + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 @@ -1002,7 +1002,7 @@ VisualTest { } Frame { msec: 2880 - image: "mouseregion.2.png" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2896 @@ -1386,7 +1386,7 @@ VisualTest { } Frame { msec: 3840 - image: "mouseregion.3.png" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3856 @@ -1698,7 +1698,7 @@ VisualTest { } Frame { msec: 4800 - image: "mouseregion.4.png" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 @@ -2202,7 +2202,7 @@ VisualTest { } Frame { msec: 5760 - image: "mouseregion.5.png" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5776 @@ -2474,7 +2474,7 @@ VisualTest { } Frame { msec: 6720 - image: "mouseregion.6.png" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6736 @@ -2738,7 +2738,7 @@ VisualTest { } Frame { msec: 7680 - image: "mouseregion.7.png" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7696 @@ -3082,7 +3082,7 @@ VisualTest { } Frame { msec: 8640 - image: "mouseregion.8.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 @@ -3538,7 +3538,7 @@ VisualTest { } Frame { msec: 9600 - image: "mouseregion.9.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 @@ -4418,7 +4418,7 @@ VisualTest { } Frame { msec: 10560 - image: "mouseregion.10.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 @@ -4690,7 +4690,7 @@ VisualTest { } Frame { msec: 11520 - image: "mouseregion.11.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 11536 @@ -4978,7 +4978,7 @@ VisualTest { } Frame { msec: 12480 - image: "mouseregion.12.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12496 @@ -5314,7 +5314,7 @@ VisualTest { } Frame { msec: 13440 - image: "mouseregion.13.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 13456 @@ -5730,7 +5730,7 @@ VisualTest { } Frame { msec: 14400 - image: "mouseregion.14.png" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 14416 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png index da77af9..88924b1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml index 3fec1ef..b307141 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "b4df49cbd7cf972af9879399808f6c53" + image: "particles.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "particles.0.png" + hash: "d52c30bc201afd3d1caf34efcddafdee" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "particles.1.png" + hash: "57976a66963718e90c62535a936d9251" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "particles.2.png" + hash: "ac6878edac61916bf424dcee2d7790e8" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml index e3baa4d..bd480cc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "cffe9de189a5c9bed3d98f8803b47212" + image: "test-pathview-2.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "test-pathview-2.0.png" + hash: "cffe9de189a5c9bed3d98f8803b47212" } Frame { msec: 976 @@ -570,7 +570,7 @@ VisualTest { } Frame { msec: 1920 - image: "test-pathview-2.1.png" + hash: "f5ba4db3c12a466791dc657e10d5d380" } Frame { msec: 1936 @@ -890,7 +890,7 @@ VisualTest { } Frame { msec: 2880 - image: "test-pathview-2.2.png" + hash: "51203c662d086a15cecc390f0aeeac0d" } Frame { msec: 2896 @@ -1130,7 +1130,7 @@ VisualTest { } Frame { msec: 3840 - image: "test-pathview-2.3.png" + hash: "5e21e09fa0ec2b1e9f29be60100c40f2" } Frame { msec: 3856 @@ -1586,7 +1586,7 @@ VisualTest { } Frame { msec: 4800 - image: "test-pathview-2.4.png" + hash: "5e21e09fa0ec2b1e9f29be60100c40f2" } Frame { msec: 4816 @@ -1922,7 +1922,7 @@ VisualTest { } Frame { msec: 5760 - image: "test-pathview-2.5.png" + hash: "13588d644d17394ac4f8997046089071" } Frame { msec: 5776 @@ -2162,7 +2162,7 @@ VisualTest { } Frame { msec: 6720 - image: "test-pathview-2.6.png" + hash: "a9c65a178a4b4598705bf736c0b1b595" } Frame { msec: 6736 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png index d94ea19..c6a9ca6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml index 949807d..625f839 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "01b9c877f51b878ed262943aedcf89b4" + image: "test-pathview.0.png" } Frame { msec: 32 @@ -282,7 +282,7 @@ VisualTest { } Frame { msec: 960 - image: "test-pathview.0.png" + hash: "be9817e44df33d4018a174ce350c7244" } Mouse { type: 5 @@ -634,7 +634,7 @@ VisualTest { } Frame { msec: 1920 - image: "test-pathview.1.png" + hash: "79ad4a90ab449e3232db993b30786d89" } Frame { msec: 1936 @@ -914,7 +914,7 @@ VisualTest { } Frame { msec: 2880 - image: "test-pathview.2.png" + hash: "dd861293918ee3685ffc48f1670a19df" } Mouse { type: 2 @@ -1226,7 +1226,7 @@ VisualTest { } Frame { msec: 3840 - image: "test-pathview.3.png" + hash: "ff3df1951adc01e5046d807873b06992" } Mouse { type: 5 @@ -1554,7 +1554,7 @@ VisualTest { } Frame { msec: 4800 - image: "test-pathview.4.png" + hash: "6cddaed756ff1bcbd9a4627a4c8a44d8" } Frame { msec: 4816 @@ -1794,7 +1794,7 @@ VisualTest { } Frame { msec: 5760 - image: "test-pathview.5.png" + hash: "c0d0f62d9078f6be493d5545a2ae78ad" } Frame { msec: 5776 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png index f474afe..a02a00d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml index 4b36e16..2366f71 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml @@ -6,1598 +6,1598 @@ VisualTest { } Frame { msec: 16 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + image: "dynamic.0.png" } Frame { msec: 32 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 48 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 64 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 80 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 96 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 112 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 128 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 144 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 160 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 176 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 192 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 208 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 224 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 240 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 256 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 272 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 288 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 304 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 320 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 336 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 352 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 368 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 384 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 400 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 416 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 432 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 448 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 464 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 480 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 496 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 512 - hash: "ee42cfa8cbbd67becb7d50998d26fe73" + hash: "d203c2cb69cb0841827e14bddc206d1f" } Frame { msec: 528 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "453d5fb9d38f37bb8c23e376de76db06" } Frame { msec: 544 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "c4a103de3b7207b3c6277e8ecf79f7dc" } Frame { msec: 560 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "f58b0eb42d9b6ace87379f205da57550" } Frame { msec: 576 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "3384c5b5939d8297e0834c7cd347d579" } Frame { msec: 592 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "420b55371c69c6e1a17ef85a600c75d1" } Frame { msec: 608 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "55cc6fb3424ef69d316ef29f6563a025" } Frame { msec: 624 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "045b5ac545e69777b814423f77575990" } Frame { msec: 640 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "45b05241e8e83180a8d92a37dc859ce0" } Frame { msec: 656 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "97915dfbe4943e1f583ee134bc7a0117" } Frame { msec: 672 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "9b4ce5ed20dd81698b4dd8e48f799c5c" } Frame { msec: 688 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "24bdcea108cdbb3898a4d9216e9f9510" } Frame { msec: 704 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "d1427093b1a375e86a69c6f65cb1f8e5" } Frame { msec: 720 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "43dd666b15697ae18eb2410017256e4c" } Frame { msec: 736 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "8043755f5a8a528353f1e7c310a46a97" } Frame { msec: 752 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "d6b2ef0cb81395cd7454392aed4571f0" } Frame { msec: 768 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "c249fd272e02cbdde972e85fc6dac695" } Frame { msec: 784 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "1df5f8fce7b0c102e9902912600054e7" } Frame { msec: 800 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "a9d16b180634620e3fe6caacb730885b" } Frame { msec: 816 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "7228ce597720520bc12911fdef70ca86" } Frame { msec: 832 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "1faa5c3e72740941234ff4a93388edc9" } Frame { msec: 848 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "997ee1c6d5838153182473a3724df4ad" } Frame { msec: 864 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "6ebbc0a0427825ea701f5bb4758f11a2" } Frame { msec: 880 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "a2ac19360d631fd6d58f8a5ee85e40b4" } Frame { msec: 896 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "17a5842b47a220bb8bd74a368cea6c1f" } Frame { msec: 912 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "b37bae9c3384c068a7dd4f1135d3bfaa" } Frame { msec: 928 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "65ffb0b6629364ebc687da7785601abd" } Frame { msec: 944 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "27c7a43515fb2d8cddde42263f6ac9df" } Frame { msec: 960 - image: "dynamic.0.png" + hash: "cc292df8a090c08d135dedf5e2a0af7c" } Frame { msec: 976 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "53540ff71d74d705a7f19325b50f81ce" } Frame { msec: 992 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "59735c8372774b50052d15232d2f6d01" } Frame { msec: 1008 - hash: "62727b1025930e19bb03c8f533a12ced" + hash: "9c239c4439009465dd91606ac84a3bf0" } Frame { msec: 1024 - hash: "3e52e7d7d428cf1b850cb9c60dbb3c21" + hash: "8b9715d6468c8501895545bd84bf7f57" } Frame { msec: 1040 - hash: "64f75ab14c979d33d6e0c0d86b76cd35" + hash: "0f7a123bfff1dbe059b6ceb3a3f44180" } Frame { msec: 1056 - hash: "c198a48f4050f176465649d203d6e09a" + hash: "c1bc31a379d15ca67d0ffc7139800b3f" } Frame { msec: 1072 - hash: "6dd8cee5a585a96e78f2cf7478c4da62" + hash: "ebf470cd7cff4a836da9e721acfd327d" } Frame { msec: 1088 - hash: "09edfbce2ea4b8a547f769ce709dcb6b" + hash: "e2b89846459f8ae48117ab4393d493bf" } Frame { msec: 1104 - hash: "e93d01aa6e4f5d3fc82cf5a008e3ea17" + hash: "5b980dcc070faf4ab4099cd5f711259c" } Frame { msec: 1120 - hash: "0e2e7b5eec0e62853972b0139b8c17c6" + hash: "4640ed55c1608d76109407279a1f02db" } Frame { msec: 1136 - hash: "26d4f54628ce20f5665bdc6ddc7f3b6a" + hash: "d839b597a3afef61de7b14ffb7ae518e" } Frame { msec: 1152 - hash: "59836aa6eff85b0152be352b97076d89" + hash: "2810e01355c32d3f7a9352676e6b5eef" } Frame { msec: 1168 - hash: "47cc9894096731a52ca342ab04df9aad" + hash: "f1ac8b222e0068320827564e759e87ba" } Frame { msec: 1184 - hash: "ec95dd3b34a0f17f6fb9b5bedab73653" + hash: "7da89563319dd4045e7f9c40a712d722" } Frame { msec: 1200 - hash: "e32c2b70882828b5082ca3ec889a0dde" + hash: "09c55dba364e484eec1a1badb4319003" } Frame { msec: 1216 - hash: "68d3f8e9c9d5388a6f8360368c8f4d2f" + hash: "defd5c9a8003c58a7bef1930efdd6f29" } Frame { msec: 1232 - hash: "17378b2bd8bde7f357fa5463f457c7b2" + hash: "0f84e515b41b5c064ece9002e5edff0d" } Frame { msec: 1248 - hash: "03db786cd54ec34ce8db15953a5fc847" + hash: "d1a0405a18fe5b54e79ca0cadf46743b" } Frame { msec: 1264 - hash: "9e22a82a622ed0287c44cc629059d5bd" + hash: "6046feb2fad386ae25ddd0d0e8ecb673" } Frame { msec: 1280 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "b4374b0d9d709b0d7a9f8949616a16bf" } Frame { msec: 1296 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "4d9d7d28f32ce2acd14c8dca0bc11fa0" } Frame { msec: 1312 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "384afb63bdf34729132ac57080fa2988" } Frame { msec: 1328 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "44ac2a9783c450a8c39b09387f0439e2" } Frame { msec: 1344 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "26e1dfc2b54370f94881c2341b6e0618" } Frame { msec: 1360 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "be47d72ae7c57e255706a8a5afe1fd3f" } Frame { msec: 1376 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "92cb490b081bccedf0bbdee86dbc50ed" } Frame { msec: 1392 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "1f0a09601474246e94c5ec3763cfa83e" } Frame { msec: 1408 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "73f1a5c57a2c96e18ba894a7adb9a014" } Frame { msec: 1424 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "8aa130cf4b2706afc8d582ee4c5f510d" } Frame { msec: 1440 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "1c0de0f1f4aa5f44bdf774169296487d" } Frame { msec: 1456 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "1e9b701ee63effb760e733ac623d75d7" } Frame { msec: 1472 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "c30620b6d5d41937217fa9d3e0bf367d" } Frame { msec: 1488 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "1f96e1da113d4a6cdb7179771ef7967d" } Frame { msec: 1504 - hash: "42955cd23747f7c37d0f0229c0955e90" + hash: "aa31458e44ba42a633421e8688a3af7e" } Frame { msec: 1520 - hash: "981fb1ee75e307b548a32df08a86f4cd" + hash: "a7a560c05566d0bbea3f2bf397a0063a" } Frame { msec: 1536 - hash: "f77568307e93d8cd9f0ae417cc19d6e3" + hash: "fdd290bc46b86a11afdffb95570d9a67" } Frame { msec: 1552 - hash: "3bdd4468e26aceee0dad6b3b97b1c1ea" + hash: "46574d7bfc15bc5b9124eb0e12741724" } Frame { msec: 1568 - hash: "252c9ebc2c32755b2289ee1b03877fe3" + hash: "aed2015031da6c7e5064fe5fcd1e86e3" } Frame { msec: 1584 - hash: "64169b7eb7b7ae8573556c5f80230965" + hash: "dea39f30e686771ca516ac32e3dc4cb0" } Frame { msec: 1600 - hash: "4965dfa709a9ac7d8f7dfb4bf8303c65" + hash: "4a9839f52a7ee6732c5e18c0d67534be" } Frame { msec: 1616 - hash: "8c53cf92510154087341ac65a93aae5a" + hash: "df21723df1031542483684ff92aaf40a" } Frame { msec: 1632 - hash: "4dd7502e3e238743d2f3cf038270491e" + hash: "53683b7b52d0940aac744f0ef03a4527" } Frame { msec: 1648 - hash: "cd9a58316837eb92f4ac92dbd86bdba3" + hash: "e6177b60c5586e79ca82e1bc7af41737" } Frame { msec: 1664 - hash: "5de043e3ac8696b59293a2fa60ed7e65" + hash: "592a60e226aa6967a8a41bc0e4288583" } Frame { msec: 1680 - hash: "1bf42a6f6be5a3468d2f47cccfac761e" + hash: "534512915d800d00350803c3fdcccaf3" } Frame { msec: 1696 - hash: "ca05510c1ad25e5d3b002603f4379a09" + hash: "a01ffd7ab177f850f3d8320da19a03ce" } Frame { msec: 1712 - hash: "f6904a918a6475f1965d74372e52a4b1" + hash: "15bd47f2c5c8cefe7565790b429aa6a4" } Frame { msec: 1728 - hash: "9e2312ddfc1648b615288107a06c9f9c" + hash: "b90692eafe68c2b04057af887617667c" } Frame { msec: 1744 - hash: "95c470273b1cb08d4d602efcce339554" + hash: "edb22bd93a83de0cd3a046ed5a513ece" } Frame { msec: 1760 - hash: "dade96f707d4a21885480e13b258b7e9" + hash: "f08fa88d05f48c42dd1eba538dc464d4" } Frame { msec: 1776 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1792 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1808 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1824 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1840 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1856 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1872 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1888 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1904 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1920 - image: "dynamic.1.png" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1936 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1952 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1968 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 1984 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2000 - hash: "0bfbd46f1d4cf562253fb383776cb601" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2016 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2032 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2048 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2064 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2080 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2096 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2112 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2128 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2144 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2160 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2176 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2192 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2208 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2224 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2240 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2256 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ec46803523ee0516ed2c89923ff2ded7" } Frame { msec: 2272 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "6b8b68e359f532729bf25a6851563ad7" } Frame { msec: 2288 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "1ee3cf0c3c738a909f1b40b4ef49ac50" } Frame { msec: 2304 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "71889e0f81eeb252dd91a46af5ce24e7" } Frame { msec: 2320 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "99390a696ac524d752672df6f2136fa3" } Frame { msec: 2336 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "00919914f1623bb260e0f99b471aa182" } Frame { msec: 2352 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "64bd7ff1518a3e84c4b40511c5c0ff2d" } Frame { msec: 2368 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "b68da721bf79592e49408b098f72e884" } Frame { msec: 2384 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "6a8ca937b7c961c403ab1662d170c1a5" } Frame { msec: 2400 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "3f4034da4cd71738d1130c3baa38cf9b" } Frame { msec: 2416 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "97a86d3c04d07508604b46732b121edd" } Frame { msec: 2432 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "42e9ab3ed744d1a9a7eb5b7a206f29b3" } Frame { msec: 2448 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "ff86192c1b9c0faabb5563260cb1bff2" } Frame { msec: 2464 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "e1de0e431b971deb546935b6b2fc78e7" } Frame { msec: 2480 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "b7817a7f15d8e727e25719de8cc7d50a" } Frame { msec: 2496 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "66772971897fc00d01d067e5fc38f848" } Frame { msec: 2512 - hash: "6fc83e8d4ac99b34062c122a8f7f1850" + hash: "175db8c0324af4c206f9673f0a8d0477" } Frame { msec: 2528 - hash: "fabf4e535bc4cc17497939d2eeae4a2d" + hash: "f3dea687e0ca335b987b6b3c7d736469" } Frame { msec: 2544 - hash: "a7981035f46869f5ae824d0c58b263b2" + hash: "44d035dd8e302b75c5a7f98a2005fe75" } Frame { msec: 2560 - hash: "86d8e369bdceb499b244f84ed9e80ba3" + hash: "140cf53cb6873b14e6263537f84b0aa0" } Frame { msec: 2576 - hash: "e28a7dc7ea8690da75670b5a6e93a26b" + hash: "6c9090d4488289e69562747271459d7d" } Frame { msec: 2592 - hash: "bf4e815360a67bd80732bd8812269b21" + hash: "49e92db256f5be8c4e35566eea8fca70" } Frame { msec: 2608 - hash: "a6f8c56cb93da8acc0c90e35596a60d4" + hash: "80f41d2eb743ee13fcc486651e310fe2" } Frame { msec: 2624 - hash: "1e60656f0758605169e51b57bd03af36" + hash: "f581fdcaf30c0efd4518e538e88c2ebf" } Frame { msec: 2640 - hash: "c069b26b9fae47e0104070d702ba9562" + hash: "c028db6753cf60bf587e6c46080a31ea" } Frame { msec: 2656 - hash: "457eb2ca1adff6cbb158afa140b2f20b" + hash: "231b69aa9bdadbaf47cbfbc44a322a51" } Frame { msec: 2672 - hash: "4e5e750b0d94b6777aebff85d38225d9" + hash: "f0bcc02aaab3fad2ff53fc2d7541d4aa" } Frame { msec: 2688 - hash: "96d9840c2354a8786a8470309be97544" + hash: "80e34154585ba3480e37eaac6bfa396c" } Frame { msec: 2704 - hash: "ac7570cc7eeff1acd8c47f2d9328f8be" + hash: "e1ebf3ba98b2df53ac9f72744034ba6d" } Frame { msec: 2720 - hash: "887f937bb263c54f29659f27f2b7a3e3" + hash: "b8f749a58888f90ed5cabe7aa2eee1ee" } Frame { msec: 2736 - hash: "616371183c82b97f69a4c6e2367b8066" + hash: "3a78458aa124a331f5b1616be5eea914" } Frame { msec: 2752 - hash: "36de8ffa9abe850fb681b37aea45ef8b" + hash: "c442c02859bc35a8e5493200e68b1730" } Frame { msec: 2768 - hash: "0505101f0edaaf7ff17deeaaddc6bbf9" + hash: "0cc4d24a1e1fa75a339a5b3dd07f18f3" } Frame { msec: 2784 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "0d124bc578058db99e32d58f4b412758" } Frame { msec: 2800 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "fc174a039606c5457532c9ac27c6faec" } Frame { msec: 2816 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "db5d25d7c01605ec81cdab3e239a1f0f" } Frame { msec: 2832 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "7dcffdbf9ac992aac0751bed5c38a0eb" } Frame { msec: 2848 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "b59dc4f39b3e032d5cd34ffca098889f" } Frame { msec: 2864 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "925d232189a3eee4bae08a8fe86a488b" } Frame { msec: 2880 - image: "dynamic.2.png" + hash: "4ab3a889e27de8f45670c240f6d452a6" } Frame { msec: 2896 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "235bf197b3867c734c4f4ead9db466d1" } Frame { msec: 2912 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "9b8629b588dcb840fcd32f73f66016ee" } Frame { msec: 2928 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "dca8e45e930314a860f36343f4577738" } Frame { msec: 2944 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "b68f3b38e154b65225211c6a1ca8ddb8" } Frame { msec: 2960 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "d8168aea7962cad60132da9baf66f95c" } Frame { msec: 2976 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "6f83cd7be71666e08172a2c59e715f2e" } Frame { msec: 2992 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "f98c68954ed98f340e86c159fcf4f013" } Frame { msec: 3008 - hash: "e8c53dd8343d7d4c384c2f8507ff0631" + hash: "e4692a0e6d82864e9027bcf893e0cf90" } Frame { msec: 3024 - hash: "99e4d853d64a381e8db27707b5ff2b25" + hash: "ed02ff4d37ad03c0d0d53cf8163ed1c5" } Frame { msec: 3040 - hash: "ab0e62aeffc0d57a5e1d63e6cf49b809" + hash: "fb116353a2ceabae2d93c9aac48727d8" } Frame { msec: 3056 - hash: "4ab11bbf1fb6adb0eec8895f78a24a41" + hash: "7b8c99b86838c46db4e756cc039ba045" } Frame { msec: 3072 - hash: "634ff2ceb39a3f263a3362238a4ae252" + hash: "c8d8e194bc957402fe2236b1a472faa6" } Frame { msec: 3088 - hash: "7f4856873dc23a02297b2497101de9b9" + hash: "f0f3d8c8ac3604cd11b7492fe5ee023e" } Frame { msec: 3104 - hash: "bca3919e9d8e6dc5badd8090401dc934" + hash: "b41cf314e4684423b4708ccd55904d60" } Frame { msec: 3120 - hash: "824bfe40c3657cfe1368563640e4cfce" + hash: "4f578969386627b6e620e83bad5a6a6c" } Frame { msec: 3136 - hash: "f831c1600f68bda139697c406ca70c5e" + hash: "bd9fcfaa4e79f969548af12d072c1ec2" } Frame { msec: 3152 - hash: "f8102ca251a9ff46a8fe5a24cff0d2d6" + hash: "a418dc92f8b04fddf95f38bd24825ee6" } Frame { msec: 3168 - hash: "f33407ad684aa16efc6615d1cf6fa4b9" + hash: "4684b3e318a08f0f2331a13143592d18" } Frame { msec: 3184 - hash: "a73d27f776a6ebfc90309b34421700e5" + hash: "1e135a4fd2e7336d8a59ca3497374a3d" } Frame { msec: 3200 - hash: "ff2a4e2663fc50dfec35152f0e79f935" + hash: "d1be76e2c56422b469a9d09e22f62df5" } Frame { msec: 3216 - hash: "4935f5f58f2672e9d240625151044bda" + hash: "8827523a7f8fa89a56d932102dff7b52" } Frame { msec: 3232 - hash: "f3ad5c203f621fe4d5d321c3c1880743" + hash: "e12e6b907af5e6feffed0b9e68c71895" } Frame { msec: 3248 - hash: "d4fb7cd2e1f6a533dae65ddbb50da8ac" + hash: "7bc3605f5f241170732aba19ca649896" } Frame { msec: 3264 - hash: "91705e9234c4f02d0a730f6270f9e95f" + hash: "d7da9274f30cacd419f0b0b7c8c8a728" } Frame { msec: 3280 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "154775464235d2a2fb338c27f1490f27" } Frame { msec: 3296 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "1657f65e8759eec3c026262bb271dd1c" } Frame { msec: 3312 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "29b4c68846aab3c1dcf4e58861915c33" } Frame { msec: 3328 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "fe22b3b991a80b34d6fe12515bfa2fd0" } Frame { msec: 3344 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "961343bb9dcc1fbe81b4c20392c28cb9" } Frame { msec: 3360 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "a2adb3179465e34b517bf906491a1b60" } Frame { msec: 3376 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "067fb8a2f5043dd4616fb1539e3e9c4a" } Frame { msec: 3392 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "009329915e9027d77218fd83334960ed" } Frame { msec: 3408 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "81b05d8aef8152830c6f199d6dd94fd5" } Frame { msec: 3424 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "b23fa537f88a97490e48fb3a8cd4b507" } Frame { msec: 3440 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "182464f620768efe0253c97cda75d839" } Frame { msec: 3456 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "f1ddbec396cead5d4acf9b65822becb6" } Frame { msec: 3472 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "a73085722d33638517b3f60a16ce9fcd" } Frame { msec: 3488 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "ecce53b0c525834341ee4b3c546e670c" } Frame { msec: 3504 - hash: "41e177bec783497b996d6d5f6dac1a15" + hash: "86f1da737164290a90c1aef9355e2375" } Frame { msec: 3520 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "722ec874122ad8dcc73820a3a2fb7dca" } Frame { msec: 3536 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "35eb086b11482b752e2c02f1dc4d9099" } Frame { msec: 3552 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "83cf9c0b5d0afd5d3cee4c446274f5c4" } Frame { msec: 3568 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "e1bbef11fe02adb0756113e1106fe7f1" } Frame { msec: 3584 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "774c8bb4585954274852d6bb07e64916" } Frame { msec: 3600 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "b0264bcddf313d4e819a608143a86ac9" } Frame { msec: 3616 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "5e3859fd56e5022cbc7831e22447f05d" } Frame { msec: 3632 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "8c2a8b7321d2598b08d483914d4f319c" } Frame { msec: 3648 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "f13913dbc015836e35d5a2ebc94bbeef" } Frame { msec: 3664 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "1309af996f2d7a686f1d9177bc5c9be6" } Frame { msec: 3680 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "460b3500b41624486fe8dcfde087d2b5" } Frame { msec: 3696 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "de0837d19497021528dc782db4da084a" } Frame { msec: 3712 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "18afb8f8e9aa6d4a5db376e26cd9a56d" } Frame { msec: 3728 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "4fc1a8173824c2725160798b7d70aec2" } Frame { msec: 3744 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "87a593f74c946d6af6e31c5a25898766" } Frame { msec: 3760 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 3776 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 3792 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 3808 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 3824 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 3840 - image: "dynamic.3.png" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 3856 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 3872 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 3888 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 3904 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 3920 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 3936 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 3952 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 3968 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 3984 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 4000 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 4016 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 4032 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 4048 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 4064 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 4080 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 4096 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 4112 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 4128 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 4144 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 4160 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 4176 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 4192 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 4208 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 4224 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 4240 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 4256 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 4272 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 4288 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 4304 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 4320 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 4336 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 4352 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 4368 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 4384 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 4400 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 4416 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 4432 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 4448 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 4464 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 4480 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 4496 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 4512 - hash: "496dc6261695bcf04a8e574146544e98" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 4528 - hash: "9681be99003f8a14cc5654d06d2c8255" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 4544 - hash: "bcb592a2335aa2e35956881fd028f4e6" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 4560 - hash: "f914b25fdcb02a02b71220d82b7b2a75" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 4576 - hash: "63c82c08eb7f2bd50b54b94c952df3f2" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 4592 - hash: "8a8dc82be81fa55605c6c2e749895120" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 4608 - hash: "271f8d79b8052dfcd840ffa9ba9ffeec" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 4624 - hash: "8f77bbd0585b57e69ac1919bd81ee3b1" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 4640 - hash: "b974260a2f90e141ebc33ced98fbca88" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 4656 - hash: "77ada180f8a45652a6fa636d7ece4d9d" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 4672 - hash: "4c8dc2e33cd989cb3b0938c6c75b5f95" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 4688 - hash: "a145954989508b925a444e14f0c27a20" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 4704 - hash: "8d27ff203819174747ae4a5cee8d0ae8" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 4720 - hash: "830f34b0dab780c6efe2294872ba8508" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 4736 - hash: "5d70a4bbd815569cfe5735b596bad080" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 4752 - hash: "964527bb82ea006e03b030c787a8597c" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 4768 - hash: "1ad54954b818fa9e6032ac4b6114e7db" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 4784 - hash: "47865243cc252aef67774001af70c54c" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 4800 - image: "dynamic.4.png" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 4816 - hash: "47865243cc252aef67774001af70c54c" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 4832 - hash: "47865243cc252aef67774001af70c54c" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 4848 - hash: "47865243cc252aef67774001af70c54c" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 4864 - hash: "47865243cc252aef67774001af70c54c" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 4880 - hash: "47865243cc252aef67774001af70c54c" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 4896 - hash: "47865243cc252aef67774001af70c54c" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 4912 - hash: "47865243cc252aef67774001af70c54c" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 4928 - hash: "47865243cc252aef67774001af70c54c" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 4944 - hash: "47865243cc252aef67774001af70c54c" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 4960 - hash: "47865243cc252aef67774001af70c54c" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 4976 - hash: "47865243cc252aef67774001af70c54c" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 4992 - hash: "47865243cc252aef67774001af70c54c" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 5008 - hash: "47865243cc252aef67774001af70c54c" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 5024 - hash: "47865243cc252aef67774001af70c54c" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 5040 - hash: "baeb8adffc13e230e797e0437f2ad5fa" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 5056 - hash: "d2e440fcad0ee2b7b35d7e5c4e581f73" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 5072 - hash: "fb8acb2f69234d3ee089281d0297ad7c" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 5088 - hash: "7fda29a83dc535ed8d6b35e999400311" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 5104 - hash: "6482e3eb10cfdbdeb57dd38ba3e3d67e" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 5120 - hash: "4d222549bc2565c1598a532460aae4e6" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 5136 - hash: "776d1b0f9945c0e1ceda0cf117264919" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 5152 - hash: "f2c362b34a0982ee1a11dea6b063945e" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 5168 - hash: "115f02b8893972b5b1d63525ce70762e" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 5184 - hash: "7f2d53581fe2c6c45a628fa4cd9b5742" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 5200 - hash: "b5ed1120c4edf842b15d5144adbd93b0" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 5216 - hash: "3511938df57c4cdce316692de204b057" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 5232 - hash: "99583918d068ab5d132fe7a699c2a7a6" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 5248 - hash: "c0ce9df18479dbb57fb1dbc777f4f0e5" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 5264 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 5280 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 5296 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 5312 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 5328 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 5344 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 5360 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 5376 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 5392 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 5408 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 5424 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 5440 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 5456 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 5472 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 5488 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 5504 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 5520 - hash: "b24db7b5c406328380fcf9927fb26c5c" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 5536 - hash: "98cc64411264d8a635a6afe6b11cee6e" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 5552 - hash: "b86434b7af8ad1db946c43a2791d69ab" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 5568 - hash: "f45616f9e33658d1dddb537e842c8768" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 5584 - hash: "e49d8955e27cdc19a37c331e56c81af1" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 5600 - hash: "b2dbe764906b50195f65dc11a5842515" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 5616 - hash: "71ce7c63d65c29cdffd83f5ae07f0b93" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 5632 - hash: "901d01e1fc777ec185cd023ad0ace4c1" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 5648 - hash: "a3f31de30fc2e92bae1f735504216216" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 5664 - hash: "0fc52dd8102506e3e7671fa548551b23" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 5680 - hash: "fb92809e728416035dbb91116ad8fe0e" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 5696 - hash: "9003dc8ca4f781909035cb03dc45864f" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 5712 - hash: "2bff1de793ad8521fd54413849c3cf29" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 5728 - hash: "8362e4db7c4446282d844a4fc6632d19" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 5744 - hash: "b874fa274c6ec77c106ff4a0288f9169" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 5760 - image: "dynamic.5.png" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 5776 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 5792 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 5808 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 5824 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 5840 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 5856 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 5872 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 5888 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 5904 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 5920 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 5936 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 5952 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 5968 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 5984 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 6000 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 6016 - hash: "e64ac8e11e36cafb25c947c5802d54b9" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 6032 - hash: "7621e64568058b82bcb6f6b46cee3ebc" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 6048 - hash: "f77f6de6fc88813f49427b4888a59dbf" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 6064 - hash: "d3a48f596219372ac25941e4c5ec5b2b" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 6080 - hash: "d572d932b613f9ca1e0acf144f127dd1" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 6096 - hash: "edf317eaf51d933bcd0f57f214921a81" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 6112 - hash: "e0cee7959a5a8a08ad03d75e7b5c6ca1" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 6128 - hash: "96877a15f44d4a2c8d9974cb28b9e1b6" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } Frame { msec: 6144 - hash: "c0ffb0ef6dd9d007d201feebd2f68e44" + hash: "b692386f34972d80aded2347e64ad2b6" } Frame { msec: 6160 - hash: "209fb930223243fa19c5dde9e85ec518" + hash: "dc65b0a791002efffec05884aa948842" } Frame { msec: 6176 - hash: "ae98ac4dba0e78eb8fb7f7dbe29b2832" + hash: "069bab78e29d322894647f81d315184a" } Frame { msec: 6192 - hash: "c94a7d68ce007d83df77a595a5815a96" + hash: "39c8d804b3caf53845baba4ce98e007d" } Frame { msec: 6208 - hash: "4c28e409bf5a6c1289bcab8cd59a9e42" + hash: "3b477dfd05f07bdf0ba562d6068cafdb" } Frame { msec: 6224 - hash: "ea1009f1a3446dd5ce937e6949794794" + hash: "eb84ee75bdbf25dcc32587007f5dc9bd" } Frame { msec: 6240 - hash: "940c16766c2f87feef48e1187672ca9b" + hash: "441d34bff2755e3c30bed80e2bdde69c" } Frame { msec: 6256 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "57e68ec2aa5a21b11d21f388399713e5" } Frame { msec: 6272 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "4cb9ee1d12b99fb98bedcbcc048867e4" } Frame { msec: 6288 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "3eebd1f4f58210f6b546715997a984c2" } Frame { msec: 6304 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "39eabc07bfcefb2ecd369abf94d706cd" } Frame { msec: 6320 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "a0c46402b4700cc2099bdf42c47faf9b" } Frame { msec: 6336 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "3c8b4831583922c7c1c85f227ef2b3dc" } Frame { msec: 6352 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "c92cba3c2825db4293153588c4b7b229" } Frame { msec: 6368 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "e1b0d4cae609f3074fb1ac46c172bf4a" } Frame { msec: 6384 - hash: "93664c87c8dcfadc0345f646b2508625" + hash: "09b76db3e4a95666ba9c37dd89996fa3" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png new file mode 100644 index 0000000..75a6c49 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml index 5d88df7..3365d40 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "1a396cf01a6c31155609532654653599" + image: "usingRepeater.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png index bf02e1a..a104312 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml index 3124973..fd262e0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "2c6600b50a18c415032fa95fe5089da6" + image: "smoothedfollow.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "smoothedfollow.0.png" + hash: "cecdb41f4b121dcb9ea8eedacdc4653b" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "smoothedfollow.1.png" + hash: "6b810b1a3a9090ea11456a0bdf170c8a" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "smoothedfollow.2.png" + hash: "d97e6dd2b3c79fe0b306981c08b6cea4" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.0.png index f159b6b..a3bb3ac 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml index a3cd66b..6f0c939 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "cb33c89e5108c85e43b53489d1255862" + image: "clock.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "clock.0.png" + hash: "2ff4e8f394a62892adb348271435205c" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "clock.1.png" + hash: "a3e6173e6d82d2cb52149588b32851e4" } Frame { msec: 1936 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png index c79ac9c..ae89849 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml index a688563..12d7897 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "e94ba580322887dbbbf9cb6309e39c23" + image: "follow.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "follow.0.png" + hash: "00586f2f1d49fa81f90f7b06614311b4" } Frame { msec: 976 @@ -490,7 +490,7 @@ VisualTest { } Frame { msec: 1920 - image: "follow.1.png" + hash: "a40e5e2744d1d84c8b9a45525801a745" } Frame { msec: 1936 @@ -730,7 +730,7 @@ VisualTest { } Frame { msec: 2880 - image: "follow.2.png" + hash: "3c5d3d10bacc093afc6a9c0b5aa4cddc" } Frame { msec: 2896 @@ -978,7 +978,7 @@ VisualTest { } Frame { msec: 3840 - image: "follow.3.png" + hash: "6686f9c1a814c6a6b785b70f94937b68" } Frame { msec: 3856 @@ -1218,7 +1218,7 @@ VisualTest { } Frame { msec: 4800 - image: "follow.4.png" + hash: "315764d20b647f6ab1ba30239a69bf72" } Frame { msec: 4816 @@ -1458,7 +1458,7 @@ VisualTest { } Frame { msec: 5760 - image: "follow.5.png" + hash: "b7133225daa03563d3f5b1dac5f56a23" } Frame { msec: 5776 @@ -1698,7 +1698,7 @@ VisualTest { } Frame { msec: 6720 - image: "follow.6.png" + hash: "228920e994ebf71d542c71ce8263614e" } Frame { msec: 6736 @@ -1731,7 +1731,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png index e6b2b3c..9b76db0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml index 1b43aa3..1059209 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + image: "multilineAlign.0.png" } Frame { msec: 32 @@ -242,6 +242,6 @@ VisualTest { } Frame { msec: 960 - image: "multilineAlign.0.png" + hash: "436000b48f688120d96919227d9e67b4" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png new file mode 100644 index 0000000..b2ac22f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml index c526f47..22c4b93 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "e38b59f2c271def037213e57a966bd95" + image: "parentanchor.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.0.png index b8cc1c7..ee3c744 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.qml index 6201c72..01ec5d6 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "fab978e1e0ee5140d8131320ff2322e9" + image: "QTBUG-14469.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "QTBUG-14469.0.png" + hash: "b1a283365bbffbc0ddaa4aa661e52add" } Frame { msec: 976 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml index a470a66..5c1f112 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + image: "qtbug_14865.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "qtbug_14865.0.png" + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" } Frame { msec: 976 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml index fcaeed5..949f077 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "bdf278826a033dbb744d1fa9492c9351" + image: "elide.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "elide.0.png" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 976 @@ -251,7 +251,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png index 03b6e5d..51d009f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml index 1c1d5eb..7d2ee3d 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "26a468619443250a160845a894643eb9" + image: "elide2.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "elide2.0.png" + hash: "186db3738dc443d66b5b0352d7753b26" } Frame { msec: 976 @@ -443,7 +443,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -490,7 +490,7 @@ VisualTest { } Frame { msec: 1920 - image: "elide2.1.png" + hash: "03123bcb0f4ff032257415f713a5873c" } Frame { msec: 1936 @@ -730,7 +730,7 @@ VisualTest { } Frame { msec: 2880 - image: "elide2.2.png" + hash: "905d42c34198abdc68a3c6f69bfbd293" } Frame { msec: 2896 @@ -970,7 +970,7 @@ VisualTest { } Frame { msec: 3840 - image: "elide2.3.png" + hash: "6e800f4aacf0096f34acdf13678cab25" } Frame { msec: 3856 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png index 7980f23..33f7eb0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml index 3871f91..ae009f7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "51e3a7214bf2fd98108de683ae650b05" + image: "multilength.0.png" } Frame { msec: 32 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 960 - image: "multilength.0.png" + hash: "7ee899df8915bc0c523e0bb01fc210ca" } Frame { msec: 976 @@ -482,7 +482,7 @@ VisualTest { } Frame { msec: 1920 - image: "multilength.1.png" + hash: "a631a4ba1e9638943719dcc2ea5cdb3c" } Frame { msec: 1936 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2880 - image: "multilength.2.png" + hash: "72cc0f0bd55773611952347b2b177d2c" } Frame { msec: 2896 @@ -962,7 +962,7 @@ VisualTest { } Frame { msec: 3840 - image: "multilength.3.png" + hash: "4f2bd407ac54541506ec10edb4dbec58" } Frame { msec: 3856 @@ -1202,7 +1202,7 @@ VisualTest { } Frame { msec: 4800 - image: "multilength.4.png" + hash: "ea23a6ba2406a5cd0cb8a8a7477bdf94" } Frame { msec: 4816 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.0.png index b24344c..8803b36 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml index 0407aaf..a0803a4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "6e8324bf913d9df21a59ab4337257c15" + image: "cursorDelegate.0.png" } Frame { msec: 32 @@ -290,7 +290,7 @@ VisualTest { } Frame { msec: 960 - image: "cursorDelegate.0.png" + hash: "d23d7492b85e4f30994ecd64e8273ff6" } Frame { msec: 976 @@ -578,7 +578,7 @@ VisualTest { } Frame { msec: 1920 - image: "cursorDelegate.1.png" + hash: "a5f90da82b51bc866648304a20a1dcd3" } Frame { msec: 1936 @@ -850,7 +850,7 @@ VisualTest { } Frame { msec: 2880 - image: "cursorDelegate.2.png" + hash: "1bb236db749ef514c00d0a3dd698d24f" } Frame { msec: 2896 @@ -1122,7 +1122,7 @@ VisualTest { } Frame { msec: 3840 - image: "cursorDelegate.3.png" + hash: "2d1b406be294727a278ba6bbc97be62a" } Key { type: 7 @@ -1378,7 +1378,7 @@ VisualTest { } Frame { msec: 4800 - image: "cursorDelegate.4.png" + hash: "4f0d49aff27a1c83287d38e760c10f16" } Frame { msec: 4816 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png index 7c68d9c..95f0c98 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png index 96afa8d..409192c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png index 58b168d..cd2f112 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png index 95f0c98..7191c1e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml index 7b00cdd..f9d728e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "8d8671fb6c3413f38308a0dd15026eae" + image: "qt-669.0.png" } Frame { msec: 32 @@ -314,7 +314,7 @@ VisualTest { } Frame { msec: 960 - image: "qt-669.0.png" + hash: "0c7162e2bf228c76c7b9247e7ee1cf63" } Frame { msec: 976 @@ -634,7 +634,7 @@ VisualTest { } Frame { msec: 1920 - image: "qt-669.1.png" + hash: "2dc196a65cb13214901e0189c2b1984b" } Frame { msec: 1936 @@ -970,7 +970,7 @@ VisualTest { } Frame { msec: 2880 - image: "qt-669.2.png" + hash: "b6f3847d394c87873e34814e332e205a" } Frame { msec: 2896 @@ -1250,7 +1250,7 @@ VisualTest { } Frame { msec: 3840 - image: "qt-669.3.png" + hash: "8d8671fb6c3413f38308a0dd15026eae" } Frame { msec: 3856 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.0.png index e69860e..0d989de 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png index ae21dca..9c72d52 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png index ae21dca..9c72d52 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.8.png index 5f329b6..d49c2ff 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png index ae21dca..9c72d52 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml index 5a1f8de..91489b9 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + image: "usingMultilineEdit.0.png" } Frame { msec: 32 @@ -274,7 +274,7 @@ VisualTest { } Frame { msec: 960 - image: "usingMultilineEdit.0.png" + hash: "bf9ad629e190df34f8bbb242e986083f" } Frame { msec: 976 @@ -618,7 +618,7 @@ VisualTest { } Frame { msec: 1920 - image: "usingMultilineEdit.1.png" + hash: "1d5b3f8dc6e0701c0c11a330e055ba5d" } Frame { msec: 1936 @@ -1010,7 +1010,7 @@ VisualTest { } Frame { msec: 2880 - image: "usingMultilineEdit.2.png" + hash: "3646bd6ea35fb8f0160a24a203b0f469" } Frame { msec: 2896 @@ -1426,7 +1426,7 @@ VisualTest { } Frame { msec: 3840 - image: "usingMultilineEdit.3.png" + hash: "00972f42fed66eb94832506b436b203d" } Frame { msec: 3856 @@ -1770,7 +1770,7 @@ VisualTest { } Frame { msec: 4800 - image: "usingMultilineEdit.4.png" + hash: "67facce41bc51af385bd8102a7e1285e" } Frame { msec: 4816 @@ -2034,7 +2034,7 @@ VisualTest { } Frame { msec: 5760 - image: "usingMultilineEdit.5.png" + hash: "a616e994d83964ff75d95b702f355937" } Mouse { type: 2 @@ -2994,7 +2994,7 @@ VisualTest { } Frame { msec: 6720 - image: "usingMultilineEdit.6.png" + hash: "bc4cd74678c08403bb16b74630d0fd18" } Mouse { type: 5 @@ -3434,7 +3434,7 @@ VisualTest { } Frame { msec: 7680 - image: "usingMultilineEdit.7.png" + hash: "f8d7e167379a5109b1744727b3bb5050" } Frame { msec: 7696 @@ -3810,7 +3810,7 @@ VisualTest { } Frame { msec: 8640 - image: "usingMultilineEdit.8.png" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8656 @@ -4130,7 +4130,7 @@ VisualTest { } Frame { msec: 9600 - image: "usingMultilineEdit.9.png" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9616 @@ -4410,7 +4410,7 @@ VisualTest { } Frame { msec: 10560 - image: "usingMultilineEdit.10.png" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10576 @@ -4658,7 +4658,7 @@ VisualTest { } Frame { msec: 11520 - image: "usingMultilineEdit.11.png" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11536 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png index 4f51246..daa0479 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png index a27067f..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png index e33a8b0..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png index fb35f56..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png index 9eab398..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png index 66edb6b..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png index 66edb6b..ec65f49 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml index 475aee1..0bf29ab 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "d9acaa85ca366aac5a63f59b8913039a" + image: "wrap.0.png" } Key { type: 6 @@ -418,7 +418,7 @@ VisualTest { } Frame { msec: 960 - image: "wrap.0.png" + hash: "3e21db7face603e4a41010e10fdc35eb" } Frame { msec: 976 @@ -810,7 +810,7 @@ VisualTest { } Frame { msec: 1920 - image: "wrap.1.png" + hash: "e5100e36d546b8af34bfc7a68317fa74" } Frame { msec: 1936 @@ -1186,7 +1186,7 @@ VisualTest { } Frame { msec: 2880 - image: "wrap.2.png" + hash: "8ea955780d76128c025cf1a51c995075" } Frame { msec: 2896 @@ -1546,7 +1546,7 @@ VisualTest { } Frame { msec: 3840 - image: "wrap.3.png" + hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" } Frame { msec: 3856 @@ -1922,7 +1922,7 @@ VisualTest { } Frame { msec: 4800 - image: "wrap.4.png" + hash: "6ae6a9c38541546561db9049a300bce6" } Frame { msec: 4816 @@ -2186,7 +2186,7 @@ VisualTest { } Frame { msec: 5760 - image: "wrap.5.png" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5776 @@ -2426,7 +2426,7 @@ VisualTest { } Frame { msec: 6720 - image: "wrap.6.png" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6736 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.0.png index 5ab78c0..4f24b27 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml index 6eb74ea..b9e40a1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + image: "cursorDelegate.0.png" } Frame { msec: 32 @@ -306,7 +306,7 @@ VisualTest { } Frame { msec: 960 - image: "cursorDelegate.0.png" + hash: "a764060e409f44b5a2196e405f0e00e0" } Frame { msec: 976 @@ -642,7 +642,7 @@ VisualTest { } Frame { msec: 1920 - image: "cursorDelegate.1.png" + hash: "627206a252bd6fcbf57d9f1cde0506bb" } Frame { msec: 1936 @@ -978,7 +978,7 @@ VisualTest { } Frame { msec: 2880 - image: "cursorDelegate.2.png" + hash: "87968f62496d88d8ed800d76a2d41c25" } Frame { msec: 2896 @@ -1266,7 +1266,7 @@ VisualTest { } Frame { msec: 3840 - image: "cursorDelegate.3.png" + hash: "4a080a5154c517e6bcf24b3a1f1d7f2c" } Frame { msec: 3856 @@ -1506,7 +1506,7 @@ VisualTest { } Frame { msec: 4800 - image: "cursorDelegate.4.png" + hash: "7797530c0cec492d09390e8f5b6410e6" } Frame { msec: 4816 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png index 551a3de..a6593c9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml index c8f1f27..7d2f45e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "eff6a4491bc00e5570ea73a1371f63fc" + image: "echoMode.0.png" } Frame { msec: 32 @@ -306,7 +306,7 @@ VisualTest { } Frame { msec: 960 - image: "echoMode.0.png" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 976 @@ -650,7 +650,7 @@ VisualTest { } Frame { msec: 1920 - image: "echoMode.1.png" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Key { type: 7 @@ -994,7 +994,7 @@ VisualTest { } Frame { msec: 2880 - image: "echoMode.2.png" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2896 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png new file mode 100644 index 0000000..654a26d Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml index 32330f4..c523060 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + image: "hAlign.0.png" } Frame { msec: 32 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png index 313fcc2..e75900a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml index f014a30..3c7eb2c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "9d5b9f785409527b8f315fef560a4688" + image: "usingLineEdit.0.png" } Frame { msec: 32 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - image: "usingLineEdit.0.png" + hash: "ebd6e6bbd0edaffed688dd5fa2328393" } Mouse { type: 4 @@ -379,7 +379,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -522,7 +522,7 @@ VisualTest { } Frame { msec: 1920 - image: "usingLineEdit.1.png" + hash: "957c85bfa6586d5d92aa3689c178944f" } Frame { msec: 1936 @@ -583,7 +583,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -783,7 +783,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -810,7 +810,7 @@ VisualTest { } Frame { msec: 2880 - image: "usingLineEdit.2.png" + hash: "ebd6e6bbd0edaffed688dd5fa2328393" } Frame { msec: 2896 @@ -1082,7 +1082,7 @@ VisualTest { } Frame { msec: 3840 - image: "usingLineEdit.3.png" + hash: "3e9cbf56be37f593e907759285ddebdb" } Frame { msec: 3856 @@ -1175,7 +1175,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -1338,7 +1338,7 @@ VisualTest { } Frame { msec: 4800 - image: "usingLineEdit.4.png" + hash: "39ce4d31df138a329a21056b8d397fd7" } Mouse { type: 3 @@ -1674,7 +1674,7 @@ VisualTest { } Frame { msec: 5760 - image: "usingLineEdit.5.png" + hash: "48bb05f44207f641b573d43043882aa2" } Frame { msec: 5776 @@ -1823,7 +1823,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -2058,7 +2058,7 @@ VisualTest { } Frame { msec: 6720 - image: "usingLineEdit.6.png" + hash: "ecfa95feb59486098b758894cba272c8" } Frame { msec: 6736 @@ -2327,7 +2327,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 7680 - image: "usingLineEdit.7.png" + hash: "28b1455bb7b150afb4bec88f3328a1f6" } Frame { msec: 7696 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 8640 - image: "usingLineEdit.8.png" + hash: "b7f624c97fc369c66314ecbb86549686" } Mouse { type: 5 @@ -3626,7 +3626,7 @@ VisualTest { } Frame { msec: 9600 - image: "usingLineEdit.9.png" + hash: "0b4b632291769b48d942f5aea91a8ae5" } Mouse { type: 5 @@ -4154,7 +4154,7 @@ VisualTest { } Frame { msec: 10560 - image: "usingLineEdit.10.png" + hash: "020ac5797abe98f97c4839afc67aac18" } Frame { msec: 10576 -- cgit v0.12 From 1f7ddb0525f7de24e195b2dd1a9f0374d19b2a05 Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Mon, 15 Nov 2010 12:19:59 +0200 Subject: Native file dialog on Symbian^3 The static functions in QFileDialog use native file dialog and not QFileDialog on Symbian^3. Task-number: QT-3917 Reviewed-by: Sami Merila Merge-request: 918 Reviewed-by: Sami Merila --- src/gui/dialogs/dialogs.pri | 13 ++ src/gui/dialogs/qfiledialog.cpp | 72 ++++++++++-- src/gui/dialogs/qfiledialog_symbian.cpp | 202 ++++++++++++++++++++++++++++++++ 3 files changed, 278 insertions(+), 9 deletions(-) create mode 100644 src/gui/dialogs/qfiledialog_symbian.cpp diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri index 4e1b9a7..483e9aa 100644 --- a/src/gui/dialogs/dialogs.pri +++ b/src/gui/dialogs/dialogs.pri @@ -108,6 +108,19 @@ SOURCES += \ dialogs/qwizard.cpp \ dialogs/qprintpreviewdialog.cpp +contains(QT_CONFIG, s60) { + LIBS += -lcommondialogs \ + -lavkon \ + -lplatformenv \ + -lefsrv \ + -lgdi + SOURCES += dialogs/qfiledialog_symbian.cpp \ + dialogs/qcolordialog_symbian.cpp +} + FORMS += dialogs/qpagesetupwidget.ui RESOURCES += dialogs/qprintdialog.qrc RESOURCES += dialogs/qmessagebox.qrc + +# Compensate for lack of platform defines in Symbian3 +symbian: DEFINES += SYMBIAN_VERSION_$$upper($$replace(SYMBIAN_VERSION,\\.,_)) diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index fc3c186..a5bff02 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -1616,6 +1616,25 @@ extern QStringList qt_win_get_open_file_names(const QFileDialogArgs &args, extern QString qt_win_get_existing_directory(const QFileDialogArgs &args); #endif +/* + For Symbian file dialogs +*/ +#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) +extern QString qtSymbianGetOpenFileName(const QString &caption, + const QString &dir, + const QString &filter); + +extern QStringList qtSymbianGetOpenFileNames(const QString &caption, + const QString &dir, + const QString &filter); + +extern QString qtSymbianGetSaveFileName(const QString &caption, + const QString &dir); + +extern QString qtSymbianGetExistingDirectory(const QString &caption, + const QString &dir); +#endif + /*! This is a convenience static function that returns an existing file selected by the user. If the user presses Cancel, it returns a null string. @@ -1644,8 +1663,8 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args); The dialog's caption is set to \a caption. If \a caption is not specified then a default caption will be used. - On Windows and Mac OS X, this static function will use the native file - dialog and not a QFileDialog. + On Windows, Mac OS X and Symbian^3, this static function will use the + native file dialog and not a QFileDialog. On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if \a parent is not 0 then it will position the @@ -1657,6 +1676,10 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args); \a options includes DontResolveSymlinks, the file dialog will treat symlinks as regular directories. + On Symbian^3 the parameter \a selectedFilter has no meaning and the + \a options parameter is only used to define if the native file dialog is + used. + \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors. @@ -1672,6 +1695,11 @@ QString QFileDialog::getOpenFileName(QWidget *parent, { if (qt_filedialog_open_filename_hook && !(options & DontUseNativeDialog)) return qt_filedialog_open_filename_hook(parent, caption, dir, filter, selectedFilter, options); +#if defined(Q_WS_S60) + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) { + return qtSymbianGetOpenFileName(caption, dir, filter); + } +#endif QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -1722,8 +1750,8 @@ QString QFileDialog::getOpenFileName(QWidget *parent, The dialog's caption is set to \a caption. If \a caption is not specified then a default caption will be used. - On Windows and Mac OS X, this static function will use the native file - dialog and not a QFileDialog. + On Windows, Mac OS X and Symbian^3, this static function will use the + native file dialog and not a QFileDialog. On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if \a parent is not 0 then it will position the @@ -1741,6 +1769,10 @@ QString QFileDialog::getOpenFileName(QWidget *parent, \snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 10 + On Symbian^3 the parameter \a selectedFilter has no meaning and the + \a options parameter is only used to define if the native file dialog is + used. + \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors. @@ -1756,6 +1788,11 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent, { if (qt_filedialog_open_filenames_hook && !(options & DontUseNativeDialog)) return qt_filedialog_open_filenames_hook(parent, caption, dir, filter, selectedFilter, options); +#if defined(Q_WS_S60) + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) { + return qtSymbianGetOpenFileNames(caption, dir, filter); + } +#endif QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -1813,8 +1850,8 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent, The dialog's caption is set to \a caption. If \a caption is not specified, a default caption will be used. - On Windows and Mac OS X, this static function will use the native file - dialog and not a QFileDialog. + On Windows, Mac OS X and Symbian^3, this static function will use the + native file dialog and not a QFileDialog. On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if \a parent is not 0 then it will position the @@ -1827,6 +1864,10 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent, \a options includes DontResolveSymlinks the file dialog will treat symlinks as regular directories. + On Symbian^3 the parameters \a filter and \a selectedFilter have no + meaning. The \a options parameter is only used to define if the native file + dialog is used. + \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors. @@ -1842,6 +1883,11 @@ QString QFileDialog::getSaveFileName(QWidget *parent, { if (qt_filedialog_save_filename_hook && !(options & DontUseNativeDialog)) return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options); +#if defined(Q_WS_S60) + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) { + return qtSymbianGetSaveFileName(caption, dir); + } +#endif QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -1890,9 +1936,9 @@ QString QFileDialog::getSaveFileName(QWidget *parent, pass. To ensure a native file dialog, \l{QFileDialog::}{ShowDirsOnly} must be set. - On Windows and Mac OS X, this static function will use the native file - dialog and not a QFileDialog. On Windows CE, if the device has no native - file dialog, a QFileDialog will be used. + On Windows, Mac OS X and Symbian^3, this static function will use the + native file dialog and not a QFileDialog. On Windows CE, if the device has + no native file dialog, a QFileDialog will be used. On Unix/X11, the normal behavior of the file dialog is to resolve and follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp}, @@ -1904,6 +1950,9 @@ QString QFileDialog::getSaveFileName(QWidget *parent, dispatch any QTimers, and if \a parent is not 0 then it will position the dialog just below the parent's title bar. + On Symbian^3 the \a options parameter is only used to define if the native + file dialog is used. + \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors. @@ -1917,6 +1966,11 @@ QString QFileDialog::getExistingDirectory(QWidget *parent, { if (qt_filedialog_existing_directory_hook && !(options & DontUseNativeDialog)) return qt_filedialog_existing_directory_hook(parent, caption, dir, options); +#if defined(Q_WS_S60) + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) { + return qtSymbianGetExistingDirectory(caption, dir); + } +#endif QFileDialogArgs args; args.parent = parent; args.caption = caption; diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp new file mode 100644 index 0000000..bd937a1 --- /dev/null +++ b/src/gui/dialogs/qfiledialog_symbian.cpp @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtGui 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 "qfiledialog.h" + +#ifndef QT_NO_FILEDIALOG + +#include +#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) +#include +#include +#include +#include +#endif +#include "private/qcore_symbian_p.h" + +QT_BEGIN_NAMESPACE + +enum DialogMode { DialogOpen, DialogSave, DialogFolder }; +#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) +class CExtensionFilter : public MAknFileFilter +{ +public: + void setFilter(const QString filter) + { + filterList.clear(); + if (filter.left(2) == "*.") { + //Filter has only extensions + filterList << filter.split(" "); + return; + } + else { + //Extensions are in parenthesis and there may be several filters + QStringList separatedFilters(filter.split(";;")); + for (int i = 0; i < separatedFilters.size(); i++) { + if (separatedFilters.at(i) == QFileDialog::tr("All Files (*)")){ + filterList << QFileDialog::tr("All Files (*)"); + return; + } + } + QRegExp rx("\\(([^\\)]*)\\)"); + int pos = 0; + while ((pos = rx.indexIn(filter, pos)) != -1) { + filterList << rx.cap(1).split(" "); + pos += rx.matchedLength(); + } + } + } + + TBool Accept(const TDesC &/*aDriveAndPath*/, const TEntry &aEntry) const + { + if (aEntry.IsDir()) { + return ETrue; + } + if (filterList.isEmpty()) { + //No filter for files, all can be accepted + return ETrue; + } + if (filterList == QStringList(QFileDialog::tr("All Files (*)"))) { + return ETrue; + } + for (int i = 0; i < filterList.size(); ++i) { + QString extension = filterList.at(i); + //remove '*' from the beginning of the extension + if (extension.left(1) == "*"){ + extension = extension.right(extension.size() - 1); + } + QString fileName = qt_TDesC2QString(aEntry.iName); + if (fileName.right(extension.size()) == extension) { + return ETrue; + } + } + return EFalse; + } + +private: + QStringList filterList; +}; +#endif + +static QString launchSymbianDialog(const QString dialogCaption, const QString startDirectory, + const QString filter, DialogMode dialogMode) +{ + QString selection; +#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) + QT_TRAP_THROWING( + TFileName startFolder; + if (!startDirectory.isEmpty()) { + QString dir = QDir::toNativeSeparators(startDirectory); + startFolder = qt_QString2TPtrC(dir); + } + TInt types = AknCommonDialogsDynMem::EMemoryTypeMMCExternal| + AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| + AknCommonDialogsDynMem::EMemoryTypePhone; + + TPtrC titlePtr(qt_QString2TPtrC(dialogCaption)); + TFileName target; + bool select = false; + if (dialogMode == DialogOpen) { + CExtensionFilter* extensionFilter = new (ELeave) CExtensionFilter; + CleanupStack::PushL(extensionFilter); + extensionFilter->setFilter(filter); + select = AknCommonDialogsDynMem::RunSelectDlgLD(types, target, + startFolder, NULL, NULL, titlePtr, extensionFilter); + CleanupStack::Pop(extensionFilter); + } + else if (dialogMode == DialogSave){ + select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target, + startFolder, NULL, NULL, titlePtr); + } + else if (dialogMode == DialogFolder){ + select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder, + 0, 0, titlePtr, NULL, NULL); + } + if (select) { + selection.append(qt_TDesC2QString(target)); + } + ); +#endif + return selection; +} + +QString qtSymbianGetOpenFileName(const QString &caption, + const QString &dir, + const QString &filter) +{ + return launchSymbianDialog(caption, dir, filter, DialogOpen); +} + +QStringList qtSymbianGetOpenFileNames(const QString &caption, + const QString &dir, + const QString &filter) +{ + QString fileName; + fileName.append(launchSymbianDialog(caption, dir, filter, DialogOpen)); + QStringList fileList; + fileList << fileName; + + return fileList; +} + +QString qtSymbianGetSaveFileName(const QString &caption, + const QString &dir) +{ + return launchSymbianDialog(caption, dir, QString(), DialogSave); +} + +QString qtSymbianGetExistingDirectory(const QString &caption, + const QString &dir) +{ + QString folderCaption; + if (!caption.isEmpty()) { + folderCaption.append(caption); + } + else { + // Title for folder selection dialog is mandatory + folderCaption.append(QFileDialog::tr("Find Directory")); + } + return launchSymbianDialog(folderCaption, dir, QString(), DialogFolder); +} + +QT_END_NAMESPACE + +#endif -- cgit v0.12 From 4715182e9c600811c045fe5ed7989d4d52d1f4e9 Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Mon, 15 Nov 2010 12:27:01 +0200 Subject: Documented usage of dialogs on Symbian Added quidance to documentation about using print dialogs on Symbian. Task-number: QT-4247 Reviewed-by: Sami Merila Merge-request: 920 Reviewed-by: Sami Merila --- src/gui/dialogs/qabstractprintdialog.cpp | 3 +++ src/gui/dialogs/qpagesetupdialog.cpp | 3 +++ src/gui/dialogs/qprintpreviewdialog.cpp | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/gui/dialogs/qabstractprintdialog.cpp b/src/gui/dialogs/qabstractprintdialog.cpp index 25d9ebb..641419f 100644 --- a/src/gui/dialogs/qabstractprintdialog.cpp +++ b/src/gui/dialogs/qabstractprintdialog.cpp @@ -65,6 +65,9 @@ class QPrintDialogPrivate : public QAbstractPrintDialogPrivate customize settings shown in print dialogs, but it is not used directly. Use QPrintDialog to display a print dialog in your application. + In Symbian, there is no support for printing. Hence, this dialog should not + be used in Symbian. + \sa QPrintDialog, QPrinter, {Printing with Qt} */ diff --git a/src/gui/dialogs/qpagesetupdialog.cpp b/src/gui/dialogs/qpagesetupdialog.cpp index 5d77de1..b5be942 100644 --- a/src/gui/dialogs/qpagesetupdialog.cpp +++ b/src/gui/dialogs/qpagesetupdialog.cpp @@ -62,6 +62,9 @@ QT_BEGIN_NAMESPACE page margins set on a QPrinter won't show in the native Mac OS X page setup dialog. + In Symbian, there is no support for printing. Hence, this dialog should not + be used in Symbian. + \sa QPrinter, QPrintDialog */ diff --git a/src/gui/dialogs/qprintpreviewdialog.cpp b/src/gui/dialogs/qprintpreviewdialog.cpp index f21343e..d74742a 100644 --- a/src/gui/dialogs/qprintpreviewdialog.cpp +++ b/src/gui/dialogs/qprintpreviewdialog.cpp @@ -676,6 +676,8 @@ void QPrintPreviewDialogPrivate::_q_zoomFactorChanged() Call QPrintPreviewDialog::exec() to show the preview dialog. \endlist + In Symbian, there is no support for printing. Hence, this dialog should not + be used in Symbian. \sa QPrinter, QPrintDialog, QPageSetupDialog, QPrintPreviewWidget */ -- cgit v0.12 From 604c51f1fc5c79b7fad12cda911b06b9e6e5005f Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Mon, 15 Nov 2010 12:55:06 +0100 Subject: Fix item alignment in layouts bigger than the items thay they contain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-13551 Task-number: QTBUG-7756 Merge-request: 894 Reviewed-by: Jan-Arve Sæther --- src/gui/graphicsview/qgridlayoutengine.cpp | 92 ++++++++++++++-------- src/gui/graphicsview/qgridlayoutengine_p.h | 7 +- .../tst_qgraphicsgridlayout.cpp | 70 +++++++++++++--- .../tst_qgraphicslinearlayout.cpp | 85 ++++++++++++++++++++ 4 files changed, 208 insertions(+), 46 deletions(-) diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp index b7fe5a0..f1055ba 100644 --- a/src/gui/graphicsview/qgridlayoutengine.cpp +++ b/src/gui/graphicsview/qgridlayoutengine.cpp @@ -166,7 +166,7 @@ void QGridLayoutRowData::reset(int count) hasIgnoreFlag = false; } -void QGridLayoutRowData::distributeMultiCells() +void QGridLayoutRowData::distributeMultiCells(const QGridLayoutRowInfo &rowInfo) { MultiCellMap::const_iterator i = multiCellMap.constBegin(); for (; i != multiCellMap.constEnd(); ++i) { @@ -185,7 +185,7 @@ void QGridLayoutRowData::distributeMultiCells() qreal extra = compare(box, totalBox, j); if (extra > 0.0) { calculateGeometries(start, end, box.q_sizes(j), dummy.data(), newSizes.data(), - 0, totalBox); + 0, totalBox, rowInfo); for (int k = 0; k < span; ++k) extras[k].q_sizes(j) = newSizes[k]; @@ -202,11 +202,12 @@ void QGridLayoutRowData::distributeMultiCells() void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSize, qreal *positions, qreal *sizes, qreal *descents, - const QGridLayoutBox &totalBox) + const QGridLayoutBox &totalBox, + const QGridLayoutRowInfo &rowInfo) { Q_ASSERT(end > start); - targetSize = qBound(totalBox.q_minimumSize, targetSize, totalBox.q_maximumSize); + targetSize = qMax(totalBox.q_minimumSize, targetSize); int n = end - start; QVarLengthArray newSizes(n); @@ -246,16 +247,22 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz } } } else { - stealBox(start, end, PreferredSize, positions, sizes); + bool isLargerThanMaximum = (targetSize > totalBox.q_maximumSize); + if (isLargerThanMaximum) { + stealBox(start, end, MaximumSize, positions, sizes); + sumAvailable = targetSize - totalBox.q_maximumSize; + } else { + stealBox(start, end, PreferredSize, positions, sizes); + sumAvailable = targetSize - totalBox.q_preferredSize; + } - sumAvailable = targetSize - totalBox.q_preferredSize; if (sumAvailable > 0.0) { qreal sumCurrentAvailable = sumAvailable; bool somethingHasAMaximumSize = false; - qreal sumPreferredSizes = 0.0; + qreal sumSizes = 0.0; for (int i = 0; i < n; ++i) - sumPreferredSizes += sizes[i]; + sumSizes += sizes[i]; for (int i = 0; i < n; ++i) { if (ignore.testBit(start + i)) { @@ -265,7 +272,16 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz } const QGridLayoutBox &box = boxes.at(start + i); - qreal desired = box.q_maximumSize - box.q_preferredSize; + qreal boxSize; + + qreal desired; + if (isLargerThanMaximum) { + boxSize = box.q_maximumSize; + desired = rowInfo.boxes.value(start + i).q_maximumSize - boxSize; + } else { + boxSize = box.q_preferredSize; + desired = box.q_maximumSize - boxSize; + } if (desired == 0.0) { newSizes[i] = sizes[i]; factors[i] = 0.0; @@ -284,17 +300,17 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz } else if (stretch <= 0) { factors[i] = 0.0; } else { - qreal ultimatePreferredSize; - qreal ultimateSumPreferredSizes; - qreal x = ((stretch * sumPreferredSizes) - - (sumStretches * box.q_preferredSize)) + qreal ultimateSize; + qreal ultimateSumSizes; + qreal x = ((stretch * sumSizes) + - (sumStretches * boxSize)) / (sumStretches - stretch); if (x >= 0.0) { - ultimatePreferredSize = box.q_preferredSize + x; - ultimateSumPreferredSizes = sumPreferredSizes + x; + ultimateSize = boxSize + x; + ultimateSumSizes = sumSizes + x; } else { - ultimatePreferredSize = box.q_preferredSize; - ultimateSumPreferredSizes = (sumStretches * box.q_preferredSize) + ultimateSize = boxSize; + ultimateSumSizes = (sumStretches * boxSize) / stretch; } @@ -303,17 +319,17 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz (at the expense of the stretch factors, which are not fully respected during the transition). */ - ultimatePreferredSize = ultimatePreferredSize * 3 / 2; - ultimateSumPreferredSizes = ultimateSumPreferredSizes * 3 / 2; + ultimateSize = ultimateSize * 3 / 2; + ultimateSumSizes = ultimateSumSizes * 3 / 2; - qreal beta = ultimateSumPreferredSizes - sumPreferredSizes; + qreal beta = ultimateSumSizes - sumSizes; if (!beta) { factors[i] = 1; } else { qreal alpha = qMin(sumCurrentAvailable, beta); - qreal ultimateFactor = (stretch * ultimateSumPreferredSizes / sumStretches) - - (box.q_preferredSize); - qreal transitionalFactor = sumCurrentAvailable * (ultimatePreferredSize - box.q_preferredSize) / beta; + qreal ultimateFactor = (stretch * ultimateSumSizes / sumStretches) + - (boxSize); + qreal transitionalFactor = sumCurrentAvailable * (ultimateSize - boxSize) / beta; factors[i] = ((alpha * ultimateFactor) + ((beta - alpha) * transitionalFactor)) / beta; @@ -336,11 +352,16 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz if (newSizes[i] >= 0.0) continue; - const QGridLayoutBox &box = boxes.at(start + i); + qreal maxBoxSize; + if (isLargerThanMaximum) + maxBoxSize = rowInfo.boxes.value(start + i).q_maximumSize; + else + maxBoxSize = boxes.at(start + i).q_maximumSize; + qreal avail = sumCurrentAvailable * factors[i] / sumFactors; - if (sizes[i] + avail >= box.q_maximumSize) { - newSizes[i] = box.q_maximumSize; - sumCurrentAvailable -= box.q_maximumSize - sizes[i]; + if (sizes[i] + avail >= maxBoxSize) { + newSizes[i] = maxBoxSize; + sumCurrentAvailable -= maxBoxSize - sizes[i]; sumFactors -= factors[i]; keepGoing = (sumCurrentAvailable > 0.0); if (!keepGoing) @@ -1126,7 +1147,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as //constraints to find the row heights q_columnData.calculateGeometries(0, columnCount(), width, sizehint_xx.data(), sizehint_widths.data(), - 0, sizehint_totalBoxes[Hor]); + 0, sizehint_totalBoxes[Hor], q_infos[Hor]); ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, sizehint_xx.data(), sizehint_widths.data(), Qt::Vertical); sizeHintCalculated = true; } @@ -1143,7 +1164,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as //constraints to find the column widths q_rowData.calculateGeometries(0, rowCount(), height, sizehint_yy.data(), sizehint_heights.data(), - 0, sizehint_totalBoxes[Ver]); + 0, sizehint_totalBoxes[Ver], q_infos[Ver]); ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, sizehint_yy.data(), sizehint_heights.data(), Qt::Vertical); sizeHintCalculated = true; } @@ -1159,7 +1180,7 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi sizehint_totalBoxes[Hor] = q_totalBoxes[Hor]; sizehint_totalBoxes[Ver] = q_totalBoxes[Ver]; } - } + } switch (which) { case Qt::MinimumSize: @@ -1617,7 +1638,8 @@ void QGridLayoutEngine::ensureColumnAndRowData(QGridLayoutRowData *rowData, QGri { rowData->reset(rowCount(orientation)); fillRowData(rowData, styleInfo, colPositions, colSizes, orientation); - rowData->distributeMultiCells(); + const QGridLayoutRowInfo &rowInfo = q_infos[orientation == Qt::Vertical]; + rowData->distributeMultiCells(rowInfo); *totalBox = rowData->totalBox(0, rowCount(orientation)); //We have items whose width depends on their height } @@ -1686,22 +1708,22 @@ void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo, //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as //constraints to find the row heights q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(), - 0, q_totalBoxes[Hor]); + 0, q_totalBoxes[Hor], q_infos[Hor] ); ensureColumnAndRowData(&q_rowData, &q_totalBoxes[Ver], styleInfo, q_xx.data(), q_widths.data(), Qt::Vertical); //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(), - q_descents.data(), q_totalBoxes[Ver]); + q_descents.data(), q_totalBoxes[Ver], q_infos[Ver]); } else { //We have items whose height depends on their width ensureColumnAndRowData(&q_rowData, &q_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical); //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as //constraints to find the column widths q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(), - q_descents.data(), q_totalBoxes[Ver]); + q_descents.data(), q_totalBoxes[Ver], q_infos[Ver]); ensureColumnAndRowData(&q_columnData, &q_totalBoxes[Hor], styleInfo, q_yy.data(), q_heights.data(), Qt::Horizontal); //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(), - 0, q_totalBoxes[Hor]); + 0, q_totalBoxes[Hor], q_infos[Hor]); } } diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index 02c74b0..44efbba 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -224,13 +224,16 @@ public: typedef QMap, QGridLayoutMultiCellData> MultiCellMap; +class QGridLayoutRowInfo; + class QGridLayoutRowData { public: void reset(int count); - void distributeMultiCells(); + void distributeMultiCells(const QGridLayoutRowInfo &rowInfo); void calculateGeometries(int start, int end, qreal targetSize, qreal *positions, qreal *sizes, - qreal *descents, const QGridLayoutBox &totalBox); + qreal *descents, const QGridLayoutBox &totalBox, + const QGridLayoutRowInfo &rowInfo); QGridLayoutBox totalBox(int start, int end) const; void stealBox(int start, int end, int which, qreal *positions, qreal *sizes); diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 7170059..248778f 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -700,6 +700,10 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); + QCOMPARE(layout->minimumSize(), QSizeF(10+10+10, 10+10)); + QCOMPARE(layout->preferredSize(), QSizeF(25+25+25, 25+25)); + QCOMPARE(layout->maximumSize(), QSizeF(50+50+50, 50+50)); + // should at least be a very large number QVERIFY(layout->columnMaximumWidth(0) >= 10000); QCOMPARE(layout->columnMaximumWidth(0), layout->columnMaximumWidth(1)); @@ -707,17 +711,65 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() layout->setColumnMaximumWidth(0, 20); layout->setColumnMaximumWidth(2, 60); - view.show(); - widget->show(); + QCOMPARE(layout->minimumSize(), QSizeF(10+10+10, 10+10)); + QCOMPARE(layout->preferredSize(), QSizeF(20+25+25, 25+25)); + QCOMPARE(layout->maximumSize(), QSizeF(20+50+60, 50+50)); + QCOMPARE(layout->maximumSize(), widget->maximumSize()); + widget->resize(widget->effectiveSizeHint(Qt::PreferredSize)); - QApplication::processEvents(); + layout->activate(); - QCOMPARE(layout->itemAt(0,0)->geometry().width(), 20.0); - QCOMPARE(layout->itemAt(1,0)->geometry().width(), 20.0); - QCOMPARE(layout->itemAt(0,1)->geometry().width(), 25.0); - QCOMPARE(layout->itemAt(1,1)->geometry().width(), 25.0); - QCOMPARE(layout->itemAt(0,2)->geometry().width(), 25.0); - QCOMPARE(layout->itemAt(1,2)->geometry().width(), 25.0); + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 25)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 25, 20, 25)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 25, 25)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 25, 25, 25)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(45, 0, 25, 25)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(45, 25, 25, 25)); + + layout->setColumnAlignment(2, Qt::AlignCenter); //FIXME This shouldn't be needed because the documentation says that center is default + widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,20+50+60, 50+50)); + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 50)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 50, 20, 50)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 50, 50, 50)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(75, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(75, 50, 50, 50)); + + for(int i = 0; i < layout->count(); i++) + layout->setAlignment(layout->itemAt(i), Qt::AlignRight | Qt::AlignBottom); + layout->activate(); + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 50)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 50, 20, 50)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 50, 50, 50)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(80, 0, 50, 50)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(80, 50, 50, 50)); + for(int i = 0; i < layout->count(); i++) + layout->setAlignment(layout->itemAt(i), Qt::AlignCenter); + + layout->setMaximumSize(layout->maximumSize() + QSizeF(60,60)); + widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); + layout->activate(); + + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 15, 20, 50)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 95, 20, 50)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20+30, 15, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20+30, 95, 50, 50)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(20+60+50+5, 15, 50, 50)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(20+60+50+5, 95, 50, 50)); + + layout->setMaximumSize(layout->preferredSize() + QSizeF(20,20)); + widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); + layout->activate(); + + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 35)); + QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 35, 20, 35)); + QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 35, 35)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 35, 35, 35)); + QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(55, 0, 35, 35)); + QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(55, 35, 35, 35)); delete widget; } diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index 6107fa1..e271aee 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -103,6 +103,8 @@ private slots: void removeLayout(); void avoidRecursionInInsertItem(); void styleInfoLeak(); + void testAlignmentInLargerLayout(); + void testOffByOneInLargerLayout(); // Task specific tests void task218400_insertStretchCrash(); @@ -1465,6 +1467,89 @@ void tst_QGraphicsLinearLayout::task218400_insertStretchCrash() form->setLayout(layout); // crash } +void tst_QGraphicsLinearLayout::testAlignmentInLargerLayout() +{ + QGraphicsScene *scene = new QGraphicsScene; + QGraphicsWidget *form = new QGraphicsWidget; + scene->addItem(form); + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, form); + layout->setSpacing(0); + layout->setContentsMargins(0,0,0,0); + + QGraphicsWidget *a = new QGraphicsWidget; + a->setMaximumSize(100,100); + layout->addItem(a); + + QCOMPARE(form->maximumSize(), QSizeF(100,100)); + QCOMPARE(layout->maximumSize(), QSizeF(100,100)); + layout->setMinimumSize(QSizeF(200,200)); + layout->setMaximumSize(QSizeF(200,200)); + + layout->setAlignment(a, Qt::AlignCenter); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(50,50,100,100)); + + layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(100,100,100,100)); + + layout->setAlignment(a, Qt::AlignHCenter | Qt::AlignTop); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(50,0,100,100)); + + QGraphicsWidget *b = new QGraphicsWidget; + b->setMaximumSize(100,100); + layout->addItem(b); + + layout->setAlignment(a, Qt::AlignCenter); + layout->setAlignment(b, Qt::AlignCenter); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(50,0,100,100)); + QCOMPARE(b->geometry(), QRectF(50,100,100,100)); + + layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom); + layout->setAlignment(b, Qt::AlignLeft | Qt::AlignTop); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(100,0,100,100)); + QCOMPARE(b->geometry(), QRectF(0,100,100,100)); +} + +void tst_QGraphicsLinearLayout::testOffByOneInLargerLayout() { + QGraphicsScene *scene = new QGraphicsScene; + QGraphicsWidget *form = new QGraphicsWidget; + scene->addItem(form); + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, form); + layout->setSpacing(0); + layout->setContentsMargins(0,0,0,0); + + QGraphicsWidget *a = new QGraphicsWidget; + QGraphicsWidget *b = new QGraphicsWidget; + a->setMaximumSize(100,100); + b->setMaximumSize(100,100); + layout->addItem(a); + layout->addItem(b); + + layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom); + layout->setAlignment(b, Qt::AlignLeft | Qt::AlignTop); + layout->setMinimumSize(QSizeF(101,201)); + layout->setMaximumSize(QSizeF(101,201)); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(1,0.5,100,100)); + QCOMPARE(b->geometry(), QRectF(0,100.5,100,100)); + + layout->setMinimumSize(QSizeF(100,200)); + layout->setMaximumSize(QSizeF(100,200)); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(0,0,100,100)); + QCOMPARE(b->geometry(), QRectF(0,100,100,100)); + + layout->setMinimumSize(QSizeF(99,199)); + layout->setMaximumSize(QSizeF(99,199)); + layout->activate(); + QCOMPARE(a->geometry(), QRectF(0,0,99,99.5)); + QCOMPARE(b->geometry(), QRectF(0,99.5,99,99.5)); +} + QTEST_MAIN(tst_QGraphicsLinearLayout) #include "tst_qgraphicslinearlayout.moc" -- cgit v0.12 From 1781b3c876b4e1025b2a85f4e7975c171b1a1404 Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Mon, 15 Nov 2010 12:55:13 +0100 Subject: Change the QGraphics*Layout documentation to match the code - that the default alignment is top-left. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This includes unit tests to confirm that the alignment is top-left in a variety of different cases. Merge-request: 894 Reviewed-by: Jan-Arve Sæther --- src/gui/graphicsview/qgraphicsgridlayout.cpp | 11 ++++++ src/gui/graphicsview/qgraphicslinearlayout.cpp | 4 +- .../tst_qgraphicsgridlayout.cpp | 45 +++++++++++++++++++++- .../tst_qgraphicslinearlayout.cpp | 33 ++++++++++++++++ 4 files changed, 89 insertions(+), 4 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp index 3fc7f10..c3bb6c3 100644 --- a/src/gui/graphicsview/qgraphicsgridlayout.cpp +++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp @@ -64,6 +64,17 @@ removeAt() will remove an item from the layout, without destroying it. + \section1 Size Hints and Size Policies in QGraphicsGridLayout + + QGraphicsGridLayout respects each item's size hints and size policies, + and when the layout contains more space than the items can fill, each item + is arranged according to the layout's alignment for that item. You can set + an alignment for each item by calling setAlignment(), and check the + alignment for any item by calling alignment(). You can also set the alignment + for an entire row or column by calling setRowAlignment() and setColumnAlignment() + respectively. By default, items are aligned to the top left. + + \sa QGraphicsLinearLayout, QGraphicsWidget */ diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp index 7e8d19f..244a728 100644 --- a/src/gui/graphicsview/qgraphicslinearlayout.cpp +++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp @@ -75,7 +75,7 @@ is arranged according to the layout's alignment for that item. You can set an alignment for each item by calling setAlignment(), and check the alignment for any item by calling alignment(). By default, items are - centered both vertically and horizontally. + aligned to the top left. \section1 Spacing within QGraphicsLinearLayout @@ -446,7 +446,7 @@ void QGraphicsLinearLayout::setAlignment(QGraphicsLayoutItem *item, Qt::Alignmen /*! Returns the alignment for \a item. The default alignment is - Qt::AlignCenter. + Qt::AlignTop | Qt::AlignLeft. The alignment decides how the item is positioned within its assigned space in the case where there's more space available in the layout than the diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 248778f..8d1f282 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -123,6 +123,7 @@ private slots: void heightForWidth(); void heightForWidthWithSpanning(); void stretchAndHeightForWidth(); + void testDefaultAlignment(); }; class RectWidget : public QGraphicsWidget @@ -726,7 +727,7 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(45, 0, 25, 25)); QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(45, 25, 25, 25)); - layout->setColumnAlignment(2, Qt::AlignCenter); //FIXME This shouldn't be needed because the documentation says that center is default + layout->setColumnAlignment(2, Qt::AlignCenter); widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); layout->activate(); QCOMPARE(layout->geometry(), QRectF(0,0,20+50+60, 50+50)); @@ -2859,7 +2860,6 @@ void tst_QGraphicsGridLayout::heightForWidthWithSpanning() QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 10000)); } - void tst_QGraphicsGridLayout::stretchAndHeightForWidth() { QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -2919,7 +2919,48 @@ void tst_QGraphicsGridLayout::stretchAndHeightForWidth() } +void tst_QGraphicsGridLayout::testDefaultAlignment() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + QGraphicsGridLayout *layout = new QGraphicsGridLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w = new QGraphicsWidget; + w->setMinimumSize(50,50); + w->setMaximumSize(50,50); + layout->addItem(w,0,0); + + //Default alignment should be to the top-left + //First, check by forcing the layout to be bigger + layout->setMinimumSize(100,100); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,100,100)); + QCOMPARE(w->geometry(), QRectF(0,0,50,50)); + layout->setMinimumSize(-1,-1); + + //Second, check by forcing the column and row to be bigger instead + layout->setColumnMinimumWidth(0, 100); + layout->setRowMinimumHeight(0, 100); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,100,100)); + QCOMPARE(w->geometry(), QRectF(0,0,50,50)); + layout->setMinimumSize(-1,-1); + layout->setColumnMinimumWidth(0, 0); + layout->setRowMinimumHeight(0, 0); + + + //Third, check by adding a larger item in the column + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setMinimumSize(100,100); + w2->setMaximumSize(100,100); + layout->addItem(w2,1,0); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,100,150)); + QCOMPARE(w->geometry(), QRectF(0,0,50,50)); + QCOMPARE(w2->geometry(), QRectF(0,50,100,100)); +} QTEST_MAIN(tst_QGraphicsGridLayout) #include "tst_qgraphicsgridlayout.moc" diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index e271aee..cbc90be 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -105,6 +105,7 @@ private slots: void styleInfoLeak(); void testAlignmentInLargerLayout(); void testOffByOneInLargerLayout(); + void testDefaultAlignment(); // Task specific tests void task218400_insertStretchCrash(); @@ -1549,6 +1550,38 @@ void tst_QGraphicsLinearLayout::testOffByOneInLargerLayout() { QCOMPARE(a->geometry(), QRectF(0,0,99,99.5)); QCOMPARE(b->geometry(), QRectF(0,99.5,99,99.5)); } +void tst_QGraphicsLinearLayout::testDefaultAlignment() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, widget); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + + QGraphicsWidget *w = new QGraphicsWidget; + w->setMinimumSize(50,50); + w->setMaximumSize(50,50); + layout->addItem(w); + + //Default alignment should be to the top-left + QCOMPARE(layout->alignment(w), 0); + + //First, check by forcing the layout to be bigger + layout->setMinimumSize(100,100); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,100,100)); + QCOMPARE(w->geometry(), QRectF(0,0,50,50)); + layout->setMinimumSize(-1,-1); + + //Second, check by adding a larger item in the column + QGraphicsWidget *w2 = new QGraphicsWidget; + w2->setMinimumSize(100,100); + w2->setMaximumSize(100,100); + layout->addItem(w2); + layout->activate(); + QCOMPARE(layout->geometry(), QRectF(0,0,100,150)); + QCOMPARE(w->geometry(), QRectF(0,0,50,50)); + QCOMPARE(w2->geometry(), QRectF(0,50,100,100)); +} QTEST_MAIN(tst_QGraphicsLinearLayout) #include "tst_qgraphicslinearlayout.moc" -- cgit v0.12 From 22c71ed42529277caa4dc8db03efd975b3910546 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 15 Nov 2010 12:59:41 +0100 Subject: compile with quintptr instead of intptr_t --- .../declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 3dd69da..652404c 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -1566,7 +1566,7 @@ void tst_qdeclarativeecmascript::callQtInvokables() o.reset(); { - QString expected = "MyInvokableObject(0x" + QString::number((intptr_t)&o, 16) + ")"; + QString expected = "MyInvokableObject(0x" + QString::number((quintptr)&o, 16) + ")"; QCOMPARE(engine->evaluate("object.method_QString(object)").isUndefined(), true); QCOMPARE(o.error(), false); QCOMPARE(o.invoked(), 11); -- cgit v0.12 From 149cfee3fea478640384559e69209a16bfda44a9 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Mon, 15 Nov 2010 13:08:03 +0100 Subject: Fixed QGesture autotest for QGesture lazy deletion. Reviewed By: Trust Me --- tests/auto/gestures/tst_gestures.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp index 667cdd3..ee19125 100644 --- a/tests/auto/gestures/tst_gestures.cpp +++ b/tests/auto/gestures/tst_gestures.cpp @@ -1486,13 +1486,15 @@ void tst_Gestures::ungrabGesture() // a method on QWidget QVERIFY(customGestureA.data() != customGestureB.data()); a->ungrabGesture(CustomGesture::GestureType); - QVERIFY(customGestureA.isNull()); + //We changed the deletion of Gestures to lazy during QT-4022, so we can't ensure the QGesture is deleted until now QVERIFY(!customGestureB.isNull()); a->gestures.clear(); a->reset(); // send again to 'b' and make sure a never gets it. sendCustomGesture(&event, b); + //After all Gestures are processed in the QGestureManager, we can ensure the QGesture is now deleted + QVERIFY(customGestureA.isNull()); QCOMPARE(a->gestureEventsReceived, 0); QCOMPARE(a->gestureOverrideEventsReceived, 0); } -- cgit v0.12 From 012c865ab30ed45fc57ee5b49b625697cc065e82 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Fri, 12 Nov 2010 11:16:29 +0200 Subject: Removed unnecessary Q_OS_SYMBIAN flags from qdesktopservices_s60.cpp. This flags used to be Q_WS_S60 flags but as part of fabf804b they were changed to Q_OS_SYMBIAN. However since the whole while is only included to build when Q_OS_SYMBIAN is defined, the flags can be removed. Reviewed-by: mread --- src/gui/util/qdesktopservices_s60.cpp | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp index cd023cb..d1eeeae 100644 --- a/src/gui/util/qdesktopservices_s60.cpp +++ b/src/gui/util/qdesktopservices_s60.cpp @@ -62,15 +62,10 @@ // copied from miutset.h, so we don't get a dependency into the app layer const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592 -#ifdef Q_OS_SYMBIAN -# include // PathInfo -# ifdef USE_DOCUMENTHANDLER -# include // CDocumentHandler -# include -# endif -#else -# warning CDocumentHandler requires support for S60 -# undef USE_DOCUMENTHANDLER // Fallback to RApaLsSession based implementation +#include // PathInfo +#ifdef USE_DOCUMENTHANDLER +# include // CDocumentHandler +# include #endif QT_BEGIN_NAMESPACE @@ -268,7 +263,6 @@ static TDriveUnit writableExeDrive() static TPtrC writableDataRoot() { TDriveUnit drive = exeDrive(); -#ifdef Q_OS_SYMBIAN switch(drive.operator TInt()){ case EDriveC: return PathInfo::PhoneMemoryRootPath(); @@ -285,10 +279,6 @@ static TPtrC writableDataRoot() return PathInfo::PhoneMemoryRootPath(); break; } -#else -#warning No fallback implementation of writableDataRoot() - return 0; -#endif } static void openDocumentL(const TDesC& aUrl) @@ -395,21 +385,15 @@ QString QDesktopServices::storageLocation(StandardLocation type) break; case MusicLocation: path.Append(writableDataRoot()); -#ifdef Q_OS_SYMBIAN path.Append(PathInfo::SoundsPath()); -#endif break; case MoviesLocation: path.Append(writableDataRoot()); -#ifdef Q_OS_SYMBIAN path.Append(PathInfo::VideosPath()); -#endif break; case PicturesLocation: path.Append(writableDataRoot()); -#ifdef Q_OS_SYMBIAN path.Append(PathInfo::ImagesPath()); -#endif break; case TempLocation: return QDir::tempPath(); -- cgit v0.12 From d92cbfc5d04d750dea1e49a377e62be564cac788 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Mon, 15 Nov 2010 13:22:27 +0200 Subject: Switched qdesktopservices to use SchemeHandler for Symbian^3 and later. SchemeHandler is plugin extensible component to handle several different URI schemes. By default schemes such as http, https, rtsp, mailto, file, wtai, tel and cti are supported. In some devices/platforms also other schemes might be supported. This commit only defines the USE_SCHEMEHANDLER macro and re-orders the qdesktopservices_s60 source code to make it more readable and to make it compile both with and without the flag. The actual implementation was provided at the same time when qdesktopservices for symbian was initially implemented. Why support is enabled only for Symbian^3 and later? SchemeHandler component does not exist in S60 3.1 - 5.0 public SDKs, actually it does not exist also in Forum Nokia provided Symbian^3 SDK, but is available in Symbian^3 PDK. Since building Qt for Symbian^3 anyway require PDK and because the release builds for Symbian^3 are done separately from older Symbian versions, PDK dependency should be Ok. It might be that SchemeHandler headers will be relicensed as part of Qt, then SchemeHandler support also for older S60/Symbian releases can be enabled. If this happens it will be separate commit. Task-number: QTBUG-15282 Reviewed-by: Miikka Heikkinen --- src/gui/util/qdesktopservices_s60.cpp | 162 ++++++++++++++++++---------------- src/gui/util/util.pri | 19 ++-- 2 files changed, 97 insertions(+), 84 deletions(-) diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp index d1eeeae..47b0cbe 100644 --- a/src/gui/util/qdesktopservices_s60.cpp +++ b/src/gui/util/qdesktopservices_s60.cpp @@ -45,27 +45,29 @@ #include #include -#include // CRichText #include // TDriveUnit etc -#include // CEikonEnv -#include // RApaLsSession -#include // TApaTaskList, TApaTask -#include // RSendAs -#include // RSendAsMessage +#include // PathInfo +#ifndef USE_SCHEMEHANDLER #ifdef Q_WS_S60 // This flag changes the implementation to use S60 CDcoumentHandler -// instead of apparch when opening the files +// instead of apparc when opening the files #define USE_DOCUMENTHANDLER #endif -// copied from miutset.h, so we don't get a dependency into the app layer -const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592 +#include // CRichText +#include // CEikonEnv +#include // RApaLsSession +#include // TApaTaskList, TApaTask +#include // RSendAs +#include // RSendAsMessage -#include // PathInfo #ifdef USE_DOCUMENTHANDLER -# include // CDocumentHandler -# include +#include // CDocumentHandler +#include +#endif +#else // USE_SCHEMEHANDLER +#include #endif QT_BEGIN_NAMESPACE @@ -74,6 +76,10 @@ _LIT(KCacheSubDir, "Cache\\"); _LIT(KSysBin, "\\Sys\\Bin\\"); _LIT(KBrowserPrefix, "4 " ); _LIT(KFontsDir, "z:\\resource\\Fonts\\"); + +#ifndef USE_SCHEMEHANDLER +// copied from miutset.h, so we don't get a dependency into the app layer +const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592 const TUid KUidBrowser = { 0x10008D39 }; template @@ -132,7 +138,6 @@ private: Q_GLOBAL_STATIC(QS60DocumentHandler, qt_s60_documenthandler); #endif - static void handleMailtoSchemeLX(const QUrl &url) { // this function has many intermingled leaves and throws. Qt and Symbian objects do not have @@ -150,12 +155,10 @@ static void handleMailtoSchemeLX(const QUrl &url) QStringList ccs = cc.split(QLatin1String(","), QString::SkipEmptyParts); QStringList bccs = bcc.split(QLatin1String(","), QString::SkipEmptyParts); - RSendAs sendAs; User::LeaveIfError(sendAs.Connect()); QAutoClose sendAsCleanup(sendAs); - CSendAsAccounts* accounts = CSendAsAccounts::NewL(); CleanupStack::PushL(accounts); sendAs.AvailableAccountsL(KUidMsgTypeSMTP, *accounts); @@ -244,42 +247,6 @@ static bool handleOtherSchemes(const QUrl &url) return err ? false : true; } -static TDriveUnit exeDrive() -{ - RProcess me; - TFileName processFileName = me.FileName(); - TDriveUnit drive(processFileName); - return drive; -} - -static TDriveUnit writableExeDrive() -{ - TDriveUnit drive = exeDrive(); - if(drive.operator TInt() == EDriveZ) - return TDriveUnit(EDriveC); - return drive; -} - -static TPtrC writableDataRoot() -{ - TDriveUnit drive = exeDrive(); - switch(drive.operator TInt()){ - case EDriveC: - return PathInfo::PhoneMemoryRootPath(); - break; - case EDriveE: - return PathInfo::MemoryCardRootPath(); - break; - case EDriveZ: - // It is not possible to write on ROM drive -> - // return phone mem root path instead - return PathInfo::PhoneMemoryRootPath(); - break; - default: - return PathInfo::PhoneMemoryRootPath(); - break; - } -} static void openDocumentL(const TDesC& aUrl) { @@ -304,13 +271,44 @@ static void openDocumentL(const TDesC& aUrl) #endif } -#ifdef USE_SCHEMEHANDLER +static bool launchWebBrowser(const QUrl &url) +{ + if (!url.isValid()) + return false; + + if (url.scheme() == QLatin1String("mailto")) { + return handleMailtoScheme(url); + } + return handleOtherSchemes( url ); +} + +static bool openDocument(const QUrl &file) +{ + if (!file.isValid()) + return false; + + QString filePath = file.toLocalFile(); + filePath = QDir::toNativeSeparators(filePath); + TPtrC filePathPtr(qt_QString2TPtrC(filePath)); + TRAPD(err, openDocumentL(filePathPtr)); + return err ? false : true; +} + +#else //USE_SCHEMEHANDLER // The schemehandler component only exist in private SDK. This implementation // exist here just for convenience in case that we need to use it later on // The schemehandle based implementation is not yet tested. // The biggest advantage of schemehandler is that it can handle // wide range of schemes and is extensible by plugins +static void handleUrlL(const TDesC& aUrl) +{ + CSchemeHandler* schemeHandler = CSchemeHandler::NewL(aUrl); + CleanupStack::PushL(schemeHandler); + schemeHandler->HandleUrlStandaloneL(); // Process the Url in standalone mode + CleanupStack::PopAndDestroy(); +} + static bool handleUrl(const QUrl &url) { if (!url.isValid()) @@ -322,13 +320,6 @@ static bool handleUrl(const QUrl &url) return err ? false : true; } -static void handleUrlL(const TDesC& aUrl) -{ - CSchemeHandler* schemeHandler = CSchemeHandler::NewL(aUrl); - CleanupStack::PushL(schemeHandler); - schemeHandler->HandleUrlStandaloneL(); // Process the Url in standalone mode - CleanupStack::PopAndDestroy(); -} static bool launchWebBrowser(const QUrl &url) { return handleUrl(url); @@ -336,31 +327,48 @@ static bool launchWebBrowser(const QUrl &url) static bool openDocument(const QUrl &file) { - return handleUrl(url); + return handleUrl(file); } -#endif -static bool launchWebBrowser(const QUrl &url) -{ - if (!url.isValid()) - return false; +#endif //USE_SCHEMEHANDLER - if (url.scheme() == QLatin1String("mailto")) { - return handleMailtoScheme(url); - } - return handleOtherSchemes( url ); +// Common functions to all implementations + +static TDriveUnit exeDrive() +{ + RProcess me; + TFileName processFileName = me.FileName(); + TDriveUnit drive(processFileName); + return drive; } -static bool openDocument(const QUrl &file) +static TDriveUnit writableExeDrive() { - if (!file.isValid()) - return false; + TDriveUnit drive = exeDrive(); + if(drive.operator TInt() == EDriveZ) + return TDriveUnit(EDriveC); + return drive; +} - QString filePath = file.toLocalFile(); - filePath = QDir::toNativeSeparators(filePath); - TPtrC filePathPtr(qt_QString2TPtrC(filePath)); - TRAPD(err, openDocumentL(filePathPtr)); - return err ? false : true; +static TPtrC writableDataRoot() +{ + TDriveUnit drive = exeDrive(); + switch(drive.operator TInt()){ + case EDriveC: + return PathInfo::PhoneMemoryRootPath(); + break; + case EDriveE: + return PathInfo::MemoryCardRootPath(); + break; + case EDriveZ: + // It is not possible to write on ROM drive -> + // return phone mem root path instead + return PathInfo::PhoneMemoryRootPath(); + break; + default: + return PathInfo::PhoneMemoryRootPath(); + break; + } } QString QDesktopServices::storageLocation(StandardLocation type) diff --git a/src/gui/util/util.pri b/src/gui/util/util.pri index bea520e..d1c4ff8 100644 --- a/src/gui/util/util.pri +++ b/src/gui/util/util.pri @@ -43,12 +43,17 @@ embedded { } symbian { - LIBS += -lsendas2 -letext -lapmime -lplatformenv - contains(QT_CONFIG, s60) { - contains(CONFIG, is_using_gnupoc) { - LIBS += -lcommonui - } else { - LIBS += -lCommonUI + LIBS += -letext -lplatformenv + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + LIBS += -lsendas2 -lapmime + contains(QT_CONFIG, s60) { + contains(CONFIG, is_using_gnupoc) { + LIBS += -lcommonui + } else { + LIBS += -lCommonUI + } } + } else { + DEFINES += USE_SCHEMEHANDLER } -} +} \ No newline at end of file -- cgit v0.12 From 03c60ccac1ab416ebee7a262f1c910774fdc2ff2 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Mon, 15 Nov 2010 14:28:25 +0200 Subject: Fixed code style of d92cbfc5, reported by git push. 82: TAB character in non-leading whitespace 348: Flow control keywords must be followed by single space 356: Flow control keywords must be followed by single space Rev-By: TrustMe --- src/gui/util/qdesktopservices_s60.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp index 47b0cbe..56c2b98 100644 --- a/src/gui/util/qdesktopservices_s60.cpp +++ b/src/gui/util/qdesktopservices_s60.cpp @@ -79,7 +79,7 @@ _LIT(KFontsDir, "z:\\resource\\Fonts\\"); #ifndef USE_SCHEMEHANDLER // copied from miutset.h, so we don't get a dependency into the app layer -const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592 +const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592 const TUid KUidBrowser = { 0x10008D39 }; template @@ -345,7 +345,7 @@ static TDriveUnit exeDrive() static TDriveUnit writableExeDrive() { TDriveUnit drive = exeDrive(); - if(drive.operator TInt() == EDriveZ) + if (drive.operator TInt() == EDriveZ) return TDriveUnit(EDriveC); return drive; } @@ -353,7 +353,7 @@ static TDriveUnit writableExeDrive() static TPtrC writableDataRoot() { TDriveUnit drive = exeDrive(); - switch(drive.operator TInt()){ + switch (drive.operator TInt()){ case EDriveC: return PathInfo::PhoneMemoryRootPath(); break; -- cgit v0.12 From 32f8c01196f6ebc2bd18ee9f66929bdba61fea20 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 2 Nov 2010 09:22:37 +0100 Subject: doc: Fix documentation of QTextEdit::setDocument QTextEdit::setDocument() has failed to delete its current document since June 2006 despite its claims of the otherwise. Since most Qt versions now exhibit this behavior, the only safe way to fix the problem is to change the documentation to reflect what actually happens. Task-number: QTBUG-14049 Reviewed-by: Lars --- src/gui/widgets/qtextedit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qtextedit.cpp b/src/gui/widgets/qtextedit.cpp index 4541730..6b3f444 100644 --- a/src/gui/widgets/qtextedit.cpp +++ b/src/gui/widgets/qtextedit.cpp @@ -773,7 +773,7 @@ Qt::Alignment QTextEdit::alignment() const is the document's parent object. The parent object of the provided document remains the owner of the object. - If the current document is a child of the text editor, then it is deleted. + The editor does not delete the current document, even if it is a child of the editor. \sa document() */ -- cgit v0.12 From f0990583431166e721d038e150ba00b0edc4e105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Mon, 15 Nov 2010 14:28:59 +0100 Subject: Some improvements to the docs that was added in merge request 894 --- src/gui/graphicsview/qgraphicsgridlayout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp index c3bb6c3..20ebab6 100644 --- a/src/gui/graphicsview/qgraphicsgridlayout.cpp +++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp @@ -67,7 +67,7 @@ \section1 Size Hints and Size Policies in QGraphicsGridLayout QGraphicsGridLayout respects each item's size hints and size policies, - and when the layout contains more space than the items can fill, each item + and when a cell in the grid has more space than the items can fill, each item is arranged according to the layout's alignment for that item. You can set an alignment for each item by calling setAlignment(), and check the alignment for any item by calling alignment(). You can also set the alignment -- cgit v0.12 From 68fc0a299b9268007ae68f5d8a8dce40ed1e4e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Mon, 15 Nov 2010 14:33:51 +0100 Subject: Adhere to code style --- tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp | 8 ++++---- tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 8d1f282..2e52c4e 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -704,7 +704,7 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() QCOMPARE(layout->minimumSize(), QSizeF(10+10+10, 10+10)); QCOMPARE(layout->preferredSize(), QSizeF(25+25+25, 25+25)); QCOMPARE(layout->maximumSize(), QSizeF(50+50+50, 50+50)); - + // should at least be a very large number QVERIFY(layout->columnMaximumWidth(0) >= 10000); QCOMPARE(layout->columnMaximumWidth(0), layout->columnMaximumWidth(1)); @@ -738,7 +738,7 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(75, 0, 50, 50)); QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(75, 50, 50, 50)); - for(int i = 0; i < layout->count(); i++) + for (int i = 0; i < layout->count(); i++) layout->setAlignment(layout->itemAt(i), Qt::AlignRight | Qt::AlignBottom); layout->activate(); QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 50)); @@ -747,13 +747,13 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 50, 50, 50)); QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(80, 0, 50, 50)); QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(80, 50, 50, 50)); - for(int i = 0; i < layout->count(); i++) + for (int i = 0; i < layout->count(); i++) layout->setAlignment(layout->itemAt(i), Qt::AlignCenter); layout->setMaximumSize(layout->maximumSize() + QSizeF(60,60)); widget->resize(widget->effectiveSizeHint(Qt::MaximumSize)); layout->activate(); - + QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 15, 20, 50)); QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 95, 20, 50)); QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20+30, 15, 50, 50)); diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index cbc90be..965e340 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -1543,7 +1543,7 @@ void tst_QGraphicsLinearLayout::testOffByOneInLargerLayout() { layout->activate(); QCOMPARE(a->geometry(), QRectF(0,0,100,100)); QCOMPARE(b->geometry(), QRectF(0,100,100,100)); - + layout->setMinimumSize(QSizeF(99,199)); layout->setMaximumSize(QSizeF(99,199)); layout->activate(); -- cgit v0.12 From 96b1ea7088f8d541bc4c5fbc87baaf56b0b2fd43 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Mon, 15 Nov 2010 18:34:38 +0100 Subject: Doc: Correcting references to Qt Declarative module. --- doc/src/declarative/declarativeui.qdoc | 8 ++++---- doc/src/declarative/elements.qdoc | 2 +- doc/src/declarative/extending-tutorial.qdoc | 4 ++-- doc/src/declarative/qtbinding.qdoc | 12 ++++++------ doc/src/declarative/qtdeclarative.qdoc | 2 +- doc/src/getting-started/gettingstartedqml.qdoc | 2 +- doc/src/qt4-intro.qdoc | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 28a8a70..eb469d6 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -45,7 +45,7 @@ language for describing user interfaces and a language runtime. A collection of C++ APIs is used to integrate these high level features with classic Qt applications. -\section2 QML, Elements and the QtDeclarative Module +\section2 QML, Elements and the Qt Declarative Module User interfaces and their behavior are described using QML, an extension to \l{About JavaScript}{JavaScript} that lets developers and designers @@ -60,14 +60,14 @@ QObject-based type system, adds support for automatic \l{Property Binding}{property bindings} and provides \l{Network Transparency}{network transparency} at the language level. -The QtDeclarative module implements the interface between the QML language +The Qt Declarative module implements the interface between the QML language and the elements available to it. It also provides a C++ API that can be used to load and interact with QML files from within Qt applications. Qt Quick builds on \l{QML for Qt programmers}{Qt's existing strengths}. QML can be be used to incrementally extend an existing application or to build completely new applications. QML is fully -\l{Extending QML in C++}{extensible from C++} through the QtDeclarative +\l{Extending QML in C++}{extensible from C++} through the Qt Declarative Module. \section1 Getting Started @@ -139,7 +139,7 @@ Module. \o \l{QML Global Object} \o \l{QML Internationalization} \o \l{QML Security} -\o \l{QtDeclarative Module} +\o \l{Qt Declarative Module} \o \l{Debugging QML} \o \l{QML Viewer} \o \l{QML Performance} diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index 54f07a2..eaa6a82 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -32,7 +32,7 @@ \brief A dictionary of standard QML elements. This is a dictionary of all standard QML elements made available - in the QtDeclarative module. + in the Qt Declarative module. To see the QML elements listed by functional area, see the \l{Groups Of Related QML Elements} page. diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc index 2bfe62e..dff1d9c 100644 --- a/doc/src/declarative/extending-tutorial.qdoc +++ b/doc/src/declarative/extending-tutorial.qdoc @@ -29,7 +29,7 @@ \page qml-extending-tutorial-index.html \title Tutorial: Writing QML extensions with C++ -The QtDeclarative module provides a set of APIs for extending QML through +The Qt Declarative module provides a set of APIs for extending QML through C++ extensions. You can write extensions to add your own QML types, extend existing Qt types, or call C/C++ functions that are not accessible from ordinary QML code. @@ -65,7 +65,7 @@ For example, this could be done to implement particular data models, or provide elements with custom painting and drawing capabilities, or access system features like network programming that are not accessible through built-in QML features. -In this tutorial, we will show how to use the C++ classes in the QtDeclarative +In this tutorial, we will show how to use the C++ classes in the Qt Declarative module to extend QML. The end result will be a simple Pie Chart display implemented by several custom QML types connected together through QML features like bindings and signals, and made available to the QML runtime through a plugin. diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 8a969eb..cd50503 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -31,7 +31,7 @@ \title Using QML in C++ Applications QML is designed to be easily extensible from C++. The classes in the -QtDeclarative module allow QML components to be loaded and manipulated from C++, and through +Qt Declarative module allow QML components to be loaded and manipulated from C++, and through Qt's \l{The Meta-Object System}{meta-object system}, QML and C++ objects can easily communicate through Qt signals and slots. In addition, QML plugins can be written to create reusable QML components for distribution. @@ -41,20 +41,20 @@ You may want to mix QML and C++ for a number of reasons. For example: \list \o To use functionality defined in a C++ source (for example, when using a C++ Qt-based data model, or calling functions in a third-party C++ library) -\o To access functionality in the QtDeclarative module (for example, to dynamically generate +\o To access functionality in the Qt Declarative module (for example, to dynamically generate images using QDeclarativeImageProvider) \o To write your own QML elements (whether for your applications, or for distribution to others) \endlist -To use the QtDeclarative module, you must include and link to the module appropriately, as shown on +To use the Qt Declarative module, you must include and link to the module appropriately, as shown on the \l {QtDeclarative}{module index page}. The \l {Qt Declarative UI Runtime} documentation shows how to build a basic C++ application that uses this module. \section1 Core module classes -The QtDeclarative module provides a set of C++ APIs for extending your QML applications from C++ and -embedding QML into C++ applications. There are several core classes in the QtDeclarative module +The Qt Declarative module provides a set of C++ APIs for extending your QML applications from C++ and +embedding QML into C++ applications. There are several core classes in the Qt Declarative module that provide the essential capabilities for doing this. These are: \list @@ -520,7 +520,7 @@ a QColor-type property or to call a C++ function that requires a QColor paramete \section1 Writing QML plugins -The QtDeclarative module includes the QDeclarativeExtensionPlugin class, which is an abstract +The Qt Declarative module includes the QDeclarativeExtensionPlugin class, which is an abstract class for writing QML plugins. This allows QML extension types to be dynamically loaded into QML applications. diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index 7ecdc53..f2b2032 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -27,7 +27,7 @@ /*! \module QtDeclarative - \title QtDeclarative Module + \title Qt Declarative Module \ingroup modules \brief The Qt Declarative module provides a declarative framework diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index 54fa098..b767587 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -42,7 +42,7 @@ installation instructions and requirements for different platforms. Qt Quick includes a declarative language called - \l{Introduction to the QML language}{QML}, the \l{QtDeclarative Module}, and + \l{Introduction to the QML language}{QML}, the \l{Qt Declarative Module}, and \l{QML Viewer}. \section1 QML to Build User Interfaces diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 2384051..62decbb 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -466,7 +466,7 @@ collaborate tightly and create animated and fluid user experiences, using existing knowledge in script language and design. - \i QtDeclarative is a C++ library that provides the underlying engine, + \i Qt Declarative is a C++ library that provides the underlying engine, which translates the declarative description of the UI in QML into items on a QGraphicsScene. The library also provides APIs to bind custom C++ types and elements to QML, and to connect the QML UI with -- cgit v0.12 From 013fe9236fbc54eb40a19461cfa65d5fb8334f06 Mon Sep 17 00:00:00 2001 From: Morten Engvoldsen Date: Mon, 15 Nov 2010 18:41:15 +0100 Subject: Doc: correcting heading - Beginning Qt Quick - into - Intro to Qt Quick --- doc/src/declarative/declarativeui.qdoc | 2 +- doc/src/declarative/qml-intro.qdoc | 2 +- doc/src/declarative/qmlinuse.qdoc | 499 +++++++++++++++++++++++++++++++++ 3 files changed, 501 insertions(+), 2 deletions(-) create mode 100644 doc/src/declarative/qmlinuse.qdoc diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index eb469d6..01e1302 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -77,7 +77,7 @@ Module. \o \l{Introduction to the QML language} \o \l{QML for Qt Programmers} \o \l{Getting Started Programming with QML} -\o \l{Beginning Qt Quick} +\o \l{Intro to Qt Quick} \endlist \list diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc index f891e01..e02ce8f 100644 --- a/doc/src/declarative/qml-intro.qdoc +++ b/doc/src/declarative/qml-intro.qdoc @@ -29,7 +29,7 @@ /*! \page qml-intro.html -\title Beginning Qt Quick +\title Intro to Qt Quick \section1 Overview diff --git a/doc/src/declarative/qmlinuse.qdoc b/doc/src/declarative/qmlinuse.qdoc new file mode 100644 index 0000000..90ce02c --- /dev/null +++ b/doc/src/declarative/qmlinuse.qdoc @@ -0,0 +1,499 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in a +** written agreement between you and Nokia. +** +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of this +** file. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! +\page qmlinuse.html +\title Using QML elements + +\raw HTML +
+ +
+

+ Groups Of Related QML Elements

+

+ QML Elements are grouped by their respective functionalities. Certain elements are + suited for building complex components while other elements strictly dictate appearances + and color.

+
+
+

+ add something about elements in use in general

+
+
+ +
+
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

Basic QML Elements

+

+ Basic elements can be extended to form more complex elements.

+ Elements: +
    +
  • Item Element + - The Item is the most basic of all visual items in QML. Many visual elements inherit + properties from the Item element.
  • +
  • Component Element + - The Component element encapsulates a QML component definition.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Visual Elements

+

+ Visual elements offer various interactive and graphical functionalities. Visual + elements can directly set properties that dictate appearances.

+ Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Animation and Transition Elements

+

+ Animation and transition elements control animation behaviors. Animations can run + in parallel or in series for different value types. +

+ Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Interaction Elements

+

+ These elements define basic interactions such as touch movements and focus management.

+ Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Event Elements

+

+ Key and mouse events information are provided in these event elements.

+ Elements: +
    +
  • KeyEvent Element - The KeyEvent + object provides information about a key event.
  • +
  • MouseEvent Element - The MouseEvent + object provides information about a mouse event.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Positioning Elements

+

+ Using positioning elements, layouts can be defined and their children accessed through + an index.

+ Elements: +
    +
  • Column Element - The Column + item arranges its children vertically.
  • +
  • Flow Element - The Flow item + arranges its children side by side, wrapping as necessary.
  • +
  • Grid Element - The Grid item + positions its children in a grid.
  • +
  • Row Element - The Row item + arranges its children horizontally.
  • +
  • Repeater Element - The Repeater element allows you to repeat an Item-based component using a model.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+ +

QML State Elements

+

+ States and groups of states are formed using state elements.

+ Elements: +
    +
  • AnchorChanges Element - The AnchorChanges element allows you to change the anchors of an item in a state.
  • +
  • ParentChange Element - The ParentChange element allows you to reparent an Item in a state change.
  • +
  • PropertyChanges Element - The PropertyChanges element describes new property bindings or values for a state.
  • +
  • State Element - The State + element defines configurations of objects and properties.
  • +
  • StateChangeScript Element - The StateChangeScript element allows you to run a script in a state.
  • +
  • StateGroup Element - The StateGroup element provides state support for non-Item elements.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Transform Elements

+

+ Advanced handling of transformations is controlled in transform elements.

+ Elements: +
    +
  • Rotation Element - The Rotation object provides a way to rotate an Item.
  • +
  • Scale Element - The Scale element provides a way to scale an Item.
  • +
  • Transform Element - The Transform element provide a way of building advanced transformations on Items.
  • +
  • Translate Element - The Translate object provides a way to move an Item without changing its x or y properties.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

QML Utility Elements

+

+ These elements handle assorted operations such as event timing, Qt enumerations, + and font loading.

+ Elements: +
    +
  • Binding Element - The Binding element allows arbitrary property bindings to be created.
  • +
  • Connections Element - A Connections element describes generalized connections to signals.
  • +
  • DoubleValidator Element - Provides a validator for non-integer numbers.
  • +
  • FontLoader Element - The FontLoader element allows fonts to be loaded by name or URL.
  • +
  • IntValidator Element - This element provides a validator for integer values.
  • +
  • LayoutItem Element - The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts.
  • +
  • Loader Element - The Loader item allows dynamically loading an Item-based subtree from a URL or Component.
  • +
  • Package Element - Package provides a bundle for shared contexts in multiple views.
  • +
  • Qt Element - The QML global Qt object provides useful enums and functions from Qt.
  • +
  • QtObject Element - The QtObject element is the most basic element in QML.
  • +
  • RegExpValidator Element - This element provides a validator for regular expressions.
  • +
  • SystemPalette Element - The SystemPalette element provides access to the Qt palettes.
  • +
  • Timer Element - The Timer item triggers a handler at a specified interval.
  • +
  • WorkerScript Element - The WorkerScript element enables the use of threads in QML.
  • +
+
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

Models and View Elements

+

+ Models and views are used to organize data and control their layouts using delegates. + Models dictate the data formation and views control the layouts of data in the model.

+ View Elements: +
    +
  • GridView Element - The GridView item provides a grid view of items provided by a model.
  • +
  • ListView Element - The ListView item provides a list view of items provided by a model.
  • +
  • PathView Element - The PathView element lays out model-provided items on a path.
  • +
  • WebView Element - The WebView item allows you to add Web content to a canvas.
  • +
+ Model Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

Paths

+

+ QML components can be arranged along paths. Path elements allow control over different + path types.

+ Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

Particle Elements

+

+ Particle effects are declared and controlled using particle elements.

+ Elements: + +
+
+ +
+
+
+
+ +

+ image heading

+ +

+ img descr.

+
+ +
+
+

Bridge Elements

+

+ Bridge elements allow direct communication between C++ and QML entities.

+ Elements: +
    +
  • LayoutItem Element - The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts.
  • +
+
+
+ +\endraw + + + +*/ + -- cgit v0.12 From 7c8db76d57eb2ed8140a1c466511bd1fefe4b096 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 16 Nov 2010 10:55:12 +1000 Subject: Shrink size of a visual test Task-number: QTBUG-14792 --- .../qdeclarativetext/data-X11/qtbug_14865.0.png | Bin 1400 -> 822 bytes .../qdeclarativetext/data-X11/qtbug_14865.qml | 218 ++++++++++----------- .../qmlvisual/qdeclarativetext/qtbug_14865.qml | 2 +- 3 files changed, 110 insertions(+), 110 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png index a4bae3a..50b367f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml index 5c1f112..6cad9e8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml @@ -10,438 +10,438 @@ VisualTest { } Frame { msec: 32 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 48 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 64 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 80 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 96 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 112 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 128 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 144 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 160 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 176 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 192 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 208 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 224 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 240 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 256 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 272 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 288 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 304 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 320 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 336 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 352 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 368 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 384 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 400 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 416 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 432 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 448 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 464 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 480 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 496 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 512 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 528 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 544 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 560 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 576 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 592 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 608 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 624 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 640 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 656 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 672 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 688 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 704 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 720 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 736 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 752 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 768 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 784 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 800 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 816 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 832 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 848 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 864 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 880 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 896 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 912 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 928 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 944 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 960 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 976 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 992 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 1008 - hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + hash: "cd8f901f2e9c46f52bebd83437fcbd6f" } Frame { msec: 1024 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1040 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1056 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1072 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1088 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1104 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1120 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1136 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1152 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1168 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1184 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1200 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1216 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1232 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1248 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1264 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1280 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1296 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1312 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1328 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1344 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1360 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1376 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1392 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1408 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1424 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1440 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1456 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1472 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1488 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1504 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1520 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1536 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1552 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1568 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1584 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1600 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1616 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1632 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1648 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1664 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1680 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1696 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1712 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1728 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1744 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } Frame { msec: 1760 - hash: "eee4600ac08b458ac7ac2320e225674c" + hash: "3ccd3d26158a50d8f0567bafd7a23e06" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml index 3d5fbf0..6699076 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 import "../shared" 1.0 Rectangle { - width: 200; height: 200 + width: 100; height: 20 TestText { id: label -- cgit v0.12 From 7c40149cf63877ee3d29ec34826ed2a63b4908f2 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 16 Nov 2010 13:31:47 +1000 Subject: Turn off font antialiasing during tests. Font antialiasing varies from machine to machine, and so is too unstable Also switching to a monospaced font in visual tests to attempt to pre-empt another possible source of instability. This commit also slightly increases verbosity of test failure messages to be more useful in the CI system Task-number: QTBUG-14792 --- .../declarative/qmlvisual/shared/DejaVuSansMono.ttf | Bin 0 -> 237788 bytes tests/auto/declarative/qmlvisual/shared/TestText.qml | 2 +- .../declarative/qmlvisual/shared/TestTextEdit.qml | 2 +- .../declarative/qmlvisual/shared/TestTextInput.qml | 2 +- tests/auto/declarative/qmlvisual/shared/Vera.ttf | Bin 65932 -> 0 bytes tools/qml/qdeclarativetester.cpp | 19 +++++++++---------- 6 files changed, 12 insertions(+), 13 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/shared/DejaVuSansMono.ttf delete mode 100644 tests/auto/declarative/qmlvisual/shared/Vera.ttf diff --git a/tests/auto/declarative/qmlvisual/shared/DejaVuSansMono.ttf b/tests/auto/declarative/qmlvisual/shared/DejaVuSansMono.ttf new file mode 100644 index 0000000..029fcac Binary files /dev/null and b/tests/auto/declarative/qmlvisual/shared/DejaVuSansMono.ttf differ diff --git a/tests/auto/declarative/qmlvisual/shared/TestText.qml b/tests/auto/declarative/qmlvisual/shared/TestText.qml index be40112..ab624c3 100644 --- a/tests/auto/declarative/qmlvisual/shared/TestText.qml +++ b/tests/auto/declarative/qmlvisual/shared/TestText.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 import "../shared" 1.0 Text{ - FontLoader { id: fixedFont; source: "Vera.ttf" } + FontLoader { id: fixedFont; source: "DejaVuSansMono.ttf" } font.family: fixedFont.name font.pixelSize: 12 } diff --git a/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml b/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml index e19e418..e7c5bc1 100644 --- a/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml +++ b/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml @@ -3,7 +3,7 @@ import "../shared" 1.0 TextEdit { id: edit - FontLoader { id: fixedFont; source: "Vera.ttf" } + FontLoader { id: fixedFont; source: "DejaVuSansMono.ttf" } font.family: fixedFont.name font.pixelSize: 12 cursorDelegate: Rectangle { diff --git a/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml index e01c2c2..64938e0 100644 --- a/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml +++ b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml @@ -3,7 +3,7 @@ import "../shared" 1.0 TextInput { id: inp - FontLoader { id: fixedFont; source: "Vera.ttf" } + FontLoader { id: fixedFont; source: "DejaVuSansMono.ttf" } font.family: fixedFont.name font.pixelSize: 12 cursorDelegate: Rectangle { diff --git a/tests/auto/declarative/qmlvisual/shared/Vera.ttf b/tests/auto/declarative/qmlvisual/shared/Vera.ttf deleted file mode 100644 index 58cd6b5..0000000 Binary files a/tests/auto/declarative/qmlvisual/shared/Vera.ttf and /dev/null differ diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index 499822a..e2a90cc 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -62,6 +62,12 @@ QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer parent->viewport()->installEventFilter(this); parent->installEventFilter(this); QUnifiedTimer::instance()->setConsistentTiming(true); + + //Font antialiasing makes tests system-specific, so disable it + QFont noAA = QApplication::font(); + noAA.setStyleStrategy(QFont::NoAntialias); + QApplication::setFont(noAA); + if (options & QDeclarativeViewer::Play) this->run(); start(); @@ -268,14 +274,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) if (options & QDeclarativeViewer::TestImages) { img.fill(qRgb(255,255,255)); -#ifdef Q_WS_MAC - bool oldSmooth = qt_applefontsmoothing_enabled; - qt_applefontsmoothing_enabled = false; -#endif QPainter p(&img); -#ifdef Q_WS_MAC - qt_applefontsmoothing_enabled = oldSmooth; -#endif m_view->render(&p); } @@ -337,14 +336,14 @@ void QDeclarativeTester::updateCurrentTime(int msec) if (QDeclarativeVisualTestFrame *frame = qobject_cast(event)) { if (frame->msec() < msec) { if (options & QDeclarativeViewer::TestImages && !(options & QDeclarativeViewer::Record)) { - qWarning() << "QDeclarativeTester: Extra frame. Seen:" + qWarning() << "QDeclarativeTester(" << m_script << "): Extra frame. Seen:" << msec << "Expected:" << frame->msec(); imagefailure(); } } else if (frame->msec() == msec) { if (!frame->hash().isEmpty() && frame->hash().toUtf8() != fe.hash.toHex()) { if (options & QDeclarativeViewer::TestImages && !(options & QDeclarativeViewer::Record)) { - qWarning() << "QDeclarativeTester: Mismatched frame hash at" << msec + qWarning() << "QDeclarativeTester(" << m_script << "): Mismatched frame hash at" << msec << ". Seen:" << fe.hash.toHex() << "Expected:" << frame->hash().toUtf8(); imagefailure(); @@ -363,7 +362,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) } if (goodImage != img) { QString reject(frame->image().toLocalFile() + ".reject.png"); - qWarning() << "QDeclarativeTester: Image mismatch. Reject saved to:" + qWarning() << "QDeclarativeTester(" << m_script << "): Image mismatch. Reject saved to:" << reject; img.save(reject); bool doDiff = (goodImage.size() == img.size()); -- cgit v0.12 From 60436458bbde50b03e10f13d61625b0aef8fbf3d Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 16 Nov 2010 14:54:06 +1000 Subject: Record images on more than just the first frame. 8fc0d1c36cae1b0 introduced this bug when recording new visual tests. Task-number: QTBUG-14792 --- tools/qml/qdeclarativetester.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index e2a90cc..a516fd7 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -285,7 +285,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) fe.msec = msec; if (msec == 0 || !(options & QDeclarativeViewer::TestImages)) { // Skip first frame, skip if not doing images - } else if (0 == (m_savedFrameEvents.count()-1 % 60) || snapshot) { + } else if (0 == ((m_savedFrameEvents.count()-1) % 60) || snapshot) { fe.image = img; } else { QCryptographicHash hash(QCryptographicHash::Md5); -- cgit v0.12 From d02e604cc4d7999cc710b4572edb34236cc70800 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 16 Nov 2010 15:21:51 +1000 Subject: Doc: Remove default from PathView path property Task-number: QTBUG-15073 --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 926bec2..e6eaa2f 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -537,7 +537,6 @@ int QDeclarativePathView::count() const /*! \qmlproperty Path PathView::path - \default This property holds the path used to lay out the items. For more information see the \l Path documentation. */ -- cgit v0.12 From 6cf397f7ac35a058096528a7ad8bfaf623b30747 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 16 Nov 2010 15:59:56 +1000 Subject: VisualDataModel::count should be 0 until a valid delegate is set. There are no visual items if there is no delegate. Task-number: QTBUG-14781 Reviewed-by: Robert Griebl --- .../graphicsitems/qdeclarativevisualitemmodel.cpp | 2 ++ .../tst_qdeclarativevisualdatamodel.cpp | 24 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 1f01a45..9601db0 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -937,6 +937,8 @@ void QDeclarativeVisualDataModel::setPart(const QString &part) int QDeclarativeVisualDataModel::count() const { Q_D(const QDeclarativeVisualDataModel); + if (!d->m_delegate) + return 0; return d->modelCount(); } diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp index 0aad099..29a065c 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp @@ -121,6 +121,7 @@ private slots: void objectListModel(); void singleRole(); void modelProperties(); + void noDelegate(); private: QDeclarativeEngine engine; @@ -472,6 +473,29 @@ void tst_qdeclarativevisualdatamodel::modelProperties() //### should also test QStringList and QVariantList } +void tst_qdeclarativevisualdatamodel::noDelegate() +{ + QDeclarativeView view; + + QStandardItemModel model; + initStandardTreeModel(&model); + + view.rootContext()->setContextProperty("myModel", &model); + + view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml")); + + QDeclarativeListView *listview = qobject_cast(view.rootObject()); + QVERIFY(listview != 0); + + QDeclarativeVisualDataModel *vdm = listview->findChild("visualModel"); + QVERIFY(vdm != 0); + QCOMPARE(vdm->count(), 3); + + vdm->setDelegate(0); + QCOMPARE(vdm->count(), 0); +} + + template T *tst_qdeclarativevisualdatamodel::findItem(QGraphicsObject *parent, const QString &objectName, int index) { -- cgit v0.12 From df1a50f6bd25c0955c7d8e4b6b89a7b7957b69f6 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 16 Nov 2010 15:44:32 +1000 Subject: Update qml visual tests Added guidelines for size, and shrunk tests that exceeded them. Also updated the visuals for all text tests now that antialiasing is off Also some other minor cleanups. Also had to update the visuals for all tests, due to the bug in generating the test scripts being fixed (all need to be remade). Task-number: QTBUG-14792 --- .../declarative/qmlvisual/ListView/data/basic1.qml | 72 - .../declarative/qmlvisual/ListView/data/basic2.qml | 156 - .../declarative/qmlvisual/ListView/data/basic3.qml | 108 - .../declarative/qmlvisual/ListView/data/basic4.qml | 104 - .../qmlvisual/ListView/data/enforcerange.1.png | Bin 704 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.2.png | Bin 695 -> 704 bytes .../qmlvisual/ListView/data/enforcerange.3.png | Bin 680 -> 695 bytes .../qmlvisual/ListView/data/enforcerange.4.png | Bin 701 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.5.png | Bin 704 -> 710 bytes .../qmlvisual/ListView/data/enforcerange.6.png | Bin 0 -> 705 bytes .../qmlvisual/ListView/data/enforcerange.qml | 12 +- .../qmlvisual/ListView/data/itemlist.1.png | Bin 986 -> 976 bytes .../qmlvisual/ListView/data/itemlist.2.png | Bin 977 -> 986 bytes .../qmlvisual/ListView/data/itemlist.3.png | Bin 977 -> 977 bytes .../qmlvisual/ListView/data/itemlist.4.png | Bin 977 -> 977 bytes .../qmlvisual/ListView/data/itemlist.5.png | Bin 990 -> 977 bytes .../qmlvisual/ListView/data/itemlist.6.png | Bin 976 -> 990 bytes .../qmlvisual/ListView/data/itemlist.7.png | Bin 0 -> 976 bytes .../qmlvisual/ListView/data/itemlist.qml | 14 +- .../qmlvisual/ListView/data/listview.1.png | Bin 1580 -> 1647 bytes .../qmlvisual/ListView/data/listview.2.png | Bin 1667 -> 1584 bytes .../qmlvisual/ListView/data/listview.3.png | Bin 1599 -> 1648 bytes .../qmlvisual/ListView/data/listview.4.png | Bin 1663 -> 1613 bytes .../qmlvisual/ListView/data/listview.5.png | Bin 1666 -> 1663 bytes .../qmlvisual/ListView/data/listview.6.png | Bin 1611 -> 1666 bytes .../qmlvisual/ListView/data/listview.qml | 12 +- .../Package_Views/data/packageviews.1.png | Bin 794 -> 797 bytes .../Package_Views/data/packageviews.2.png | Bin 817 -> 794 bytes .../Package_Views/data/packageviews.3.png | Bin 796 -> 822 bytes .../Package_Views/data/packageviews.4.png | Bin 805 -> 801 bytes .../Package_Views/data/packageviews.5.png | Bin 774 -> 803 bytes .../Package_Views/data/packageviews.6.png | Bin 0 -> 774 bytes .../qmlvisual/Package_Views/data/packageviews.qml | 12 +- tests/auto/declarative/qmlvisual/TEST_GUIDELINES | 7 + .../bindinganimation/data/bindinganimation.1.png | Bin 831 -> 830 bytes .../bindinganimation/data/bindinganimation.2.png | Bin 829 -> 829 bytes .../bindinganimation/data/bindinganimation.3.png | Bin 832 -> 830 bytes .../bindinganimation/data/bindinganimation.qml | 6 +- .../data-X11/colorAnimation-visual.1.png | Bin 626 -> 627 bytes .../data-X11/colorAnimation-visual.2.png | Bin 625 -> 626 bytes .../data-X11/colorAnimation-visual.3.png | Bin 0 -> 625 bytes .../data-X11/colorAnimation-visual.qml | 6 +- .../qmlvisual/animation/easing/data/easing.0.png | Bin 3116 -> 1267 bytes .../qmlvisual/animation/easing/data/easing.1.png | Bin 3381 -> 1648 bytes .../qmlvisual/animation/easing/data/easing.2.png | Bin 3101 -> 1617 bytes .../qmlvisual/animation/easing/data/easing.3.png | Bin 16542 -> 1267 bytes .../qmlvisual/animation/easing/data/easing.qml | 492 +- .../qmlvisual/animation/easing/easing.qml | 21 +- .../qmlvisual/animation/loop/data/loop.1.png | Bin 507 -> 508 bytes .../qmlvisual/animation/loop/data/loop.2.png | Bin 508 -> 507 bytes .../qmlvisual/animation/loop/data/loop.3.png | Bin 508 -> 508 bytes .../qmlvisual/animation/loop/data/loop.4.png | Bin 505 -> 508 bytes .../qmlvisual/animation/loop/data/loop.5.png | Bin 508 -> 507 bytes .../qmlvisual/animation/loop/data/loop.6.png | Bin 0 -> 508 bytes .../qmlvisual/animation/loop/data/loop.qml | 12 +- .../data/parallelAnimation-visual.0.png | Bin 777 -> 379 bytes .../data/parallelAnimation-visual.qml | 336 +- .../parallelAnimation/parallelAnimation-visual.qml | 19 +- .../data/parentAnimation-visual.0.png | Bin 3742 -> 1635 bytes .../data/parentAnimation-visual.1.png | Bin 0 -> 1619 bytes .../data/parentAnimation-visual.2.png | Bin 0 -> 1586 bytes .../data/parentAnimation-visual.3.png | Bin 0 -> 1635 bytes .../data/parentAnimation-visual.4.png | Bin 0 -> 1653 bytes .../data/parentAnimation-visual.qml | 1214 ++--- .../parentAnimation/parentAnimation-visual.qml | 18 +- .../parentAnimation2/data/parentAnimation2.1.png | Bin 2059 -> 2047 bytes .../parentAnimation2/data/parentAnimation2.2.png | Bin 2052 -> 2058 bytes .../parentAnimation2/data/parentAnimation2.3.png | Bin 2011 -> 2052 bytes .../parentAnimation2/data/parentAnimation2.qml | 8 +- .../data/pauseAnimation-visual.1.png | Bin 0 -> 3226 bytes .../data/pauseAnimation-visual.2.png | Bin 0 -> 3229 bytes .../data/pauseAnimation-visual.3.png | Bin 0 -> 3224 bytes .../data/pauseAnimation-visual.4.png | Bin 0 -> 3226 bytes .../data/pauseAnimation-visual.5.png | Bin 0 -> 3229 bytes .../data/pauseAnimation-visual.6.png | Bin 0 -> 3229 bytes .../pauseAnimation/data/pauseAnimation-visual.qml | 14 +- .../data/propertyAction-visual.1.png | Bin 345 -> 335 bytes .../data/propertyAction-visual.2.png | Bin 336 -> 344 bytes .../data/propertyAction-visual.3.png | Bin 0 -> 336 bytes .../propertyAction/data/propertyAction-visual.qml | 6 +- .../animation/qtbug10586/data/qtbug10586.1.png | Bin 1141 -> 1135 bytes .../animation/qtbug10586/data/qtbug10586.2.png | Bin 1150 -> 1141 bytes .../animation/qtbug10586/data/qtbug10586.3.png | Bin 1141 -> 1147 bytes .../animation/qtbug10586/data/qtbug10586.qml | 6 +- .../animation/qtbug13398/data/qtbug13398.1.png | Bin 0 -> 1265 bytes .../animation/qtbug13398/data/qtbug13398.qml | 2 +- .../animation/reanchor/data/reanchor.1.png | Bin 642 -> 637 bytes .../animation/reanchor/data/reanchor.2.png | Bin 637 -> 642 bytes .../animation/reanchor/data/reanchor.3.png | Bin 637 -> 647 bytes .../animation/reanchor/data/reanchor.4.png | Bin 647 -> 637 bytes .../animation/reanchor/data/reanchor.5.png | Bin 637 -> 646 bytes .../animation/reanchor/data/reanchor.6.png | Bin 637 -> 637 bytes .../animation/reanchor/data/reanchor.7.png | Bin 637 -> 637 bytes .../animation/reanchor/data/reanchor.8.png | Bin 642 -> 647 bytes .../animation/reanchor/data/reanchor.9.png | Bin 0 -> 642 bytes .../qmlvisual/animation/reanchor/data/reanchor.qml | 20 +- .../scriptAction/data/scriptAction-visual.1.png | Bin 335 -> 335 bytes .../scriptAction/data/scriptAction-visual.2.png | Bin 0 -> 335 bytes .../scriptAction/data/scriptAction-visual.qml | 4 +- .../qmlvisual/fillmode/data/fillmode.0.png | Bin 28900 -> 16855 bytes tests/auto/declarative/qmlvisual/fillmode/face.png | Bin 905 -> 1011 bytes .../declarative/qmlvisual/fillmode/fillmode.qml | 14 +- .../qmlvisual/focusscope/data/test.2.png | Bin 1974 -> 1968 bytes .../qmlvisual/focusscope/data/test.3.png | Bin 0 -> 1974 bytes .../declarative/qmlvisual/focusscope/data/test.qml | 6 +- .../qmlvisual/focusscope/data/test2.1.png | Bin 0 -> 305 bytes .../qmlvisual/focusscope/data/test2.qml | 2 +- .../qmlvisual/focusscope/data/test3.1.png | Bin 488 -> 509 bytes .../qmlvisual/focusscope/data/test3.2.png | Bin 502 -> 491 bytes .../qmlvisual/focusscope/data/test3.3.png | Bin 487 -> 499 bytes .../qmlvisual/focusscope/data/test3.4.png | Bin 0 -> 487 bytes .../qmlvisual/focusscope/data/test3.qml | 8 +- .../qdeclarativeborderimage/animated-smooth.qml | 105 +- .../qmlvisual/qdeclarativeborderimage/animated.qml | 97 +- .../content/MyBorderImage.qml | 10 +- .../content/colors-round.sci | 8 +- .../content/colors-stretch.sci | 8 +- .../qdeclarativeborderimage/content/colors.png | Bin 1655 -> 713 bytes .../qdeclarativeborderimage/content/qmldir | 1 + .../data/animated-smooth.0.png | Bin 9375 -> 4686 bytes .../data/animated-smooth.1.png | Bin 26593 -> 25454 bytes .../data/animated-smooth.qml | 378 +- .../qdeclarativeborderimage/data/animated.0.png | Bin 9375 -> 4686 bytes .../qdeclarativeborderimage/data/animated.1.png | Bin 14694 -> 9642 bytes .../qdeclarativeborderimage/data/animated.qml | 378 +- .../qdeclarativeborderimage/data/borders.0.png | Bin 24327 -> 28741 bytes .../data/flickable-horizontal.1.png | Bin 1424 -> 1424 bytes .../data/flickable-horizontal.2.png | Bin 1397 -> 1428 bytes .../data/flickable-horizontal.3.png | Bin 1453 -> 1397 bytes .../data/flickable-horizontal.4.png | Bin 0 -> 1454 bytes .../data/flickable-horizontal.qml | 8 +- .../data/flickable-vertical.0.png | Bin 1966 -> 1073 bytes .../data/flickable-vertical.1.png | Bin 1941 -> 1063 bytes .../data/flickable-vertical.2.png | Bin 1629 -> 1080 bytes .../data/flickable-vertical.3.png | Bin 1966 -> 1080 bytes .../data/flickable-vertical.4.png | Bin 1966 -> 1056 bytes .../data/flickable-vertical.5.png | Bin 1995 -> 1075 bytes .../data/flickable-vertical.6.png | Bin 2013 -> 1029 bytes .../data/flickable-vertical.7.png | Bin 1963 -> 1073 bytes .../data/flickable-vertical.8.png | Bin 1963 -> 1053 bytes .../data/flickable-vertical.qml | 5074 ++++++-------------- .../qdeclarativeflickable/flickable-vertical.qml | 4 +- .../qdeclarativeflipable/data/test-flipable.1.png | Bin 1134 -> 1111 bytes .../qdeclarativeflipable/data/test-flipable.2.png | Bin 961 -> 1152 bytes .../qdeclarativeflipable/data/test-flipable.3.png | Bin 1076 -> 976 bytes .../qdeclarativeflipable/data/test-flipable.4.png | Bin 1134 -> 1096 bytes .../qdeclarativeflipable/data/test-flipable.5.png | Bin 969 -> 1154 bytes .../qdeclarativeflipable/data/test-flipable.6.png | Bin 0 -> 984 bytes .../qdeclarativeflipable/data/test-flipable.qml | 14 +- .../data/test_flipable_resize.qml | 2 +- .../qdeclarativegridview/data/gridview.1.png | Bin 1332 -> 1318 bytes .../qdeclarativegridview/data/gridview.10.png | Bin 0 -> 1318 bytes .../qdeclarativegridview/data/gridview.2.png | Bin 1331 -> 1332 bytes .../qdeclarativegridview/data/gridview.3.png | Bin 1321 -> 1331 bytes .../qdeclarativegridview/data/gridview.4.png | Bin 1325 -> 1321 bytes .../qdeclarativegridview/data/gridview.5.png | Bin 1321 -> 1325 bytes .../qdeclarativegridview/data/gridview.6.png | Bin 1341 -> 1321 bytes .../qdeclarativegridview/data/gridview.7.png | Bin 1341 -> 1341 bytes .../qdeclarativegridview/data/gridview.8.png | Bin 1359 -> 1341 bytes .../qdeclarativegridview/data/gridview.9.png | Bin 1318 -> 1359 bytes .../qdeclarativegridview/data/gridview.qml | 22 +- .../qdeclarativegridview/data/gridview2.1.png | Bin 1322 -> 1325 bytes .../qdeclarativegridview/data/gridview2.2.png | Bin 1341 -> 1337 bytes .../qdeclarativegridview/data/gridview2.3.png | Bin 1368 -> 1360 bytes .../qdeclarativegridview/data/gridview2.4.png | Bin 1319 -> 1406 bytes .../qdeclarativegridview/data/gridview2.5.png | Bin 1352 -> 1337 bytes .../qdeclarativegridview/data/gridview2.6.png | Bin 1309 -> 1340 bytes .../qdeclarativegridview/data/gridview2.7.png | Bin 1347 -> 1327 bytes .../qdeclarativegridview/data/gridview2.8.png | Bin 1310 -> 1353 bytes .../qdeclarativegridview/data/gridview2.9.png | Bin 1354 -> 1325 bytes .../qdeclarativegridview/data/gridview2.qml | 20 +- .../qdeclarativemousearea/data/drag.1.png | Bin 1585 -> 1578 bytes .../qdeclarativemousearea/data/drag.2.png | Bin 1568 -> 1585 bytes .../qdeclarativemousearea/data/drag.3.png | Bin 1578 -> 1568 bytes .../qdeclarativemousearea/data/drag.4.png | Bin 1584 -> 1578 bytes .../qdeclarativemousearea/data/drag.5.png | Bin 1584 -> 1583 bytes .../qdeclarativemousearea/data/drag.6.png | Bin 1581 -> 1581 bytes .../qdeclarativemousearea/data/drag.7.png | Bin 1581 -> 1582 bytes .../qdeclarativemousearea/data/drag.8.png | Bin 1567 -> 1581 bytes .../qmlvisual/qdeclarativemousearea/data/drag.qml | 16 +- .../data/mousearea-flickable.1.png | Bin 1701 -> 1701 bytes .../data/mousearea-flickable.10.png | Bin 1721 -> 1701 bytes .../data/mousearea-flickable.11.png | Bin 1705 -> 1721 bytes .../data/mousearea-flickable.12.png | Bin 1705 -> 1705 bytes .../data/mousearea-flickable.13.png | Bin 1701 -> 1705 bytes .../data/mousearea-flickable.14.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.2.png | Bin 1704 -> 1701 bytes .../data/mousearea-flickable.3.png | Bin 1704 -> 1704 bytes .../data/mousearea-flickable.4.png | Bin 1705 -> 1704 bytes .../data/mousearea-flickable.5.png | Bin 1705 -> 1705 bytes .../data/mousearea-flickable.6.png | Bin 1701 -> 1705 bytes .../data/mousearea-flickable.7.png | Bin 1701 -> 1701 bytes .../data/mousearea-flickable.8.png | Bin 1705 -> 1701 bytes .../data/mousearea-flickable.9.png | Bin 1701 -> 1705 bytes .../data/mousearea-flickable.qml | 30 +- .../data/mousearea-visual.1.png | Bin 0 -> 486 bytes .../data/mousearea-visual.10.png | Bin 0 -> 494 bytes .../data/mousearea-visual.11.png | Bin 0 -> 494 bytes .../data/mousearea-visual.12.png | Bin 0 -> 494 bytes .../data/mousearea-visual.13.png | Bin 0 -> 494 bytes .../data/mousearea-visual.14.png | Bin 0 -> 494 bytes .../data/mousearea-visual.15.png | Bin 0 -> 494 bytes .../data/mousearea-visual.2.png | Bin 0 -> 489 bytes .../data/mousearea-visual.3.png | Bin 0 -> 489 bytes .../data/mousearea-visual.4.png | Bin 0 -> 489 bytes .../data/mousearea-visual.5.png | Bin 0 -> 496 bytes .../data/mousearea-visual.6.png | Bin 0 -> 496 bytes .../data/mousearea-visual.7.png | Bin 0 -> 496 bytes .../data/mousearea-visual.8.png | Bin 0 -> 496 bytes .../data/mousearea-visual.9.png | Bin 0 -> 494 bytes .../data/mousearea-visual.qml | 30 +- .../qdeclarativeparticles/data/particles.1.png | Bin 14613 -> 10086 bytes .../qdeclarativeparticles/data/particles.2.png | Bin 14056 -> 14829 bytes .../qdeclarativeparticles/data/particles.3.png | Bin 0 -> 14095 bytes .../qdeclarativeparticles/data/particles.qml | 6 +- .../data/test-pathview-2.0.png | Bin 2270 -> 1114 bytes .../data/test-pathview-2.1.png | Bin 2332 -> 1105 bytes .../data/test-pathview-2.2.png | Bin 2354 -> 1088 bytes .../data/test-pathview-2.3.png | Bin 2280 -> 1096 bytes .../data/test-pathview-2.4.png | Bin 2280 -> 1143 bytes .../data/test-pathview-2.5.png | Bin 2311 -> 1143 bytes .../qdeclarativepathview/data/test-pathview-2.qml | 2220 ++++----- .../qdeclarativepathview/data/test-pathview.0.png | Bin 2371 -> 1169 bytes .../qdeclarativepathview/data/test-pathview.1.png | Bin 2373 -> 1182 bytes .../qdeclarativepathview/data/test-pathview.2.png | Bin 2404 -> 1211 bytes .../qdeclarativepathview/data/test-pathview.3.png | Bin 2390 -> 1184 bytes .../qdeclarativepathview/data/test-pathview.4.png | Bin 2416 -> 1152 bytes .../qdeclarativepathview/data/test-pathview.5.png | Bin 2395 -> 1141 bytes .../qdeclarativepathview/data/test-pathview.6.png | Bin 0 -> 1189 bytes .../qdeclarativepathview/data/test-pathview.qml | 2096 +++++--- .../qdeclarativepathview/test-pathview-2.qml | 30 +- .../qdeclarativepathview/test-pathview.qml | 19 +- .../qdeclarativepositioners/data/dynamic.1.png | Bin 1433 -> 280 bytes .../qdeclarativepositioners/data/dynamic.2.png | Bin 1431 -> 270 bytes .../qdeclarativepositioners/data/dynamic.3.png | Bin 1428 -> 280 bytes .../qdeclarativepositioners/data/dynamic.4.png | Bin 1432 -> 280 bytes .../qdeclarativepositioners/data/dynamic.5.png | Bin 1434 -> 283 bytes .../qdeclarativepositioners/data/dynamic.6.png | Bin 0 -> 281 bytes .../qdeclarativepositioners/data/dynamic.qml | 12 +- .../data/smoothedfollow.0.png | Bin 3680 -> 1513 bytes .../data/smoothedfollow.1.png | Bin 3697 -> 1537 bytes .../data/smoothedfollow.2.png | Bin 3696 -> 1537 bytes .../data/smoothedfollow.3.png | Bin 0 -> 1537 bytes .../data/smoothedfollow.qml | 392 +- .../smoothedfollow.qml | 78 +- .../qdeclarativespringanimation/data/clock.1.png | Bin 16543 -> 16437 bytes .../qdeclarativespringanimation/data/clock.2.png | Bin 0 -> 16543 bytes .../qdeclarativespringanimation/data/clock.qml | 4 +- .../qdeclarativespringanimation/data/follow.1.png | Bin 1244 -> 975 bytes .../qdeclarativespringanimation/data/follow.2.png | Bin 1225 -> 1235 bytes .../qdeclarativespringanimation/data/follow.3.png | Bin 1243 -> 1225 bytes .../qdeclarativespringanimation/data/follow.4.png | Bin 1230 -> 1247 bytes .../qdeclarativespringanimation/data/follow.5.png | Bin 1244 -> 1243 bytes .../qdeclarativespringanimation/data/follow.6.png | Bin 1242 -> 1234 bytes .../qdeclarativespringanimation/data/follow.7.png | Bin 0 -> 1242 bytes .../qdeclarativespringanimation/data/follow.qml | 16 +- .../align/data-X11/multilineAlign.0.png | Bin 1870 -> 762 bytes .../align/data-X11/multilineAlign.qml | 118 +- .../baseline/data-X11/parentanchor.0.png | Bin 3854 -> 1313 bytes .../baseline/data-X11/parentanchor.qml | 60 +- .../qdeclarativetext/data-X11/qtbug_14865.0.png | Bin 822 -> 303 bytes .../qdeclarativetext/data-X11/qtbug_14865.1.png | Bin 0 -> 303 bytes .../qdeclarativetext/data-X11/qtbug_14865.qml | 124 +- .../qdeclarativetext/elide/data-X11/elide.0.png | Bin 1150 -> 481 bytes .../qdeclarativetext/elide/data-X11/elide.1.png | Bin 0 -> 481 bytes .../qdeclarativetext/elide/data-X11/elide.qml | 130 +- .../qdeclarativetext/elide/data-X11/elide2.0.png | Bin 2910 -> 1187 bytes .../qdeclarativetext/elide/data-X11/elide2.1.png | Bin 2456 -> 1066 bytes .../qdeclarativetext/elide/data-X11/elide2.2.png | Bin 2038 -> 948 bytes .../qdeclarativetext/elide/data-X11/elide2.3.png | Bin 1317 -> 819 bytes .../qdeclarativetext/elide/data-X11/elide2.4.png | Bin 0 -> 682 bytes .../qdeclarativetext/elide/data-X11/elide2.qml | 486 +- .../elide/data-X11/multilength.0.png | Bin 2500 -> 742 bytes .../elide/data-X11/multilength.1.png | Bin 2284 -> 810 bytes .../elide/data-X11/multilength.2.png | Bin 1197 -> 805 bytes .../elide/data-X11/multilength.3.png | Bin 1197 -> 529 bytes .../elide/data-X11/multilength.4.png | Bin 556 -> 528 bytes .../elide/data-X11/multilength.5.png | Bin 0 -> 399 bytes .../elide/data-X11/multilength.qml | 648 +-- .../qdeclarativetext/font/BorderedText.qml | 1 + .../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 77252 -> 13221 bytes .../font/data-X11/plaintext2.0.png | Bin 2778 -> 1510 bytes .../font/data-X11/plaintext3.0.png | Bin 29478 -> 6368 bytes .../qdeclarativetext/font/data-X11/richtext.0.png | Bin 101974 -> 9415 bytes .../qdeclarativetext/font/data-X11/richtext2.0.png | Bin 0 -> 10671 bytes .../qdeclarativetext/font/data-X11/richtext2.qml | 11 + .../qdeclarativetext/font/data/richtext2.0.png | Bin 0 -> 10671 bytes .../qdeclarativetext/font/data/richtext2.qml | 11 + .../qmlvisual/qdeclarativetext/font/plaintext.qml | 81 +- .../qmlvisual/qdeclarativetext/font/plaintext3.qml | 2 +- .../qmlvisual/qdeclarativetext/font/richtext.qml | 33 +- .../qmlvisual/qdeclarativetext/font/richtext2.qml | 43 + .../data-X11/cursorDelegate.0.png | Bin 3133 -> 1173 bytes .../data-X11/cursorDelegate.1.png | Bin 3603 -> 1249 bytes .../data-X11/cursorDelegate.2.png | Bin 3152 -> 1331 bytes .../data-X11/cursorDelegate.3.png | Bin 3147 -> 1212 bytes .../data-X11/cursorDelegate.4.png | Bin 3145 -> 1208 bytes .../data-X11/cursorDelegate.5.png | Bin 3147 -> 1213 bytes .../data-X11/cursorDelegate.qml | 656 +-- .../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 2443 -> 692 bytes .../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 4804 -> 696 bytes .../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 4801 -> 699 bytes .../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 4791 -> 698 bytes .../qdeclarativetextedit/data-X11/qt-669.4.png | Bin 0 -> 692 bytes .../qdeclarativetextedit/data-X11/qt-669.qml | 536 +-- .../data-X11/usingMultilineEdit.0.png | Bin 3997 -> 1357 bytes .../data-X11/usingMultilineEdit.1.png | Bin 4293 -> 1371 bytes .../data-X11/usingMultilineEdit.10.png | Bin 6074 -> 2020 bytes .../data-X11/usingMultilineEdit.11.png | Bin 6074 -> 2020 bytes .../data-X11/usingMultilineEdit.12.png | Bin 0 -> 2020 bytes .../data-X11/usingMultilineEdit.2.png | Bin 4683 -> 1451 bytes .../data-X11/usingMultilineEdit.3.png | Bin 5114 -> 1565 bytes .../data-X11/usingMultilineEdit.4.png | Bin 5270 -> 1691 bytes .../data-X11/usingMultilineEdit.5.png | Bin 5401 -> 1763 bytes .../data-X11/usingMultilineEdit.6.png | Bin 5591 -> 1779 bytes .../data-X11/usingMultilineEdit.7.png | Bin 5261 -> 1836 bytes .../data-X11/usingMultilineEdit.8.png | Bin 6072 -> 1825 bytes .../data-X11/usingMultilineEdit.9.png | Bin 6074 -> 2008 bytes .../data-X11/usingMultilineEdit.qml | 1450 +++--- .../qdeclarativetextedit/data-X11/wrap.0.png | Bin 8344 -> 3481 bytes .../qdeclarativetextedit/data-X11/wrap.1.png | Bin 1110 -> 3606 bytes .../qdeclarativetextedit/data-X11/wrap.2.png | Bin 1110 -> 3676 bytes .../qdeclarativetextedit/data-X11/wrap.3.png | Bin 1110 -> 3754 bytes .../qdeclarativetextedit/data-X11/wrap.4.png | Bin 1110 -> 3828 bytes .../qdeclarativetextedit/data-X11/wrap.5.png | Bin 1110 -> 3927 bytes .../qdeclarativetextedit/data-X11/wrap.6.png | Bin 1110 -> 3930 bytes .../qdeclarativetextedit/data-X11/wrap.7.png | Bin 0 -> 3930 bytes .../qdeclarativetextedit/data-X11/wrap.qml | 856 ++-- .../data-X11/cursorDelegate.0.png | Bin 3133 -> 1173 bytes .../data-X11/cursorDelegate.1.png | Bin 3622 -> 1143 bytes .../data-X11/cursorDelegate.2.png | Bin 3163 -> 1312 bytes .../data-X11/cursorDelegate.3.png | Bin 3145 -> 1250 bytes .../data-X11/cursorDelegate.4.png | Bin 3143 -> 1193 bytes .../data-X11/cursorDelegate.5.png | Bin 0 -> 1193 bytes .../data-X11/cursorDelegate.qml | 618 +-- .../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 1073 -> 342 bytes .../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 1672 -> 445 bytes .../qdeclarativetextinput/data-X11/echoMode.3.png | Bin 0 -> 508 bytes .../qdeclarativetextinput/data-X11/echoMode.qml | 338 +- .../qdeclarativetextinput/data-X11/hAlign.0.png | Bin 10607 -> 3685 bytes .../qdeclarativetextinput/data-X11/hAlign.qml | 48 +- .../data-X11/usingLineEdit.0.png | Bin 2648 -> 1265 bytes .../data-X11/usingLineEdit.1.png | Bin 2696 -> 1325 bytes .../data-X11/usingLineEdit.10.png | Bin 3331 -> 1378 bytes .../data-X11/usingLineEdit.11.png | Bin 0 -> 1455 bytes .../data-X11/usingLineEdit.2.png | Bin 2659 -> 1325 bytes .../data-X11/usingLineEdit.3.png | Bin 2682 -> 1279 bytes .../data-X11/usingLineEdit.4.png | Bin 2695 -> 1368 bytes .../data-X11/usingLineEdit.5.png | Bin 2825 -> 1367 bytes .../data-X11/usingLineEdit.6.png | Bin 2681 -> 1377 bytes .../data-X11/usingLineEdit.7.png | Bin 3111 -> 1368 bytes .../data-X11/usingLineEdit.8.png | Bin 3178 -> 1384 bytes .../data-X11/usingLineEdit.9.png | Bin 2806 -> 1456 bytes .../data-X11/usingLineEdit.qml | 1406 +++--- .../declarative/qmlvisual/rect/GradientRect.qml | 4 +- tests/auto/declarative/qmlvisual/rect/MyRect.qml | 4 +- .../qmlvisual/rect/data/rect-painting.0.png | Bin 25197 -> 15272 bytes .../declarative/qmlvisual/rect/rect-painting.qml | 4 +- 358 files changed, 9207 insertions(+), 12250 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.6.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.7.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png create mode 100644 tests/auto/declarative/qmlvisual/TEST_GUIDELINES create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.9.png create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.3.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/qmldir create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.14.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.13.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.14.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.15.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml index 838b708..aad4858 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml @@ -8,76 +8,4 @@ VisualTest { msec: 16 image: "basic1.0.png" } - Frame { - msec: 32 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 48 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 64 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 80 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 96 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 112 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 128 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 144 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 160 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 176 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 192 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 208 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 224 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 240 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 256 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 272 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 288 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 304 - hash: "7b874555d744b10ed666dcb6fad79a19" - } } diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml index 327fbf3..373ad27 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml @@ -8,160 +8,4 @@ VisualTest { msec: 16 image: "basic2.0.png" } - Frame { - msec: 32 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 48 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 64 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 80 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 96 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 112 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 128 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 144 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 160 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 176 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 192 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 208 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 224 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 240 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 256 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 272 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 288 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 304 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 320 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 336 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 352 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 368 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 384 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 400 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 416 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 432 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 448 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 464 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 480 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 496 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 512 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 528 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 544 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 560 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 576 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 592 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 608 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 624 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 640 - hash: "7b874555d744b10ed666dcb6fad79a19" - } } diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml index 030a842..f5dbf65 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml @@ -8,112 +8,4 @@ VisualTest { msec: 16 image: "basic3.0.png" } - Frame { - msec: 32 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 48 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 64 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 80 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 96 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 112 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 128 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 144 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 160 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 176 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 192 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 208 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 224 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 240 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 256 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 272 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 288 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 304 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 320 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 336 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 352 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 368 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 384 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 400 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 416 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 432 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 448 - hash: "7b874555d744b10ed666dcb6fad79a19" - } } diff --git a/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml index c2b1470..5e494d1 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml @@ -8,108 +8,4 @@ VisualTest { msec: 16 image: "basic4.0.png" } - Frame { - msec: 32 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 48 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 64 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 80 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 96 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 112 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 128 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 144 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 160 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 176 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 192 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 208 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 224 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 240 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 256 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 272 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 288 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 304 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 320 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 336 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 352 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 368 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 384 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 400 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 416 - hash: "7b874555d744b10ed666dcb6fad79a19" - } - Frame { - msec: 432 - hash: "7b874555d744b10ed666dcb6fad79a19" - } } diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png index 45d9712..5c0b6a6 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png index 3f05a5e..304aed8 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png index d466434..4abc58e 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png index c902676..5c0b6a6 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png index 45d9712..8d421af 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.6.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.6.png new file mode 100644 index 0000000..81ea1ff Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.6.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml index faa806f..de3f49c 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "19c43fcf2875769c9a15f1ce317a0f1e" + image: "enforcerange.1.png" } Frame { msec: 992 @@ -606,7 +606,7 @@ VisualTest { } Frame { msec: 1936 - hash: "b64810845a97bedf6fe11c043457c197" + image: "enforcerange.2.png" } Frame { msec: 1952 @@ -846,7 +846,7 @@ VisualTest { } Frame { msec: 2896 - hash: "a4ff6c6c43697808f9ad7387d152cef3" + image: "enforcerange.3.png" } Frame { msec: 2912 @@ -1214,7 +1214,7 @@ VisualTest { } Frame { msec: 3856 - hash: "19c43fcf2875769c9a15f1ce317a0f1e" + image: "enforcerange.4.png" } Frame { msec: 3872 @@ -1654,7 +1654,7 @@ VisualTest { } Frame { msec: 4816 - hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + image: "enforcerange.5.png" } Frame { msec: 4832 @@ -1894,7 +1894,7 @@ VisualTest { } Frame { msec: 5776 - hash: "87aaa82b96131fed8822e57e226162a0" + image: "enforcerange.6.png" } Frame { msec: 5792 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png index a8957d6..75d2089 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png index fe2d28b..bc7dc2c 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png index 0f20b07..def378f 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png index fe2d28b..e23b903 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png index 0ab58c5..def378f 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png index 6a589c6..b81e713 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.7.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.7.png new file mode 100644 index 0000000..75d2089 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.7.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml index 097080c..6438e42 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "bf47cc398a702dd17c8efebb3d2f8073" + image: "itemlist.1.png" } Frame { msec: 992 @@ -606,7 +606,7 @@ VisualTest { } Frame { msec: 1936 - hash: "c23846634417c3e8dbbef5175036c071" + image: "itemlist.2.png" } Frame { msec: 1952 @@ -854,7 +854,7 @@ VisualTest { } Frame { msec: 2896 - hash: "99f9988040a389576cb6420b5391f768" + image: "itemlist.3.png" } Mouse { type: 5 @@ -1174,7 +1174,7 @@ VisualTest { } Frame { msec: 3856 - hash: "88143ff6c278a5433b314b551b7b8b1d" + image: "itemlist.4.png" } Frame { msec: 3872 @@ -1494,7 +1494,7 @@ VisualTest { } Frame { msec: 4816 - hash: "99f9988040a389576cb6420b5391f768" + image: "itemlist.5.png" } Frame { msec: 4832 @@ -1814,7 +1814,7 @@ VisualTest { } Frame { msec: 5776 - hash: "35fe67a91e50f8ebc896451b39cb8f1c" + image: "itemlist.6.png" } Frame { msec: 5792 @@ -2054,7 +2054,7 @@ VisualTest { } Frame { msec: 6736 - hash: "bf47cc398a702dd17c8efebb3d2f8073" + image: "itemlist.7.png" } Frame { msec: 6752 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png index b6c5e19..80f82e4 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png index 711c47a..61501bb 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png index e56fae0..51c4eb1 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png index 0030842..81e00ed 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png index 2ec8177..d1f06fa 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png index 38ed525..9e6e29c 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml index 07718ca..b1ffe8f 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml @@ -302,7 +302,7 @@ VisualTest { } Frame { msec: 976 - hash: "e15814643bad6a71cb8c318ee5fd684a" + image: "listview.1.png" } Key { type: 7 @@ -654,7 +654,7 @@ VisualTest { } Frame { msec: 1936 - hash: "fae571933c4eafb33bb764bd1cddfc30" + image: "listview.2.png" } Key { type: 7 @@ -1038,7 +1038,7 @@ VisualTest { } Frame { msec: 2896 - hash: "6ceadf740293537c7b9f2e2cfe8e6f1e" + image: "listview.3.png" } Frame { msec: 2912 @@ -1406,7 +1406,7 @@ VisualTest { } Frame { msec: 3856 - hash: "58e61d0a4f397c5a2b137d6a6e85d99b" + image: "listview.4.png" } Mouse { type: 5 @@ -1838,7 +1838,7 @@ VisualTest { } Frame { msec: 4816 - hash: "5cb4cf2c527d821db2a5072dd3702653" + image: "listview.5.png" } Frame { msec: 4832 @@ -2134,7 +2134,7 @@ VisualTest { } Frame { msec: 5776 - hash: "dbd87bf02d698b7f053d307ef0c98452" + image: "listview.6.png" } Frame { msec: 5792 diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png index 521e818..3cbb470 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png index 645abf8..521e818 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png index 517331a..f5e7640 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png index 806063f..7b0c620 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png index 8dfcf7b..8c40a7a 100644 Binary files a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png new file mode 100644 index 0000000..8dfcf7b Binary files /dev/null and b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png differ diff --git a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml index fb5e8fb..af9e005 100644 --- a/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml +++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml @@ -262,7 +262,7 @@ VisualTest { } Frame { msec: 976 - hash: "856cbf02e052f9b08a02608128af818d" + image: "packageviews.1.png" } Frame { msec: 992 @@ -534,7 +534,7 @@ VisualTest { } Frame { msec: 1936 - hash: "6056cb02b921b56c63696d7fe9fe90fa" + image: "packageviews.2.png" } Frame { msec: 1952 @@ -822,7 +822,7 @@ VisualTest { } Frame { msec: 2896 - hash: "80eba5bc28e88ab12e195555f76bef1c" + image: "packageviews.3.png" } Frame { msec: 2912 @@ -1118,7 +1118,7 @@ VisualTest { } Frame { msec: 3856 - hash: "126b19793c902cf8848824fe4a38fe0c" + image: "packageviews.4.png" } Frame { msec: 3872 @@ -1430,7 +1430,7 @@ VisualTest { } Frame { msec: 4816 - hash: "63158568d5fdf558d0192809da0cf5fe" + image: "packageviews.5.png" } Frame { msec: 4832 @@ -1718,7 +1718,7 @@ VisualTest { } Frame { msec: 5776 - hash: "8d52a504170547407fad6d8785b7199b" + image: "packageviews.6.png" } Frame { msec: 5792 diff --git a/tests/auto/declarative/qmlvisual/TEST_GUIDELINES b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES new file mode 100644 index 0000000..cb53b6e --- /dev/null +++ b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES @@ -0,0 +1,7 @@ +Guidelines for creating new visual tests: + +1. Keep it small. All visual tests should be able to run on a device with a screen of at least 640x360 pixels. Smaller than that is even better, because images of this side need to be processed and saved for every test (and even committed to the repository). + +2. Keep it short. It is hoped that these tests can be run regularly, perhaps even for every commit, and if you add up ten seconds for every time someone commits a change to QML then we'll be sitting here for a long time. Completeness is more important than haste, but consider the most time efficient ways to achieve said completeness. Do not forget about snapshot mode (tst_qmlvisual -help for details on -recordsnapshot) when testing that a static scene looks right. + +3. Avoid text. Text is relatively unstable due to platform specific peculiarities. If you need to identify an area, consider a unique color as opposed to a unique text label. If you must use Text, TextEdit, or TextInput, use the test-friendlier versions in the 'shared' directory. diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png index 4080c80..82492d4 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png and b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png index 61fec3d..a31f02a 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png and b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png index 900156f..a029af6 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png and b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml index f07bdb2..be0637e 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 976 - hash: "383ba6b9efcc58fca512982a207631f6" + image: "bindinganimation.1.png" } Frame { msec: 992 @@ -510,7 +510,7 @@ VisualTest { } Frame { msec: 1936 - hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + image: "bindinganimation.2.png" } Frame { msec: 1952 @@ -814,7 +814,7 @@ VisualTest { } Frame { msec: 2896 - hash: "f9deee3a204c939562b896a6179743d2" + image: "bindinganimation.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png index b75ba61..5393dd8 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png index 4320f6f..8c17bf7 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png new file mode 100644 index 0000000..1317eef Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml index d318bda..dd2aeb4 100644 --- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml @@ -262,7 +262,7 @@ VisualTest { } Frame { msec: 976 - hash: "85b1821cc50f2a9f3ed6944f792b7a2f" + image: "colorAnimation-visual.1.png" } Frame { msec: 992 @@ -502,7 +502,7 @@ VisualTest { } Frame { msec: 1936 - hash: "e7aa6374c73832e57ceb2427a1e258aa" + image: "colorAnimation-visual.2.png" } Frame { msec: 1952 @@ -742,7 +742,7 @@ VisualTest { } Frame { msec: 2896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" + image: "colorAnimation-visual.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png index 28b6fb6..81edfff 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png and b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png index dc17765..ebac47f 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png and b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png index 7f83548..e1200bb 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png and b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png index c68e0fa..81edfff 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png and b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml index 8048608..597c3a6 100644 --- a/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml +++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml @@ -10,770 +10,854 @@ VisualTest { } Frame { msec: 32 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 48 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 64 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 80 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 96 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 112 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 128 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 144 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 160 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 176 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 192 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 208 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 224 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 240 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 256 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 272 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 288 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 304 - hash: "8f4c40d2e2b4f064bcb77c5ae43928c6" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 320 - hash: "8b65094a9b7d5394fc67f92ea058627f" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 336 - hash: "da450826b471a60ba98dabc581631ba1" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 352 - hash: "e820fb4f1bc97152aa940b07db549f1b" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 368 - hash: "b7d8186beca2fa0e37099f72419350f4" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 384 - hash: "8500b93774f214e5e4789e25500262b8" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 400 - hash: "277e1dff70285cca536b3e1fc2590688" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 416 - hash: "b05b18f92c2089c681661566117ae0f5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 432 - hash: "6fec9c6b6ac3e3ea4126e3824a8d7566" + hash: "4f12d90df04192e3f28026249015fa41" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 28; y: 245 + modifiers: 0 + sendToViewport: true } Frame { msec: 448 - hash: "53c6c90dd1eb7ca47721fc116474aebf" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 464 - hash: "cf729c4a31414af3d2705878ba615738" + hash: "a74da88fed6727a41b0bef096bd52eea" } Frame { msec: 480 - hash: "f146b8a68960d507f893ef001189220e" + hash: "e640a847e36f4a7d322ad7ca0b893d9c" } Frame { msec: 496 - hash: "18ff56b870bb048af246f928ee42a9b0" + hash: "3e3fe8581c80dc190108b9844e77fb17" } Frame { msec: 512 - hash: "beee98f73fe7e878ada37b3070fa0c1d" + hash: "8ee8ce9f8d9d93997aa8e05efae9b901" } Frame { msec: 528 - hash: "435d389082912950a0be2b5dff480319" + hash: "8752f7849a3afa35889f7f1406d79e5c" } Frame { msec: 544 - hash: "dc39b080eaddeaf4e309b90b7d97a835" + hash: "df31ed3556e84a4517b26765ea11023c" } Frame { msec: 560 - hash: "666b1cde53f78d7db9c81e21adbe406a" + hash: "a35602db546bf5e71fbc7ff7c5895427" } Frame { msec: 576 - hash: "c5c9627f4329e48aa96ebfbc982b6ba6" + hash: "c29ee32e39126cb00544cf0326e483d8" } Frame { msec: 592 - hash: "a583042052e5da7e80a4956337d6d1ff" + hash: "79b0d26288fd9ca67c6aacacb9bf355f" } Frame { msec: 608 - hash: "a4a5df787e15da6f28275a12898e7620" + hash: "aa0b8c9921058be0913c00725c45b287" } Frame { msec: 624 - hash: "02cacec2ccc803ebc03c5540484cbcaa" + hash: "964f498603fdd2abb2d3b1cc1b78ffde" } Frame { msec: 640 - hash: "00600df1f006f358feaf43bfae9d32a5" + hash: "a3c7226d5b5f91b91d2a1ec21f2cb9ab" } Frame { msec: 656 - hash: "737c884ba0d6d38b66252f4b97a36c33" + hash: "d28f5fb2e07c028c9697f8d1e4d7b676" } Frame { msec: 672 - hash: "7eeeade8100c84a6b56efa51cf597baf" + hash: "0a1aa6ba2749b1ef5d8c67b5d8d7fba4" } Frame { msec: 688 - hash: "18ab79d495097f0103dcf14db1897a88" + hash: "12d926e80c7b4da41ef9c747cf9ca1d4" } Frame { msec: 704 - hash: "21d3b0da00c46a101e09048928cd8027" + hash: "2015e4d29b3424a3683d7d8710ef60b4" } Frame { msec: 720 - hash: "a5995b0341872c275ffbc5aaee6eb853" + hash: "530924a6f4bdf7e9ab37415109a28e2f" } Frame { msec: 736 - hash: "bb4a37c1bd5e412ebce54d9539017723" + hash: "4dd20811ffa8cfb64cebc6ec6f43b029" } Frame { msec: 752 - hash: "63dcde9e2751ca94ed7d739feb359221" + hash: "2238138f486a061e32607b130ba505f8" } Frame { msec: 768 - hash: "5790c8407e2e4d1a6a937d86d57d8edb" + hash: "a2991487b51b9802f18a975a323dfb32" } Frame { msec: 784 - hash: "3a1c77abf6822030db60a036027dc86e" + hash: "9cf19f7c9ee16bfdd56cb889358ab789" } Frame { msec: 800 - hash: "2a13c573ab9846cce60384dd7138b2b4" + hash: "32eee6b05e73a36eef878c562badbb8f" } Frame { msec: 816 - hash: "98983c2525265830033495b61071a5aa" + hash: "04cbb2d8fe38011c46ff95d84830ed2a" } Frame { msec: 832 - hash: "26d2bba3d77053b410715afb497d4063" + hash: "c11c2591ecf40ab31e616f6803e37e95" } Frame { msec: 848 - hash: "fd65d954c16acee425d9de65af68ef40" + hash: "a22cdeea89739bdf10850c7251fb62f2" } Frame { msec: 864 - hash: "094fcc18d28b19ac6b452dd8106d813b" + hash: "7d13f611bc516cda6afe56a8ec59cbf4" } Frame { msec: 880 - hash: "160105f6f99a960763535e4d51990ef6" + hash: "4b3a3469f1c64760bd6ce84ec0bfc2cc" } Frame { msec: 896 - hash: "0d5d1e6a66fc1f49f1106f01fb5a1c52" + hash: "e1a3af06282f369427d967cb21771564" } Frame { msec: 912 - hash: "f6abc32680865783a4d94ecb738f9ff6" + hash: "e1c90f78a2fe5e7cf43eeb700c867beb" } Frame { msec: 928 - hash: "350509eceb134d5b18647e5ad07dbb47" + hash: "e63fbd42405a5d251ea6703d9564b2e0" } Frame { msec: 944 - hash: "a84e4e7c5385dc1f24ca219f45d529a5" + hash: "a1b4f08ccf38575f789bdb8968c7cdeb" } Frame { msec: 960 - hash: "4c9de74276d32c5b2787cf75e612f97d" + hash: "2604313688bddd75b1fbd146415097a7" } Frame { msec: 976 - hash: "efcc5ae79da3fa2f4c7d6eaa35e32d33" + image: "easing.1.png" } Frame { msec: 992 - hash: "ff4afce604c8ecb4f08d1ddef8552534" + hash: "df391105c7f6e0fbcdb0b4719e5af9e3" } Frame { msec: 1008 - hash: "e2e63e12e9a5f8459720dd8b023ed17b" + hash: "33603ef5b2368a7f5a71de0318404ac7" } Frame { msec: 1024 - hash: "991a01f92bcfa9cd9fe98e3f39d192fc" + hash: "78cdbf2a2522e057db08aba284bd7a07" } Frame { msec: 1040 - hash: "bc3d2f0f3fac650c981457f3694c2518" + hash: "7aac87953a7e1ddf0040769a15878017" } Frame { msec: 1056 - hash: "ee39fc9b1a602bf813d9118aa21901ac" + hash: "eae27f47c56ee0c491eeebed0f3855b2" } Frame { msec: 1072 - hash: "42120d098f2adf1e331332b33442dd3e" + hash: "0f0c4d8dbc27bc301c993a768afeaa39" } Frame { msec: 1088 - hash: "1660c69b77b800d1ab57b93f0fc12aa5" + hash: "ec844dffe8be01b9906ffa10a18784bc" } Frame { msec: 1104 - hash: "0630a3d6b8cb5dece5dc660f05036ec6" + hash: "69f6dd26fd9268c474c422c2ce126424" } Frame { msec: 1120 - hash: "9163f0bd9c5888794d7a09d3359bf1e5" + hash: "0e3f95c339c1868fc716a542e9acbd49" } Frame { msec: 1136 - hash: "e0b7ad4883f679948c852ff152ba7907" + hash: "fa0762f9d8112e5c6889ef3a204d4838" } Frame { msec: 1152 - hash: "f748fc44f99b706e42b899cb18dbaaf7" + hash: "18132a9adedd13fcd015ac5c7f741718" } Frame { msec: 1168 - hash: "c84442f0cb1cf0bb50dae7d1c701aaf8" + hash: "f07aba4891c1aab84f656b3507d4f31a" } Frame { msec: 1184 - hash: "d7b41567e3f3aa9576fe2793872134b7" + hash: "123dfe5bf375b698ae529fe370133d4d" } Frame { msec: 1200 - hash: "a1d10ff1adb85000902486fc8e4faa8d" + hash: "d176cacbad1459d18729e99b52ed0c89" } Frame { msec: 1216 - hash: "44b7b5d77068e360ead3af84e7d80232" + hash: "21d9f6aeb67b5bfa0d190d305ddbaabd" } Frame { msec: 1232 - hash: "486c0b19c1379d9eefdf575a085e2875" + hash: "38884e097938bdd2fecb33a2d782e87e" } Frame { msec: 1248 - hash: "1d474472856d4740d960eb2f788ca5a6" + hash: "d0fb3dbb20f4873784dde690c48efd4b" } Frame { msec: 1264 - hash: "c74082553ab0f4ee00f5044e3369580b" + hash: "9821efad0c5bfc459029f42a32ad7c85" } Frame { msec: 1280 - hash: "89fcd5514f336075ad32cae69518c1e5" + hash: "c19ef8982ffa6d5d1a0b2844d0bd77e1" } Frame { msec: 1296 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "e5d09b511557ac724b488dcaa5079ac7" } Frame { msec: 1312 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "a1bf72e745137dd8ae48ff3e5df22944" } Frame { msec: 1328 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "6319a88b12b431b1715b0231c0b86f9e" } Frame { msec: 1344 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "f69fc6078e0b6c863b19f2306ca22a17" } Frame { msec: 1360 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "e0945fc7aea81263fb84fb5de83b7ffc" } Frame { msec: 1376 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "bae0fc82e69b37d6f0d23faf5d877d9b" } Frame { msec: 1392 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "764e6cf407b66cefb0e867c55b4d214b" } Frame { msec: 1408 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "208a9d634e7c45211a8aea56b7cb17e1" } Frame { msec: 1424 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "5426675426babcfb303d5534b66038e0" } Frame { msec: 1440 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "f9b2505bf94f9ae9a6212aae64a8023f" } Frame { msec: 1456 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1472 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1488 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1504 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1520 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1536 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1552 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1568 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1584 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1600 - hash: "9dd235eb98998d9bdd92e01300297257" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 111; y: 419 - modifiers: 0 - sendToViewport: true + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1616 - hash: "9dd235eb98998d9bdd92e01300297257" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1632 - hash: "b77240f32e83d4f332d815c626f1e560" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1648 - hash: "7d89669231224cf8e02d75338c37c278" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1664 - hash: "a8cf7c179011ee8187a8e1111683e52e" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1680 - hash: "3e87a57e05da09a8260801320431b922" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1696 - hash: "a2b0d99c8a232715fe03e8772a36634c" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1712 - hash: "5b4634cd495ae7bb9c69a5c9c346189e" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1728 - hash: "492f8f2b84af355ef41c1a7cda3a8a73" + hash: "672e4366f9eb212a3dcb539476ffe83b" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 28; y: 245 + modifiers: 0 + sendToViewport: true } Frame { msec: 1744 - hash: "88e4eb08520fb5acc3d88ac4f0900542" + hash: "672e4366f9eb212a3dcb539476ffe83b" } Frame { msec: 1760 - hash: "0c09cdcb906b4ce9840fd7502c39e5b9" + hash: "0312cf9bff66e992528cc24211a7a9ef" } Frame { msec: 1776 - hash: "b054083bdd212cc03167a90df2d7eac5" + hash: "d29d071c26556302881badd90b1f1135" } Frame { msec: 1792 - hash: "83971c2d37616ab92680364d6ac288a6" + hash: "747b398a00dec18a82fb3e2313ba318b" } Frame { msec: 1808 - hash: "a73951d25e2cb7c1d04c88c86dfa0e4d" + hash: "1df120f0cc1e8583dd52b02b203ba7ff" } Frame { msec: 1824 - hash: "31fc8b20302abac97e506c37a14bbb7e" + hash: "783f4c179f8468055f1b5585108c4c91" } Frame { msec: 1840 - hash: "f760ccd7339e01a9423da7b592498291" + hash: "7307344c196f13348e7e23415c8eed1f" } Frame { msec: 1856 - hash: "24dfcd5553f854908396de751fb15b88" + hash: "cf97103f94eb6b9e68e095ff5eaf2aeb" } Frame { msec: 1872 - hash: "1daf38a6e6199f980e9494a3eb480047" + hash: "df8ef82f145ad55f084c3693cb601577" } Frame { msec: 1888 - hash: "a39e2de1090209e5dbc8cc26577ec97d" + hash: "e25a344db6358ac5876cc95eb7ce35e7" } Frame { msec: 1904 - hash: "f4edc780b063e34461263ed3b753be88" + hash: "4f4d55823e468ec2c0e73977a6851f5b" } Frame { msec: 1920 - hash: "2d2ce71a074f045916a207044abd055a" + hash: "894e23e77af266bde42f5ca6ac2184d7" } Frame { msec: 1936 - hash: "a19b0353604491f56f72be0d20d76955" + image: "easing.2.png" } Frame { msec: 1952 - hash: "9a70f109eebfcede2311ef77ceb50a44" + hash: "a48cc4f2c5282d9d2a8b55e0908324b7" } Frame { msec: 1968 - hash: "7b28313d6860aeefd4a4e136d38d62f8" + hash: "f5cd3c873cf57f199ea7439a45f094d8" } Frame { msec: 1984 - hash: "95d84f38473159fe6b38f84ffe371714" + hash: "8c6f4c913be02ee21efa551ce9a6544b" } Frame { msec: 2000 - hash: "07f91261794edb0ac1fde9bb4ff36011" + hash: "fc979e4e4f6e82d704e0a53d3f9eef6e" } Frame { msec: 2016 - hash: "f9a4a6b92a9c2d265688f1bfac18fa0a" + hash: "e8085e2e6741028a9218487181a8cc5b" } Frame { msec: 2032 - hash: "cdec7cc00380fde4f73be997a992251a" + hash: "c67a1cec25d25687d369af58018ce213" } Frame { msec: 2048 - hash: "a52b34f84e98fcd8babb1d39979fc9c7" + hash: "25b8e080f8fe5525bafa1e760b5845be" } Frame { msec: 2064 - hash: "bf05b3c79a9616f2e6c33d348b30e0ba" + hash: "fef16bd6dc6dfa248ab5a33f53229528" } Frame { msec: 2080 - hash: "c5931785685b4f4854d3ddfff5dd5466" + hash: "57b7e04b1722feda16fb80269dd51c2c" } Frame { msec: 2096 - hash: "bae163e02b860a9ca19d1bcb60ac1f8e" + hash: "f2415e564efe5b5306b33001395a41f4" } Frame { msec: 2112 - hash: "a36295a1ebb35e538f8899ae3ae3b36a" + hash: "40116a7a67be4de5b767ee1fe7ae0d02" } Frame { msec: 2128 - hash: "b6448d61803d9b2c05b438aa8ce8bcd5" + hash: "52d71e7e8f44e554df361d7d9e281655" } Frame { msec: 2144 - hash: "631bf4caff2d93ef96a426100ffc5b32" + hash: "226620a3c624f0a1659ee33616734a28" } Frame { msec: 2160 - hash: "a8777c84a03996493f719f5fcfc80d00" + hash: "8849d02547a90ca47748749fc8615179" } Frame { msec: 2176 - hash: "86e1759df103ef776bb03f24941f49da" + hash: "5523d277bc7a7161f3bbd79a4099e6c4" } Frame { msec: 2192 - hash: "01a790ea60adeaf368c66bd53aa8fcb3" + hash: "6ff2c6b89c3a024e1597d1c110b5f5f3" } Frame { msec: 2208 - hash: "79e5aca8ef6b9764f7f99cdfb51222ae" + hash: "732b9e2e601ad7fc11510f3c590dca20" } Frame { msec: 2224 - hash: "82d10cc01b9be4683c5aa76096bd462c" + hash: "1ff9abdcb182fca444bc4b36e91b2a13" } Frame { msec: 2240 - hash: "95d961a92c597e432611947f7480796a" + hash: "6f851aee4e3c4427fcb8672f37885d2d" } Frame { msec: 2256 - hash: "e8ee89b5313c7e2c66741fe1c2090029" + hash: "3572977ef7c618404168514400fc22a4" } Frame { msec: 2272 - hash: "2e3e8cf25dc1a3f09e7bf2a086f8e3bb" + hash: "e6e6f7cdf4f2ee1d182d18da482ab6a8" } Frame { msec: 2288 - hash: "68ca8ad381f48db23d2bc5da9da0c17a" + hash: "fac4878038516ad0a5601f78ff3d3ab0" } Frame { msec: 2304 - hash: "e29f2411667049e8fae6c080f61c5869" + hash: "b37e2cf2fb3b5a91845e50d2ab288572" } Frame { msec: 2320 - hash: "5b0a6fadedf3024e8ecb7f2c73a2277d" + hash: "711ea820aa842c46f629f3eb36144ec2" } Frame { msec: 2336 - hash: "af2eac625ef1fd928093ccd60bc0058e" + hash: "fcaa0576cbc8d4459b94498f332a4576" } Frame { msec: 2352 - hash: "8a1ff780ebdc9e416e60ea0940e8f2d6" + hash: "dfa935d0ac700696a78c139585d2cc3f" } Frame { msec: 2368 - hash: "7eb316c51cfd8ad972b7040247a651eb" + hash: "291042d40fc9fa8eebf80225b2cae93e" } Frame { msec: 2384 - hash: "1bac7075c10c87a69e71c3859f0db41d" + hash: "4e1d6af5f5f9200b6871dfc63ec8d92e" } Frame { msec: 2400 - hash: "0f16f40567729065cf9ecfcc15395a7b" + hash: "9c7ccdf3aba3c28717891e7ef4333aa5" } Frame { msec: 2416 - hash: "719f4e776776f0db5c68ae7c6177e9b7" + hash: "b5bfa2eeb932ebc8913381bbea62ea9d" } Frame { msec: 2432 - hash: "75172dbf31fd8d706f54748c59099845" + hash: "296bc4fcc206c6563630a6de8be9deac" } Frame { msec: 2448 - hash: "d730b550e05167b05350e0e6636dd97d" + hash: "57d39578c1ba3a6a21efdef8c9323965" } Frame { msec: 2464 - hash: "e1f33eb5f023d9d42a99f8bc23223c45" + hash: "16352e11b7fd763d82d26fcc02da24a7" } Frame { msec: 2480 - hash: "8a4b0df5bed6c7be73c194ce2bb6a271" + hash: "02157cc0e120e1b751a9931ff65edb52" } Frame { msec: 2496 - hash: "44a9ea371f12d4ac3a569121a995ae16" + hash: "23554c786732241aa9a59304cb4870b1" } Frame { msec: 2512 - hash: "14747e2e9e072210b9d6db50b4f704a1" + hash: "e38f68e818b35b23361a7937b7a37bb7" } Frame { msec: 2528 - hash: "eea52abf430f8cc1adc37e7180036584" + hash: "dd39869048e6ccfceb1b2882404ef1b3" } Frame { msec: 2544 - hash: "0a9f6b14bc02e929a45bf4ebb736f9d3" + hash: "5587d88f5b8fcb3914efedee9ae3a939" } Frame { msec: 2560 - hash: "a68a6eef0fc8754564c47c88b60d9a2a" + hash: "5a23991509d69d400249e403cd3fbe4d" } Frame { msec: 2576 - hash: "eeb469e2fbda131d83538055e88ecdf7" + hash: "eed425fb759c92ec9966fcdc625321fb" } Frame { msec: 2592 - hash: "0f7b673472050e807c9d935fde5afd83" + hash: "7bbf0748f5fbbf48605287342df8e687" } Frame { msec: 2608 - hash: "80c90cce66bdd2324ca98bc591c22b44" + hash: "7722f0d3c358d57f3d614f2850fc23f9" } Frame { msec: 2624 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "3ec5ccb1e6ed677617dcb3b699b10d58" } Frame { msec: 2640 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "303a61969566062d5c77a3a1a65c847a" } Frame { msec: 2656 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "aadf4d4cc978b5f88b97a7e453b21024" } Frame { msec: 2672 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "2d24097717f5ec669e29250af78235fd" } Frame { msec: 2688 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "2a58e7ce319cc1cd7dfcd740bfe59517" } Frame { msec: 2704 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "6a21af6c920588f0f709bf91bb56f548" } Frame { msec: 2720 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "f5a63f241f27c6e7cef969dde6790ac3" } Frame { msec: 2736 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "33b64aad57e117f6b170432843c3c996" } Frame { msec: 2752 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2768 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2784 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2800 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2816 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2832 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2848 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2864 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2880 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2896 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + image: "easing.3.png" } Frame { msec: 2912 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2928 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2944 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2960 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2976 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 2992 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 3008 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" } Frame { msec: 3024 - hash: "bb8e2ba14526dc5ad74f74e8ff3d96a5" + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3040 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3056 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3072 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3088 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3104 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3120 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3136 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3152 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3168 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3184 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3200 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3216 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3232 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3248 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3264 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3280 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3296 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3312 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3328 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3344 + hash: "4f12d90df04192e3f28026249015fa41" + } + Frame { + msec: 3360 + hash: "4f12d90df04192e3f28026249015fa41" } } diff --git a/tests/auto/declarative/qmlvisual/animation/easing/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml index 35b568a..625aeeb 100644 --- a/tests/auto/declarative/qmlvisual/animation/easing/easing.qml +++ b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml @@ -1,9 +1,10 @@ import QtQuick 1.0 +/* This test just animates y of a block with every easing curve*/ Rectangle { id: item - width: 600 - height: layout.height + height: 300 + width: layout.width color: "white" resources: [ ListModel { @@ -133,10 +134,10 @@ Rectangle { } } ] - Column { + Row { id: layout - anchors.left: item.left - anchors.right: item.right + anchors.top: item.top + anchors.bottom: item.bottom Repeater { model: easingtypes Component { @@ -149,8 +150,8 @@ Rectangle { color: index & 1 ? "black" : "white" opacity: 0 // 1 for debugging } - width: 120 - height: 18 + width: 15 + height: 30 color: index & 1 ? "red" : "blue" states: [ State { @@ -158,7 +159,7 @@ Rectangle { when: !mouse.pressed PropertyChanges { target: block - x: 0 + y: 0 } }, State { @@ -166,7 +167,7 @@ Rectangle { when: mouse.pressed PropertyChanges { target: block - x: item.width-block.width + y: item.height-block.height } } ] @@ -176,7 +177,7 @@ Rectangle { to: "to" reversible: true NumberAnimation { - properties: "x" + properties: "y" easing.type: type duration: 1000 } diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png index ceb0e20..a2d87ca 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png index 197c8c0..1cb2cb8 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png index 3a4327e..f58deca 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png index 2397719..1936361 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png index 70d91a2..758c223 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.6.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.6.png new file mode 100644 index 0000000..b049e63 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.6.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml index 1d326b5..3cbc074 100644 --- a/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml +++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "2cc40e1119060483ae067f3881af0391" + image: "loop.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "7f79dd50a0af8e8871191ee80afcad0f" + image: "loop.2.png" } Frame { msec: 1952 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 2896 - hash: "df41be1fa564353ceb2088af209610d3" + image: "loop.3.png" } Frame { msec: 2912 @@ -966,7 +966,7 @@ VisualTest { } Frame { msec: 3856 - hash: "e6521a3c74c190c193af2c913e5326e2" + image: "loop.4.png" } Frame { msec: 3872 @@ -1206,7 +1206,7 @@ VisualTest { } Frame { msec: 4816 - hash: "31fa31ed47ea16390be8ea9d41f483e7" + image: "loop.5.png" } Frame { msec: 4832 @@ -1446,7 +1446,7 @@ VisualTest { } Frame { msec: 5776 - hash: "ebd37ee719ca460480521fd4ec284a3f" + image: "loop.6.png" } Frame { msec: 5792 diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png index e60cc38..a45e421 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml index 1dd1259..f4991cc 100644 --- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml @@ -10,454 +10,234 @@ VisualTest { } Frame { msec: 32 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 48 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 64 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 80 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 96 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 112 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 128 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "d5eb647077598cab2f3d0c016fbbb419" } Frame { msec: 144 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "aa22c670b17a7372732f9bc85e41a082" } Frame { msec: 160 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "19d09945e45f74d1edd9935e855369b3" } Frame { msec: 176 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "ed391a3b7eba8e98d2f8e372f42e9210" } Frame { msec: 192 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "ac3f7547a9576e0a313e7060ed7431e9" } Frame { msec: 208 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "ddf41ca7289f44990d0d6d41a838bd6f" } Frame { msec: 224 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "42eb324d288b39fa32bf11795d6633f6" } Frame { msec: 240 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "8447851893d2d8f5661731761b6702fa" } Frame { msec: 256 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "7d86bc9b509bcd45eebf2c7e70151424" } Frame { msec: 272 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "c33a6731151fbce1156888129d53b8ec" } Frame { msec: 288 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "028cd521f75d3ecc810a0baa2e857441" } Frame { msec: 304 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "58e565d78d68a69b864c1d7bb8d6180f" } Frame { msec: 320 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "7f21037b48949c2086e7692723a90abf" } Frame { msec: 336 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "5c5c9101a0594bae2f5f8c5bb534a931" } Frame { msec: 352 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "8c010e7bd746d3865e283cc9f5fb83b7" } Frame { msec: 368 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "0a2b5c4aa4e8ca8b264c774e4cc90f23" } Frame { msec: 384 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "bf18f1e0102f471773de1cbb0b24bfc3" } Frame { msec: 400 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "bc8e1d5a6d38e38284313ede359582bc" } Frame { msec: 416 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "3a34e518882bd28d11ebdd1646737a8b" } Frame { msec: 432 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 448 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 464 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 480 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 496 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 512 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 528 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 544 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 560 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 576 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 592 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 608 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 624 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 640 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 656 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 672 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 688 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 704 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 720 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 736 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 752 - hash: "4faa7727bafeea0771f2db62f0141ac9" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 137; y: 74 - modifiers: 0 - sendToViewport: true + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 768 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 784 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 800 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 816 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 832 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 848 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 864 - hash: "4faa7727bafeea0771f2db62f0141ac9" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 137; y: 74 - modifiers: 0 - sendToViewport: true + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 880 - hash: "4faa7727bafeea0771f2db62f0141ac9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 896 - hash: "0fada111cb977c4de8c7499e44714f38" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 912 - hash: "1817e010332117dcddc1a1b1a2caf52d" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 928 - hash: "e4add6bf93479c9bca571419fe2fabf9" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } Frame { msec: 944 - hash: "d8812e206d2cbf434d58db6a35439a44" - } - Frame { - msec: 960 - hash: "115cb0b4c2c0dcd44618b5891aa210e1" - } - 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: 0 - 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" + hash: "df113cd7cd502c0ae8cb2dd0f0c209a0" } } diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml index 9a75763..6974adb 100644 --- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml @@ -9,34 +9,35 @@ import QtQuick 1.0 */ Rectangle { - width: 400; height: 200 + width: 200; height: 100 Rectangle { id: redRect - width: 100; height: 100 + width: 50; height: 50 color: "red" } Rectangle { id: redRect2 - width: 100; height: 100 - y: 100 + width: 50; height: 50 + y: 50 color: "red" } - MouseArea { - anchors.fill: parent - onClicked: parent.state = "state1" + Timer{ + interval: 100 + running: true + onTriggered: parent.state = "state1" } states: State { name: "state1" PropertyChanges { target: redRect - x: 300 + x: 150 color: "purple" } PropertyChanges { target: redRect2 - x: 300 + x: 150 color: "purple" } } diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png index fded8c3..41d51da 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.1.png new file mode 100644 index 0000000..953e8bd Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.2.png new file mode 100644 index 0000000..b311ae1 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.3.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.3.png new file mode 100644 index 0000000..41d51da Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.4.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.4.png new file mode 100644 index 0000000..5b68a73 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.4.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml index 7388b79..4296883 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml @@ -10,1654 +10,1214 @@ VisualTest { } Frame { msec: 32 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 48 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 64 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 80 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 96 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 112 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 128 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 144 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 160 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 176 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 192 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 208 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 224 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 240 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 256 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 272 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 288 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 304 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 320 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 336 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 352 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 368 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 384 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 400 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "234b795b5dd412e4397f132f03f38175" } Frame { msec: 416 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "eca09aebcc15501fd348b9eb19b54ee2" } Frame { msec: 432 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "6ab63f771ac705439157cf0ed84bc274" } Frame { msec: 448 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "42212db87d03c35e96e38ac200bd9ec2" } Frame { msec: 464 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "46a79ff030b89a4c8791fd853a96b64f" } Frame { msec: 480 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "cdfee36535e491328f5045b6f3378b64" } Frame { msec: 496 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "5cfc7db34110aa39f296fe4475de0c08" } Frame { msec: 512 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "df59e3aa557a661ce513523c3059c41d" } Frame { msec: 528 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "2d2f8fc7d695bcd20ef682b25a22186a" } Frame { msec: 544 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "daac5f2d4b451501669a7767d0a19ccc" } Frame { msec: 560 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "e10801e6c7086eac3eaaa48a3d39bb95" } Frame { msec: 576 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "a5fdf57b20bf4d4aad99f02a13bbfc66" } Frame { msec: 592 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "b48721b169b4a1118b040a9e41c252a1" } Frame { msec: 608 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "242425f06d5706f0483e49812bfb4718" } Frame { msec: 624 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "33bdd4d71b1736055d821ee5040bfaed" } Frame { msec: 640 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 656 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 672 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 688 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 704 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 720 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 736 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 752 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 768 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 784 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 800 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 816 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 832 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 848 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 864 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 880 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 896 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 912 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 928 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 944 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 960 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 976 - hash: "4135271d78a5c63c3837a09c86f35ebe" + image: "parentAnimation-visual.1.png" } Frame { msec: 992 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1008 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1024 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1040 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1056 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1072 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1088 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1104 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1120 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1136 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 1152 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 1168 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "b985be8701f0bbb73facfe745d43e32f" } Frame { msec: 1184 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "6b3e91ff248516656fd2efe26db6c900" } Frame { msec: 1200 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "40bd9296de59b3abc5b7a204a6ecff3f" } Frame { msec: 1216 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "615817b53baf0d0cd290b18ad9deee4d" } Frame { msec: 1232 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "c990d9afcebfc4dcc35457d555d7e9cb" } Frame { msec: 1248 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "2d1a4687abe3fd7b1911f8e5020c4378" } Frame { msec: 1264 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "b5e1399f1924dafa6782da6b739af882" } Frame { msec: 1280 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "8686a36600410f4f39f558eadfb3479f" } Frame { msec: 1296 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "39f1f7573198f86e1452211f62dc7f1a" } Frame { msec: 1312 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbfbbcb5637c0f90396150abb0aecb14" } Frame { msec: 1328 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "2c071570228d5a121a64c4c01c443ab2" } Frame { msec: 1344 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "4e076ea1d8f566eca9aa5eb55ce02098" } Frame { msec: 1360 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "72fd6c15e76fd6d74a9584be1e82399b" } Frame { msec: 1376 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "b519ad1958ea69fc4682c06e83f22c42" } Frame { msec: 1392 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "155b39717f45fe5d36348c499635e759" } Frame { msec: 1408 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1424 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1440 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1456 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1472 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1488 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1504 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1520 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1536 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1552 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1568 - hash: "633b5668278295faa57d0cfffe8a29cb" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1584 - hash: "ccbf4505e0f05547d2f7ce874ab941c0" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1600 - hash: "be904489959fa365badb642fa9e85922" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1616 - hash: "de6a97ac6e2677feb223336199cbffe1" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1632 - hash: "997b0a547336a9bb6a67cd9beffe1831" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1648 - hash: "ac9a6e111050b8a7c4492f06c33d3969" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1664 - hash: "7313c0d2ee06e393f486670222c29bb4" + hash: "fbf01bb217e393b79a6a2c567750de89" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 1680 - hash: "24cea420d03d1fdcddb1b9cf5112cbee" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 1696 - hash: "764688785eeaa01e9c84821476911edb" + hash: "234b795b5dd412e4397f132f03f38175" } Frame { msec: 1712 - hash: "b24ae0cb512abfd2606ff9c20a6751bf" + hash: "eca09aebcc15501fd348b9eb19b54ee2" } Frame { msec: 1728 - hash: "f1daed3391f10e27435a54222df8d0ab" + hash: "6ab63f771ac705439157cf0ed84bc274" } Frame { msec: 1744 - hash: "99704e182267f2c12d0215b9c03f4d68" + hash: "42212db87d03c35e96e38ac200bd9ec2" } Frame { msec: 1760 - hash: "143cd9259a41b8af5d41a5b2aaf8de64" + hash: "46a79ff030b89a4c8791fd853a96b64f" } Frame { msec: 1776 - hash: "b5f0a0f838b5870c162a24cd767f068b" + hash: "cdfee36535e491328f5045b6f3378b64" } Frame { msec: 1792 - hash: "c5c8cdcbfab7466e447eaff582bf7312" + hash: "5cfc7db34110aa39f296fe4475de0c08" } Frame { msec: 1808 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "df59e3aa557a661ce513523c3059c41d" } Frame { msec: 1824 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "2d2f8fc7d695bcd20ef682b25a22186a" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 1840 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "2d2f8fc7d695bcd20ef682b25a22186a" } Frame { msec: 1856 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "f611eb7652ce078c81dba533c6c0df5e" } Frame { msec: 1872 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "2a4f853f3eeef5cbacc8fdacfdab3442" } Frame { msec: 1888 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "86a201ea5c4af2a28b4047c0732d33c8" } Frame { msec: 1904 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "e87f15694846a75ff3801aff063d35c7" } Frame { msec: 1920 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "c3d42dd4ae49a843f32a3dcc818d0b68" } Frame { msec: 1936 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + image: "parentAnimation-visual.2.png" } Frame { msec: 1952 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "46a79ff030b89a4c8791fd853a96b64f" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 1968 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "46a79ff030b89a4c8791fd853a96b64f" } Frame { msec: 1984 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "079898fb015f88ba9d7cd73f356d2c37" } Frame { msec: 2000 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "5d03ca6d09d241bd686c878d53d9f269" } Frame { msec: 2016 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "d986a00663eb3dafb24bf67b3d6c7a04" } Frame { msec: 2032 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "4e609d8b8921428909a5b78ea1db78b9" } Frame { msec: 2048 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "f611eb7652ce078c81dba533c6c0df5e" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2064 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "f611eb7652ce078c81dba533c6c0df5e" } Frame { msec: 2080 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "2a4f853f3eeef5cbacc8fdacfdab3442" } Frame { msec: 2096 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "86a201ea5c4af2a28b4047c0732d33c8" } Frame { msec: 2112 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "2d498b4b440cd6bce6e02102dc62996d" } Frame { msec: 2128 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "53c55f9fc1aab5f4c552387e8cae749e" } Frame { msec: 2144 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "8d188a1ab2be377198142f3037d15fc3" } Frame { msec: 2160 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "66550b5102e2803fb3cbd85f4b2543e0" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2176 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "66550b5102e2803fb3cbd85f4b2543e0" } Frame { msec: 2192 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "e495d8163793da7503b9d29c6721ff6e" } Frame { msec: 2208 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "065e5775930146539ae589782f4e4352" } Frame { msec: 2224 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "7861ff76ec52f1c0408636f7b53b30b6" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2240 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "7861ff76ec52f1c0408636f7b53b30b6" } Frame { msec: 2256 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "e87f15694846a75ff3801aff063d35c7" } Frame { msec: 2272 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "67edcabe94a3968bbfe3dd1b0b2cd273" } Frame { msec: 2288 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "a0f8e97d347970aca868538f4294a7ce" } Frame { msec: 2304 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "c89421473e754235e209f35dea9afccb" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2320 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "c89421473e754235e209f35dea9afccb" } Frame { msec: 2336 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "cdfee36535e491328f5045b6f3378b64" } Frame { msec: 2352 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "ab31653cb8a31f753782ffff045e2b07" } Frame { msec: 2368 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "86a201ea5c4af2a28b4047c0732d33c8" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2384 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "86a201ea5c4af2a28b4047c0732d33c8" } Frame { msec: 2400 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "4bdc37cd35c71d8a25745cb0ff664fea" } Frame { msec: 2416 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "5d03ca6d09d241bd686c878d53d9f269" } Frame { msec: 2432 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "700ff7c6c4ae97b34309bd020807a0e1" } Frame { msec: 2448 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "e812a79fb65142f6855974f87aabdc90" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2464 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "e812a79fb65142f6855974f87aabdc90" } Frame { msec: 2480 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "795809181debf916afbef73c41a66dee" } Frame { msec: 2496 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" + hash: "b61c0e25fa9f3c15f1caf91c25937d75" } Frame { msec: 2512 - hash: "eaeeb8c51d43e3c38ff7dde632d1f9c8" + hash: "9dd01662ee9d0add862b3afadac72929" } Frame { msec: 2528 - hash: "ec0e68c2e7a75fedd1091ce633dadd4f" + hash: "0a96c8fec8f6509dbbe16480fe8ebfb7" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 2544 - hash: "a5d60efc176dee9083a2d746e7ad8315" + hash: "0a96c8fec8f6509dbbe16480fe8ebfb7" } Frame { msec: 2560 - hash: "48bcbbacf413080247f818e35e496e04" + hash: "ce67814de0091d5ab5cc2172a830bc93" } Frame { msec: 2576 - hash: "c521af8efa19fbac39119ad75cd469f5" + hash: "d986a00663eb3dafb24bf67b3d6c7a04" } Frame { msec: 2592 - hash: "0e74613c67fc9d9acb21a3d382c5efcd" + hash: "69e21aefb8bdbfaaa5e1e7969d827ec3" } Frame { msec: 2608 - hash: "eeb3f4467ebd7ee678c3b7371db28519" + hash: "cdfee36535e491328f5045b6f3378b64" } Frame { msec: 2624 - hash: "9c5b9009a35b74d0ddec8fec85f204bf" + hash: "cdb20c4866bdf55bd454864a31676053" } Frame { msec: 2640 - hash: "aefc70824e23428aebf0a40830a57469" + hash: "46a79ff030b89a4c8791fd853a96b64f" } Frame { msec: 2656 - hash: "1fa9c23760193b74b0063b4e4c434070" + hash: "c2535eb78e0cf46151f15cd2ec7c4838" } Frame { msec: 2672 - hash: "8091700d4729163bd87521385853e608" + hash: "7a1455f07b916a63e43b89da4311a033" } Frame { msec: 2688 - hash: "a13558e609570f9390f20a85d244fa22" + hash: "f9a2c0ef913ecd7026d9775648a063d6" } Frame { msec: 2704 - hash: "7be5e3609bbeb9a2c1df7d52f3953d4d" + hash: "5da8f6f7d847c174da393015dfc33537" } Frame { msec: 2720 - hash: "51c8ae31f858121d86ef09cc9a5c5ef3" + hash: "1d5f20cb721f1e5cb067095bee1b51fe" } Frame { msec: 2736 - hash: "84ce8f39207f4b07c2c3323425a8c238" + hash: "ca7f5fa76264d1eb1182e46e371ee81c" } Frame { msec: 2752 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "2467dc0ffdb051e092c5bfd5d371e6b6" } Frame { msec: 2768 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "0b04e516eb08978914c39ec2d742e161" } Frame { msec: 2784 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "5abec56587da54876c204d2e32efe7ad" } Frame { msec: 2800 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2816 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2832 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2848 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2864 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2880 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2896 - hash: "4135271d78a5c63c3837a09c86f35ebe" + image: "parentAnimation-visual.3.png" } Frame { msec: 2912 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2928 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2944 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2960 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2976 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 2992 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3008 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3024 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3040 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3056 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3072 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3088 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3104 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 3120 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3136 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "234b795b5dd412e4397f132f03f38175" } Frame { msec: 3152 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "eca09aebcc15501fd348b9eb19b54ee2" } Frame { msec: 3168 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "6ab63f771ac705439157cf0ed84bc274" } Frame { msec: 3184 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "42212db87d03c35e96e38ac200bd9ec2" } Frame { msec: 3200 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "46a79ff030b89a4c8791fd853a96b64f" } Frame { msec: 3216 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "cdfee36535e491328f5045b6f3378b64" } Frame { msec: 3232 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "5cfc7db34110aa39f296fe4475de0c08" } Frame { msec: 3248 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "df59e3aa557a661ce513523c3059c41d" } Frame { msec: 3264 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "2d2f8fc7d695bcd20ef682b25a22186a" } Frame { msec: 3280 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "daac5f2d4b451501669a7767d0a19ccc" } Frame { msec: 3296 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "e10801e6c7086eac3eaaa48a3d39bb95" } Frame { msec: 3312 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "a5fdf57b20bf4d4aad99f02a13bbfc66" } Frame { msec: 3328 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "b48721b169b4a1118b040a9e41c252a1" } Frame { msec: 3344 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "242425f06d5706f0483e49812bfb4718" } Frame { msec: 3360 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "33bdd4d71b1736055d821ee5040bfaed" } Frame { msec: 3376 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3392 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3408 - hash: "633b5668278295faa57d0cfffe8a29cb" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3424 - hash: "ccbf4505e0f05547d2f7ce874ab941c0" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3440 - hash: "be904489959fa365badb642fa9e85922" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3456 - hash: "de6a97ac6e2677feb223336199cbffe1" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3472 - hash: "997b0a547336a9bb6a67cd9beffe1831" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3488 - hash: "ac9a6e111050b8a7c4492f06c33d3969" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3504 - hash: "7313c0d2ee06e393f486670222c29bb4" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3520 - hash: "24cea420d03d1fdcddb1b9cf5112cbee" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3536 - hash: "764688785eeaa01e9c84821476911edb" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3552 - hash: "b24ae0cb512abfd2606ff9c20a6751bf" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3568 - hash: "b24ae0cb512abfd2606ff9c20a6751bf" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3584 - hash: "d7bf1b48f1a03974e7f095468e07f037" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3600 - hash: "a59ab4fe1c22d27b5cdde949cf90e6f4" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3616 - hash: "7c3082720e65b8a6217bf5a5fe4d48c0" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3632 - hash: "350d1ff24fb8fba0ab8a6694d99544b3" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 181; y: 122 + modifiers: 0 + sendToViewport: true } Frame { msec: 3648 - hash: "81d17a62c33d79ed25968ec47771d292" + hash: "dce97e76b2541bbee52b0df1c1bb3d44" } Frame { msec: 3664 - hash: "43fd3ef88bd7a2e5bf4546f088783077" + hash: "b985be8701f0bbb73facfe745d43e32f" } Frame { msec: 3680 - hash: "041938ad2e023202db18df28f2329c8f" + hash: "6b3e91ff248516656fd2efe26db6c900" } Frame { msec: 3696 - hash: "ec8677eae06cbf77a9508953325b179e" - } - Mouse { - type: 4 - button: 1 - buttons: 1 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "40bd9296de59b3abc5b7a204a6ecff3f" } Frame { msec: 3712 - hash: "ec8677eae06cbf77a9508953325b179e" + hash: "615817b53baf0d0cd290b18ad9deee4d" } Frame { msec: 3728 - hash: "453026339c3901ee286831b4b41088f6" + hash: "c990d9afcebfc4dcc35457d555d7e9cb" } Frame { msec: 3744 - hash: "d58a7a41ade691cc0acfb0303bfc3b68" + hash: "2d1a4687abe3fd7b1911f8e5020c4378" } Frame { msec: 3760 - hash: "a200b05ef3d7e39e11513fd2f8ff1497" + hash: "b5e1399f1924dafa6782da6b739af882" } Frame { msec: 3776 - hash: "faa1223975acdf2d4b48045d7f2ce445" + hash: "8686a36600410f4f39f558eadfb3479f" } Frame { msec: 3792 - hash: "964d9b80d82d0fe3d3fb328a1661a60e" + hash: "39f1f7573198f86e1452211f62dc7f1a" } Frame { msec: 3808 - hash: "705871bc384de93100354acb19b371b0" + hash: "fbfbbcb5637c0f90396150abb0aecb14" } Frame { msec: 3824 - hash: "1a4480463adfc5a3d525916b03c2c3ce" + hash: "2c071570228d5a121a64c4c01c443ab2" } Frame { msec: 3840 - hash: "c8269ecdcd1c898b48280d10a20674b7" + hash: "4e076ea1d8f566eca9aa5eb55ce02098" } Frame { msec: 3856 - hash: "9a55bdf428f45f02d9c8cf414dcd7754" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + image: "parentAnimation-visual.4.png" } Frame { msec: 3872 - hash: "9a55bdf428f45f02d9c8cf414dcd7754" + hash: "b519ad1958ea69fc4682c06e83f22c42" } Frame { msec: 3888 - hash: "0f6d82d02ce7d79a1bdf6bf81791f321" + hash: "155b39717f45fe5d36348c499635e759" } Frame { msec: 3904 - hash: "b145b9d299714020686069baec11cb71" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3920 - hash: "5dbf5e4151c01f10cf23b07ca1df56ab" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3936 - hash: "822d4397ac514673ca1015ad05c9b4ac" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3952 - hash: "461d35e865153d22e9a67bb0ffddefb7" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3968 - hash: "676fff498e6879144090d5596056c6c8" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 3984 - hash: "854da7ed627237250e20b263f9eb9d90" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4000 - hash: "157ec877797883d329ff329537205d02" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4016 - hash: "613669ca60240fcc490d548fe802390d" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4032 - hash: "803e84f027c773db96f9530511e5fedb" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4048 - hash: "803e84f027c773db96f9530511e5fedb" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4064 - hash: "f47cfd1f1094b782c08490be2f49c6ed" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4080 - hash: "db5953f3ee4e2db87e33b85464167f74" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4096 - hash: "8313cb750b9abc586a43b9422de08f53" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4112 - hash: "deb390ce992fee85c56733168b4bd1ec" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4128 - hash: "29a1cda3647c49731e9adcd107a2d13c" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4144 - hash: "bfa17a3afa06699107b217df6e4aed43" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4160 - hash: "8e639ef01ab6d8876c3f40adc44928c6" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4176 - hash: "14038aedf42de0ca62d872d317018ee0" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4192 - hash: "c1288465163d44ed40e28f21e0298ea6" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4208 - hash: "d6915f22a905737488d27e8138002f31" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4224 - hash: "5b1621451a5a3af40302603ec31bb8bb" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4240 - hash: "16fd73c0cb615cc717cdc4a6787471c2" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4256 - hash: "16fd73c0cb615cc717cdc4a6787471c2" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4272 - hash: "db5caf42e11705ecdb2006e1ed6b0c4f" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4288 - hash: "4b7e51e4e9fb1dacb32aac11a4a46ceb" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4304 - hash: "63c93cda9892f733809125991af997b6" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4320 - hash: "0e74613c67fc9d9acb21a3d382c5efcd" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4336 - hash: "58e813a6619828b6c9ec9cf300ff0e2d" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4352 - hash: "181a6e334d745381f091bf1b55fc1690" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4368 - hash: "f25bbc9ddc8cc72036c49d50b45bece8" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4384 - hash: "88e8f0496debfee6bc2426895fe1c3d9" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4400 - hash: "db5953f3ee4e2db87e33b85464167f74" + hash: "fbf01bb217e393b79a6a2c567750de89" } Frame { msec: 4416 - hash: "9818a899adb916b6ba5f7537697ef062" - } - Frame { - msec: 4432 - hash: "3842f40093d70089a4004fb803c05981" - } - Frame { - msec: 4448 - hash: "be904489959fa365badb642fa9e85922" - } - Frame { - msec: 4464 - hash: "cbae27751ff0ebce4fcc164564f4cf1b" - } - Frame { - msec: 4480 - hash: "3a1b468bd3fd747bbe6b069426b170a9" - } - Frame { - msec: 4496 - hash: "57fbcd580eb1607a2a7526a65842dfeb" - } - Frame { - msec: 4512 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4528 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4544 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4560 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4576 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4592 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4608 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4624 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4640 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 4656 - hash: "633b5668278295faa57d0cfffe8a29cb" - } - Frame { - msec: 4672 - hash: "ccbf4505e0f05547d2f7ce874ab941c0" - } - Frame { - msec: 4688 - hash: "be904489959fa365badb642fa9e85922" - } - Frame { - msec: 4704 - hash: "de6a97ac6e2677feb223336199cbffe1" - } - Frame { - msec: 4720 - hash: "997b0a547336a9bb6a67cd9beffe1831" - } - Frame { - msec: 4736 - hash: "ac9a6e111050b8a7c4492f06c33d3969" - } - Frame { - msec: 4752 - hash: "7313c0d2ee06e393f486670222c29bb4" - } - Frame { - msec: 4768 - hash: "24cea420d03d1fdcddb1b9cf5112cbee" - } - Frame { - msec: 4784 - hash: "764688785eeaa01e9c84821476911edb" - } - Frame { - msec: 4800 - hash: "b24ae0cb512abfd2606ff9c20a6751bf" - } - Frame { - msec: 4816 - hash: "f1daed3391f10e27435a54222df8d0ab" - } - Frame { - msec: 4832 - hash: "99704e182267f2c12d0215b9c03f4d68" - } - Frame { - msec: 4848 - hash: "143cd9259a41b8af5d41a5b2aaf8de64" - } - Frame { - msec: 4864 - hash: "b5f0a0f838b5870c162a24cd767f068b" - } - Frame { - msec: 4880 - hash: "c5c8cdcbfab7466e447eaff582bf7312" - } - Frame { - msec: 4896 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4912 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4928 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4944 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4960 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4976 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 4992 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5008 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5024 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5040 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5056 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5072 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5088 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5104 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5120 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5136 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5152 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5168 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5184 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5200 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5216 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5232 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5248 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5264 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5280 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5296 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5312 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5328 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5344 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 237; y: 299 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5360 - hash: "f1bc451d1f62cfb5dd60a7ea483d3844" - } - Frame { - msec: 5376 - hash: "eaeeb8c51d43e3c38ff7dde632d1f9c8" - } - Frame { - msec: 5392 - hash: "ec0e68c2e7a75fedd1091ce633dadd4f" - } - Frame { - msec: 5408 - hash: "a5d60efc176dee9083a2d746e7ad8315" - } - Frame { - msec: 5424 - hash: "48bcbbacf413080247f818e35e496e04" - } - Frame { - msec: 5440 - hash: "c521af8efa19fbac39119ad75cd469f5" - } - Frame { - msec: 5456 - hash: "0e74613c67fc9d9acb21a3d382c5efcd" - } - Frame { - msec: 5472 - hash: "eeb3f4467ebd7ee678c3b7371db28519" - } - Frame { - msec: 5488 - hash: "9c5b9009a35b74d0ddec8fec85f204bf" - } - Frame { - msec: 5504 - hash: "aefc70824e23428aebf0a40830a57469" - } - Frame { - msec: 5520 - hash: "1fa9c23760193b74b0063b4e4c434070" - } - Frame { - msec: 5536 - hash: "8091700d4729163bd87521385853e608" - } - Frame { - msec: 5552 - hash: "a13558e609570f9390f20a85d244fa22" - } - Frame { - msec: 5568 - hash: "7be5e3609bbeb9a2c1df7d52f3953d4d" - } - Frame { - msec: 5584 - hash: "51c8ae31f858121d86ef09cc9a5c5ef3" - } - Frame { - msec: 5600 - hash: "84ce8f39207f4b07c2c3323425a8c238" - } - Frame { - msec: 5616 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5632 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5648 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5664 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5680 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5696 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5712 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5728 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5744 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5760 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5776 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5792 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5808 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5824 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5840 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5856 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5872 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5888 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5904 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5920 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5936 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5952 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5968 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 5984 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6000 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6016 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 6032 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6048 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6064 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6080 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6096 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6112 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6128 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6144 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6160 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6176 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6192 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6208 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6224 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6240 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6256 - hash: "4135271d78a5c63c3837a09c86f35ebe" - } - Frame { - msec: 6272 - hash: "4135271d78a5c63c3837a09c86f35ebe" + hash: "fbf01bb217e393b79a6a2c567750de89" } } diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml index 42cec3a..025aa80 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml @@ -10,14 +10,14 @@ then a final full transition. */ Rectangle { - width: 800; - height: 480; + width: 400; + height: 240; color: "black"; Rectangle { id: gr color: "green" - width: 100; height: 100 + width: 50; height: 50 } MouseArea { @@ -27,21 +27,21 @@ Rectangle { Rectangle { id: np - x: 300 - width: 300; height: 300 + x: 150 + width: 150; height: 150 color: "yellow" clip: true Rectangle { color: "red" - x: 100; y: 100; height: 100; width: 100 + x: 50; y: 50; height: 50; width: 50 } } Rectangle { id: vp - x: 200; y: 200 - width: 100; height: 100 + x: 100; y: 100 + width: 50; height: 50 color: "blue" rotation: 45 scale: 2 @@ -53,7 +53,7 @@ Rectangle { ParentChange { target: gr parent: np - x: 100; y: 100; width: 200; + x: 50; y: 50; width: 100; } } diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.1.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.1.png index 0d71292..175adc3 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.1.png and b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.2.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.2.png index 920d992..4dbe6a4 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.2.png and b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.3.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.3.png index 1c4d89e..b9ea6b8 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.3.png and b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml index ad3b5bb..1d7817b 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml @@ -262,7 +262,7 @@ VisualTest { } Frame { msec: 976 - hash: "95b4fe1e5eeffe1673e199308e8ce76c" + image: "parentAnimation2.1.png" } Frame { msec: 992 @@ -518,7 +518,7 @@ VisualTest { } Frame { msec: 1936 - hash: "60ed700e49bf2c51aba9b44400b56294" + image: "parentAnimation2.2.png" } Frame { msec: 1952 @@ -766,7 +766,7 @@ VisualTest { } Frame { msec: 2896 - hash: "acab4a79f22ebc8a45759ae282e8f3db" + image: "parentAnimation2.3.png" } Mouse { type: 3 @@ -967,7 +967,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.1.png new file mode 100644 index 0000000..c579ded Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.2.png new file mode 100644 index 0000000..49e2b9f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.3.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.3.png new file mode 100644 index 0000000..cb0971a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.4.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.4.png new file mode 100644 index 0000000..e62485b Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.4.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.5.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.5.png new file mode 100644 index 0000000..61e7463 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.5.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.6.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.6.png new file mode 100644 index 0000000..8c31e7d Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.6.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml index b2fa1f4..34deb9b 100644 --- a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "5f18a81707f23d377e81a27c1fc41ce9" + image: "pauseAnimation-visual.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "a725b59b4947357546bbfc7df3d830af" + image: "pauseAnimation-visual.2.png" } Frame { msec: 1952 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 2896 - hash: "a350b70c5238a340e85fd4a3ec0390a3" + image: "pauseAnimation-visual.3.png" } Frame { msec: 2912 @@ -966,7 +966,7 @@ VisualTest { } Frame { msec: 3856 - hash: "20258f07c613958c32f783466771391a" + image: "pauseAnimation-visual.4.png" } Frame { msec: 3872 @@ -1206,7 +1206,7 @@ VisualTest { } Frame { msec: 4816 - hash: "f0d8132489c2f2ef760e905b3c093726" + image: "pauseAnimation-visual.5.png" } Frame { msec: 4832 @@ -1446,7 +1446,7 @@ VisualTest { } Frame { msec: 5776 - hash: "41ba853c3403f68a23e708df82e21c53" + image: "pauseAnimation-visual.6.png" } Frame { msec: 5792 @@ -1599,7 +1599,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png index 0714b4a..a02c063 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png and b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png index 7d2b66e..1af3243 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png and b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.3.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.3.png new file mode 100644 index 0000000..7d2b66e Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml index 3216c0a..3c24f59 100644 --- a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 976 - hash: "4ba1bf769de9bc45630485d06642dc30" + image: "propertyAction-visual.1.png" } Frame { msec: 992 @@ -502,7 +502,7 @@ VisualTest { } Frame { msec: 1936 - hash: "895ad99b422c5c6637f6569f391b4011" + image: "propertyAction-visual.2.png" } Frame { msec: 1952 @@ -742,7 +742,7 @@ VisualTest { } Frame { msec: 2896 - hash: "1e5ac43e0f553886bcb2b4016f7e3414" + image: "propertyAction-visual.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png index c7da359..29ca02a 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png and b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png index d51e8e4..c7da359 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png and b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.3.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.3.png index c7da359..7373951 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.3.png and b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml index 48ca755..05b5c99 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml @@ -342,7 +342,7 @@ VisualTest { } Frame { msec: 976 - hash: "8a5247a3847809f56a2fdce0f4ac9c99" + image: "qtbug10586.1.png" } Frame { msec: 992 @@ -670,7 +670,7 @@ VisualTest { } Frame { msec: 1936 - hash: "d84bf962449716cc64cb34b285926c48" + image: "qtbug10586.2.png" } Frame { msec: 1952 @@ -910,7 +910,7 @@ VisualTest { } Frame { msec: 2896 - hash: "c6d306961e1e574d8c57fd849029121c" + image: "qtbug10586.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.1.png b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.1.png new file mode 100644 index 0000000..d9a9959 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml index fce5474..179dbc9 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml @@ -270,7 +270,7 @@ VisualTest { } Frame { msec: 976 - hash: "e09a359578935b988ac1cc8c40b25547" + image: "qtbug13398.1.png" } Frame { msec: 992 diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png index 9dde537..f08e048 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png index 454f6c1..9fb2be5 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png index 454f6c1..d229e87 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png index 043b487..f08e048 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png index 79c791d..7d1d2cd 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png index 454f6c1..b537ace 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png index 454f6c1..f08e048 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png index a7d6674..d229e87 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.9.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.9.png new file mode 100644 index 0000000..432f814 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.9.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml index 9628802..5146be2 100644 --- a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml +++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "213811853dbefdc418099721e3bf8651" + image: "reanchor.1.png" } Frame { msec: 992 @@ -502,7 +502,7 @@ VisualTest { } Frame { msec: 1936 - hash: "ad3837dcf3e69274ac2918d796974f29" + image: "reanchor.2.png" } Frame { msec: 1952 @@ -774,7 +774,7 @@ VisualTest { } Frame { msec: 2896 - hash: "eb3eeb37ab7b26692cbf100adfaf3772" + image: "reanchor.3.png" } Frame { msec: 2912 @@ -1030,7 +1030,7 @@ VisualTest { } Frame { msec: 3856 - hash: "213811853dbefdc418099721e3bf8651" + image: "reanchor.4.png" } Frame { msec: 3872 @@ -1286,7 +1286,7 @@ VisualTest { } Frame { msec: 4816 - hash: "c4559982aa3f3d291364deed4bd96d65" + image: "reanchor.5.png" } Frame { msec: 4832 @@ -1526,7 +1526,7 @@ VisualTest { } Frame { msec: 5776 - hash: "1137e22c68e043950811dee295e19b04" + image: "reanchor.6.png" } Frame { msec: 5792 @@ -1782,7 +1782,7 @@ VisualTest { } Frame { msec: 6736 - hash: "213811853dbefdc418099721e3bf8651" + image: "reanchor.7.png" } Frame { msec: 6752 @@ -2038,7 +2038,7 @@ VisualTest { } Frame { msec: 7696 - hash: "eb3eeb37ab7b26692cbf100adfaf3772" + image: "reanchor.8.png" } Frame { msec: 7712 @@ -2294,7 +2294,7 @@ VisualTest { } Frame { msec: 8656 - hash: "6ed9b6118a0dc81c22af9fee108b7432" + image: "reanchor.9.png" } Frame { msec: 8672 @@ -2419,7 +2419,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.1.png b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.1.png index 60d09e9..e7571f2 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.1.png and b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.2.png b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.2.png new file mode 100644 index 0000000..60d09e9 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml index 5c2f098..f93458d 100644 --- a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 976 - hash: "1761f6606bbdf5772594cf96412337ca" + image: "scriptAction-visual.1.png" } Frame { msec: 992 @@ -502,7 +502,7 @@ VisualTest { } Frame { msec: 1936 - hash: "6741d853f099a5a98fcdf87053b69ec8" + image: "scriptAction-visual.2.png" } Frame { msec: 1952 diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png index b551e6b..52fd55c 100644 Binary files a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png and b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png differ diff --git a/tests/auto/declarative/qmlvisual/fillmode/face.png b/tests/auto/declarative/qmlvisual/fillmode/face.png index 9623b1a..e087316 100644 Binary files a/tests/auto/declarative/qmlvisual/fillmode/face.png and b/tests/auto/declarative/qmlvisual/fillmode/face.png differ diff --git a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml index 2ac98da..b2ecfee 100644 --- a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml +++ b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml @@ -6,16 +6,16 @@ import QtQuick 1.0 */ Rectangle { - id: screen; width: 750; height: 600; color: "gray" + id: screen; width: 360; height: 200; color: "gray" property string source: "face.png" Grid { columns: 3 - Image { width: 250; height: 300; source: screen.source; fillMode: Image.Stretch } - Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectFit; smooth: true } - Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectCrop } - Image { width: 250; height: 300; source: screen.source; fillMode: Image.Tile; smooth: true } - Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileHorizontally } - Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileVertically } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.Stretch } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.PreserveAspectFit; smooth: true } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.PreserveAspectCrop } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.Tile; smooth: true } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.TileHorizontally } + Image { width: 120; height: 100; source: screen.source; fillMode: Image.TileVertically } } } diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png index fd28a93..986a164 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test.3.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.3.png new file mode 100644 index 0000000..fd28a93 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/focusscope/data/test.3.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml index 6294112..e2bf23f 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml @@ -294,7 +294,7 @@ VisualTest { } Frame { msec: 976 - hash: "f369109744055d30eadf2832a028a104" + image: "test.1.png" } Frame { msec: 992 @@ -598,7 +598,7 @@ VisualTest { } Frame { msec: 1936 - hash: "f369109744055d30eadf2832a028a104" + image: "test.2.png" } Frame { msec: 1952 @@ -886,7 +886,7 @@ VisualTest { } Frame { msec: 2896 - hash: "94675f9c9afb6834b91a69fd0ce35a22" + image: "test.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png new file mode 100644 index 0000000..22d7496 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml index 2bff871..62eff17 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "4823f4520db0c1f64d887f172b3efa17" + image: "test2.1.png" } Frame { msec: 992 diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png index 609d1ab..861b459 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png index 8c81be6..2ede7c9 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png index c092535..055f184 100644 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png new file mode 100644 index 0000000..c092535 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml index d7b19a1..8ed9c7d 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml @@ -294,7 +294,7 @@ VisualTest { } Frame { msec: 976 - hash: "24eebfd01ea479015fac91198ede9e0d" + image: "test3.1.png" } Frame { msec: 992 @@ -606,7 +606,7 @@ VisualTest { } Frame { msec: 1936 - hash: "855b97f29624ce545e50834a807694f8" + image: "test3.2.png" } Frame { msec: 1952 @@ -902,7 +902,7 @@ VisualTest { } Frame { msec: 2896 - hash: "fa7e0091764dc67878bce696f728254d" + image: "test3.3.png" } Frame { msec: 2912 @@ -1222,7 +1222,7 @@ VisualTest { } Frame { msec: 3856 - hash: "cb3a3cca07a49fadf8bb00834ea24f73" + image: "test3.4.png" } Frame { msec: 3872 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml index 8c21cee..33d8cb8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml @@ -4,52 +4,63 @@ import "content" Rectangle { id: page color: "white" - width: 1030; height: 540 - - MyBorderImage { - x: 20; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240 - source: "content/colors.png"; margin: 30; antialiased: true - } - MyBorderImage { - x: 270; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240; antialiased: true - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 520; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240; antialiased: true - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 770; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240; antialiased: true - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round - } - MyBorderImage { - x: 20; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200; antialiased: true - source: "content/bw.png"; margin: 10 - } - MyBorderImage { - x: 270; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200; antialiased: true - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 520; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200; antialiased: true - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 770; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200; antialiased: true - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + width: 520; height: 260 + Grid{ + columns: 4 + spacing: 4 + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat + antialiased: true + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + antialiased: true + } } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml index fb5cac0..21f6b5f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml @@ -4,52 +4,55 @@ import "content" Rectangle { id: page color: "white" - width: 1030; height: 540 - - MyBorderImage { - x: 20; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240 - source: "content/colors.png"; margin: 30 - } - MyBorderImage { - x: 270; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240 - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 520; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240 - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 770; y: 20; minWidth: 120; maxWidth: 240 - minHeight: 120; maxHeight: 240 - source: "content/colors.png"; margin: 30 - horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round - } - MyBorderImage { - x: 20; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200 - source: "content/bw.png"; margin: 10 - } - MyBorderImage { - x: 270; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200 - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 520; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200 - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat - } - MyBorderImage { - x: 770; y: 280; minWidth: 60; maxWidth: 200 - minHeight: 40; maxHeight: 200 - source: "content/bw.png"; margin: 10 - horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + width: 520; height: 260 + Grid{ + columns: 4 + spacing: 4 + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 60; maxHeight: 120 + source: "content/colors.png"; margin: 15 + horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Repeat; verticalMode: BorderImage.Repeat + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Stretch; verticalMode: BorderImage.Repeat + } + MyBorderImage { + minWidth: 60; maxWidth: 120 + minHeight: 40; maxHeight: 120 + source: "content/bw.png"; margin: 10 + horizontalMode: BorderImage.Round; verticalMode: BorderImage.Round + } } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml index 75a644a..923db47 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml @@ -13,21 +13,21 @@ Item { property int margin id: container - width: 240; height: 240 + width: maxWidth; height: maxHeight BorderImage { id: image; x: container.width / 2 - width / 2; y: container.height / 2 - height / 2 SequentialAnimation on width { loops: Animation.Infinite - NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 1000; easing.type: "InOutQuad"} - NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 1000; easing.type: "InOutQuad" } + NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 600; easing.type: "InOutQuad"} + NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 600; easing.type: "InOutQuad" } } SequentialAnimation on height { loops: Animation.Infinite - NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 1000; easing.type: "InOutQuad"} - NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 1000; easing.type: "InOutQuad" } + NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 600; easing.type: "InOutQuad"} + NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 600; easing.type: "InOutQuad" } } border.top: container.margin diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci index 506f6f5..0d91764 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci @@ -1,7 +1,7 @@ -border.left:30 -border.top:30 -border.right:30 -border.bottom:30 +border.left:15 +border.top:15 +border.right:15 +border.bottom:15 horizontalTileRule:Round verticalTileRule:Round source:colors.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci index e4989a7..16ac8cc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci @@ -1,5 +1,5 @@ -border.left:30 -border.top:30 -border.right:30 -border.bottom:30 +border.left:15 +border.top:15 +border.right:15 +border.bottom:15 source:colors.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png index dfb62f3..116907d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/qmldir b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/qmldir new file mode 100644 index 0000000..0c732d2 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/qmldir @@ -0,0 +1 @@ +MyBorderImage 1.0 MyBorderImage.qml diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png index bebca88..b7d06e4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png index 11622a7..d904aa0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml index 7bec3fb..6c7a940 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml @@ -10,534 +10,310 @@ VisualTest { } Frame { msec: 32 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 48 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 64 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "8ba2cebd7b80bd58612ce46470e7763b" } Frame { msec: 80 - hash: "9419c891e347fe6b25d30c05bae5d14c" + hash: "9ab9c8f788bbca58552bbb6009386d69" } Frame { msec: 96 - hash: "62430dd693c4eaeb7afe9e85229406a4" + hash: "7f4b50df7848ad07fb75cb19f2c4b04a" } Frame { msec: 112 - hash: "a9b6aeb509076bf17c2068ce280326fb" + hash: "425e48ae492190eb6b8028be11352d7e" } Frame { msec: 128 - hash: "2570806925c3a61a7afaa09331c6eed8" + hash: "183e1f8321edb7b8d1cc2cc858039360" } Frame { msec: 144 - hash: "98d48920293b11511e8bbf820dd49acc" + hash: "83d82bc27b0e3387dddb8e7e09380e02" } Frame { msec: 160 - hash: "e4809aefa55620a86484f66582d4d1b6" + hash: "bca94a64a283e7e30ec8c1fe3249f981" } Frame { msec: 176 - hash: "098b063b0e5eb3dd22adb3353342725e" + hash: "26cbcf6233c8fd222a857a8ae801749a" } Frame { msec: 192 - hash: "30aadc837ec2e7d8a2495453348804bc" + hash: "ac1d21dba648ab729e1670ead441b173" } Frame { msec: 208 - hash: "05013a538f2796c728b4d0ddad059851" + hash: "e42811f8029c6cd70041f8492a31ff27" } Frame { msec: 224 - hash: "b221f14ea2c04078e23ac37ef817c50e" + hash: "f0b06b2ccf1be47ab7c5f6863ccdc495" } Frame { msec: 240 - hash: "3ef9de605fff5d3156bccc99a93c5da6" + hash: "9b398166d385facb2d02c86cd92ab85f" } Frame { msec: 256 - hash: "7722a4c025f1d2b560c7fec8ba8f7b6d" + hash: "a4414a5ae4e44320383d49441d7acb51" } Frame { msec: 272 - hash: "e24ad2d67f10d2cc58dffcc469342005" + hash: "f09208fa210f3b0b271af9ef6f3741e8" } Frame { msec: 288 - hash: "5153a42348885ce8de81f8086f73c163" + hash: "054f7aebcef583f9c8469aaa2e62f9ea" } Frame { msec: 304 - hash: "7083d70df6cc476ec342abbe6f4409b4" + hash: "1331b1218fa6134922ab248bfde5d3f6" } Frame { msec: 320 - hash: "befd4cd74f59291a9f9a01ad2a051029" + hash: "601b97220c77c185d9ed3ae3726815a5" } Frame { msec: 336 - hash: "705cd5a0717b6a8de8871bf0bfb38129" + hash: "487c739f3849834e3d7fa2885bb28375" } Frame { msec: 352 - hash: "a65d51747c0183a3a096e51326fdae78" + hash: "c41dc19ab7f3c80349ac52ab2c3b410d" } Frame { msec: 368 - hash: "99ec9ca33a26afd9e34c1d3246502926" + hash: "c6e8b055e5919aecbf2ef4d88de6cabd" } Frame { msec: 384 - hash: "3355ce4b409474e6dbd99d010471a0a4" + hash: "f9d99999cccd8a3a9d7cb74cadb08059" } Frame { msec: 400 - hash: "bcfb117c5860306c016a05e828773777" + hash: "c466c57cda1c7666a46bab9478031c86" } Frame { msec: 416 - hash: "4650216f60377bf7798877546c723d0a" + hash: "02f9c85d8cbd9041ed18d2fe0071c526" } Frame { msec: 432 - hash: "3821707e1201c5eebb043f86887c6bc4" + hash: "355d2b1b30a721a26f80c414bd9164f6" } Frame { msec: 448 - hash: "19c079bd61467706ff54f039f512dee6" + hash: "bfc8b1bdb53f4a4c44285a5c10819ae7" } Frame { msec: 464 - hash: "9fdd3bb7d735a96df8538f2883d784fe" + hash: "c272ac121fe5392f12ef3180d4c694c8" } Frame { msec: 480 - hash: "d8096b88c24221d7176472031de3dc14" + hash: "83324ab9209ac5246c39274ecec2dbcf" } Frame { msec: 496 - hash: "be4abb3dd1ee3fc62b83d152a1a89576" + hash: "b128fd583f5fa460bcd1c062226274fb" } Frame { msec: 512 - hash: "e3d2caf6eb0afd2e6efd5c08a580e158" + hash: "f46f1f1069806b1e17f340140e82bfd3" } Frame { msec: 528 - hash: "40bdf75ac82c26a741939945dbf85924" + hash: "dff621d5da5f4d008a8f874914f90637" } Frame { msec: 544 - hash: "e2e3bee6bf84bc82c50a68e442440f05" + hash: "c5920a84e215f4bbda3032bbfbca4070" } Frame { msec: 560 - hash: "2cb89b7538d4dd398a9ff5a94e2d0020" + hash: "ecc23f198a4bf346bf6eee51f7adea69" } Frame { msec: 576 - hash: "41dce41d337e7d24a5e70d831dbb448b" + hash: "dcc8f5b1b6aac31c3c5856560b37c501" } Frame { msec: 592 - hash: "7812862b4c1d67a64792a94cb584a9ed" + hash: "203fa4bd23440aa88fc2a27b66ee091d" } Frame { msec: 608 - hash: "a82a2af4b9cee89e03db363f979d1661" + hash: "a2662209c8f9aa7bd9c5b4066b289cde" } Frame { msec: 624 - hash: "7071a72a55fab2d7b367eb113d38dc6d" + hash: "a2662209c8f9aa7bd9c5b4066b289cde" } Frame { msec: 640 - hash: "835de3a883cb3a7c35cb533f51f9b32c" + hash: "203fa4bd23440aa88fc2a27b66ee091d" } Frame { msec: 656 - hash: "498afb76e236561638532ba6cafd758a" + hash: "dcc8f5b1b6aac31c3c5856560b37c501" } Frame { msec: 672 - hash: "38ebf5835263e6e80e75653971ad74b4" + hash: "ecc23f198a4bf346bf6eee51f7adea69" } Frame { msec: 688 - hash: "b5e8c06b458b1afac627ed7f7e76c868" + hash: "c5920a84e215f4bbda3032bbfbca4070" } Frame { msec: 704 - hash: "594e33c35006281b2df3a45c13c31c44" + hash: "dff621d5da5f4d008a8f874914f90637" } Frame { msec: 720 - hash: "a49989ca004a6991b49d1978cfc0fed7" + hash: "f46f1f1069806b1e17f340140e82bfd3" } Frame { msec: 736 - hash: "a743fc5cdcaadd42095e9e0d8441f7cc" + hash: "b128fd583f5fa460bcd1c062226274fb" } Frame { msec: 752 - hash: "4ca1600674bad4b753007322945e25dd" + hash: "83324ab9209ac5246c39274ecec2dbcf" } Frame { msec: 768 - hash: "d2921c6ae6a1aa9168a2fa93e8936ff2" + hash: "c272ac121fe5392f12ef3180d4c694c8" } Frame { msec: 784 - hash: "55b9f82693d6ebde9ec23e3ed554bb9c" + hash: "bfc8b1bdb53f4a4c44285a5c10819ae7" } Frame { msec: 800 - hash: "15e72f5cd1847f591b0c4f6ecb74ed4a" + hash: "355d2b1b30a721a26f80c414bd9164f6" } Frame { msec: 816 - hash: "7aa94688f72d6ddade09a9d99f1c5563" + hash: "02f9c85d8cbd9041ed18d2fe0071c526" } Frame { msec: 832 - hash: "b782f52c9cb50c72307bbd8fd15fffd2" + hash: "c466c57cda1c7666a46bab9478031c86" } Frame { msec: 848 - hash: "8106f20a3c0c3e7ea0e502e963993330" + hash: "f9d99999cccd8a3a9d7cb74cadb08059" } Frame { msec: 864 - hash: "670b05d25b72ed4c6affdcf873374947" + hash: "c6e8b055e5919aecbf2ef4d88de6cabd" } Frame { msec: 880 - hash: "a34b08cb7e724c0563f86a5c8e209868" + hash: "c41dc19ab7f3c80349ac52ab2c3b410d" } Frame { msec: 896 - hash: "f5281eba399a13f6fa024ae0fa6b01bd" + hash: "487c739f3849834e3d7fa2885bb28375" } Frame { msec: 912 - hash: "db4dba10574839c3b3d8684aa1a2ad08" + hash: "601b97220c77c185d9ed3ae3726815a5" } Frame { msec: 928 - hash: "b90f1f30d340d292c658145f62e2bb8a" + hash: "1331b1218fa6134922ab248bfde5d3f6" } Frame { msec: 944 - hash: "452c45b5cc9be80abde7af04ba49731c" + hash: "054f7aebcef583f9c8469aaa2e62f9ea" } Frame { msec: 960 - hash: "d9ab04d0a6a9373e5622e1124db17866" + hash: "f09208fa210f3b0b271af9ef6f3741e8" } Frame { msec: 976 - hash: "8af61e4b09309e31394ae635d58fafd2" + image: "animated-smooth.1.png" } Frame { msec: 992 - hash: "9ce60e38b7025c6fa72432de6a3c88b2" + hash: "9b398166d385facb2d02c86cd92ab85f" } Frame { msec: 1008 - hash: "9e7f9d0e83a33f005d9ee579140c5562" + hash: "f0b06b2ccf1be47ab7c5f6863ccdc495" } Frame { msec: 1024 - hash: "9e7f9d0e83a33f005d9ee579140c5562" + hash: "e42811f8029c6cd70041f8492a31ff27" } Frame { msec: 1040 - hash: "9ce60e38b7025c6fa72432de6a3c88b2" + hash: "ac1d21dba648ab729e1670ead441b173" } Frame { msec: 1056 - hash: "8af61e4b09309e31394ae635d58fafd2" + hash: "26cbcf6233c8fd222a857a8ae801749a" } Frame { msec: 1072 - hash: "d9ab04d0a6a9373e5622e1124db17866" + hash: "bca94a64a283e7e30ec8c1fe3249f981" } Frame { msec: 1088 - hash: "452c45b5cc9be80abde7af04ba49731c" + hash: "83d82bc27b0e3387dddb8e7e09380e02" } Frame { msec: 1104 - hash: "b90f1f30d340d292c658145f62e2bb8a" + hash: "183e1f8321edb7b8d1cc2cc858039360" } Frame { msec: 1120 - hash: "db4dba10574839c3b3d8684aa1a2ad08" + hash: "425e48ae492190eb6b8028be11352d7e" } Frame { msec: 1136 - hash: "f5281eba399a13f6fa024ae0fa6b01bd" + hash: "7f4b50df7848ad07fb75cb19f2c4b04a" } Frame { msec: 1152 - hash: "a34b08cb7e724c0563f86a5c8e209868" + hash: "9ab9c8f788bbca58552bbb6009386d69" } Frame { msec: 1168 - hash: "670b05d25b72ed4c6affdcf873374947" + hash: "8ba2cebd7b80bd58612ce46470e7763b" } Frame { msec: 1184 - hash: "8106f20a3c0c3e7ea0e502e963993330" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1200 - hash: "b782f52c9cb50c72307bbd8fd15fffd2" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1216 - hash: "7aa94688f72d6ddade09a9d99f1c5563" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1232 - hash: "15e72f5cd1847f591b0c4f6ecb74ed4a" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1248 - hash: "55b9f82693d6ebde9ec23e3ed554bb9c" - } - Frame { - msec: 1264 - hash: "d2921c6ae6a1aa9168a2fa93e8936ff2" - } - Frame { - msec: 1280 - hash: "4ca1600674bad4b753007322945e25dd" - } - Frame { - msec: 1296 - hash: "a743fc5cdcaadd42095e9e0d8441f7cc" - } - Frame { - msec: 1312 - hash: "a49989ca004a6991b49d1978cfc0fed7" - } - Frame { - msec: 1328 - hash: "594e33c35006281b2df3a45c13c31c44" - } - Frame { - msec: 1344 - hash: "b5e8c06b458b1afac627ed7f7e76c868" - } - Frame { - msec: 1360 - hash: "38ebf5835263e6e80e75653971ad74b4" - } - Frame { - msec: 1376 - hash: "498afb76e236561638532ba6cafd758a" - } - Frame { - msec: 1392 - hash: "835de3a883cb3a7c35cb533f51f9b32c" - } - Frame { - msec: 1408 - hash: "7071a72a55fab2d7b367eb113d38dc6d" - } - Frame { - msec: 1424 - hash: "a82a2af4b9cee89e03db363f979d1661" - } - Frame { - msec: 1440 - hash: "7812862b4c1d67a64792a94cb584a9ed" - } - Frame { - msec: 1456 - hash: "41dce41d337e7d24a5e70d831dbb448b" - } - Frame { - msec: 1472 - hash: "2cb89b7538d4dd398a9ff5a94e2d0020" - } - Frame { - msec: 1488 - hash: "e2e3bee6bf84bc82c50a68e442440f05" - } - Frame { - msec: 1504 - hash: "40bdf75ac82c26a741939945dbf85924" - } - Frame { - msec: 1520 - hash: "e3d2caf6eb0afd2e6efd5c08a580e158" - } - Frame { - msec: 1536 - hash: "be4abb3dd1ee3fc62b83d152a1a89576" - } - Frame { - msec: 1552 - hash: "d8096b88c24221d7176472031de3dc14" - } - Frame { - msec: 1568 - hash: "9fdd3bb7d735a96df8538f2883d784fe" - } - Frame { - msec: 1584 - hash: "19c079bd61467706ff54f039f512dee6" - } - Frame { - msec: 1600 - hash: "3821707e1201c5eebb043f86887c6bc4" - } - Frame { - msec: 1616 - hash: "4650216f60377bf7798877546c723d0a" - } - Frame { - msec: 1632 - hash: "bcfb117c5860306c016a05e828773777" - } - Frame { - msec: 1648 - hash: "3355ce4b409474e6dbd99d010471a0a4" - } - Frame { - msec: 1664 - hash: "99ec9ca33a26afd9e34c1d3246502926" - } - Frame { - msec: 1680 - hash: "a65d51747c0183a3a096e51326fdae78" - } - Frame { - msec: 1696 - hash: "705cd5a0717b6a8de8871bf0bfb38129" - } - Frame { - msec: 1712 - hash: "befd4cd74f59291a9f9a01ad2a051029" - } - Frame { - msec: 1728 - hash: "7083d70df6cc476ec342abbe6f4409b4" - } - Frame { - msec: 1744 - hash: "5153a42348885ce8de81f8086f73c163" - } - Frame { - msec: 1760 - hash: "e24ad2d67f10d2cc58dffcc469342005" - } - Frame { - msec: 1776 - hash: "7722a4c025f1d2b560c7fec8ba8f7b6d" - } - Frame { - msec: 1792 - hash: "3ef9de605fff5d3156bccc99a93c5da6" - } - Frame { - msec: 1808 - hash: "b221f14ea2c04078e23ac37ef817c50e" - } - Frame { - msec: 1824 - hash: "05013a538f2796c728b4d0ddad059851" - } - Frame { - msec: 1840 - hash: "30aadc837ec2e7d8a2495453348804bc" - } - Frame { - msec: 1856 - hash: "098b063b0e5eb3dd22adb3353342725e" - } - Frame { - msec: 1872 - hash: "e4809aefa55620a86484f66582d4d1b6" - } - Frame { - msec: 1888 - hash: "98d48920293b11511e8bbf820dd49acc" - } - Frame { - msec: 1904 - hash: "2570806925c3a61a7afaa09331c6eed8" - } - Frame { - msec: 1920 - hash: "a9b6aeb509076bf17c2068ce280326fb" - } - Frame { - msec: 1936 - hash: "62430dd693c4eaeb7afe9e85229406a4" - } - Frame { - msec: 1952 - hash: "9419c891e347fe6b25d30c05bae5d14c" - } - Frame { - msec: 1968 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 1984 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2000 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2016 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2032 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2048 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2064 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2080 - hash: "9419c891e347fe6b25d30c05bae5d14c" - } - Frame { - msec: 2096 - hash: "62430dd693c4eaeb7afe9e85229406a4" - } - Frame { - msec: 2112 - hash: "a9b6aeb509076bf17c2068ce280326fb" - } - Frame { - msec: 2128 - hash: "2570806925c3a61a7afaa09331c6eed8" - } - Frame { - msec: 2144 - hash: "98d48920293b11511e8bbf820dd49acc" + hash: "a2467396d7318a93d35aa314896d3d05" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png index bebca88..b7d06e4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png index 517fc06..a0081a9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml index 55cf602..87be9f0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml @@ -10,546 +10,334 @@ VisualTest { } Frame { msec: 32 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 48 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 64 - hash: "aec13bcab337e55832b0a02fb5c6b526" + hash: "ed19378ea8f51f5ecbd4c89ee5c905c2" } Frame { msec: 80 - hash: "aacf9ae3c23d174a1c1cda493600e355" + hash: "3dc69d5d1b6c524a74e7cec619df5ee3" } Frame { msec: 96 - hash: "465ec993948f7b75aeb5759976f4620d" + hash: "ab8d9aa7290be2134a6ef10ca1e1bfe7" } Frame { msec: 112 - hash: "b63e4d1686057828fd8781f1c33585f5" + hash: "8091f4ff6f68e178b7a2a76ba2b38df3" } Frame { msec: 128 - hash: "4d45d70f997c2c67166905c97a900d2e" + hash: "a94ad01eb63609b5e4a9e6570e1dc25c" } Frame { msec: 144 - hash: "08b9be66e23c7b6f6f629c7470394601" + hash: "21692407cdfeeb20ff81d5d8a8ba3b7e" } Frame { msec: 160 - hash: "406224b535b4425d2708df0083acdc8e" + hash: "b1d5e860ea311dce4a46fd6d46f9ed58" } Frame { msec: 176 - hash: "8419f1d75b14130730bcfec4e3a9b058" + hash: "a2ef453b88ee01c70a4312ab6dd26685" } Frame { msec: 192 - hash: "c1936628aec13e08e9581dcd2c6d5717" + hash: "6ce1f7da3994a51ad06afa0afb789752" } Frame { msec: 208 - hash: "8c66a33d26eec2a1133f4362710a5fab" + hash: "dccf9c55dfe7ae652b0e659893465158" } Frame { msec: 224 - hash: "01947e631c3db43f7c5b4427229bc0c8" + hash: "18b00b462711676fdf61ef1819f9f73a" } Frame { msec: 240 - hash: "06d8d8a1a41893d4e27725948a75caf4" + hash: "981011b01c3dbde098b1a3d0de4026cd" } Frame { msec: 256 - hash: "ac8f096e8c7cc23bfb01de69cf3e266e" + hash: "86389b057e84c4dd4cf75d4e33d5e282" } Frame { msec: 272 - hash: "2a7bed775824968e318c3d40fbc5b1c2" + hash: "6802146ad90b2921856c103246f4bca9" } Frame { msec: 288 - hash: "f1a7a4a67a21f5025294af4bea3f8998" + hash: "7ab7d71199e883192e28fc150646128c" } Frame { msec: 304 - hash: "18c2f321a149e38b258ac264d40c2376" + hash: "3d2298cc655318029a2467813f8d75f4" } Frame { msec: 320 - hash: "19d05a96f3ae7388e854bbf1075b51c1" + hash: "74a1ed7250f85e7ed4d811b5b697ecb3" } Frame { msec: 336 - hash: "554e1d360463871e7c05cfe6f8abe1dd" + hash: "2cc6d5e8f4ebde059ffe31fffb2b359d" } Frame { msec: 352 - hash: "60f158382f75103c78e2b9b408e0fe65" + hash: "b08aec6d9f82e0d530d57f592c25e91a" } Frame { msec: 368 - hash: "6a521f952e05d91b86ad78fd6f5de4f9" + hash: "9f4272d24685a9fbe5c48186932cac07" } Frame { msec: 384 - hash: "a6f17da2dd581bdc249ff62f833dc025" + hash: "4cde877841640aa89949c1369c3b6fd0" } Frame { msec: 400 - hash: "1ea07ee309ce2c52cbc36370b75a872f" + hash: "bdbbd0b6a309b63d152b7f9b34b51d80" } Frame { msec: 416 - hash: "c7eb7837dce71c914186326216214eeb" + hash: "531708677915c1e094ece6f1acac6d1f" } Frame { msec: 432 - hash: "93cf31eabb454ec536c638a506be0648" + hash: "7213628b1f66f1dc47fa63eb2aad2d81" } Frame { msec: 448 - hash: "1ac8c393f084aa1894c26610b7f40ea6" + hash: "0ff58a47d524fae956431efc21364ed2" } Frame { msec: 464 - hash: "f04e84ad3579d6334077abe73101d206" + hash: "1e940cc44e00f05bad28bcf934b40b1c" } Frame { msec: 480 - hash: "ff0928dfd16b2da9811a172c19817a97" + hash: "0f76be39637e8b6ac15c40ea95890189" } Frame { msec: 496 - hash: "7383209c80b403b93da3264eadbc047f" + hash: "e23cf00dbd05677815e7e38f6f8e3a4a" } Frame { msec: 512 - hash: "bc747167dfb3388ac63e9e68a86b9a03" + hash: "3d7e81620d169800f6a251fa3875f23d" } Frame { msec: 528 - hash: "ae48da4a66f93c806725ce749700aac8" + hash: "9e04076e283a3a71407488e94d84861f" } Frame { msec: 544 - hash: "956429472da133324c970774f77784f5" + hash: "f4fc58740d6b5cf392e117164d859c0b" } Frame { msec: 560 - hash: "ec0aea8dc8c269d1f0aee5817347ac55" + hash: "8f041ba2a82618c1545aac6f50c95384" } Frame { msec: 576 - hash: "81d2fc6727dc7449d1a87b4abea9b704" + hash: "759368622bc25c7ae1cb8d2c44affe6a" } Frame { msec: 592 - hash: "80ebac4d923f67fb8dba3d133ce657ba" + hash: "90314671aab8165c7c1b35dcf5aaa6b9" } Frame { msec: 608 - hash: "5359f5e45e5467c62c2d9521c8199c48" + hash: "ecd1d2fe087a36fc58290c0c249a7ea0" } Frame { msec: 624 - hash: "08f55088cdce741c67539f73291e53ab" + hash: "ecd1d2fe087a36fc58290c0c249a7ea0" } Frame { msec: 640 - hash: "97f7a2175dcf9ac2581a92d614d72f88" + hash: "90314671aab8165c7c1b35dcf5aaa6b9" } Frame { msec: 656 - hash: "985868869ef2c332da379460a2f3a71b" + hash: "759368622bc25c7ae1cb8d2c44affe6a" } Frame { msec: 672 - hash: "e91bb914c1eb63cd4269b30a220a128a" + hash: "8f041ba2a82618c1545aac6f50c95384" } Frame { msec: 688 - hash: "84c94704c16e246df1048f958cc8cefb" + hash: "f4fc58740d6b5cf392e117164d859c0b" } Frame { msec: 704 - hash: "99de44f74f8e1f79652ab46afb4bb59e" + hash: "9e04076e283a3a71407488e94d84861f" } Frame { msec: 720 - hash: "a1bd4e995365e79389dba80f9e3b7af8" + hash: "3d7e81620d169800f6a251fa3875f23d" } Frame { msec: 736 - hash: "3b95eb8cbfc831e1ebee2e456b026ab4" + hash: "e23cf00dbd05677815e7e38f6f8e3a4a" } Frame { msec: 752 - hash: "11673a112566a64aca3c7010b9cc9c4d" + hash: "0f76be39637e8b6ac15c40ea95890189" } Frame { msec: 768 - hash: "5b027815ea3c1ea54e1a02c798c468db" + hash: "1e940cc44e00f05bad28bcf934b40b1c" } Frame { msec: 784 - hash: "73c5f23f51797a33f4d2898738e6356e" + hash: "0ff58a47d524fae956431efc21364ed2" } Frame { msec: 800 - hash: "fb17df681d99d5de05f6329bba697ea5" + hash: "7213628b1f66f1dc47fa63eb2aad2d81" } Frame { msec: 816 - hash: "0b1a741975e3d9ef8f5e78f371c89441" + hash: "531708677915c1e094ece6f1acac6d1f" } Frame { msec: 832 - hash: "a790f0e884ab85f7802dd094e4ef550f" + hash: "bdbbd0b6a309b63d152b7f9b34b51d80" } Frame { msec: 848 - hash: "b12faa76c07adc21634cd8f8cb8436ae" + hash: "4cde877841640aa89949c1369c3b6fd0" } Frame { msec: 864 - hash: "f57727419bb51fb1e589b960ddeb20ae" + hash: "9f4272d24685a9fbe5c48186932cac07" } Frame { msec: 880 - hash: "8172e076b05d95248d89e815fde820ef" + hash: "b08aec6d9f82e0d530d57f592c25e91a" } Frame { msec: 896 - hash: "74c1e71378b502bc1b732a55806a10f1" + hash: "2cc6d5e8f4ebde059ffe31fffb2b359d" } Frame { msec: 912 - hash: "a67e9a0f55512fb1c55f13c6b483923b" + hash: "74a1ed7250f85e7ed4d811b5b697ecb3" } Frame { msec: 928 - hash: "13ca95adab171d9fad9ee8b75d0226bc" + hash: "3d2298cc655318029a2467813f8d75f4" } Frame { msec: 944 - hash: "7aa0cbf73f7999be7cde4ec739efbc33" + hash: "7ab7d71199e883192e28fc150646128c" } Frame { msec: 960 - hash: "d1ed4916cb1ecff60277d74369ff311b" + hash: "6802146ad90b2921856c103246f4bca9" } Frame { msec: 976 - hash: "29245946cbd811fe6bf6b2b41cc13002" + image: "animated.1.png" } Frame { msec: 992 - hash: "058c918e83bfdd665cd836566b53959b" + hash: "981011b01c3dbde098b1a3d0de4026cd" } Frame { msec: 1008 - hash: "ed5d80c33dbf72624385b1cf43784626" + hash: "18b00b462711676fdf61ef1819f9f73a" } Frame { msec: 1024 - hash: "ed5d80c33dbf72624385b1cf43784626" + hash: "dccf9c55dfe7ae652b0e659893465158" } Frame { msec: 1040 - hash: "058c918e83bfdd665cd836566b53959b" + hash: "6ce1f7da3994a51ad06afa0afb789752" } Frame { msec: 1056 - hash: "29245946cbd811fe6bf6b2b41cc13002" + hash: "a2ef453b88ee01c70a4312ab6dd26685" } Frame { msec: 1072 - hash: "d1ed4916cb1ecff60277d74369ff311b" + hash: "b1d5e860ea311dce4a46fd6d46f9ed58" } Frame { msec: 1088 - hash: "7aa0cbf73f7999be7cde4ec739efbc33" + hash: "21692407cdfeeb20ff81d5d8a8ba3b7e" } Frame { msec: 1104 - hash: "13ca95adab171d9fad9ee8b75d0226bc" + hash: "a94ad01eb63609b5e4a9e6570e1dc25c" } Frame { msec: 1120 - hash: "a67e9a0f55512fb1c55f13c6b483923b" + hash: "8091f4ff6f68e178b7a2a76ba2b38df3" } Frame { msec: 1136 - hash: "74c1e71378b502bc1b732a55806a10f1" + hash: "ab8d9aa7290be2134a6ef10ca1e1bfe7" } Frame { msec: 1152 - hash: "8172e076b05d95248d89e815fde820ef" + hash: "3dc69d5d1b6c524a74e7cec619df5ee3" } Frame { msec: 1168 - hash: "f57727419bb51fb1e589b960ddeb20ae" + hash: "ed19378ea8f51f5ecbd4c89ee5c905c2" } Frame { msec: 1184 - hash: "b12faa76c07adc21634cd8f8cb8436ae" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1200 - hash: "a790f0e884ab85f7802dd094e4ef550f" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1216 - hash: "0b1a741975e3d9ef8f5e78f371c89441" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1232 - hash: "fb17df681d99d5de05f6329bba697ea5" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1248 - hash: "73c5f23f51797a33f4d2898738e6356e" + hash: "a2467396d7318a93d35aa314896d3d05" } Frame { msec: 1264 - hash: "5b027815ea3c1ea54e1a02c798c468db" + hash: "ed19378ea8f51f5ecbd4c89ee5c905c2" } Frame { msec: 1280 - hash: "11673a112566a64aca3c7010b9cc9c4d" + hash: "3dc69d5d1b6c524a74e7cec619df5ee3" } Frame { msec: 1296 - hash: "3b95eb8cbfc831e1ebee2e456b026ab4" + hash: "ab8d9aa7290be2134a6ef10ca1e1bfe7" } Frame { msec: 1312 - hash: "a1bd4e995365e79389dba80f9e3b7af8" + hash: "8091f4ff6f68e178b7a2a76ba2b38df3" } Frame { msec: 1328 - hash: "99de44f74f8e1f79652ab46afb4bb59e" + hash: "a94ad01eb63609b5e4a9e6570e1dc25c" } Frame { msec: 1344 - hash: "84c94704c16e246df1048f958cc8cefb" - } - Frame { - msec: 1360 - hash: "e91bb914c1eb63cd4269b30a220a128a" - } - Frame { - msec: 1376 - hash: "985868869ef2c332da379460a2f3a71b" - } - Frame { - msec: 1392 - hash: "97f7a2175dcf9ac2581a92d614d72f88" - } - Frame { - msec: 1408 - hash: "08f55088cdce741c67539f73291e53ab" - } - Frame { - msec: 1424 - hash: "5359f5e45e5467c62c2d9521c8199c48" - } - Frame { - msec: 1440 - hash: "80ebac4d923f67fb8dba3d133ce657ba" - } - Frame { - msec: 1456 - hash: "81d2fc6727dc7449d1a87b4abea9b704" - } - Frame { - msec: 1472 - hash: "ec0aea8dc8c269d1f0aee5817347ac55" - } - Frame { - msec: 1488 - hash: "956429472da133324c970774f77784f5" - } - Frame { - msec: 1504 - hash: "ae48da4a66f93c806725ce749700aac8" - } - Frame { - msec: 1520 - hash: "bc747167dfb3388ac63e9e68a86b9a03" - } - Frame { - msec: 1536 - hash: "7383209c80b403b93da3264eadbc047f" - } - Frame { - msec: 1552 - hash: "ff0928dfd16b2da9811a172c19817a97" - } - Frame { - msec: 1568 - hash: "f04e84ad3579d6334077abe73101d206" - } - Frame { - msec: 1584 - hash: "1ac8c393f084aa1894c26610b7f40ea6" - } - Frame { - msec: 1600 - hash: "93cf31eabb454ec536c638a506be0648" - } - Frame { - msec: 1616 - hash: "c7eb7837dce71c914186326216214eeb" - } - Frame { - msec: 1632 - hash: "1ea07ee309ce2c52cbc36370b75a872f" - } - Frame { - msec: 1648 - hash: "a6f17da2dd581bdc249ff62f833dc025" - } - Frame { - msec: 1664 - hash: "6a521f952e05d91b86ad78fd6f5de4f9" - } - Frame { - msec: 1680 - hash: "60f158382f75103c78e2b9b408e0fe65" - } - Frame { - msec: 1696 - hash: "554e1d360463871e7c05cfe6f8abe1dd" - } - Frame { - msec: 1712 - hash: "19d05a96f3ae7388e854bbf1075b51c1" - } - Frame { - msec: 1728 - hash: "18c2f321a149e38b258ac264d40c2376" - } - Frame { - msec: 1744 - hash: "f1a7a4a67a21f5025294af4bea3f8998" - } - Frame { - msec: 1760 - hash: "2a7bed775824968e318c3d40fbc5b1c2" - } - Frame { - msec: 1776 - hash: "ac8f096e8c7cc23bfb01de69cf3e266e" - } - Frame { - msec: 1792 - hash: "06d8d8a1a41893d4e27725948a75caf4" - } - Frame { - msec: 1808 - hash: "01947e631c3db43f7c5b4427229bc0c8" - } - Frame { - msec: 1824 - hash: "8c66a33d26eec2a1133f4362710a5fab" - } - Frame { - msec: 1840 - hash: "c1936628aec13e08e9581dcd2c6d5717" - } - Frame { - msec: 1856 - hash: "8419f1d75b14130730bcfec4e3a9b058" - } - Frame { - msec: 1872 - hash: "406224b535b4425d2708df0083acdc8e" - } - Frame { - msec: 1888 - hash: "08b9be66e23c7b6f6f629c7470394601" - } - Frame { - msec: 1904 - hash: "4d45d70f997c2c67166905c97a900d2e" - } - Frame { - msec: 1920 - hash: "b63e4d1686057828fd8781f1c33585f5" - } - Frame { - msec: 1936 - hash: "465ec993948f7b75aeb5759976f4620d" - } - Frame { - msec: 1952 - hash: "aacf9ae3c23d174a1c1cda493600e355" - } - Frame { - msec: 1968 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 1984 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2000 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2016 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2032 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2048 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2064 - hash: "aec13bcab337e55832b0a02fb5c6b526" - } - Frame { - msec: 2080 - hash: "aacf9ae3c23d174a1c1cda493600e355" - } - Frame { - msec: 2096 - hash: "465ec993948f7b75aeb5759976f4620d" - } - Frame { - msec: 2112 - hash: "b63e4d1686057828fd8781f1c33585f5" - } - Frame { - msec: 2128 - hash: "4d45d70f997c2c67166905c97a900d2e" - } - Frame { - msec: 2144 - hash: "08b9be66e23c7b6f6f629c7470394601" - } - Frame { - msec: 2160 - hash: "406224b535b4425d2708df0083acdc8e" - } - Frame { - msec: 2176 - hash: "8419f1d75b14130730bcfec4e3a9b058" - } - Frame { - msec: 2192 - hash: "c1936628aec13e08e9581dcd2c6d5717" + hash: "21692407cdfeeb20ff81d5d8a8ba3b7e" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png index 03d7082..8d43554 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png index 2d29f35..c7d4e1d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png index 507d9ca..9373fae 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png index 1622522..7a30196 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png new file mode 100644 index 0000000..4c4d17c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml index 0b84ecd..5cb4f78 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml @@ -318,7 +318,7 @@ VisualTest { } Frame { msec: 976 - hash: "de5647af86a322921dcc68e81979a3cc" + image: "flickable-horizontal.1.png" } Frame { msec: 992 @@ -606,7 +606,7 @@ VisualTest { } Frame { msec: 1936 - hash: "45ea16bca2c9ae07cb7dead1e24f6ed0" + image: "flickable-horizontal.2.png" } Mouse { type: 5 @@ -878,7 +878,7 @@ VisualTest { } Frame { msec: 2896 - hash: "e2166fe87d04be70a9b1d4c8d1002b49" + image: "flickable-horizontal.3.png" } Frame { msec: 2912 @@ -1358,7 +1358,7 @@ VisualTest { } Frame { msec: 3856 - hash: "90f94986ab44ab59618e9a5da17b8cc9" + image: "flickable-horizontal.4.png" } Frame { msec: 3872 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png index d525858..2af1a3e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png index 6ab0a15..8334a3f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png index 9dd9ae8..c705849 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png index d525858..c705849 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png index d525858..349dca2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png index c066392..a0e84e3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png index e7accc7..e5c1583 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png index f282709..2af1a3e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png index f282709..06468e4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml index dc24d99..8c746bf 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml @@ -10,197 +10,101 @@ VisualTest { } Frame { msec: 32 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 48 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 64 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 80 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 96 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 112 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 128 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 144 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 160 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 176 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 192 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 208 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 224 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 240 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 256 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 272 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { msec: 288 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 304 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 320 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 336 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 352 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 368 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 384 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 400 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 416 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 432 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 448 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 464 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 480 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 496 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 512 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 528 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 544 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 560 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 576 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 592 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 608 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 624 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 640 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 656 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 2 button: 1 buttons: 1 - x: 143; y: 471 + x: 159; y: 207 modifiers: 0 sendToViewport: true } Frame { - msec: 672 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" - } - Frame { - msec: 688 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 304 + hash: "3d1b648229210ae5b57a0be51cc02f67" } Mouse { type: 5 button: 0 buttons: 1 - x: 143; y: 470 + x: 159; y: 206 modifiers: 0 sendToViewport: true } Frame { - msec: 704 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 320 + hash: "3d1b648229210ae5b57a0be51cc02f67" } Mouse { type: 5 button: 0 buttons: 1 - x: 144; y: 469 + x: 159; y: 205 modifiers: 0 sendToViewport: true } @@ -208,19 +112,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 144; y: 467 + x: 159; y: 203 modifiers: 0 sendToViewport: true } Frame { - msec: 720 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 336 + hash: "3d1b648229210ae5b57a0be51cc02f67" } Mouse { type: 5 button: 0 buttons: 1 - x: 144; y: 463 + x: 159; y: 199 modifiers: 0 sendToViewport: true } @@ -228,19 +132,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 146; y: 453 + x: 157; y: 190 modifiers: 0 sendToViewport: true } Frame { - msec: 736 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 352 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 148; y: 433 + x: 155; y: 176 modifiers: 0 sendToViewport: true } @@ -248,31 +152,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 148; y: 410 + x: 153; y: 158 modifiers: 0 sendToViewport: true } Frame { - msec: 752 - hash: "26a71f2ecae39fb2f61ab13ad4fe2796" + msec: 368 + hash: "57fa1d842d37df12004b493c1c5761f3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 151; y: 141 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 148; y: 365 + x: 148; y: 118 modifiers: 0 sendToViewport: true } Frame { - msec: 768 - hash: "5aedca385a68ed5f6281c48a57bb94e5" + msec: 384 + hash: "521a8188877551a97cd3ea82d209e8ae" } Mouse { type: 5 button: 0 buttons: 1 - x: 148; y: 340 + x: 146; y: 94 modifiers: 0 sendToViewport: true } @@ -280,19 +192,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 146; y: 319 + x: 141; y: 70 modifiers: 0 sendToViewport: true } Frame { - msec: 784 - hash: "4ee9f528fecf850db3be24a26241c2c5" + msec: 400 + hash: "ce126aaade1532e22a35416fd7203dde" } Mouse { type: 5 button: 0 buttons: 1 - x: 144; y: 300 + x: 136; y: 46 modifiers: 0 sendToViewport: true } @@ -300,143 +212,163 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 144; y: 300 + x: 136; y: 46 modifiers: 0 sendToViewport: true } Frame { - msec: 800 - hash: "bc83cb2708fba7bae035bc5da984fc71" + msec: 416 + hash: "aa9c4301332240ccc00ec99a05b7f9c9" } Frame { - msec: 816 - hash: "1d0ca08757375ac51024b83c0d224474" + msec: 432 + hash: "db0a670d61133a3420a3581ecb532773" } Frame { - msec: 832 - hash: "ee09f63ce3b3ead641ba4a4853772d41" + msec: 448 + hash: "b34de164d5ec0294ca27281e1e5e3cd6" } Frame { - msec: 848 - hash: "5e944bc5723d75fa859f7cb8d2b106e1" + msec: 464 + hash: "8636af4591c61c4b4a548f3a38749413" } Frame { - msec: 864 - hash: "55ab5752ac0f4c93f5db6c92c519e5fb" + msec: 480 + hash: "eee4fa336149528dfb16565b856ca692" } Frame { - msec: 880 - hash: "026bd0f5e380d54b8688172e44ff9f08" + msec: 496 + hash: "85eeaeaf359ed87417be68dc18c06d0c" } Frame { - msec: 896 - hash: "5812a751d877896801a4bc6d2dd3ecc8" + msec: 512 + hash: "d5db4af6cf35c61146bd24646d82ab83" } Frame { - msec: 912 - hash: "2e6fd08a00480c4a018311d7ef3d0f50" + msec: 528 + hash: "2189fc03c337fe41f3d9f51929c9860f" } Frame { - msec: 928 - hash: "981ea7420d7ab189bb17fbfdde889471" + msec: 544 + hash: "4e3e283fb402dc4ec79f65878a513747" } Frame { - msec: 944 - hash: "b3b737cb536205f6d0faef4f8b1f2e77" + msec: 560 + hash: "62f4281d8e049bc12b636b7ebe3862df" } Frame { - msec: 960 - hash: "f1192763bfb9efacc47828866abacaea" + msec: 576 + hash: "cf9a0a968459a1283fff91102eb29ba3" } Frame { - msec: 976 - hash: "4dafcfd5f5c5de1e83b9b7514ba5bde0" + msec: 592 + hash: "c432221928096cff3b76c8034db26b43" } Frame { - msec: 992 - hash: "97104a677cb208783522af82f4690003" + msec: 608 + hash: "3df59808e56955c3c161609b72d93c7f" } Frame { - msec: 1008 - hash: "4b1f38c9fdd8f79f2c43273913438ddc" + msec: 624 + hash: "c497bcbe500905b8a69fd310fd7c7e1a" } Frame { - msec: 1024 - hash: "7f76a7579174d7f8ea0e0819f70aebf6" + msec: 640 + hash: "7dceef52fab6dc38d140e3097e39a271" } Frame { - msec: 1040 - hash: "97dd3be905cb37a7f178f27018ffe0f8" + msec: 656 + hash: "c7bbd81b452db98fb8fd892762a23df6" } Frame { - msec: 1056 - hash: "19fa6136cba216000b3ce56f0b7c02e6" + msec: 672 + hash: "17efc9793ef2966722544d561312b17a" } Frame { - msec: 1072 - hash: "e311e2cb0c6c6a844f092dcbf2b89a70" + msec: 688 + hash: "1bf05b272ad6b8e5d134c94d9ba62030" } Frame { - msec: 1088 - hash: "a954794d643718ca538ce1347ee93899" + msec: 704 + hash: "cad61ba68fdfb26cfb136f22a2f8cc0c" } Frame { - msec: 1104 - hash: "1b97f96d6615d2455ab49262347d3ae7" + msec: 720 + hash: "0ce5ff1a1d9a6193ef763affa39cb790" } Frame { - msec: 1120 - hash: "4ce55b03ac0ab7d6301b8185e139667d" + msec: 736 + hash: "880bce9130454aaf1261842b8f9b9a57" } Frame { - msec: 1136 - hash: "c0c37b06ccca61524ee3530a3e9707c6" + msec: 752 + hash: "ab78cadac88156d9755d8b70d26384e8" } Frame { - msec: 1152 - hash: "9cddaaaa52819cbb2dd740c31ebed5e2" + msec: 768 + hash: "4a22e502c105a7df0845ca75cbdfb0ec" } Frame { - msec: 1168 - hash: "5c82f9c2c59d3b844c7eb1bef77c2722" + msec: 784 + hash: "d6209a0b9b9e0f2072179a4623c70fbd" } Frame { - msec: 1184 - hash: "27b8e460849e8a06ad35e147f725d6df" + msec: 800 + hash: "85e85567831cf57df1f013f5bf3beb86" } Frame { - msec: 1200 - hash: "381c0e45f68daf697f80fb0cb87f028e" + msec: 816 + hash: "602d2e02029178faeb99748e2f70827e" + } + Frame { + msec: 832 + hash: "fd4dbb6f47f6681af98eb6781ae7de58" + } + Frame { + msec: 848 + hash: "faf3be40e402768724703f5d0051249f" + } + Frame { + msec: 864 + hash: "bc650ca5b7a3bdc1f0f051b9481faf29" } Mouse { type: 2 button: 1 buttons: 1 - x: 121; y: 138 + x: 109; y: 69 modifiers: 0 sendToViewport: true } Frame { - msec: 1216 - hash: "f4b378fcf727ba85bcbf90c938dc9806" + msec: 880 + hash: "bc650ca5b7a3bdc1f0f051b9481faf29" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 110; y: 70 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 121; y: 141 + x: 110; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 1232 - hash: "f4b378fcf727ba85bcbf90c938dc9806" + msec: 896 + hash: "bc650ca5b7a3bdc1f0f051b9481faf29" } Mouse { type: 5 button: 0 buttons: 1 - x: 121; y: 144 + x: 110; y: 74 modifiers: 0 sendToViewport: true } @@ -444,31 +376,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 121; y: 155 + x: 111; y: 79 modifiers: 0 sendToViewport: true } Frame { - msec: 1248 - hash: "852a7007d816d4cbec894f42549311f0" + msec: 912 + hash: "f2a679f2b7585245d4f1896fed4e0d1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 111; y: 89 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 119; y: 185 + x: 113; y: 104 modifiers: 0 sendToViewport: true } Frame { - msec: 1264 - hash: "1ecc94e9c4aec0fa099816a7276f484a" + msec: 928 + hash: "721b5fa42f583c1e1e1a751fc8aad270" } Mouse { type: 5 button: 0 buttons: 1 - x: 122; y: 206 + x: 115; y: 119 modifiers: 0 sendToViewport: true } @@ -476,19 +416,47 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 124; y: 228 + x: 115; y: 135 modifiers: 0 sendToViewport: true } Frame { - msec: 1280 - hash: "8d74af236c5b0023b0577235f74aad7a" + msec: 944 + hash: "7e3ddefca9a99d6b9103ffd4524bc593" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 160 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 120; y: 183 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 960 + hash: "7858d23cb4c206676eca51c1c09802b5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 205 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 128; y: 270 + x: 124; y: 230 modifiers: 0 sendToViewport: true } @@ -496,431 +464,331 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 128; y: 270 + x: 124; y: 230 modifiers: 0 sendToViewport: true } Frame { - msec: 1296 - hash: "5485c7dd5e79c3823c0c9258470f8ca7" + msec: 976 + image: "flickable-vertical.1.png" } Frame { - msec: 1312 - hash: "a5fe758873729aeaf0a0c45fbdcc9b8f" + msec: 992 + hash: "e723da5ecaffe31f03b1d5ca6765229b" } Frame { - msec: 1328 - hash: "7b134402e3268b66e3fc7e16624463ee" + msec: 1008 + hash: "73d169bf6bdfce801b824b7b560c3fad" } Frame { - msec: 1344 - hash: "146f339b009287872f22d27892c0e2e5" + msec: 1024 + hash: "4e3e283fb402dc4ec79f65878a513747" } Frame { - msec: 1360 - hash: "1436a3a4cd29690da39ead7d08f0c927" + msec: 1040 + hash: "38c2e2835c20dbee55c69d0211a0be2d" } Frame { - msec: 1376 - hash: "1cdabb8da157c35c1bcc5d5965d60e59" + msec: 1056 + hash: "84e668ba374ff0004dd7222933a635cf" } Frame { - msec: 1392 - hash: "b05878876db2fbfde1cf4069f2dae3db" + msec: 1072 + hash: "349c7a84ff8f9b52d39dba1282353167" } Frame { - msec: 1408 - hash: "6f8089424b163d79c7bcfe1715eca6ee" + msec: 1088 + hash: "b63218110c65b6d7b4bc2d63155204cd" } Frame { - msec: 1424 - hash: "91ffc70bd8a4e0f917d534131de849cf" + msec: 1104 + hash: "aad65a7070aa668dd8ce4a3cc0f0f117" } Frame { - msec: 1440 - hash: "5c03d99e1bf12f55de8fc36742d7a962" + msec: 1120 + hash: "c4ae97e1d1f2efbc998f9b57c2373201" } Frame { - msec: 1456 - hash: "bc22d18311f322713a046763262b65f8" + msec: 1136 + hash: "94701ffaa4f45924ad89f92a30157c7d" } Frame { - msec: 1472 - hash: "59557c6874603decba5d383d3429005a" + msec: 1152 + hash: "eee4fa336149528dfb16565b856ca692" } Frame { - msec: 1488 - hash: "e2df3b279fffcd89c90afbfdbf14b5b3" + msec: 1168 + hash: "ff1a053c0af99c51353503002515843d" } Frame { - msec: 1504 - hash: "a0aab7c147a30bb1765dec0f461b0ac1" + msec: 1184 + hash: "118494c60034b0e265e28b34e3128d00" } Frame { - msec: 1520 - hash: "f58d85bd7b3b772032bdb4e2ee8867d8" + msec: 1200 + hash: "bf693bffb37d7554a437eca21bdec7c1" } Frame { - msec: 1536 - hash: "05e6f6753a40075653b8b757ea626b2f" + msec: 1216 + hash: "880f60263cd79fb6a1bff7252d2373bb" } Frame { - msec: 1552 - hash: "6bfe88cb1d1a2264cc3fbf5143640507" + msec: 1232 + hash: "b34de164d5ec0294ca27281e1e5e3cd6" } Frame { - msec: 1568 - hash: "d54065930af312621115cc08d73fa541" + msec: 1248 + hash: "e1609c4e40fb9e043a9fff683b94c6c4" } Frame { - msec: 1584 - hash: "c3666377c19e3b4034a90a36651020de" + msec: 1264 + hash: "2450b61b84c24727232c779114e6a474" } Frame { - msec: 1600 - hash: "92610ffcd541d943841bfea8bfcc2815" + msec: 1280 + hash: "cf5ac4a5e3d42b3d4e171ed3227cfa85" } Frame { - msec: 1616 - hash: "87d1472f48148a1cc8ae16700227ed1e" + msec: 1296 + hash: "5cb5576ab347647ca881d4d450732df3" } Frame { - msec: 1632 - hash: "4bb790042573e5de09938f1beb3d8e73" + msec: 1312 + hash: "34dc672ebfd75ec017d0c2f0bd435cd8" } Frame { - msec: 1648 - hash: "f0a748b20f8b0d7a9a5ef0c26e5d29d1" + msec: 1328 + hash: "aa9c4301332240ccc00ec99a05b7f9c9" } Frame { - msec: 1664 - hash: "66b7697170705d246dbb9c33e2edd85a" + msec: 1344 + hash: "3f98121997a1613bd49d22003d1a1887" } Frame { - msec: 1680 - hash: "22bc677976f53937c80f908d17a6b994" + msec: 1360 + hash: "86732d3e900877ae7a8615b7448afaaa" } Frame { - msec: 1696 - hash: "8d35befcc7c03d9c7ff04d3aca966057" + msec: 1376 + hash: "7e2f2786d3c0540a0b6559fffe06ad3c" } Frame { - msec: 1712 - hash: "c27b4404612c57b2f360bc958acf8487" - } - Frame { - msec: 1728 - hash: "79aaa8cd6081e771ceab5f6d638df7ad" - } - Frame { - msec: 1744 - hash: "8959c740dfc85a79c056dd5057474161" - } - Frame { - msec: 1760 - hash: "4ba9cdf84e1d16d80bb57c670bdb85a9" - } - Frame { - msec: 1776 - hash: "f4f2b1847a8e3233e0e283853c942b60" - } - Frame { - msec: 1792 - hash: "da3f760fdd2f45d66f3ef410101afbab" - } - Frame { - msec: 1808 - hash: "17e5c56c3909da0da882bc0c8cf5c6d4" - } - Frame { - msec: 1824 - hash: "4e931b797bdbe7d397125a4f80f3d865" - } - Frame { - msec: 1840 - hash: "0fc21dde21d8c11e39f1f740dddf9439" - } - Frame { - msec: 1856 - hash: "3be4aa6c6f014b79a25bd04b1e44e6fd" - } - Frame { - msec: 1872 - hash: "9049c7636d06a2885a910440a5cb829d" - } - Frame { - msec: 1888 - hash: "9049c7636d06a2885a910440a5cb829d" - } - Frame { - msec: 1904 - hash: "9049c7636d06a2885a910440a5cb829d" - } - Frame { - msec: 1920 - hash: "c591e684fa9a8888d6117af66eaec299" - } - Frame { - msec: 1936 - hash: "222242141fadd2c27435ce93aa1c460d" - } - Frame { - msec: 1952 - hash: "17e5c56c3909da0da882bc0c8cf5c6d4" - } - Frame { - msec: 1968 - hash: "2e7cc1dd1c62de751ff6734853fbadd7" - } - Frame { - msec: 1984 - hash: "5d234f4d69167a436ed6c95e909ae6e8" - } - Frame { - msec: 2000 - hash: "dee8be671b7d430a3bf044ea67841f15" - } - Frame { - msec: 2016 - hash: "f75438b7deb18e36c2ce397291401f4d" - } - Frame { - msec: 2032 - hash: "84d6efd807d94fb345ea640782dbfdcf" - } - Frame { - msec: 2048 - hash: "9dea3319774b70cb45eab5a71207c6bc" - } - Frame { - msec: 2064 - hash: "706c98bffe5118d5f49a3eb371b121f6" - } - Frame { - msec: 2080 - hash: "4ca3b88d0af1ea0fae4a08ee2a8b7413" - } - Frame { - msec: 2096 - hash: "2959676d888680c3288f9226d8ad1059" - } - Frame { - msec: 2112 - hash: "92a7dddbdf86f7fcd4f1d7631b7a3210" - } - Frame { - msec: 2128 - hash: "2de45cf2660f9ea4b54b3dfe3a2d6b8f" - } - Frame { - msec: 2144 - hash: "aa17f9e53e23f3de7addd126bbe2b866" + msec: 1392 + hash: "79e00bbe77f0a178e8db30023a881c3f" } Frame { - msec: 2160 - hash: "36eb0221391fb7257c6eff73a1f491f3" + msec: 1408 + hash: "5f611226b3aa38f9aa3cd6a2dbd01f12" } Frame { - msec: 2176 - hash: "a4b644bf91108dbc9b21a1646dab0b37" + msec: 1424 + hash: "4f4cd776b76272cfe79b86a108bd6b6e" } Frame { - msec: 2192 - hash: "f16544e0ad09c14dc8980203aec29591" + msec: 1440 + hash: "a746404a1a26e2a25b8d364dbef46eef" } Frame { - msec: 2208 - hash: "1a93e2ed871ae094aff5eeaa07385a94" + msec: 1456 + hash: "9124d97d120de1806d86c8f437ec4ed2" } Frame { - msec: 2224 - hash: "977a2efa43d3be0340975ccbe6b0e8a9" + msec: 1472 + hash: "4fda328eafe6ec2d02d939517d6d82e3" } Frame { - msec: 2240 - hash: "0a8c81335816c747d320b3a147ee0350" + msec: 1488 + hash: "6afb6abe291c9e9628fd0b8c3da5d9db" } Frame { - msec: 2256 - hash: "0a8c81335816c747d320b3a147ee0350" + msec: 1504 + hash: "cb5962fe94c5d3ef754ff45f905a5c88" } Frame { - msec: 2272 - hash: "0ab48b86c21be99f7caa3dda6d3a3e4d" + msec: 1520 + hash: "57b5fc47ed700831b3dc3f2afbb1c3ed" } Frame { - msec: 2288 - hash: "46e69596c809d4c7563d5d44ca62eb02" + msec: 1536 + hash: "38793fb8a19c9566c8dd9d23c9a15b5d" } Frame { - msec: 2304 - hash: "46e69596c809d4c7563d5d44ca62eb02" + msec: 1552 + hash: "2e311a5dc484e9f4bc7bd85d32a693b1" } Frame { - msec: 2320 - hash: "46e69596c809d4c7563d5d44ca62eb02" + msec: 1568 + hash: "69d1eed68fba918e831899c8b84374a1" } Frame { - msec: 2336 - hash: "46e69596c809d4c7563d5d44ca62eb02" + msec: 1584 + hash: "c872391012e6ab2a6d1eb98c7f47f9e8" } Frame { - msec: 2352 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1600 + hash: "cf12f90835d823550cd83d472b4f022f" } Frame { - msec: 2368 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1616 + hash: "fbb2f03ddbd87ed419386eb2942bccac" } Frame { - msec: 2384 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1632 + hash: "0788a0fdb51cedba0f8b597a4cc38ebe" } Frame { - msec: 2400 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1648 + hash: "b6595edf06fba22f3258c9b433af6ab8" } Mouse { type: 2 button: 1 buttons: 1 - x: 32; y: 574 + x: 44; y: 282 modifiers: 0 sendToViewport: true } Frame { - msec: 2416 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1664 + hash: "521a8188877551a97cd3ea82d209e8ae" } Frame { - msec: 2432 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1680 + hash: "4d923cd520c00f5cd985283d62cf17ec" } Frame { - msec: 2448 - hash: "573a18633748447b94bb67fd8e1726a4" + msec: 1696 + hash: "7ccff14d344c7090fa634f6defd6511e" + } + Frame { + msec: 1712 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 3 button: 1 buttons: 0 - x: 32; y: 574 + x: 44; y: 282 modifiers: 0 sendToViewport: true } Frame { - msec: 2464 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1728 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2480 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1744 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2496 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1760 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2512 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1776 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2528 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1792 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2544 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1808 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2560 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1824 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2576 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1840 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2592 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1856 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2608 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1872 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2624 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1888 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2640 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1904 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2656 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1920 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2672 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1936 + image: "flickable-vertical.2.png" } Frame { - msec: 2688 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1952 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2704 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1968 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2720 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 1984 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2736 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2000 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2752 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2016 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2768 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2032 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2048 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2064 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2080 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 2 button: 1 buttons: 1 - x: 123; y: 264 + x: 95; y: 222 modifiers: 0 sendToViewport: true } - Frame { - msec: 2784 - hash: "96fb3652bfcf0aac1e35a2e50532816f" - } - Frame { - msec: 2800 - hash: "96fb3652bfcf0aac1e35a2e50532816f" - } Mouse { type: 5 button: 0 buttons: 1 - x: 123; y: 265 + x: 95; y: 221 modifiers: 0 sendToViewport: true } Frame { - msec: 2816 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2096 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 123; y: 266 + x: 95; y: 220 modifiers: 0 sendToViewport: true } @@ -928,19 +796,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 124; y: 269 + x: 95; y: 218 modifiers: 0 sendToViewport: true } Frame { - msec: 2832 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2112 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 124; y: 275 + x: 95; y: 216 modifiers: 0 sendToViewport: true } @@ -948,19 +816,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 125; y: 284 + x: 95; y: 212 modifiers: 0 sendToViewport: true } Frame { - msec: 2848 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2128 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 125; y: 293 + x: 96; y: 205 modifiers: 0 sendToViewport: true } @@ -968,19 +836,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 127; y: 304 + x: 96; y: 195 modifiers: 0 sendToViewport: true } Frame { - msec: 2864 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2144 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 129; y: 320 + x: 97; y: 184 modifiers: 0 sendToViewport: true } @@ -988,19 +856,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 131; y: 337 + x: 97; y: 168 modifiers: 0 sendToViewport: true } Frame { - msec: 2880 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2160 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 136; y: 354 + x: 99; y: 153 modifiers: 0 sendToViewport: true } @@ -1008,19 +876,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 142; y: 375 + x: 99; y: 139 modifiers: 0 sendToViewport: true } Frame { - msec: 2896 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2176 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 144; y: 392 + x: 101; y: 125 modifiers: 0 sendToViewport: true } @@ -1028,71 +896,67 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 149; y: 411 + x: 101; y: 112 modifiers: 0 sendToViewport: true } Frame { - msec: 2912 - hash: "96fb3652bfcf0aac1e35a2e50532816f" + msec: 2192 + hash: "888c68103c4eef2f65ef32a93be8286a" } Mouse { type: 5 button: 0 buttons: 1 - x: 156; y: 451 + x: 101; y: 99 modifiers: 0 sendToViewport: true } - Frame { - msec: 2928 - hash: "96fb3652bfcf0aac1e35a2e50532816f" - } Mouse { type: 5 button: 0 buttons: 1 - x: 159; y: 466 + x: 101; y: 85 modifiers: 0 sendToViewport: true } + Frame { + msec: 2208 + hash: "888c68103c4eef2f65ef32a93be8286a" + } Mouse { type: 5 button: 0 buttons: 1 - x: 159; y: 479 + x: 103; y: 75 modifiers: 0 sendToViewport: true } - Frame { - msec: 2944 - hash: "96fb3652bfcf0aac1e35a2e50532816f" - } Mouse { type: 5 button: 0 buttons: 1 - x: 161; y: 488 + x: 103; y: 62 modifiers: 0 sendToViewport: true } + Frame { + msec: 2224 + hash: "888c68103c4eef2f65ef32a93be8286a" + } Mouse { type: 5 button: 0 buttons: 1 - x: 161; y: 493 + x: 103; y: 53 modifiers: 0 sendToViewport: true } - Frame { - msec: 2960 - hash: "96fb3652bfcf0aac1e35a2e50532816f" - } Mouse { type: 5 button: 0 buttons: 1 - x: 161; y: 494 + x: 103; y: 45 modifiers: 0 sendToViewport: true } @@ -1100,103 +964,135 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 161; y: 494 + x: 103; y: 45 modifiers: 0 sendToViewport: true } Frame { - msec: 2976 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2240 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 2992 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2256 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3008 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2272 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3024 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2288 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3040 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2304 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3056 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2320 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3072 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2336 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3088 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2352 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3104 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2368 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3120 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2384 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3136 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2400 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3152 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2416 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3168 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2432 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3184 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2448 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2464 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2480 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2496 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2512 + hash: "998cb23307a61afefb59c8b9e361a89f" + } + Frame { + msec: 2528 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 2 button: 1 buttons: 1 - x: 162; y: 474 + x: 90; y: 38 modifiers: 0 sendToViewport: true } Frame { - msec: 3200 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2544 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 162; y: 472 + x: 90; y: 39 modifiers: 0 sendToViewport: true } + Frame { + msec: 2560 + hash: "0d3bac7463b5fe7f585997e35f179122" + } Mouse { type: 5 button: 0 buttons: 1 - x: 164; y: 468 + x: 90; y: 40 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 41 modifiers: 0 sendToViewport: true } Frame { - msec: 3216 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2576 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 165; y: 464 + x: 91; y: 43 modifiers: 0 sendToViewport: true } @@ -1204,19 +1100,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 166; y: 460 + x: 91; y: 46 modifiers: 0 sendToViewport: true } Frame { - msec: 3232 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2592 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 167; y: 450 + x: 92; y: 50 modifiers: 0 sendToViewport: true } @@ -1224,19 +1120,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 170; y: 438 + x: 92; y: 55 modifiers: 0 sendToViewport: true } Frame { - msec: 3248 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2608 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 172; y: 426 + x: 94; y: 65 modifiers: 0 sendToViewport: true } @@ -1244,19 +1140,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 174; y: 409 + x: 96; y: 79 modifiers: 0 sendToViewport: true } Frame { - msec: 3264 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2624 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 174; y: 397 + x: 97; y: 95 modifiers: 0 sendToViewport: true } @@ -1264,19 +1160,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 176; y: 383 + x: 99; y: 112 modifiers: 0 sendToViewport: true } Frame { - msec: 3280 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2640 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 176; y: 367 + x: 101; y: 129 modifiers: 0 sendToViewport: true } @@ -1284,19 +1180,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 176; y: 350 + x: 103; y: 148 modifiers: 0 sendToViewport: true } Frame { - msec: 3296 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2656 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 174; y: 335 + x: 105; y: 165 modifiers: 0 sendToViewport: true } @@ -1304,19 +1200,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 172; y: 316 + x: 105; y: 180 modifiers: 0 sendToViewport: true } Frame { - msec: 3312 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2672 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 170; y: 296 + x: 107; y: 192 modifiers: 0 sendToViewport: true } @@ -1324,19 +1220,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 168; y: 279 + x: 109; y: 205 modifiers: 0 sendToViewport: true } Frame { - msec: 3328 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2688 + hash: "0d3bac7463b5fe7f585997e35f179122" } Mouse { type: 5 button: 0 buttons: 1 - x: 166; y: 262 + x: 109; y: 219 modifiers: 0 sendToViewport: true } @@ -1344,27 +1240,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 166; y: 244 + x: 109; y: 230 modifiers: 0 sendToViewport: true } Frame { - msec: 3344 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 2704 + hash: "0d3bac7463b5fe7f585997e35f179122" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 111; y: 235 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 164; y: 231 + x: 111; y: 238 modifiers: 0 sendToViewport: true } + Frame { + msec: 2720 + hash: "0d3bac7463b5fe7f585997e35f179122" + } Mouse { type: 5 button: 0 buttons: 1 - x: 164; y: 222 + x: 111; y: 240 modifiers: 0 sendToViewport: true } @@ -1372,2395 +1280,415 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 164; y: 222 + x: 111; y: 240 modifiers: 0 sendToViewport: true } Frame { - msec: 3360 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3376 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3392 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3408 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3424 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3440 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3456 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3472 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3488 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 3504 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2736 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3520 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2752 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3536 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2768 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3552 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2784 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3568 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2800 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3584 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2816 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3600 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2832 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3616 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2848 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3632 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2864 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3648 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2880 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3664 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2896 + image: "flickable-vertical.3.png" } Frame { - msec: 3680 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2912 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3696 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2928 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3712 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2944 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3728 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2960 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3744 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2976 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3760 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 2992 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3776 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3008 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3792 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3024 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3808 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3040 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3824 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3056 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3840 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3072 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3856 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3088 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3872 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3104 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3888 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3120 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3904 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3136 + hash: "998cb23307a61afefb59c8b9e361a89f" } - Frame { - msec: 3920 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 43; y: 269 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3936 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3152 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3952 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3168 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3968 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3184 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 3984 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3200 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4000 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3216 + hash: "998cb23307a61afefb59c8b9e361a89f" } - Frame { - msec: 4016 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 43; y: 269 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4032 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3232 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4048 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3248 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4064 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3264 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4080 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3280 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4096 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3296 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4112 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3312 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4128 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3328 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4144 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3344 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4160 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3360 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4176 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3376 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4192 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3392 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4208 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3408 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4224 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3424 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4240 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3440 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4256 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3456 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4272 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3472 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 2 button: 1 buttons: 1 - x: 38; y: 583 + x: 75; y: 279 modifiers: 0 sendToViewport: true } Frame { - msec: 4288 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3488 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4304 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3504 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4320 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3520 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4336 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3536 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 3 button: 1 buttons: 0 - x: 38; y: 583 + x: 75; y: 279 modifiers: 0 sendToViewport: true } Frame { - msec: 4352 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4368 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3552 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4384 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3568 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4400 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3584 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4416 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3600 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4432 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3616 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4448 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3632 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4464 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3648 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4480 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3664 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4496 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3680 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4512 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3696 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4528 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3712 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4544 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3728 + hash: "998cb23307a61afefb59c8b9e361a89f" } Frame { - msec: 4560 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3744 + hash: "998cb23307a61afefb59c8b9e361a89f" } - Frame { - msec: 4576 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 116; y: 200 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4592 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3760 + hash: "998cb23307a61afefb59c8b9e361a89f" } - Frame { - msec: 4608 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 116; y: 199 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 4624 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 117; y: 198 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4640 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3776 + hash: "998cb23307a61afefb59c8b9e361a89f" } - Frame { - msec: 4656 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 117; y: 195 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 4672 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 117; y: 190 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4688 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4704 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4720 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4736 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4752 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4768 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4784 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 110; y: 578 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4800 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4816 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4832 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 110; y: 578 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4848 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4864 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4880 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4896 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4912 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4928 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4944 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4960 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4976 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 4992 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5008 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5024 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5040 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5056 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5072 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5088 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5104 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5120 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5136 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 5152 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 123; y: 218 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5168 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 123; y: 219 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5184 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 124; y: 223 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 124; y: 230 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5200 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 126; y: 241 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 126; y: 257 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5216 - hash: "43865bf07d3b0818bd0fd3388451f055" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 130; y: 300 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5232 - hash: "d7e49dfc8f9faef7d405451ae52691e0" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 132; y: 325 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 134; y: 349 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5248 - hash: "427d51731dac5e356c5ab82d272c0d5a" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 136; y: 372 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 138; y: 395 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5264 - hash: "9370cc84e32afc59c81c4d2dbf5fa690" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 142; y: 433 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5280 - hash: "984bd78f9f503e8a3ffac5bbe69fe3a9" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 144; y: 470 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 144; y: 470 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5296 - hash: "022106d1ecd8195923b6d79fb95d1135" - } - Frame { - msec: 5312 - hash: "5b6bd34ae7e59923bb4b4c2e4e7a0bf3" - } - Frame { - msec: 5328 - hash: "2f8a121667195d85cd05417a350dd35b" - } - Frame { - msec: 5344 - hash: "d0f7fcb01dc6abc0ae29ca1ee45edf24" - } - Frame { - msec: 5360 - hash: "9f3e5d23ea33bff4f05900d6faf7dbae" - } - Frame { - msec: 5376 - hash: "535f40614a02fa3f627748a5c24b3a39" - } - Frame { - msec: 5392 - hash: "138bc0c4dd08ffec0c79c4c7474ed318" - } - Frame { - msec: 5408 - hash: "838f07195d00b19104bbbd93c7670dab" - } - Frame { - msec: 5424 - hash: "b7fb0944bf53ccc62effe159333449ff" - } - Frame { - msec: 5440 - hash: "56a21c9210074ef8a044019fa9375b14" - } - Frame { - msec: 5456 - hash: "4ef80a5d73981ce1f1081fc578ea088a" - } - Frame { - msec: 5472 - hash: "f3f9cf99ab436c1a2805c0859df9589e" - } - Frame { - msec: 5488 - hash: "0d88023fe7af39e409f7a12348d4e3d6" - } - Frame { - msec: 5504 - hash: "b4abf98d58fe490ceb7a62621292f8d9" - } - Frame { - msec: 5520 - hash: "5c3247324b214b961ed40da985fb50a4" - } - Frame { - msec: 5536 - hash: "41195a5c39ac1ecbd175e5663d23cdaa" - } - Frame { - msec: 5552 - hash: "028460cd5eecd50a12261e541f1776bf" - } - Frame { - msec: 5568 - hash: "56763e343221db0a111bb91e72640911" - } - Frame { - msec: 5584 - hash: "a4b644bf91108dbc9b21a1646dab0b37" - } - Frame { - msec: 5600 - hash: "c2d2d51f0147e78550f762ec84f7f338" - } - Frame { - msec: 5616 - hash: "1a93e2ed871ae094aff5eeaa07385a94" - } - Frame { - msec: 5632 - hash: "977a2efa43d3be0340975ccbe6b0e8a9" - } - Frame { - msec: 5648 - hash: "977a2efa43d3be0340975ccbe6b0e8a9" - } - Frame { - msec: 5664 - hash: "0a8c81335816c747d320b3a147ee0350" - } - Frame { - msec: 5680 - hash: "0a8c81335816c747d320b3a147ee0350" - } - Frame { - msec: 5696 - hash: "46e69596c809d4c7563d5d44ca62eb02" - } - Frame { - msec: 5712 - hash: "46e69596c809d4c7563d5d44ca62eb02" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 176; y: 412 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5728 - hash: "aebff194f1c84190623ebfc358503b5f" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 177; y: 406 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 177; y: 395 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5744 - hash: "39f1cee1ad7ab2ab6601e2b67f5d83c7" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 181; y: 367 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5760 - hash: "5eb13b99216b29a54d4676c171949cf6" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 183; y: 326 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5776 - hash: "02d9d0829c64b92e98b8093b38e6f848" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 183; y: 299 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 180; y: 276 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5792 - hash: "46f76f341787a80b9f9c16a5bc9f83c5" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 175; y: 214 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5808 - hash: "67c3225460673038d190169115622f02" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 167; y: 147 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 167; y: 147 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5824 - hash: "2cb9abc32225ea9d39deb09da6119a94" - } - Frame { - msec: 5840 - hash: "bf69fa4cd3f73e15f07394d290b801e6" - } - Frame { - msec: 5856 - hash: "cf5f2524171ca121f4478c3c6d7dfd35" - } - Frame { - msec: 5872 - hash: "d498a494fa489150bd324e18a1c14fe5" - } - Frame { - msec: 5888 - hash: "459c2e8110f1c21b3f8d590e7c0355de" - } - Frame { - msec: 5904 - hash: "1bde4841026fd6117b49d94d697b03fa" - } - Frame { - msec: 5920 - hash: "84b025039284f616d69465ec8cc245b8" - } - Frame { - msec: 5936 - hash: "3652c4664895a0b6fbe06521a79c8bb9" - } - Frame { - msec: 5952 - hash: "f817f6059b8cb3fc4a85c9c91df6c7a3" - } - Frame { - msec: 5968 - hash: "cb671ab3c3a9de0c17df2896e45beca9" - } - Frame { - msec: 5984 - hash: "d9102b25f63ca9274057dad0ab2b6102" - } - Frame { - msec: 6000 - hash: "b9df17ad73b7a5b018ab30c5c57afd02" - } - Frame { - msec: 6016 - hash: "664494b87407881a11b4732f0713f587" - } - Frame { - msec: 6032 - hash: "cac62fc442c064286b7e4a71a13b929c" - } - Frame { - msec: 6048 - hash: "989b4649dca89e227f552979af1c68f0" - } - Frame { - msec: 6064 - hash: "80b4b11b3cbc684d920fa89c3345d8bc" - } - Frame { - msec: 6080 - hash: "dcbd4e93e7ac0ef0e78c6a19cf3295f1" - } - Frame { - msec: 6096 - hash: "33f3ddd9d7fa5a472465029d7a7263ae" - } - Frame { - msec: 6112 - hash: "fb5675d4870528b9c0591c5a80530b17" - } - Frame { - msec: 6128 - hash: "e57dbe962c1ef45893e41559cee19d16" - } - Frame { - msec: 6144 - hash: "a9081993871e0171e25159a078a5cdbc" - } - Frame { - msec: 6160 - hash: "cadc7f53518ba3f4cbe8e686b90fa5ab" - } - Frame { - msec: 6176 - hash: "e9208a44f95ccc181bfc64e8785bd633" - } - Frame { - msec: 6192 - hash: "a69f2969122a547b1af195f581c272b8" - } - Frame { - msec: 6208 - hash: "eee0b7c2f01bcc57f141d9aa27f73da6" - } - Frame { - msec: 6224 - hash: "f58ac16d11909563cf214b6c2baef0dc" - } - Frame { - msec: 6240 - hash: "e373def5a0bcd30ea7f4acb539785e3c" - } - Frame { - msec: 6256 - hash: "0dce9f4bab793ea1d6e368cd6fb37047" - } - Frame { - msec: 6272 - hash: "4a4725f2546b08faffa3a543de578e59" - } - Frame { - msec: 6288 - hash: "ea36b5869634115182c365990518b993" - } - Frame { - msec: 6304 - hash: "45b102bd0c5ab42783b9e428cea202a4" - } - Frame { - msec: 6320 - hash: "0154e6010f3a8621a8f992bb7dcfd5b8" - } - Frame { - msec: 6336 - hash: "035a8c7e9eece0f9ea4f5ad62658d7f9" - } - Frame { - msec: 6352 - hash: "fc1050cf971296a9200c548feee08d0a" - } - Frame { - msec: 6368 - hash: "ef9c7f1228ac6825cce8ce0e9e7aaac5" - } - Frame { - msec: 6384 - hash: "70ef278074b1527aba16eca8c3811af5" - } - Frame { - msec: 6400 - hash: "08012939aca6381dedd838a7fd0be1a3" - } - Frame { - msec: 6416 - hash: "2c702b17a0ec2aac2928ad8bcc2e080b" - } - Frame { - msec: 6432 - hash: "e70e243e8ecc8e8f50ea4f0f4559c8c6" - } - Frame { - msec: 6448 - hash: "73013ff1a7f0c3040f3520f0581e4ce0" - } - Frame { - msec: 6464 - hash: "14cdd689ae9e5b15e212d9dab63ec946" - } - Frame { - msec: 6480 - hash: "354d822bf252559211513e49e417a413" - } - Frame { - msec: 6496 - hash: "77eb798efd1447eca75de12dc2c7a215" - } - Frame { - msec: 6512 - hash: "08dc9068d21db7ff87d4d88eb1443aed" - } - Frame { - msec: 6528 - hash: "baab3b98e70ca51d1cbd27d4a998380f" - } - Frame { - msec: 6544 - hash: "baab3b98e70ca51d1cbd27d4a998380f" - } - Frame { - msec: 6560 - hash: "baab3b98e70ca51d1cbd27d4a998380f" - } - Frame { - msec: 6576 - hash: "84519c415186e5abd122a1f39e26265b" - } - Frame { - msec: 6592 - hash: "df63754934af656e08e93ce4fa69c19e" - } - Frame { - msec: 6608 - hash: "34439eb26069feabee5ba97bfd1c2cb3" - } - Frame { - msec: 6624 - hash: "46534a7da31ac76c52036e51c63db72e" - } - Frame { - msec: 6640 - hash: "cf8e86112be37fc94687aa8bd437e1a2" - } - Frame { - msec: 6656 - hash: "f93ba6420ab0ef719aa10c6aae71c878" - } - Frame { - msec: 6672 - hash: "22f991814552e7e3e2db8fea0abe9d6c" - } - Frame { - msec: 6688 - hash: "7d2773bec8310d92166ab7184741ace4" - } - Frame { - msec: 6704 - hash: "f18aace5e0d4ca8a385a57682d82e43f" - } - Frame { - msec: 6720 - hash: "4cd763300154da47a8ce8fc13b2213c5" - } - Frame { - msec: 6736 - hash: "7f445e22f19808ca71416cadd497f305" - } - Frame { - msec: 6752 - hash: "d6ef83bec490d2fb0f4d640f8c43f694" - } - Frame { - msec: 6768 - hash: "fbd19c34e68a21c8924f83c4d0cbcb79" - } - Frame { - msec: 6784 - hash: "179abedb6eef26a2e78c3a7884cb2178" - } - Frame { - msec: 6800 - hash: "292af687e9001eb7cf8434094202b4a0" - } - Frame { - msec: 6816 - hash: "1de0a8aa08194151e2b72d8b16cdba5f" - } - Frame { - msec: 6832 - hash: "ee607cf6f558e3ed7b08dad80a17dd05" - } - Frame { - msec: 6848 - hash: "2024a393baa1fa1c2d38ccc6756c4a44" - } - Frame { - msec: 6864 - hash: "898ac470a5b1619564496132c0150df2" - } - Frame { - msec: 6880 - hash: "b447e3917b7353e97409755159a614bc" - } - Frame { - msec: 6896 - hash: "d03610c18a2c21785e59b4de7b92f20e" - } - Frame { - msec: 6912 - hash: "014dfa76c222aea838483840befff092" - } - Frame { - msec: 6928 - hash: "014dfa76c222aea838483840befff092" - } - Frame { - msec: 6944 - hash: "7830f79e5a37242fd97dd6ff9f89e9d0" - } - Frame { - msec: 6960 - hash: "331a6b6ebaa7e9f7b970bacafe070b2f" - } - Frame { - msec: 6976 - hash: "331a6b6ebaa7e9f7b970bacafe070b2f" - } - Frame { - msec: 6992 - hash: "331a6b6ebaa7e9f7b970bacafe070b2f" - } - Frame { - msec: 7008 - hash: "331a6b6ebaa7e9f7b970bacafe070b2f" - } - Frame { - msec: 7024 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7040 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7056 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7072 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7088 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7104 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7120 - hash: "eb0b45fac8756d32586cac82f25c5a51" - } - Frame { - msec: 7136 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7152 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7168 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7184 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7200 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7216 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7232 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7248 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7264 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7280 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7296 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7312 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7328 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7344 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7360 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7376 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7392 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7408 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7424 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7440 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7456 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7472 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7488 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7504 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7520 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7536 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 94; y: 581 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 7552 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7568 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7584 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7600 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 94; y: 581 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 7616 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7632 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7648 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7664 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7680 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7696 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7712 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7728 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7744 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7760 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7776 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7792 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7808 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7824 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7840 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7856 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7872 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7888 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7904 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7920 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7936 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 146; y: 574 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 7952 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7968 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 7984 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8000 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8016 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 146; y: 574 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8032 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8048 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8064 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8080 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8096 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8112 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8128 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8144 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8160 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8176 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8192 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8208 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8224 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8240 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8256 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8272 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8288 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8304 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8320 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 161; y: 422 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 420 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8336 - hash: "bd1667fe88a71bc2f52ba5a6c9dc098c" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 415 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 411 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8352 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 406 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 165; y: 397 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8368 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 386 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 375 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8384 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 364 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 352 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8400 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 342 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 165; y: 331 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8416 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 319 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 308 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8432 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 297 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 163; y: 284 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8448 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 161; y: 272 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 161; y: 261 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8464 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 159; y: 250 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 157; y: 235 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8480 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 157; y: 224 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 155; y: 211 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8496 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 153; y: 198 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 153; y: 187 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 153; y: 187 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8512 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8528 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8544 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8560 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8576 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8592 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8608 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8624 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8640 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8656 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8672 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8688 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8704 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8720 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8736 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8752 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8768 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8784 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8800 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8816 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8832 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8848 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8864 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8880 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8896 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8912 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8928 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Frame { - msec: 8944 - hash: "1889f1f0e319b90b6a68d76df6eebe96" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 127; y: 125 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8960 - hash: "c1d084f6e9361c6c0c70f064ae863051" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 127; y: 128 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 127; y: 131 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8976 - hash: "c1d084f6e9361c6c0c70f064ae863051" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 128; y: 135 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 128; y: 139 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 8992 - hash: "a84a07f9d3006718d55de7d6ed60795e" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 130; y: 152 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9008 - hash: "deaa0f57eff99ca88f7204e8d8b159b5" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 134; y: 176 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9024 - hash: "4366ee113f7c987a2d8e5978b667e3d0" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 138; y: 207 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9040 - hash: "9dbad53daf3a7988498c561dda4c00a6" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 145; y: 238 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9056 - hash: "e70aeae6d78628c16a7c8c354cf91c98" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 266 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9072 - hash: "38aa5fd0540648edce34103704d8b861" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 156; y: 288 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9088 - hash: "ff08c650e24f63fe7eae1984bb190e02" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 158; y: 308 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9104 - hash: "0d0f2377991d15416bf76619d2f71218" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 327 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9120 - hash: "b7681257ec2ad1d532aa522147dd7549" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 343 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9136 - hash: "baaf75edb3c17bbc754e26fe15f1d295" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 353 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9152 - hash: "b68aab52cbcaf524ebb80f2a3af014b4" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 158; y: 363 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9168 - hash: "c69d2b45d92950f7246976bcc247c687" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 158; y: 373 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9184 - hash: "68cd8f467ac225f6e2c5a2914f92edc1" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 157; y: 383 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9200 - hash: "90cfbee19fd7c03bcfc9a57d94c7fd8d" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 155; y: 387 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 155; y: 387 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9216 - hash: "8216a9f0024507e4cb8406575760947f" - } - Frame { - msec: 9232 - hash: "47f76e736f13c6f2318e8c8a8ab69d0e" - } - Frame { - msec: 9248 - hash: "75fc24bcf9d4b8d00f8a493b0095f445" - } - Frame { - msec: 9264 - hash: "d8e9b69514f411a6672b7057c33bcc41" - } - Frame { - msec: 9280 - hash: "9743d8ab32903d7fac7a4101ad24bcfd" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 150; y: 438 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9296 - hash: "6bfcd36f945af8cc7b2aa2cca1cde750" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 150; y: 442 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 150; y: 446 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9312 - hash: "8e821eb27a5fd0933805d3e88d1f5f1e" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 451 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 457 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9328 - hash: "84191607b7ba11b1204bba0ab5b4f98c" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 467 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9344 - hash: "e154e8cdbc4f9a1d4cbe926306bf76c1" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 474 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9360 - hash: "2510607dadaf22d60838934cd460bde4" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 152; y: 492 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9376 - hash: "38087462c92bae32df01a27520183c5f" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 154; y: 499 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9392 - hash: "0e5231ff13dd8b3205acb2c451fcf208" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 154; y: 515 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9408 - hash: "12dfb280b1cb828b75d04f62b5261f78" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 157; y: 545 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9424 - hash: "fc89205b7a0bae9c2726b775aabf7a6a" - } - Frame { - msec: 9440 - hash: "40807414ec0f879ae666f27360d2b91d" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 159; y: 567 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 581 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9456 - hash: "01c759fad050fa6cecefdf7e2d528bd3" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 594 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 608 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9472 - hash: "81887d4c0718d74f51d03c9efcd7d265" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 620 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 639 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9488 - hash: "d0e6f2146daffb910be0be23a2b77a5c" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 682 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 9504 - hash: "ffcf5113009c86c8b2df2e9276f2e8c0" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 157; y: 704 - modifiers: 0 - sendToViewport: true + msec: 3792 + hash: "998cb23307a61afefb59c8b9e361a89f" } Mouse { type: 5 button: 0 buttons: 1 - x: 155; y: 729 + x: 118; y: 183 modifiers: 0 sendToViewport: true } - Frame { - msec: 9520 - hash: "45d262f0b3bec61a2a235ab613db664c" - } Mouse { type: 5 button: 0 buttons: 1 - x: 150; y: 775 + x: 120; y: 166 modifiers: 0 sendToViewport: true } Frame { - msec: 9536 - hash: "1bb9a85fc290e30b841648bd9573ac84" + msec: 3808 + hash: "2e311a5dc484e9f4bc7bd85d32a693b1" } Mouse { type: 5 button: 0 buttons: 1 - x: 146; y: 823 + x: 122; y: 146 modifiers: 0 sendToViewport: true } - Frame { - msec: 9552 - hash: "46ff9bb9662543c711fcd84f44fc6af6" - } Mouse { type: 5 button: 0 buttons: 1 - x: 141; y: 869 + x: 124; y: 123 modifiers: 0 sendToViewport: true } Frame { - msec: 9568 - hash: "84fe171380d203a80fedaf4b10412e1a" + msec: 3824 + hash: "cbfcb7b986b0c51828473d98ca9fee03" } Mouse { type: 5 button: 0 buttons: 1 - x: 139; y: 907 + x: 126; y: 94 modifiers: 0 sendToViewport: true } - Frame { - msec: 9584 - hash: "496f7ba4a3d45861d93e2cb95e3d5dea" - } Mouse { type: 5 button: 0 buttons: 1 - x: 135; y: 947 + x: 128; y: 67 modifiers: 0 sendToViewport: true } Frame { - msec: 9600 - hash: "b3003855e3805c0a514bf2c7a42d398f" + msec: 3840 + hash: "389b514c4cd4a4d65388608643d08c04" } Mouse { type: 5 button: 0 buttons: 1 - x: 133; y: 962 + x: 130; y: 41 modifiers: 0 sendToViewport: true } @@ -3768,51 +1696,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 133; y: 977 + x: 133; y: 15 modifiers: 0 sendToViewport: true } Frame { - msec: 9616 - hash: "e3c4f8d056d2c3b5aef3184fda19a92d" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 131; y: 993 - modifiers: 0 - sendToViewport: true + msec: 3856 + image: "flickable-vertical.4.png" } Mouse { type: 5 button: 0 buttons: 1 - x: 129; y: 1006 + x: 135; y: -6 modifiers: 0 sendToViewport: true } - Frame { - msec: 9632 - hash: "90be1cd9716907fc46309f9f043a6f84" - } Mouse { type: 5 button: 0 buttons: 1 - x: 122; y: 1029 + x: 138; y: -27 modifiers: 0 sendToViewport: true } Frame { - msec: 9648 - hash: "b6e868b2d23004f75d0bdb1519e8487d" + msec: 3872 + hash: "cf9a0a968459a1283fff91102eb29ba3" } Mouse { type: 5 button: 0 buttons: 1 - x: 118; y: 1043 + x: 140; y: -48 modifiers: 0 sendToViewport: true } @@ -3820,275 +1736,179 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 118; y: 1043 + x: 140; y: -48 modifiers: 0 sendToViewport: true } Frame { - msec: 9664 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9680 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9696 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9712 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9728 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9744 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9760 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9776 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9792 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 9808 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3888 + hash: "77c86fb26126825cfd5b6ba21b903808" } Frame { - msec: 9824 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3904 + hash: "c497bcbe500905b8a69fd310fd7c7e1a" } Frame { - msec: 9840 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3920 + hash: "95bffb4d4aff1603e96af55cbc2dc3f2" } Frame { - msec: 9856 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3936 + hash: "6fa87a7136528b688069fe1c4bd94043" } Frame { - msec: 9872 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3952 + hash: "602c16e1382d810f853d647e531b4e8a" } Frame { - msec: 9888 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3968 + hash: "01d1227e4f5b95f8b0c6a57a4b2314c4" } Frame { - msec: 9904 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 3984 + hash: "1db6401af45574b7453ad57766e60e6f" } Frame { - msec: 9920 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4000 + hash: "067a1bef3df5d1c40842f28885d60250" } Frame { - msec: 9936 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4016 + hash: "5fba31051e05ec00c0d68b8e8af94132" } Frame { - msec: 9952 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4032 + hash: "d6209a0b9b9e0f2072179a4623c70fbd" } Frame { - msec: 9968 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4048 + hash: "ec30f07ab0056a45954c07ecdfa1401a" } Frame { - msec: 9984 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4064 + hash: "fef6c7767970a283bb3b13826f71bdac" } Frame { - msec: 10000 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4080 + hash: "29621938e96be0d11c95fd1e4ca37631" } Frame { - msec: 10016 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4096 + hash: "8103c96ac90ddf52056d7e8b32e4ae9e" } Frame { - msec: 10032 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4112 + hash: "d72bf8b88efe603050ad038380173969" } Frame { - msec: 10048 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4128 + hash: "4438b56eb6aa800602634db6016caa50" } Frame { - msec: 10064 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4144 + hash: "44674f7a874023c3932d698344ccda0e" } Frame { - msec: 10080 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4160 + hash: "155a834ddaa7128b6f5a2a406b340315" } Frame { - msec: 10096 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4176 + hash: "3886efa510581ee5b6c4a2ed76aeb42d" } Frame { - msec: 10112 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4192 + hash: "094954e8d10b85d3941626dec4fb36af" } Frame { - msec: 10128 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4208 + hash: "b597aeb20a8630e4b1dfd0a7be383e4d" } Frame { - msec: 10144 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4224 + hash: "abc58e74ab197a2d7c243ddd67442e53" } Frame { - msec: 10160 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4240 + hash: "b6ec106d39af13492c3d43bf006b7b15" } Frame { - msec: 10176 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4256 + hash: "d80211f898473a01e0c0641b96bc92f4" } Frame { - msec: 10192 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4272 + hash: "5010579fcd925e65c778c2e9cf0317de" } Frame { - msec: 10208 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4288 + hash: "5010579fcd925e65c778c2e9cf0317de" } Frame { - msec: 10224 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4304 + hash: "d80211f898473a01e0c0641b96bc92f4" } Frame { - msec: 10240 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4320 + hash: "27cfc811f62029df48ea7f371ff5654b" } Frame { - msec: 10256 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4336 + hash: "b6ec106d39af13492c3d43bf006b7b15" } Frame { - msec: 10272 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4352 + hash: "28c8e3f08f46bf13cc52a7d6a31a7cf1" } Frame { - msec: 10288 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4368 + hash: "b597aeb20a8630e4b1dfd0a7be383e4d" } Frame { - msec: 10304 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4384 + hash: "a3a3682ce0d2a2d57457458b13645afa" } Frame { - msec: 10320 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4400 + hash: "98bf25cbb8202fe1576ac15bac7b9e65" } Frame { - msec: 10336 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4416 + hash: "16b99c9cf5297a5251869a3935084cf7" } Mouse { type: 2 button: 1 buttons: 1 - x: 158; y: 415 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10352 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" - } - Frame { - msec: 10368 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 159; y: 416 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10384 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 160; y: 417 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 161; y: 422 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10400 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 162; y: 429 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 166; y: 444 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10416 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 168; y: 459 + x: 136; y: 176 modifiers: 0 sendToViewport: true } + Frame { + msec: 4432 + hash: "16b99c9cf5297a5251869a3935084cf7" + } + Frame { + msec: 4448 + hash: "16b99c9cf5297a5251869a3935084cf7" + } Mouse { type: 5 button: 0 buttons: 1 - x: 173; y: 473 + x: 136; y: 175 modifiers: 0 sendToViewport: true } Frame { - msec: 10432 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4464 + hash: "16b99c9cf5297a5251869a3935084cf7" } Mouse { type: 5 button: 0 buttons: 1 - x: 175; y: 486 + x: 136; y: 173 modifiers: 0 sendToViewport: true } @@ -4096,19 +1916,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 178; y: 499 + x: 136; y: 168 modifiers: 0 sendToViewport: true } Frame { - msec: 10448 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4480 + hash: "155a834ddaa7128b6f5a2a406b340315" } Mouse { type: 5 button: 0 buttons: 1 - x: 180; y: 512 + x: 134; y: 159 modifiers: 0 sendToViewport: true } @@ -4116,19 +1936,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 183; y: 524 + x: 133; y: 142 modifiers: 0 sendToViewport: true } Frame { - msec: 10464 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4496 + hash: "abc58e74ab197a2d7c243ddd67442e53" } Mouse { type: 5 button: 0 buttons: 1 - x: 185; y: 535 + x: 130; y: 119 modifiers: 0 sendToViewport: true } @@ -4136,19 +1956,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 187; y: 548 + x: 128; y: 98 modifiers: 0 sendToViewport: true } Frame { - msec: 10480 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4512 + hash: "e5c5b741da7c028ec77f52016675c1ca" } Mouse { type: 5 button: 0 buttons: 1 - x: 189; y: 562 + x: 126; y: 78 modifiers: 0 sendToViewport: true } @@ -4156,19 +1976,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 189; y: 577 + x: 124; y: 59 modifiers: 0 sendToViewport: true } Frame { - msec: 10496 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4528 + hash: "12481bcccb524a478851a57d4db6cf8d" } Mouse { type: 5 button: 0 buttons: 1 - x: 191; y: 593 + x: 122; y: 44 modifiers: 0 sendToViewport: true } @@ -4176,19 +1996,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 193; y: 609 + x: 120; y: 30 modifiers: 0 sendToViewport: true } Frame { - msec: 10512 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4544 + hash: "a49985bd332cd3376986d379c474a3de" } Mouse { type: 5 button: 0 buttons: 1 - x: 195; y: 626 + x: 120; y: 21 modifiers: 0 sendToViewport: true } @@ -4196,39 +2016,83 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 197; y: 641 + x: 118; y: 12 modifiers: 0 sendToViewport: true } - Frame { - msec: 10528 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } Mouse { - type: 5 - button: 0 - buttons: 1 - x: 197; y: 655 + type: 3 + button: 1 + buttons: 0 + x: 118; y: 12 modifiers: 0 sendToViewport: true } + Frame { + msec: 4560 + hash: "cd4e55b15e9df7fee1862180fddec0ca" + } + Frame { + msec: 4576 + hash: "64ff54775d198b616597f4539de90bd8" + } + Frame { + msec: 4592 + hash: "2b188745bfff51f9d3af90b7ad9c8d77" + } + Frame { + msec: 4608 + hash: "2dde7d565f92f22c6524448f97107e35" + } + Frame { + msec: 4624 + hash: "897a454ac464008d6dd7864eb608ae65" + } + Frame { + msec: 4640 + hash: "269df4f1aca4f0cdbd5c86c2e115bd3c" + } + Frame { + msec: 4656 + hash: "ec0ebdbd3f4665fba7f6a523a82a5071" + } + Frame { + msec: 4672 + hash: "c1ac6a385f580f23b3486c643d276e33" + } + Frame { + msec: 4688 + hash: "3de0d147a6a3c1382ec64a80996bb4f4" + } + Frame { + msec: 4704 + hash: "8db942b5909f63d4369ad5b29938ef49" + } + Frame { + msec: 4720 + hash: "f7840636f2d01c25be8e9c77230cca53" + } + Frame { + msec: 4736 + hash: "d315f82e175361fed83193ce550cb6e9" + } Mouse { - type: 5 - button: 0 + type: 2 + button: 1 buttons: 1 - x: 199; y: 670 + x: 111; y: 67 modifiers: 0 sendToViewport: true } Frame { - msec: 10544 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4752 + hash: "d315f82e175361fed83193ce550cb6e9" } Mouse { type: 5 button: 0 buttons: 1 - x: 201; y: 681 + x: 111; y: 70 modifiers: 0 sendToViewport: true } @@ -4236,19 +2100,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 201; y: 690 + x: 111; y: 74 modifiers: 0 sendToViewport: true } Frame { - msec: 10560 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4768 + hash: "155a834ddaa7128b6f5a2a406b340315" } Mouse { type: 5 button: 0 buttons: 1 - x: 201; y: 698 + x: 111; y: 79 modifiers: 0 sendToViewport: true } @@ -4256,19 +2120,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 203; y: 706 + x: 112; y: 86 modifiers: 0 sendToViewport: true } Frame { - msec: 10576 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4784 + hash: "00b072a0adbfcd520d495ef6540f5680" } Mouse { type: 5 button: 0 buttons: 1 - x: 203; y: 712 + x: 112; y: 95 modifiers: 0 sendToViewport: true } @@ -4276,19 +2140,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 203; y: 718 + x: 114; y: 105 modifiers: 0 sendToViewport: true } Frame { - msec: 10592 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4800 + hash: "fb605e95988a6110384671e7f3f18ad8" } Mouse { type: 5 button: 0 buttons: 1 - x: 205; y: 722 + x: 114; y: 115 modifiers: 0 sendToViewport: true } @@ -4296,19 +2160,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 205; y: 725 + x: 115; y: 126 modifiers: 0 sendToViewport: true } Frame { - msec: 10608 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4816 + image: "flickable-vertical.5.png" } Mouse { type: 5 button: 0 buttons: 1 - x: 205; y: 727 + x: 115; y: 142 modifiers: 0 sendToViewport: true } @@ -4316,19 +2180,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 205; y: 731 + x: 117; y: 159 modifiers: 0 sendToViewport: true } Frame { - msec: 10624 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4832 + hash: "4d1eb644b592a693b13fe14377aeed97" } Mouse { type: 5 button: 0 buttons: 1 - x: 205; y: 735 + x: 120; y: 180 modifiers: 0 sendToViewport: true } @@ -4336,19 +2200,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 205; y: 737 + x: 122; y: 202 modifiers: 0 sendToViewport: true } Frame { - msec: 10640 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4848 + hash: "00eb1d3b016eb0220461074ce81b1aef" } Mouse { type: 5 button: 0 buttons: 1 - x: 205; y: 739 + x: 127; y: 224 modifiers: 0 sendToViewport: true } @@ -4356,439 +2220,495 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 205; y: 740 + x: 129; y: 243 modifiers: 0 sendToViewport: true } - Frame { - msec: 10656 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } Mouse { - type: 5 - button: 0 - buttons: 1 - x: 205; y: 741 + type: 3 + button: 1 + buttons: 0 + x: 129; y: 243 modifiers: 0 sendToViewport: true } Frame { - msec: 10672 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4864 + hash: "77c86fb26126825cfd5b6ba21b903808" } Frame { - msec: 10688 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4880 + hash: "e80f024bbdce0ceeae137e347abc95a4" } Frame { - msec: 10704 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4896 + hash: "bb189f39a836b9a2aa68f4535ed1d6fb" } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 205; y: 741 - modifiers: 0 - sendToViewport: true + Frame { + msec: 4912 + hash: "cf9a0a968459a1283fff91102eb29ba3" + } + Frame { + msec: 4928 + hash: "27130e7f6b853a287a7bdd8608628a4f" + } + Frame { + msec: 4944 + hash: "231c7b7078af00a36cfee3d5e43a4021" + } + Frame { + msec: 4960 + hash: "d8ffc8cc9cecc25cb9b4e7990fb7b8e7" + } + Frame { + msec: 4976 + hash: "fb5db5dafdb375132f1f1a461193bc60" } Frame { - msec: 10720 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 4992 + hash: "64100f9f102ffc9415e306c087547709" } Frame { - msec: 10736 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5008 + hash: "6960e5c4feb55043ff91934fc934734e" } Frame { - msec: 10752 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5024 + hash: "349c7a84ff8f9b52d39dba1282353167" } Frame { - msec: 10768 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5040 + hash: "bb41010df844312fc15bb5b42712619a" } Frame { - msec: 10784 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5056 + hash: "63a3e18670bb2a5e7edfe3b752c0a1b5" } Frame { - msec: 10800 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5072 + hash: "92b1d0fbadbefe9f122b14903a5e0ee9" } Frame { - msec: 10816 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5088 + hash: "6b979e1a4bc7226a89ffb97be2f08147" } Frame { - msec: 10832 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5104 + hash: "7b783908e0b10d329a7d3172f2302a85" } Frame { - msec: 10848 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5120 + hash: "41d5ef3390cfc0d806825fc0cd033be6" } Frame { - msec: 10864 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5136 + hash: "ff1a053c0af99c51353503002515843d" } Frame { - msec: 10880 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5152 + hash: "63b26ecde2a2a9ce36884191304352ed" } Frame { - msec: 10896 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5168 + hash: "bdcff2f9f2c376974211ea6ad5c4961f" } Frame { - msec: 10912 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5184 + hash: "00ffef1a1d4341ac1c7f43d493a9e826" } Frame { - msec: 10928 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5200 + hash: "65dcbb543656f65267c7d32dcd644e56" } Frame { - msec: 10944 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5216 + hash: "38b49419b7103d76da2b6d7101d63d88" } Frame { - msec: 10960 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5232 + hash: "de39f6bf64745054cbee30ddf306f641" } Frame { - msec: 10976 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5248 + hash: "d6b5ceca4aa48a7d4fd901d44c151b53" } Frame { - msec: 10992 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5264 + hash: "876e6eee8a35c34e2dd5269f86a9ab3a" } Frame { - msec: 11008 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5280 + hash: "f94219306eac2e678881d0b607d15a1e" } Frame { - msec: 11024 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5296 + hash: "c9184196ef45c985f08f80435492641d" } Frame { - msec: 11040 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5312 + hash: "34dc672ebfd75ec017d0c2f0bd435cd8" } Frame { - msec: 11056 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5328 + hash: "4daf1c730fdf13e0a87b28208f2b6dd1" } Frame { - msec: 11072 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5344 + hash: "c28d5d7d9d3a86e5bbf6ad48331f9c61" } Frame { - msec: 11088 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5360 + hash: "3f98121997a1613bd49d22003d1a1887" } Frame { - msec: 11104 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5376 + hash: "86732d3e900877ae7a8615b7448afaaa" } Frame { - msec: 11120 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5392 + hash: "9f3da7ebaeb319c9fec0abdd6bd76ee2" } Frame { - msec: 11136 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5408 + hash: "326563c2c812a74c7f1fa5e9da0c2369" } Frame { - msec: 11152 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5424 + hash: "79e00bbe77f0a178e8db30023a881c3f" } Frame { - msec: 11168 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5440 + hash: "e624204566550e928ab2a2c54113d217" } Frame { - msec: 11184 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5456 + hash: "b95bf705b81544b05f560c54dec56ff1" } Frame { - msec: 11200 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5472 + hash: "4f4cd776b76272cfe79b86a108bd6b6e" } Frame { - msec: 11216 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5488 + hash: "ec2eb1b39a252bd9b37d12ede3d231ce" } Frame { - msec: 11232 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5504 + hash: "a746404a1a26e2a25b8d364dbef46eef" } Frame { - msec: 11248 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5520 + hash: "17d190465ee0d348d9b67a748626d99e" } Frame { - msec: 11264 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5536 + hash: "9124d97d120de1806d86c8f437ec4ed2" } Frame { - msec: 11280 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5552 + hash: "ea746de2380835d299c56bb01f0aa83c" } Frame { - msec: 11296 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5568 + hash: "4fda328eafe6ec2d02d939517d6d82e3" } Frame { - msec: 11312 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5584 + hash: "9c6f671def0b1f5d780024a9dad439e6" } Frame { - msec: 11328 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5600 + hash: "b7d441d0bb27ed6d1984f324b6e02548" } Frame { - msec: 11344 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5616 + hash: "3042a62a1125171d9530b696f4b36e19" } Frame { - msec: 11360 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5632 + hash: "4534f40cf6bb7f402d7252c474629664" } Frame { - msec: 11376 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5648 + hash: "cb5962fe94c5d3ef754ff45f905a5c88" } Frame { - msec: 11392 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5664 + hash: "b5a5f9f3aa0948f0bd8d9b4a3fceae50" } Frame { - msec: 11408 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5680 + hash: "2e0605899abb5725cf22561ec9293879" } Frame { - msec: 11424 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5696 + hash: "1f260f1d931326be7e398f7c87e44735" } Frame { - msec: 11440 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5712 + hash: "57b5fc47ed700831b3dc3f2afbb1c3ed" } Frame { - msec: 11456 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5728 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11472 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5744 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11488 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5760 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11504 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5776 + image: "flickable-vertical.6.png" } Mouse { type: 2 button: 1 buttons: 1 - x: 115; y: 578 + x: 102; y: 279 modifiers: 0 sendToViewport: true } Frame { - msec: 11520 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" - } - Frame { - msec: 11536 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5792 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11552 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5808 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11568 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5824 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11584 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5840 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Mouse { type: 3 button: 1 buttons: 0 - x: 115; y: 578 + x: 102; y: 279 modifiers: 0 sendToViewport: true } Frame { - msec: 11600 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5856 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Frame { + msec: 5872 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11616 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5888 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11632 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5904 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11648 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5920 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11664 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5936 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11680 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5952 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11696 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5968 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11712 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 5984 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11728 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6000 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11744 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6016 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11760 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6032 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11776 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6048 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11792 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6064 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 148; y: 276 + modifiers: 0 + sendToViewport: true } Frame { - msec: 11808 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6080 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11824 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6096 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11840 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6112 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11856 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6128 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11872 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6144 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Mouse { - type: 2 + type: 3 button: 1 - buttons: 1 - x: 130; y: 410 + buttons: 0 + x: 148; y: 276 modifiers: 0 sendToViewport: true } Frame { - msec: 11888 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6160 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Frame { + msec: 6176 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Frame { + msec: 6192 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11904 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6208 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11920 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6224 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11936 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6240 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11952 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6256 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11968 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6272 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 130; y: 410 - modifiers: 0 - sendToViewport: true + Frame { + msec: 6288 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Frame { + msec: 6304 + hash: "8b9167c04a8acc7f8ade258a3e58893b" + } + Frame { + msec: 6320 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 11984 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6336 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 12000 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6352 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 12016 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6368 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Frame { - msec: 12032 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6384 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Mouse { - type: 4 + type: 2 button: 1 buttons: 1 - x: 130; y: 410 + x: 129; y: 101 modifiers: 0 sendToViewport: true } Frame { - msec: 12048 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6400 + hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + } + Frame { + msec: 6416 + hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 129; y: 103 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 129; y: 105 + modifiers: 0 + sendToViewport: true } Frame { - msec: 12064 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6432 + hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 130; y: 110 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 131; y: 410 + x: 132; y: 123 modifiers: 0 sendToViewport: true } Frame { - msec: 12080 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6448 + hash: "8b9167c04a8acc7f8ade258a3e58893b" } Mouse { type: 5 button: 0 buttons: 1 - x: 133; y: 408 + x: 132; y: 133 modifiers: 0 sendToViewport: true } @@ -4796,19 +2716,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 134; y: 405 + x: 134; y: 145 modifiers: 0 sendToViewport: true } Frame { - msec: 12096 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6464 + hash: "a5daa2f6c932fa38038639bdc8231c5d" } Mouse { type: 5 button: 0 buttons: 1 - x: 136; y: 403 + x: 136; y: 159 modifiers: 0 sendToViewport: true } @@ -4816,31 +2736,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 140; y: 396 + x: 138; y: 172 modifiers: 0 sendToViewport: true } Frame { - msec: 12112 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6480 + hash: "f342612efcd5e0820b44bd788ec52d7a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 138; y: 187 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 150; y: 380 + x: 140; y: 203 modifiers: 0 sendToViewport: true } Frame { - msec: 12128 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6496 + hash: "9a66e65c69ec833a36cce5cbd7d8257f" } Mouse { type: 5 button: 0 buttons: 1 - x: 154; y: 370 + x: 140; y: 214 modifiers: 0 sendToViewport: true } @@ -4848,19 +2776,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 158; y: 361 + x: 141; y: 224 modifiers: 0 sendToViewport: true } Frame { - msec: 12144 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6512 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 161; y: 353 + x: 143; y: 235 modifiers: 0 sendToViewport: true } @@ -4868,19 +2796,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 163; y: 343 + x: 143; y: 246 modifiers: 0 sendToViewport: true } Frame { - msec: 12160 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6528 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 166; y: 332 + x: 143; y: 257 modifiers: 0 sendToViewport: true } @@ -4888,19 +2816,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 166; y: 324 + x: 145; y: 269 modifiers: 0 sendToViewport: true } Frame { - msec: 12176 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6544 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 168; y: 315 + x: 145; y: 278 modifiers: 0 sendToViewport: true } @@ -4908,19 +2836,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 168; y: 309 + x: 145; y: 289 modifiers: 0 sendToViewport: true } Frame { - msec: 12192 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6560 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 168; y: 303 + x: 147; y: 299 modifiers: 0 sendToViewport: true } @@ -4928,19 +2856,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 168; y: 297 + x: 147; y: 308 modifiers: 0 sendToViewport: true } Frame { - msec: 12208 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6576 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 5 button: 0 buttons: 1 - x: 168; y: 293 + x: 149; y: 316 modifiers: 0 sendToViewport: true } @@ -4948,19 +2876,27 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 168; y: 291 + x: 149; y: 318 modifiers: 0 sendToViewport: true } Frame { - msec: 12224 - hash: "c246bde0eb2b3e1797dfb770a9db78bb" + msec: 6592 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 149; y: 320 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 168; y: 290 + x: 149; y: 321 modifiers: 0 sendToViewport: true } @@ -4968,67 +2904,147 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 168; y: 290 + x: 149; y: 321 modifiers: 0 sendToViewport: true } Frame { - msec: 12240 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6608 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6624 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6640 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6656 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6672 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6688 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6704 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6720 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6736 + image: "flickable-vertical.7.png" + } + Frame { + msec: 6752 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6768 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6784 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6800 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12256 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6816 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6832 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6848 + hash: "bca482a77823f03e8fb4170ee329fc0e" + } + Frame { + msec: 6864 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12272 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6880 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12288 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6896 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12304 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6912 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12320 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6928 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12336 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6944 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12352 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6960 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12368 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6976 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Frame { - msec: 12384 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 6992 + hash: "bca482a77823f03e8fb4170ee329fc0e" } Mouse { type: 2 button: 1 buttons: 1 - x: 167; y: 295 + x: 166; y: 191 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7008 + hash: "9ed65a21e4aaedf9c48a38324b3f5480" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 167; y: 190 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 167; y: 189 modifiers: 0 sendToViewport: true } Frame { - msec: 12400 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7024 + hash: "9ed65a21e4aaedf9c48a38324b3f5480" } Mouse { type: 5 button: 0 buttons: 1 - x: 167; y: 300 + x: 167; y: 188 modifiers: 0 sendToViewport: true } @@ -5036,19 +3052,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 165; y: 308 + x: 168; y: 185 modifiers: 0 sendToViewport: true } Frame { - msec: 12416 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7040 + hash: "9ed65a21e4aaedf9c48a38324b3f5480" } Mouse { type: 5 button: 0 buttons: 1 - x: 165; y: 316 + x: 169; y: 183 modifiers: 0 sendToViewport: true } @@ -5056,19 +3072,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 165; y: 326 + x: 169; y: 179 modifiers: 0 sendToViewport: true } Frame { - msec: 12432 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7056 + hash: "c4925926f64b852ff6c8d07e1c70ead5" } Mouse { type: 5 button: 0 buttons: 1 - x: 163; y: 336 + x: 170; y: 172 modifiers: 0 sendToViewport: true } @@ -5076,19 +3092,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 163; y: 346 + x: 170; y: 162 modifiers: 0 sendToViewport: true } Frame { - msec: 12448 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7072 + hash: "da771cedad067b8f25c100613b6a14f2" } Mouse { type: 5 button: 0 buttons: 1 - x: 165; y: 356 + x: 168; y: 150 modifiers: 0 sendToViewport: true } @@ -5096,19 +3112,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 165; y: 369 + x: 167; y: 139 modifiers: 0 sendToViewport: true } Frame { - msec: 12464 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7088 + hash: "c8862bf76a431edc1cf04f4114fa859f" } Mouse { type: 5 button: 0 buttons: 1 - x: 165; y: 382 + x: 165; y: 125 modifiers: 0 sendToViewport: true } @@ -5116,19 +3132,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 167; y: 393 + x: 163; y: 113 modifiers: 0 sendToViewport: true } Frame { - msec: 12480 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7104 + hash: "4d923cd520c00f5cd985283d62cf17ec" } Mouse { type: 5 button: 0 buttons: 1 - x: 167; y: 405 + x: 161; y: 103 modifiers: 0 sendToViewport: true } @@ -5136,19 +3152,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 167; y: 415 + x: 160; y: 92 modifiers: 0 sendToViewport: true } Frame { - msec: 12496 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7120 + hash: "76b0d1c77ba29bad836673b1b79de911" } Mouse { type: 5 button: 0 buttons: 1 - x: 167; y: 420 + x: 158; y: 80 modifiers: 0 sendToViewport: true } @@ -5156,79 +3172,155 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 167; y: 429 + x: 156; y: 66 modifiers: 0 sendToViewport: true } Frame { - msec: 12512 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7136 + hash: "3f9c5686f0a9ef5ecf2b8338ef2e7933" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 154; y: 52 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 167; y: 433 + x: 154; y: 38 modifiers: 0 sendToViewport: true } Frame { - msec: 12528 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7152 + hash: "799d83eedefa0a56f37a83404c59ad4f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 152; y: 27 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 150; y: 18 + modifiers: 0 + sendToViewport: true } Mouse { type: 3 button: 1 buttons: 0 - x: 167; y: 433 + x: 150; y: 18 modifiers: 0 sendToViewport: true } Frame { - msec: 12544 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7168 + hash: "d6b5ceca4aa48a7d4fd901d44c151b53" + } + Frame { + msec: 7184 + hash: "e1609c4e40fb9e043a9fff683b94c6c4" + } + Frame { + msec: 7200 + hash: "ea457fc4d4065d2ed0e9f6efc47a06ee" + } + Frame { + msec: 7216 + hash: "b7f4319aa9c21640a697ee89f162bb49" + } + Frame { + msec: 7232 + hash: "880f60263cd79fb6a1bff7252d2373bb" + } + Frame { + msec: 7248 + hash: "00ffef1a1d4341ac1c7f43d493a9e826" + } + Frame { + msec: 7264 + hash: "c949fe87ba91e08f26a1c4d90028513f" + } + Frame { + msec: 7280 + hash: "8636af4591c61c4b4a548f3a38749413" + } + Frame { + msec: 7296 + hash: "63b26ecde2a2a9ce36884191304352ed" + } + Frame { + msec: 7312 + hash: "843f7263f63442f0041bf2c1a6fae400" + } + Frame { + msec: 7328 + hash: "ff1a053c0af99c51353503002515843d" } Frame { - msec: 12560 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7344 + hash: "47aea3ac4ea935d43f731a258287c2e8" + } + Frame { + msec: 7360 + hash: "eee4fa336149528dfb16565b856ca692" } Frame { - msec: 12576 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7376 + hash: "bb94493c25c56c41e81ef1e390adf63d" + } + Frame { + msec: 7392 + hash: "2915f455a5e1e8c6b8cc78309c5e84d9" } Frame { - msec: 12592 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7408 + hash: "94701ffaa4f45924ad89f92a30157c7d" } Frame { - msec: 12608 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7424 + hash: "92fae8cf4b8d8404b26a31f995860b95" } Frame { - msec: 12624 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7440 + hash: "6b979e1a4bc7226a89ffb97be2f08147" } Frame { - msec: 12640 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7456 + hash: "dd94beeb0b4933a9ac2236a9abe630ff" } Mouse { type: 2 button: 1 buttons: 1 - x: 145; y: 357 + x: 109; y: 172 modifiers: 0 sendToViewport: true } Frame { - msec: 12656 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7472 + hash: "dd94beeb0b4933a9ac2236a9abe630ff" + } + Frame { + msec: 7488 + hash: "dd94beeb0b4933a9ac2236a9abe630ff" } Mouse { type: 5 button: 0 buttons: 1 - x: 145; y: 350 + x: 109; y: 170 modifiers: 0 sendToViewport: true } @@ -5236,19 +3328,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 145; y: 342 + x: 109; y: 168 modifiers: 0 sendToViewport: true } Frame { - msec: 12672 - hash: "b0e76c5cfeb797888e8c032b3f2781bd" + msec: 7504 + hash: "dd94beeb0b4933a9ac2236a9abe630ff" } Mouse { type: 5 button: 0 buttons: 1 - x: 145; y: 333 + x: 109; y: 165 modifiers: 0 sendToViewport: true } @@ -5256,43 +3348,59 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 145; y: 323 + x: 109; y: 152 modifiers: 0 sendToViewport: true } Frame { - msec: 12688 - hash: "7eda3c99a4c066ed00c717e33a66682c" + msec: 7520 + hash: "34c7ed1c072d84626a8a64f7db02f71d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 135 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 147; y: 305 + x: 109; y: 116 modifiers: 0 sendToViewport: true } Frame { - msec: 12704 - hash: "85402c05dd1bd85316422aec2b774e4f" + msec: 7536 + hash: "e723da5ecaffe31f03b1d5ca6765229b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 91 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 147; y: 285 + x: 104; y: 66 modifiers: 0 sendToViewport: true } Frame { - msec: 12720 - hash: "f8ebaae72eb98b880aaf5bb8cf517840" + msec: 7552 + hash: "a85128cae494abeb5d45ab8df0d127a6" } Mouse { type: 5 button: 0 buttons: 1 - x: 147; y: 275 + x: 102; y: 42 modifiers: 0 sendToViewport: true } @@ -5300,19 +3408,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 147; y: 264 + x: 100; y: 17 modifiers: 0 sendToViewport: true } Frame { - msec: 12736 - hash: "83ebbcd20af8178175ea72698b9bfd08" + msec: 7568 + hash: "3599a92966c27321e9f702f3428b9b00" } Mouse { type: 5 button: 0 buttons: 1 - x: 145; y: 253 + x: 100; y: -2 modifiers: 0 sendToViewport: true } @@ -5320,268 +3428,220 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 145; y: 253 + x: 100; y: -2 modifiers: 0 sendToViewport: true } Frame { - msec: 12752 - hash: "a154f7125f88c25484aea9f268a10e22" - } - Frame { - msec: 12768 - hash: "4a1fdbc170f98e3c438cf47526fd16a1" - } - Frame { - msec: 12784 - hash: "99228a13ebf2516199d339cc73e1358f" - } - Frame { - msec: 12800 - hash: "724687b54e474e4dc53b105ed9ca2def" - } - Frame { - msec: 12816 - hash: "4db074b34af9472a5d853928953901dc" - } - Frame { - msec: 12832 - hash: "ab1acd2ba148a7830f75cbf2e09e426c" - } - Frame { - msec: 12848 - hash: "04a22e2278823d9e49e524ef2d8d45c5" - } - Frame { - msec: 12864 - hash: "f5a658c7c2b185e250dc1b245457094b" - } - Frame { - msec: 12880 - hash: "bb611d6a086b0eedb37111d7575847df" - } - Frame { - msec: 12896 - hash: "04e9e40c43a51b704378871710ad9f8b" - } - Frame { - msec: 12912 - hash: "7ff5ba1e30f93de2dd3cad953d3d60fb" - } - Frame { - msec: 12928 - hash: "f85e46ed733dbbec83509d6a3b4c72a0" - } - Frame { - msec: 12944 - hash: "2f08cc1d92102138d6a4945116727be5" + msec: 7584 + hash: "067a1bef3df5d1c40842f28885d60250" } Frame { - msec: 12960 - hash: "864a68a8519e58081205d74b4184498b" + msec: 7600 + hash: "82f818ed44a191fb51e637b8068786dc" } Frame { - msec: 12976 - hash: "1fb6a1ecbde71566486a1310a5ab9c17" + msec: 7616 + hash: "f408f59707195549ba61f030a3f020cd" } Frame { - msec: 12992 - hash: "5ab977d88d850d94340bfc0c15137486" + msec: 7632 + hash: "66e79c8b2f8e3a57c3bc14935c5df7d1" } Frame { - msec: 13008 - hash: "79bafb9b957d88f938c977b37e1d8b9c" + msec: 7648 + hash: "4341c6b7b0d2e8021b51cb1abab85e10" } Frame { - msec: 13024 - hash: "fa5b1cf343b45407f6cee7ce38ca9eb0" + msec: 7664 + hash: "5ec8ee5ccecac1787b2f5e99268e810d" } Frame { - msec: 13040 - hash: "1147ff69795a65878ffea7bed4b9a93f" + msec: 7680 + hash: "1fae7b735ff6e88abfb1423f8960da4f" } Frame { - msec: 13056 - hash: "08ad4cd6fbdba8c98dfbc096ab91ebd2" + msec: 7696 + image: "flickable-vertical.8.png" } Frame { - msec: 13072 - hash: "3ee0c33a1a80b8cad7ec525b8b16cb70" + msec: 7712 + hash: "dce74ff07eb37c82a38b3e515f9a43f2" } Frame { - msec: 13088 - hash: "cabd708943ce14892bb69aa22dc4a2b5" + msec: 7728 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13104 - hash: "86a7afcbbd67b50b7bf3ef85f1843e3d" + msec: 7744 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13120 - hash: "111f0161479cf82c08dd918b6ece8e45" + msec: 7760 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13136 - hash: "33da9e73f1521297c3d250f00cda20cd" + msec: 7776 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13152 - hash: "72f166ddddac3962b39cf4283b4554f3" + msec: 7792 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13168 - hash: "1ee57340798998f95114d929d2702ce6" + msec: 7808 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13184 - hash: "eb036d3246a2361aa1b11c8408f9eb1a" + msec: 7824 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13200 - hash: "af73e799d7cb536d0ba6db985396c597" + msec: 7840 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13216 - hash: "5d84accad1fa5d421bc3effb148d81a6" + msec: 7856 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13232 - hash: "d752289e96eb2398096297234b6b88f6" + msec: 7872 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13248 - hash: "53970a50451c182f672d0ddcd572279d" + msec: 7888 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13264 - hash: "6323f61cc6966e75be10a49aeaab9a3e" + msec: 7904 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13280 - hash: "fb679e5ad89681f482d94b4dab80e3bb" + msec: 7920 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13296 - hash: "1788a7f680bbcbcedb2583cead6ced57" + msec: 7936 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13312 - hash: "b325580b9f88dd5490d914f580b9d341" + msec: 7952 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13328 - hash: "8fa25fff546b060a92b60e6fbb3b2fa8" + msec: 7968 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13344 - hash: "2fb5ee5e86745910b46d98943af4c9d5" + msec: 7984 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13360 - hash: "7fcdce21e2e1b14501e79d9c716b0011" + msec: 8000 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13376 - hash: "bf79452e478bfe3374d4c275fc3b42fb" + msec: 8016 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13392 - hash: "1069c4aff64ab8193798965af7a6988e" + msec: 8032 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13408 - hash: "3031ea711d0880a2fafd557f23c38cc0" + msec: 8048 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13424 - hash: "5955c49ae05578f6a9b023a1f6c8301b" + msec: 8064 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13440 - hash: "f77f12bdb352d5a8470ae8c93ae3646e" + msec: 8080 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13456 - hash: "af2fc9780356c01d44e7e918643e334b" + msec: 8096 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13472 - hash: "b28600a5433e08299bf5ab3c789a4d5a" + msec: 8112 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13488 - hash: "159dab2806a6fbac4f090c4ca029433e" + msec: 8128 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13504 - hash: "b1937894776d083eb38f105901344d55" + msec: 8144 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13520 - hash: "2420c1280e6520e35f30879fe139ed77" + msec: 8160 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13536 - hash: "ba0018197140b398caa05eada958e2ce" + msec: 8176 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13552 - hash: "b04094c2734f71e17a2d0091b3c85565" + msec: 8192 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13568 - hash: "2ff995d15a49fcbd0adfcb970135ebae" + msec: 8208 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13584 - hash: "9b10dc438e944a8711aef1f45c912538" + msec: 8224 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13600 - hash: "c397307c99d125789e03b0239c6d7130" + msec: 8240 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13616 - hash: "aa6fe1c4d968bbf381f38c09e9c26eea" + msec: 8256 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13632 - hash: "8d586f001d41ccde450a4ce88a8ef89a" + msec: 8272 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13648 - hash: "80f98a4935097ec76bd863ffe4e3a441" + msec: 8288 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13664 - hash: "620b4eddf956d85701387a114ec228fc" + msec: 8304 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13680 - hash: "dc56a6cafe22e56d6d5efee62c324784" + msec: 8320 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13696 - hash: "8fcf5f5b350ffc80cde03b044dc81e57" + msec: 8336 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13712 - hash: "5bc02d5bfcc6f4a9349623139663e664" + msec: 8352 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13728 - hash: "6a71734b1a38cdbacf8447a41481d67c" + msec: 8368 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13744 - hash: "34b069ef8080e15db86f66983f18c58d" + msec: 8384 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13760 - hash: "0131b30e21796e0ea9ad1484ac7ac6e4" + msec: 8400 + hash: "ba2c06129f17fde474427859d66ecd23" } Frame { - msec: 13776 - hash: "0131b30e21796e0ea9ad1484ac7ac6e4" + msec: 8416 + hash: "ba2c06129f17fde474427859d66ecd23" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml index 5c8ff52..1fd65d1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 Rectangle { color: "lightSteelBlue" - width: 300; height: 600 + width: 200; height: 300 ListModel { id: list @@ -24,7 +24,7 @@ Rectangle { id: column Repeater { model: list - Rectangle { width: 300; height: 200; color: mr.pressed ? "black" : dayColor + Rectangle { width: 200; height: 100; color: mr.pressed ? "black" : dayColor MouseArea { id: mr anchors.fill: parent diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png index b7efe8c..0458d82 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png index aa6d147..0e01afc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png index 9d39713..b256bc2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png index 98e8817..8454ed2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png index a3f9d8f..177a0fe 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.6.png new file mode 100644 index 0000000..a51cffe Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml index 4b089d1..2d362a4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "7d1a0ff0eceb80ff64d828c34792a2d5" + image: "test-flipable.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "ae4e35413e462221b8cb48dd0350f873" + image: "test-flipable.2.png" } Frame { msec: 1952 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 2896 - hash: "ae76d183491834e2b1d0371420d51ce5" + image: "test-flipable.3.png" } Frame { msec: 2912 @@ -966,7 +966,7 @@ VisualTest { } Frame { msec: 3856 - hash: "e18635d7c6c5de361e7406c2db357aca" + image: "test-flipable.4.png" } Frame { msec: 3872 @@ -1206,7 +1206,7 @@ VisualTest { } Frame { msec: 4816 - hash: "6e48e605ea1aed4028e02476328f182b" + image: "test-flipable.5.png" } Frame { msec: 4832 @@ -1446,7 +1446,7 @@ VisualTest { } Frame { msec: 5776 - hash: "90fb4e4ba04ac32b52c10b3258431c04" + image: "test-flipable.6.png" } Frame { msec: 5792 @@ -1559,7 +1559,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml index 08c5e16..d211832 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml @@ -187,7 +187,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png index 9f605c3..c675be7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.10.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.10.png new file mode 100644 index 0000000..c675be7 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png index 35572c5..9f605c3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png index 20146c9..767d7a9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png index 85fac89..20146c9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png index e522bae..85fac89 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png index ec0ba86..e522bae 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png index 20cacc81..f9192e4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png index b2b187d..ad187bd 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png index c675be7..96c6325 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml index 2f7ed93..6f0352d 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml @@ -278,7 +278,7 @@ VisualTest { } Frame { msec: 976 - hash: "02c632713d0dc64bff9d8e58f745df95" + image: "gridview.1.png" } Frame { msec: 992 @@ -550,7 +550,7 @@ VisualTest { } Frame { msec: 1936 - hash: "8304d2432168a2ea8a887d9a135b40b4" + image: "gridview.2.png" } Frame { msec: 1952 @@ -830,7 +830,7 @@ VisualTest { } Frame { msec: 2896 - hash: "534973232974b7ee999172269d16c499" + image: "gridview.3.png" } Key { type: 7 @@ -1110,7 +1110,7 @@ VisualTest { } Frame { msec: 3856 - hash: "e63d987ba303a42046827f14941b444a" + image: "gridview.4.png" } Frame { msec: 3872 @@ -1398,7 +1398,7 @@ VisualTest { } Frame { msec: 4816 - hash: "11150995098af8516513230360d40108" + image: "gridview.5.png" } Frame { msec: 4832 @@ -1670,7 +1670,7 @@ VisualTest { } Frame { msec: 5776 - hash: "3de570332e8a1e01f409d892feb7930e" + image: "gridview.6.png" } Frame { msec: 5792 @@ -1950,7 +1950,7 @@ VisualTest { } Frame { msec: 6736 - hash: "b6c7ad2c8e305ea5478a2307aa71b16b" + image: "gridview.7.png" } Frame { msec: 6752 @@ -2222,7 +2222,7 @@ VisualTest { } Frame { msec: 7696 - hash: "e8b6316baae781ca5390bc86528194c0" + image: "gridview.8.png" } Key { type: 7 @@ -2518,7 +2518,7 @@ VisualTest { } Frame { msec: 8656 - hash: