From cb2a108d79b09ec6ea91106e7f33826dceac4a42 Mon Sep 17 00:00:00 2001 From: Charles Yin Date: Wed, 27 Oct 2010 12:05:52 +1000 Subject: Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors Strange Oracle bug: some Oracle servers crash the server process with non-zero error handle (mostly for 10g). So pass null error handle pointer to OCIAttrSet when setting OCI_ATTR_CHARSET_FORM to bypass this bug. Change-Id: Ifcf65994a22783e69a89bebe1adb882cdf36bdbb Task-number:QTBUG-14132 Reviewed-by: Michael Goddard --- src/sql/drivers/oci/qsql_oci.cpp | 106 +++++++++++++-------------------- tests/auto/qsqlquery/tst_qsqlquery.cpp | 21 +++++++ 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index e11cf75..3f30ea5 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -93,11 +93,13 @@ enum { QOCIEncoding = 2002 }; // AL16UTF16LE enum { QOCIEncoding = 2000 }; // AL16UTF16 #endif +#ifdef OCI_ATTR_CHARSET_FORM // Always set the OCI_ATTR_CHARSET_FORM to SQLCS_NCHAR is safe // because Oracle server will deal with the implicit Conversion // Between CHAR and NCHAR. // see: http://download.oracle.com/docs/cd/A91202_01/901_doc/appdev.901/a89857/oci05bnd.htm#422705 static const ub1 qOraCharsetForm = SQLCS_NCHAR; +#endif #if defined (OCI_UTF16ID) static const ub2 qOraCharset = OCI_UTF16ID; @@ -117,6 +119,8 @@ static // for some reason, Sun CC can't use qOraWarning when it's declared stati void qOraWarning(const char* msg, OCIError *err); static QSqlError qMakeError(const QString& errString, QSqlError::ErrorType type, OCIError *err); + + class QOCIRowId: public QSharedData { public: @@ -164,7 +168,6 @@ struct QOCIResultPrivate int serverVersion; int prefetchRows, prefetchMem; - void setCharset(OCIBind* hbnd); void setStatementAttributes(); int bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, int pos, const QVariant &val, dvoid *indPtr, ub2 *tmpSize, QList &tmpStorage); @@ -176,6 +179,41 @@ struct QOCIResultPrivate { return q->bindValueType(i) & QSql::Out; } inline bool isBinaryValue(int i) const { return q->bindValueType(i) & QSql::Binary; } + + void setCharset(dvoid* handle, ub4 type) const + { + int r = 0; + Q_ASSERT(handle); + +#ifdef OCI_ATTR_CHARSET_FORM + r = OCIAttrSet(handle, + type, + // this const cast is safe since OCI doesn't touch + // the charset. + const_cast(static_cast(&qOraCharsetForm)), + 0, + OCI_ATTR_CHARSET_FORM, + //Strange Oracle bug: some Oracle servers crash the server process with non-zero error handle (mostly for 10g). + //So ignore the error message here. + 0); + #ifdef QOCI_DEBUG + if (r != 0) + qWarning("QOCIResultPrivate::setCharset: Couldn't set OCI_ATTR_CHARSET_FORM."); + #endif +#endif + + r = OCIAttrSet(handle, + type, + // this const cast is safe since OCI doesn't touch + // the charset. + const_cast(static_cast(&qOraCharset)), + 0, + OCI_ATTR_CHARSET_ID, + err); + if (r != 0) + qOraWarning("QOCIResultPrivate::setCharsetI Couldn't set OCI_ATTR_CHARSET_ID: ", err); + + } }; void QOCIResultPrivate::setStatementAttributes() @@ -208,36 +246,6 @@ void QOCIResultPrivate::setStatementAttributes() } } -void QOCIResultPrivate::setCharset(OCIBind* hbnd) -{ - int r = 0; - - Q_ASSERT(hbnd); - - r = OCIAttrSet(hbnd, - OCI_HTYPE_BIND, - // this const cast is safe since OCI doesn't touch - // the charset. - const_cast(static_cast(&qOraCharsetForm)), - 0, - OCI_ATTR_CHARSET_FORM, - err); - if (r != 0) - qOraWarning("QOCIResultPrivate::setCharset: Couldn't set OCI_ATTR_CHARSET_FORM: ", err); - - r = OCIAttrSet(hbnd, - OCI_HTYPE_BIND, - // this const cast is safe since OCI doesn't touch - // the charset. - const_cast(static_cast(&qOraCharset)), - 0, - OCI_ATTR_CHARSET_ID, - err); - if (r != 0) - qOraWarning("QOCIResultPrivate::setCharset: Couldn't set OCI_ATTR_CHARSET_ID: ", err); - -} - int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, int pos, const QVariant &val, dvoid *indPtr, ub2 *tmpSize, QList &tmpStorage) { @@ -325,7 +333,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in (s.length() + 1) * sizeof(QChar), SQLT_STR, indPtr, 0, 0, 0, 0, OCI_DEFAULT); if (r == OCI_SUCCESS) - setCharset(*hbnd); + setCharset(*hbnd, OCI_HTYPE_BIND); break; } } // fall through for OUT values @@ -349,7 +357,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in SQLT_STR, indPtr, 0, 0, 0, 0, OCI_DEFAULT); } if (r == OCI_SUCCESS) - setCharset(*hbnd); + setCharset(*hbnd, OCI_HTYPE_BIND); tmpStorage.append(ba); break; } // default case @@ -688,7 +696,6 @@ class QOCICols public: QOCICols(int size, QOCIResultPrivate* dp); ~QOCICols(); - void setCharset(OCIDefine* dfn); int readPiecewise(QVector &values, int index = 0); int readLOBs(QVector &values, int index = 0); int fieldFromDefine(OCIDefine* d); @@ -890,7 +897,7 @@ QOCICols::QOCICols(int size, QOCIResultPrivate* dp) &(fieldInf[idx].ind), 0, 0, OCI_DEFAULT); if (r == 0) - setCharset(dfn); + d->setCharset(dfn, OCI_HTYPE_DEFINE); } break; default: @@ -950,35 +957,6 @@ OCILobLocator **QOCICols::createLobLocator(int position, OCIEnv* env) return &lob; } -void QOCICols::setCharset(OCIDefine* dfn) -{ - int r = 0; - - Q_ASSERT(dfn); - - r = OCIAttrSet(dfn, - OCI_HTYPE_DEFINE, - // this const cast is safe since OCI doesn't touch - // the charset. - const_cast(static_cast(&qOraCharsetForm)), - 0, - OCI_ATTR_CHARSET_FORM, - d->err); - if (r != 0) - qOraWarning("QOCIResultPrivate::setCharset: Couldn't set OCI_ATTR_CHARSET_FORM: ", d->err); - - r = OCIAttrSet(dfn, - OCI_HTYPE_DEFINE, - // this const cast is safe since OCI doesn't touch - // the charset. - const_cast(static_cast(&qOraCharset)), - 0, - OCI_ATTR_CHARSET_ID, - d->err); - if (r != 0) - qOraWarning("QOCICols::setCharset: Couldn't set OCI_ATTR_CHARSET_ID: ", d->err); -} - int QOCICols::readPiecewise(QVector &values, int index) { OCIDefine* dfn; diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index c7a61a5..7c93c7a 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -209,6 +209,8 @@ private slots: void QTBUG_6852(); void QTBUG_5765_data() { generic_data("QMYSQL"); } void QTBUG_5765(); + void QTBUG_14132_data() { generic_data("QOCI"); } + void QTBUG_14132(); void sqlite_constraint_data() { generic_data("QSQLITE"); } void sqlite_constraint(); @@ -2933,6 +2935,25 @@ void tst_QSqlQuery::QTBUG_551() QCOMPARE(res_outLst[2].toString(), QLatin1String("3. Value is 2")); } +void tst_QSqlQuery::QTBUG_14132() +{ + QFETCH( QString, dbName ); + QSqlDatabase db = QSqlDatabase::database( dbName ); + CHECK_DATABASE( db ); + QSqlQuery q(db); + const QString procedureName(qTableName("procedure", __FILE__)); + QVERIFY_SQL(q, exec("CREATE OR REPLACE PROCEDURE "+ procedureName + " (outStr OUT varchar2) \n\ + is \n\ + begin \n\ + outStr := 'OUTSTRING'; \n\ + end;")); + QString outValue = "XXXXXXXXX"; + q.prepare("CALL "+procedureName+"(?)"); + q.addBindValue(outValue, QSql::Out); + QVERIFY_SQL(q, exec()); + QCOMPARE(outValue, QLatin1String("OUTSTRING")); +} + void tst_QSqlQuery::QTBUG_5251() { QFETCH( QString, dbName ); -- cgit v0.12 From c76f9f15d1c604cdf3d68d2147a4a06d227871fa Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Thu, 28 Oct 2010 09:27:24 +0200 Subject: Fix possible crash in QStaticText and QDeclarativeTextLayout The QStaticTextItem held an uncounted reference to QFontEngine. The pointer would dangle in some cases where there was no font object referencing the engine and the cache was cleaned out (e.g. when a new application font is added.) Properly count the reference, and also add reference counting to userData to make it harder to shoot yourself in the foot, since the QStaticTextItem class is now being used in different places, Task-number: QTBUG-14446 Reviewed-by: Martin Jones --- .../graphicsitems/qdeclarativetextlayout.cpp | 4 +- src/gui/painting/qpaintengine_raster.cpp | 2 +- src/gui/painting/qpainter.cpp | 4 +- src/gui/text/qstatictext.cpp | 22 ++++++++- src/gui/text/qstatictext_p.h | 54 ++++++++++++++++++---- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 24 +++++----- src/opengl/qpaintengine_opengl.cpp | 8 ++-- src/openvg/qpaintengine_vg.cpp | 2 +- 8 files changed, 88 insertions(+), 32 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp index 89a2158..635ceab 100644 --- a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp @@ -94,7 +94,7 @@ class DrawTextItemRecorder: public QPaintEngine if (!m_inertText->items.isEmpty()) { QStaticTextItem &last = m_inertText->items[m_inertText->items.count() - 1]; - if (last.fontEngine == ti.fontEngine && last.font == ti.font() && + if (last.fontEngine() == ti.fontEngine && last.font == ti.font() && (!m_dirtyPen || last.color == state->pen().color())) { needFreshCurrentItem = false; @@ -107,7 +107,7 @@ class DrawTextItemRecorder: public QPaintEngine if (needFreshCurrentItem) { QStaticTextItem currentItem; - currentItem.fontEngine = ti.fontEngine; + currentItem.setFontEngine(ti.fontEngine); currentItem.font = ti.font(); currentItem.charOffset = charOffset; currentItem.numChars = ti.num_chars; diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 8f9d8ba..d4b044b 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -3300,7 +3300,7 @@ void QRasterPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) ensureState(); drawCachedGlyphs(textItem->numGlyphs, textItem->glyphs, textItem->glyphPositions, - textItem->fontEngine); + textItem->fontEngine()); } /*! diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 7fed7e4..ab9707d 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -5746,7 +5746,7 @@ void QPainterPrivate::drawGlyphs(const quint32 *glyphArray, const QPointF *posit QStaticTextItem staticTextItem; staticTextItem.color = state->pen.color(); staticTextItem.font = state->font; - staticTextItem.fontEngine = fontEngine; + staticTextItem.setFontEngine(fontEngine); staticTextItem.numGlyphs = glyphCount; staticTextItem.glyphs = reinterpret_cast(const_cast(glyphArray)); staticTextItem.glyphPositions = positions.data(); @@ -5938,7 +5938,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText d->extended->drawStaticTextItem(item); drawDecorationForGlyphs(this, item->glyphs, item->glyphPositions, - item->numGlyphs, item->fontEngine, staticText_d->font, + item->numGlyphs, item->fontEngine(), staticText_d->font, QTextCharFormat()); } if (currentColor != oldPen.color()) diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp index 9506006..edf248a 100644 --- a/src/gui/text/qstatictext.cpp +++ b/src/gui/text/qstatictext.cpp @@ -445,7 +445,7 @@ namespace { const QTextItemInt &ti = static_cast(textItem); QStaticTextItem currentItem; - currentItem.fontEngine = ti.fontEngine; + currentItem.setFontEngine(ti.fontEngine); currentItem.font = ti.font(); currentItem.charOffset = m_chars.size(); currentItem.numChars = ti.num_chars; @@ -713,4 +713,24 @@ void QStaticTextPrivate::init() needsRelayout = false; } +QStaticTextItem::~QStaticTextItem() +{ + if (m_userData != 0 && !m_userData->ref.deref()) + delete m_userData; + if (!m_fontEngine->ref.deref()) + delete m_fontEngine; +} + +void QStaticTextItem::setFontEngine(QFontEngine *fe) +{ + if (m_fontEngine != 0) { + if (!m_fontEngine->ref.deref()) + delete m_fontEngine; + } + + m_fontEngine = fe; + if (m_fontEngine != 0) + m_fontEngine->ref.ref(); +} + QT_END_NAMESPACE diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h index cb60626..87ef0d5 100644 --- a/src/gui/text/qstatictext_p.h +++ b/src/gui/text/qstatictext_p.h @@ -68,27 +68,60 @@ public: OpenGLUserData }; - QStaticTextUserData(Type t) : type(t) {} + QStaticTextUserData(Type t) : type(t) { ref = 0; } virtual ~QStaticTextUserData() {} + QAtomicInt ref; Type type; }; class Q_GUI_EXPORT QStaticTextItem { public: - QStaticTextItem() : chars(0), numChars(0), fontEngine(0), userData(0), - useBackendOptimizations(false), userDataNeedsUpdate(0) {} - ~QStaticTextItem() { delete userData; } + QStaticTextItem() : chars(0), numChars(0), useBackendOptimizations(false), + userDataNeedsUpdate(0), m_fontEngine(0), m_userData(0) {} + + QStaticTextItem(const QStaticTextItem &other) + { + operator=(other); + } + + void operator=(const QStaticTextItem &other) + { + glyphPositions = other.glyphPositions; + glyphs = other.glyphs; + chars = other.chars; + numGlyphs = other.numGlyphs; + numChars = other.numChars; + font = other.font; + color = other.color; + useBackendOptimizations = other.useBackendOptimizations; + userDataNeedsUpdate = other.userDataNeedsUpdate; + + m_fontEngine = 0; + m_userData = 0; + setUserData(other.userData()); + setFontEngine(other.fontEngine()); + } + + ~QStaticTextItem(); void setUserData(QStaticTextUserData *newUserData) { - if (userData == newUserData) + if (m_userData == newUserData) return; - delete userData; - userData = newUserData; + if (m_userData != 0 && !m_userData->ref.deref()) + delete m_userData; + + m_userData = newUserData; + if (m_userData != 0) + m_userData->ref.ref(); } + QStaticTextUserData *userData() const { return m_userData; } + + void setFontEngine(QFontEngine *fe); + QFontEngine *fontEngine() const { return m_fontEngine; } union { QFixedPoint *glyphPositions; // 8 bytes per glyph @@ -108,14 +141,17 @@ public: // 12 bytes for pointers int numGlyphs; // 4 bytes per item int numChars; // 4 bytes per item - QFontEngine *fontEngine; // 4 bytes per item QFont font; // 8 bytes per item QColor color; // 10 bytes per item - QStaticTextUserData *userData; // 8 bytes per item char useBackendOptimizations : 1; // 1 byte per item char userDataNeedsUpdate : 1; // // ================ // 51 bytes per item + +private: // Needs special handling in setters, so private to avoid abuse + QFontEngine *m_fontEngine; // 4 bytes per item + QStaticTextUserData *m_userData; // 8 bytes per item + }; class QStaticText; diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 84c7fed..1dcb773 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1350,8 +1350,8 @@ void QGL2PaintEngineEx::drawStaticTextItem(QStaticTextItem *textItem) ensureActive(); - QFontEngineGlyphCache::Type glyphType = textItem->fontEngine->glyphFormat >= 0 - ? QFontEngineGlyphCache::Type(textItem->fontEngine->glyphFormat) + QFontEngineGlyphCache::Type glyphType = textItem->fontEngine()->glyphFormat >= 0 + ? QFontEngineGlyphCache::Type(textItem->fontEngine()->glyphFormat) : d->glyphCacheType; if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) { if (d->device->alphaRequested() || state()->matrix.type() > QTransform::TxTranslate @@ -1430,7 +1430,7 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem { QStaticTextItem staticTextItem; staticTextItem.chars = const_cast(ti.chars); - staticTextItem.fontEngine = ti.fontEngine; + staticTextItem.setFontEngine(ti.fontEngine); staticTextItem.glyphs = glyphs.data(); staticTextItem.numChars = ti.num_chars; staticTextItem.numGlyphs = glyphs.size(); @@ -1475,18 +1475,18 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp QOpenGL2PaintEngineState *s = q->state(); QGLTextureGlyphCache *cache = - (QGLTextureGlyphCache *) staticTextItem->fontEngine->glyphCache(ctx, glyphType, QTransform()); + (QGLTextureGlyphCache *) staticTextItem->fontEngine()->glyphCache(ctx, glyphType, QTransform()); if (!cache || cache->cacheType() != glyphType) { cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform()); - staticTextItem->fontEngine->setGlyphCache(ctx, cache); + staticTextItem->fontEngine()->setGlyphCache(ctx, cache); } bool recreateVertexArrays = false; if (staticTextItem->userDataNeedsUpdate) recreateVertexArrays = true; - else if (staticTextItem->userData == 0) + else if (staticTextItem->userData() == 0) recreateVertexArrays = true; - else if (staticTextItem->userData->type != QStaticTextUserData::OpenGLUserData) + else if (staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData) recreateVertexArrays = true; // We only need to update the cache with new glyphs if we are actually going to recreate the vertex arrays. @@ -1494,8 +1494,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp // cache so this text is performed before we test if the cache size has changed. if (recreateVertexArrays) { cache->setPaintEnginePrivate(this); - cache->populate(staticTextItem->fontEngine, staticTextItem->numGlyphs, staticTextItem->glyphs, - staticTextItem->glyphPositions); + cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs, + staticTextItem->glyphs, staticTextItem->glyphPositions); } if (cache->width() == 0 || cache->height() == 0) @@ -1515,14 +1515,14 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp if (staticTextItem->useBackendOptimizations) { QOpenGLStaticTextUserData *userData = 0; - if (staticTextItem->userData == 0 - || staticTextItem->userData->type != QStaticTextUserData::OpenGLUserData) { + if (staticTextItem->userData() == 0 + || staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData) { userData = new QOpenGLStaticTextUserData(); staticTextItem->setUserData(userData); } else { - userData = static_cast(staticTextItem->userData); + userData = static_cast(staticTextItem->userData()); } // Use cache if backend optimizations is turned on diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp index 74b6b9a..a04d930 100644 --- a/src/opengl/qpaintengine_opengl.cpp +++ b/src/opengl/qpaintengine_opengl.cpp @@ -4918,7 +4918,7 @@ void QOpenGLPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) d->flushDrawQueue(); // make sure the glyphs we want to draw are in the cache - qt_glyph_cache()->cacheGlyphs(d->device->context(), textItem->fontEngine, textItem->glyphs, + qt_glyph_cache()->cacheGlyphs(d->device->context(), textItem->fontEngine(), textItem->glyphs, textItem->numGlyphs); d->setGradientOps(Qt::SolidPattern, QRectF()); // turns off gradient ops @@ -4941,13 +4941,13 @@ void QOpenGLPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - bool antialias = !(textItem->fontEngine->fontDef.styleStrategy & QFont::NoAntialias) + bool antialias = !(textItem->fontEngine()->fontDef.styleStrategy & QFont::NoAntialias) && (d->matrix.type() > QTransform::TxTranslate); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, antialias ? GL_LINEAR : GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, antialias ? GL_LINEAR : GL_NEAREST); for (int i=0; i< textItem->numGlyphs; ++i) { - QGLGlyphCoord *g = qt_glyph_cache()->lookup(textItem->fontEngine, textItem->glyphs[i]); + QGLGlyphCoord *g = qt_glyph_cache()->lookup(textItem->fontEngine(), textItem->glyphs[i]); // we don't cache glyphs with no width/height if (!g) @@ -5003,7 +5003,7 @@ void QOpenGLPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte { QStaticTextItem staticTextItem; staticTextItem.chars = const_cast(ti.chars); - staticTextItem.fontEngine = ti.fontEngine; + staticTextItem.setFontEngine(ti.fontEngine); staticTextItem.glyphs = glyphs.data(); staticTextItem.numChars = ti.num_chars; staticTextItem.numGlyphs = glyphs.size(); diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index ce9d11a..f8788b0 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3407,7 +3407,7 @@ void QVGPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) { - drawCachedGlyphs(textItem->numGlyphs, textItem->glyphs, textItem->font, textItem->fontEngine, + drawCachedGlyphs(textItem->numGlyphs, textItem->glyphs, textItem->font, textItem->fontEngine(), QPointF(0, 0), textItem->glyphPositions); } -- cgit v0.12 From c4d715260bd0ed5f3b6d38a63a2659715342c90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Fri, 29 Oct 2010 13:37:43 +0200 Subject: Prevented threading related crash in OpenGL module. If the last shallow copy of a QImage which is cached in the QGLTextureCache is destroyed in a thread at the same time as the QGLContext which the texture was initialized in is active in a different thread, the QImage thread incorrectly tries to make the context active in two threads at once. To prevent this from happening it's best to always do the texture clean-up in the main thread. Task-number: QT-4238 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/opengl/qgl.cpp | 7 ++- src/opengl/qgl_p.h | 68 +++++++++++++++++--------- tests/auto/qgl/tst_qgl.cpp | 118 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+), 24 deletions(-) diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index dbd295f..84cfa97 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -127,7 +127,12 @@ Q_GLOBAL_STATIC(QGLDefaultOverlayFormat, defaultOverlayFormatInstance) Q_GLOBAL_STATIC(QGLSignalProxy, theSignalProxy) QGLSignalProxy *QGLSignalProxy::instance() { - return theSignalProxy(); + QGLSignalProxy *proxy = theSignalProxy(); + if (proxy && proxy->thread() != qApp->thread()) { + if (proxy->thread() == QThread::currentThread()) + proxy->moveToThread(qApp->thread()); + } + return proxy; } diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index f86c77f..18b2765 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -434,20 +434,6 @@ public: static void setCurrentContext(QGLContext *context); }; -// ### make QGLContext a QObject in 5.0 and remove the proxy stuff -class Q_OPENGL_EXPORT QGLSignalProxy : public QObject -{ - Q_OBJECT -public: - QGLSignalProxy() : QObject() {} - void emitAboutToDestroyContext(const QGLContext *context) { - emit aboutToDestroyContext(context); - } - static QGLSignalProxy *instance(); -Q_SIGNALS: - void aboutToDestroyContext(const QGLContext *context); -}; - Q_DECLARE_OPERATORS_FOR_FLAGS(QGLExtensions::Extensions) // Temporarily make a context current if not already current or @@ -490,6 +476,48 @@ private: QGLContext *m_ctx; }; +// ### make QGLContext a QObject in 5.0 and remove the proxy stuff +class Q_OPENGL_EXPORT QGLSignalProxy : public QObject +{ + Q_OBJECT +public: + QGLSignalProxy() : QObject() { + qRegisterMetaType("GLuint"); + connect(this, SIGNAL(freeTexture(QGLContext *, QPixmapData *, GLuint)), + this, SLOT(freeTexture_slot(QGLContext *, QPixmapData *, GLuint))); + } + void emitAboutToDestroyContext(const QGLContext *context) { + emit aboutToDestroyContext(context); + } + void emitFreeTexture(QGLContext *context, QPixmapData *boundPixmap, GLuint id) { + emit freeTexture(context, boundPixmap, id); + } + static QGLSignalProxy *instance(); +Q_SIGNALS: + void aboutToDestroyContext(const QGLContext *context); + void freeTexture(QGLContext *context, QPixmapData *boundPixmap, GLuint id); + +private slots: + void freeTexture_slot(QGLContext *context, QPixmapData *boundPixmap, GLuint id) { +#if defined(Q_WS_X11) + if (boundPixmap) { + QGLContext *oldContext = const_cast(QGLContext::currentContext()); + context->makeCurrent(); + // Although glXReleaseTexImage is a glX call, it must be called while there + // is a current context - the context the pixmap was bound to a texture in. + // Otherwise the release doesn't do anything and you get BadDrawable errors + // when you come to delete the context. + QGLContextPrivate::unbindPixmapFromTexture(boundPixmap); + glDeleteTextures(1, &id); + oldContext->makeCurrent(); + return; + } +#endif + QGLShareContextScope scope(context); + glDeleteTextures(1, &id); + } +}; + class QGLTexture { public: QGLTexture(QGLContext *ctx = 0, GLuint tx_id = 0, GLenum tx_target = GL_TEXTURE_2D, @@ -506,16 +534,10 @@ public: ~QGLTexture() { if (options & QGLContext::MemoryManagedBindOption) { Q_ASSERT(context); - QGLShareContextScope scope(context); -#if defined(Q_WS_X11) - // Although glXReleaseTexImage is a glX call, it must be called while there - // is a current context - the context the pixmap was bound to a texture in. - // Otherwise the release doesn't do anything and you get BadDrawable errors - // when you come to delete the context. - if (boundPixmap) - QGLContextPrivate::unbindPixmapFromTexture(boundPixmap); +#if !defined(Q_WS_X11) + QPixmapData *boundPixmap = 0; #endif - glDeleteTextures(1, &id); + QGLSignalProxy::instance()->emitFreeTexture(context, boundPixmap, id); } } diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index e411508..4220b45 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -96,6 +96,7 @@ private slots: void shareRegister(); void qglContextDefaultBindTexture(); void textureCleanup(); + void threadImages(); }; tst_QGL::tst_QGL() @@ -2253,6 +2254,123 @@ void tst_QGL::textureCleanup() #endif } +namespace ThreadImages { + +class Producer : public QObject +{ + Q_OBJECT +public: + Producer() + { + startTimer(20); + + QThread *thread = new QThread; + thread->start(); + + connect(this, SIGNAL(destroyed()), thread, SLOT(quit())); + + moveToThread(thread); + connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); + } + +signals: + void imageReady(const QImage &image); + +protected: + void timerEvent(QTimerEvent *) + { + QImage image(256, 256, QImage::Format_RGB32); + QLinearGradient g(0, 0, 0, 256); + g.setColorAt(0, QColor(255, 180, 180)); + g.setColorAt(1, Qt::white); + g.setSpread(QGradient::ReflectSpread); + + QBrush brush(g); + brush.setTransform(QTransform::fromTranslate(0, delta)); + delta += 10; + + QPainter p(&image); + p.fillRect(image.rect(), brush); + + if (images.size() > 10) + images.removeFirst(); + + images.append(image); + + emit imageReady(image); + } + +private: + QList images; + int delta; +}; + + +class DisplayWidget : public QGLWidget +{ + Q_OBJECT +public: + DisplayWidget(QWidget *parent) : QGLWidget(parent) {} + void paintEvent(QPaintEvent *) + { + QPainter p(this); + p.drawImage(rect(), m_image); + } + +public slots: + void setImage(const QImage &image) + { + m_image = image; + update(); + } + +private: + QImage m_image; +}; + +class Widget : public QWidget +{ + Q_OBJECT +public: + Widget() + : iterations(0) + , display(0) + { + startTimer(400); + } + + int iterations; + +protected: + void timerEvent(QTimerEvent *) + { + ++iterations; + + delete display; + display = new DisplayWidget(this); + connect(&producer, SIGNAL(imageReady(const QImage &)), display, SLOT(setImage(const QImage &))); + + display->setGeometry(rect()); + display->show(); + } + +private: + Producer producer; + DisplayWidget *display; +}; + +} + +void tst_QGL::threadImages() +{ + ThreadImages::Widget *widget = new ThreadImages::Widget; + widget->show(); + + while (widget->iterations <= 5) { + qApp->processEvents(); + } +} + class tst_QGLDummy : public QObject { Q_OBJECT -- cgit v0.12 From fb94cee1a10c7bfb8e73dd0a094ae71fe96bf3e7 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 29 Oct 2010 14:06:28 +0200 Subject: Fix gcc bug in qReallocAligned the line faked.pptr[-1] = real.ptr; was ignored by the GCC 4.5. (optimized out) Workaround by using proper reinterpret_cast casting instead of union casting. Fixes crash in tst_Collections::alignment The crash would occurs for any use of qReallocAligned with alignement > sizeof(void*) (fortunately this is not often called) Reviewed-by: thiago --- src/corelib/global/qmalloc.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/corelib/global/qmalloc.cpp b/src/corelib/global/qmalloc.cpp index 090998c..028a0a5 100644 --- a/src/corelib/global/qmalloc.cpp +++ b/src/corelib/global/qmalloc.cpp @@ -90,8 +90,6 @@ void *qReallocAligned(void *oldptr, size_t newsize, size_t oldsize, size_t align return newptr + 1; } - union { void *ptr; void **pptr; quintptr n; } real, faked; - // qMalloc returns pointers aligned at least at sizeof(size_t) boundaries // but usually more (8- or 16-byte boundaries). // So we overallocate by alignment-sizeof(size_t) bytes, so we're guaranteed to find a @@ -100,19 +98,21 @@ void *qReallocAligned(void *oldptr, size_t newsize, size_t oldsize, size_t align // However, we need to store the actual pointer, so we need to allocate actually size + // alignment anyway. - real.ptr = qRealloc(actualptr, newsize + alignment); - if (!real.ptr) + void *real = qRealloc(actualptr, newsize + alignment); + if (!real) return 0; - faked.n = real.n + alignment; - faked.n &= ~(alignment - 1); + quintptr faked = reinterpret_cast(real) + alignment; + faked &= ~(alignment - 1); + + void **faked_ptr = reinterpret_cast(faked); // now save the value of the real pointer at faked-sizeof(void*) // by construction, alignment > sizeof(void*) and is a power of 2, so // faked-sizeof(void*) is properly aligned for a pointer - faked.pptr[-1] = real.ptr; + faked_ptr[-1] = real; - return faked.ptr; + return faked_ptr; } void qFreeAligned(void *ptr) -- cgit v0.12 From 1fff0c3c764500c755c615f9eb8dc90433406a10 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Fri, 29 Oct 2010 16:01:55 +0200 Subject: 32bit => 16bit conversion has 4byte-aligned output. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2499 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/dithering.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp index b50826c..c0b4b53 100644 --- a/src/plugins/graphicssystems/meego/dithering.cpp +++ b/src/plugins/graphicssystems/meego/dithering.cpp @@ -76,8 +76,13 @@ // Converts incoming RGB32 (QImage::Format_RGB32) to RGB565. Returns the newly allocated data. unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int height, int stride) { + // Output line stride. Alligned to 4 bytes. + int alignedWidth = width; + if (alignedWidth % 2 > 0) + alignedWidth++; + // Will store output - unsigned short *out = (unsigned short *) malloc(width * height * 2); + unsigned short *out = (unsigned short *) malloc(alignedWidth * height * 2); // Lookup tables for the 8bit => 6bit and 8bit => 5bit conversion unsigned char lookup_8bit_to_5bit[256]; @@ -174,7 +179,7 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h } // Write the newly produced pixel - PUT_565(out, x, y, width, component[2], component[1], component[0]); + PUT_565(out, x, y, alignedWidth, component[2], component[1], component[0]); } } @@ -183,10 +188,16 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h // Converts incoming RGBA32 (QImage::Format_ARGB32_Premultiplied) to RGB565. Returns the newly allocated data. // This function is similar (yet different) to the _565 variant but it makes sense to duplicate it here for simplicity. +// The output has each scan line aligned to 4 bytes (as expected by GL by default). unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, int height, int stride) { + // Output line stride. Alligned to 4 bytes. + int alignedWidth = width; + if (alignedWidth % 2 > 0) + alignedWidth++; + // Will store output - unsigned short *out = (unsigned short *) malloc(width * height * 2); + unsigned short *out = (unsigned short *) malloc(alignedWidth * 2 * height); // Lookup tables for the 8bit => 4bit conversion unsigned char lookup_8bit_to_4bit[256]; @@ -269,7 +280,7 @@ unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, in } // Write the newly produced pixel - PUT_4444(out, x, y, width, component[0], component[1], component[2], component[3]); + PUT_4444(out, x, y, alignedWidth, component[0], component[1], component[2], component[3]); } } -- cgit v0.12 From 81fc8ec995a07909e59602b9281fbebfff4bd94c Mon Sep 17 00:00:00 2001 From: Charles Yin Date: Thu, 28 Oct 2010 10:13:34 +1000 Subject: Fix QTBUG-14640:oci performance problem with qlonglong missing qlonglong switch case in bindValue(), so all qlonglong value fall back into QString, which makes the query slow. Change-Id: I7d8bf1c44ce3aaa15ee85be325a5c98dc3ed3ce1 Task-number:QTBUG-14640 Reviewed-by: Michael Goddard --- src/sql/drivers/oci/qsql_oci.cpp | 8 ++++++++ tests/auto/qsqlquery/tst_qsqlquery.cpp | 31 ++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index 3f30ea5..2392a17 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -291,6 +291,14 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in sizeof(uint), SQLT_UIN, indPtr, 0, 0, 0, 0, OCI_DEFAULT); break; + case QVariant::LongLong: + r = OCIBindByPos(sql, hbnd, err, + pos + 1, + // if it's an out value, the data is already detached + // so the const cast is safe. + const_cast(data), + sizeof(OCINumber), + SQLT_VNU, indPtr, 0, 0, 0, 0, OCI_DEFAULT); case QVariant::Double: r = OCIBindByPos(sql, hbnd, err, pos + 1, diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index 7c93c7a..5367bd6 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -211,6 +211,8 @@ private slots: void QTBUG_5765(); void QTBUG_14132_data() { generic_data("QOCI"); } void QTBUG_14132(); + void QTBUG_14640_data() { generic_data("QOCI"); } + void QTBUG_14640(); void sqlite_constraint_data() { generic_data("QSQLITE"); } void sqlite_constraint(); @@ -329,7 +331,8 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) << qTableName( "Planet", __FILE__ ) << qTableName( "task_250026", __FILE__ ) << qTableName( "task_234422", __FILE__ ) - << qTableName("test141895", __FILE__); + << qTableName("test141895", __FILE__) + << qTableName("qtest_QTBUG14640", __FILE__); if ( db.driverName().startsWith("QPSQL") ) tablenames << qTableName("task_233829", __FILE__); @@ -3101,6 +3104,32 @@ void tst_QSqlQuery::QTBUG_5765() QCOMPARE(q.value(0).toInt(), 123); } +void tst_QSqlQuery::QTBUG_14640() +{ + QFETCH( QString, dbName ); + QSqlDatabase db = QSqlDatabase::database( dbName ); + CHECK_DATABASE( db ); + const QString qtest_QTBUG14640(qTableName("qtest_QTBUG14640", __FILE__)); + + QSqlQuery q( db ); + q.setForwardOnly( true ); + QVERIFY_SQL( q, exec( "create table " + qtest_QTBUG14640 + + " (col1 number, col2 number)" ) ); + QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (1, 1111)" ) ); + QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (2, 2222)" ) ); + QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (3, 3333)" ) ); + + QString sqlStr = "select * from " + qtest_QTBUG14640 + " where col1 == :bindValue0 AND col2 == :bindValue1"; + q.prepare(sqlStr); + q.bindValue(":bindValue0", qlonglong(1), QSql::In); + q.bindValue(":bindValue1", qlonglong(1111), QSql::In); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toLongLong(), qlonglong(1)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), qlonglong(1111)); +} + void tst_QSqlQuery::sqlite_constraint() { QFETCH( QString, dbName ); -- cgit v0.12 From d190802d33b763e7a21b85fb3dc2ed7c039ddbb6 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Mon, 1 Nov 2010 16:19:11 +0100 Subject: Doc: Fixing typo --- tools/macdeployqt/shared/shared.cpp | 2 +- tools/porting/src/preprocessorcontrol.cpp | 2 +- tools/porting/src/textreplacement.h | 4 ++-- tools/qdoc3/ditaxmlgenerator.cpp | 4 ++-- tools/qdoc3/tokenizer.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/macdeployqt/shared/shared.cpp b/tools/macdeployqt/shared/shared.cpp index 52cf04b..c7d23c0 100644 --- a/tools/macdeployqt/shared/shared.cpp +++ b/tools/macdeployqt/shared/shared.cpp @@ -388,7 +388,7 @@ DeploymentInfo deployQtFrameworks(QList frameworks, foreach (FrameworkInfo dependency, dependencies) { changeInstallName(dependency.installName, dependency.deployedInstallName, deployedBinaryPath); - // Deploy framework if neccesary. + // Deploy framework if necessary. if (copiedFrameworks.contains(dependency.frameworkName) == false && frameworks.contains(dependency) == false) { frameworks.append(dependency); } diff --git a/tools/porting/src/preprocessorcontrol.cpp b/tools/porting/src/preprocessorcontrol.cpp index 673ed08..31adc32 100644 --- a/tools/porting/src/preprocessorcontrol.cpp +++ b/tools/porting/src/preprocessorcontrol.cpp @@ -154,7 +154,7 @@ QByteArray PreprocessorCache::readFile(const QString &filename) const // read the file for us. if (receivers(SIGNAL(readFile(QByteArray&,QString))) > 0) { QByteArray array; - // Workaround for "not beeing able to emit from const function" + // Workaround for "not being able to emit from const function" PreprocessorCache *cache = const_cast(this); emit cache->readFile(array, filename); return array; diff --git a/tools/porting/src/textreplacement.h b/tools/porting/src/textreplacement.h index f90fb82..f351552 100644 --- a/tools/porting/src/textreplacement.h +++ b/tools/porting/src/textreplacement.h @@ -53,7 +53,7 @@ class TextReplacement public: QByteArray newText; int insertPosition; - int currentLenght; //lenght of the text that is going to be replaced. + int currentLenght; //length of the text that is going to be replaced. bool operator<(const TextReplacement &other) const { return (insertPosition < other.insertPosition); @@ -70,7 +70,7 @@ public: insert maintains the TextReplacement list in sorted order. - Returns true if the insert was successfull, false otherwise; + Returns true if the insert was successful, false otherwise; */ bool insert(QByteArray newText, int insertPosition, int currentLenght); void clear(); diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index a83a321..d43ad96 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -2015,7 +2015,7 @@ void DitaXmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *mark } /*! - Generates a table of contents begining at \a node. + Generates a table of contents beginning at \a node. */ void DitaXmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, @@ -2101,7 +2101,7 @@ void DitaXmlGenerator::generateTableOfContents(const Node *node, /*! Revised for the new doc format. - Generates a table of contents begining at \a node. + Generates a table of contents beginning at \a node. */ void DitaXmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, diff --git a/tools/qdoc3/tokenizer.h b/tools/qdoc3/tokenizer.h index bd35965..af617f1 100644 --- a/tools/qdoc3/tokenizer.h +++ b/tools/qdoc3/tokenizer.h @@ -145,7 +145,7 @@ class Tokenizer int ch = getch(); if (ch == EOF) return EOF; - // cast explicitely to make sure the value of ch + // cast explicitily to make sure the value of ch // is in range [0..255] to avoid assert messages // when using debug CRT that checks its input. return int(uint(uchar(ch))); -- cgit v0.12 From 155065cd5c611e2d14357a8ff3180ac14a68e3a0 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 2 Nov 2010 10:41:25 +1000 Subject: Removing a binding while it is being applied caused a crash. Use a weak pointer to the binding in case applying the binding (while fast forwarding) causes it to be removed. Task-number: QTBUG-14830 Reviewed-by: Michael Brasser --- src/declarative/util/qdeclarativestate.cpp | 12 ++++----- src/declarative/util/qdeclarativestate_p.h | 3 ++- src/declarative/util/qdeclarativestate_p_p.h | 2 +- .../util/qdeclarativetransitionmanager.cpp | 16 ++++++------ .../qdeclarativestates/data/QTBUG-14830.qml | 29 ++++++++++++++++++++++ .../qdeclarativestates/tst_qdeclarativestates.cpp | 13 ++++++++++ 6 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp index 0f5413e..3915485 100644 --- a/src/declarative/util/qdeclarativestate.cpp +++ b/src/declarative/util/qdeclarativestate.cpp @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE DEFINE_BOOL_CONFIG_OPTION(stateChangeDebug, STATECHANGE_DEBUG); QDeclarativeAction::QDeclarativeAction() -: restore(true), actionDone(false), reverseEvent(false), deletableToBinding(false), fromBinding(0), toBinding(0), event(0), +: restore(true), actionDone(false), reverseEvent(false), deletableToBinding(false), fromBinding(0), event(0), specifiedObject(0) { } @@ -67,7 +67,7 @@ QDeclarativeAction::QDeclarativeAction(QObject *target, const QString &propertyN const QVariant &value) : restore(true), actionDone(false), reverseEvent(false), deletableToBinding(false), property(target, propertyName), toValue(value), - fromBinding(0), toBinding(0), event(0), + fromBinding(0), event(0), specifiedObject(target), specifiedProperty(propertyName) { if (property.isValid()) @@ -78,7 +78,7 @@ QDeclarativeAction::QDeclarativeAction(QObject *target, const QString &propertyN QDeclarativeContext *context, const QVariant &value) : restore(true), actionDone(false), reverseEvent(false), deletableToBinding(false), property(target, propertyName, context), toValue(value), - fromBinding(0), toBinding(0), event(0), + fromBinding(0), event(0), specifiedObject(target), specifiedProperty(propertyName) { if (property.isValid()) @@ -503,11 +503,11 @@ void QDeclarativeState::addEntriesToRevertList(const QList & const QDeclarativeAction &action = actionListIterator.next(); QDeclarativeSimpleAction simpleAction(action); action.property.write(action.toValue); - if (action.toBinding) { + if (!action.toBinding.isNull()) { QDeclarativeAbstractBinding *oldBinding = QDeclarativePropertyPrivate::binding(simpleAction.property()); if (oldBinding) QDeclarativePropertyPrivate::setBinding(simpleAction.property(), 0); - QDeclarativePropertyPrivate::setBinding(simpleAction.property(), action.toBinding, QDeclarativePropertyPrivate::DontRemoveBinding); + QDeclarativePropertyPrivate::setBinding(simpleAction.property(), action.toBinding.data(), QDeclarativePropertyPrivate::DontRemoveBinding); } simpleActionList.append(simpleAction); @@ -675,7 +675,7 @@ void QDeclarativeState::apply(QDeclarativeStateGroup *group, QDeclarativeTransit a.property = d->revertList.at(ii).property(); a.fromValue = cur; a.toValue = d->revertList.at(ii).value(); - a.toBinding = d->revertList.at(ii).binding(); + a.toBinding = QDeclarativeAbstractBinding::getPointer(d->revertList.at(ii).binding()); a.specifiedObject = d->revertList.at(ii).specifiedObject(); a.specifiedProperty = d->revertList.at(ii).specifiedProperty(); a.event = d->revertList.at(ii).event(); diff --git a/src/declarative/util/qdeclarativestate_p.h b/src/declarative/util/qdeclarativestate_p.h index fc7c940..7b9c18a 100644 --- a/src/declarative/util/qdeclarativestate_p.h +++ b/src/declarative/util/qdeclarativestate_p.h @@ -45,6 +45,7 @@ #include #include #include +#include #include QT_BEGIN_HEADER @@ -75,7 +76,7 @@ public: QVariant toValue; QDeclarativeAbstractBinding *fromBinding; - QDeclarativeAbstractBinding *toBinding; + QDeclarativeAbstractBinding::Pointer toBinding; QDeclarativeActionEvent *event; //strictly for matching diff --git a/src/declarative/util/qdeclarativestate_p_p.h b/src/declarative/util/qdeclarativestate_p_p.h index 4fd8f21..98c3f7b 100644 --- a/src/declarative/util/qdeclarativestate_p_p.h +++ b/src/declarative/util/qdeclarativestate_p_p.h @@ -85,7 +85,7 @@ public: m_reverseEvent = true; } else { m_value = a.toValue; - m_binding = QDeclarativeAbstractBinding::getPointer(a.toBinding); + m_binding = a.toBinding; m_reverseEvent = false; } } diff --git a/src/declarative/util/qdeclarativetransitionmanager.cpp b/src/declarative/util/qdeclarativetransitionmanager.cpp index 89b0044..d19e6f2 100644 --- a/src/declarative/util/qdeclarativetransitionmanager.cpp +++ b/src/declarative/util/qdeclarativetransitionmanager.cpp @@ -99,8 +99,8 @@ void QDeclarativeTransitionManager::complete() void QDeclarativeTransitionManagerPrivate::applyBindings() { foreach(const QDeclarativeAction &action, bindingsList) { - if (action.toBinding) { - QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding); + if (!action.toBinding.isNull()) { + QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding.data()); } else if (action.event) { if (action.reverseEvent) action.event->reverse(); @@ -145,8 +145,8 @@ void QDeclarativeTransitionManager::transition(const QList & // Apply all the property and binding changes for (int ii = 0; ii < applyList.size(); ++ii) { const QDeclarativeAction &action = applyList.at(ii); - if (action.toBinding) { - QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); + if (!action.toBinding.isNull()) { + QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding.data(), QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } else if (!action.event) { QDeclarativePropertyPrivate::write(action.property, action.toValue, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } else if (action.event->isReversable()) { @@ -165,7 +165,7 @@ void QDeclarativeTransitionManager::transition(const QList & continue; } const QDeclarativeProperty &prop = action->property; - if (action->toBinding || !action->toValue.isValid()) { + if (!action->toBinding.isNull() || !action->toValue.isValid()) { action->toValue = prop.read(); } } @@ -259,10 +259,10 @@ void QDeclarativeTransitionManager::cancel() for(int i = 0; i < d->bindingsList.count(); ++i) { QDeclarativeAction action = d->bindingsList[i]; - if (action.toBinding && action.deletableToBinding) { + if (!action.toBinding.isNull() && action.deletableToBinding) { QDeclarativePropertyPrivate::setBinding(action.property, 0); - action.toBinding->destroy(); - action.toBinding = 0; + action.toBinding.data()->destroy(); + action.toBinding.clear(); action.deletableToBinding = false; } else if (action.event) { //### what do we do here? diff --git a/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml b/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml new file mode 100644 index 0000000..5eccdda --- /dev/null +++ b/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml @@ -0,0 +1,29 @@ +import Qt 4.7 + +Rectangle { + width: 1024 + height: 768 + + Item { + id: area + objectName: "area" + property int numx: 6 + property int cellwidth: 1024/numx + + onWidthChanged: { + width = width>1024?1024:width; + } + + state: 'minimal' + states: [ + State { + name: 'minimal' + PropertyChanges { + target: area + width: cellwidth + } + } + ] + + } +} diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp index 0d10c10..b8409a5 100644 --- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp +++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp @@ -143,6 +143,7 @@ private slots: void returnToBase(); void extendsBug(); void editProperties(); + void QTBUG_14830(); }; void tst_qdeclarativestates::initTestCase() @@ -1375,6 +1376,18 @@ void tst_qdeclarativestates::editProperties() QCOMPARE(childRect->height(), qreal(40)); } +void tst_qdeclarativestates::QTBUG_14830() +{ + QDeclarativeEngine engine; + + QDeclarativeComponent c(&engine, SRCDIR "/data/QTBUG-14830.qml"); + QDeclarativeRectangle *rect = qobject_cast(c.create()); + QVERIFY(rect != 0); + QDeclarativeItem *item = rect->findChild("area"); + + QCOMPARE(item->width(), qreal(171)); +} + QTEST_MAIN(tst_qdeclarativestates) #include "tst_qdeclarativestates.moc" -- cgit v0.12 From 11bb4f85ef38270758ec0930709c23c7fcb5840c Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Tue, 2 Nov 2010 16:41:01 +1000 Subject: Regression: Text element breaks when using \n for separating lines Task-number: QTBUG-14915 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativetext.cpp | 24 ++-- .../qdeclarativetext/font/data-MAC/plaintext2.qml | 131 +++++++++++++++++++++ .../qmlvisual/qdeclarativetext/font/plaintext2.qml | 22 ++++ 3 files changed, 165 insertions(+), 12 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 03c9765..8cb47aa 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -291,30 +291,30 @@ QSize QDeclarativeTextPrivate::setupTextLayout() qreal height = 0; qreal lineWidth = 0; - //set manual width - if (q->widthValid()) - lineWidth = q->width(); - QTextOption textOption = layout.textOption(); - textOption.setWrapMode(QTextOption::WrapMode(wrapMode)); + textOption.setWrapMode(QTextOption::NoWrap); textOption.setAlignment(Qt::Alignment(hAlign)); - layout.setTextOption(textOption); + // if the item has an explicit width, we set the line width and enable wrapping + if (q->widthValid()) { + lineWidth = q->width(); + textOption.setWrapMode(QTextOption::WrapMode(wrapMode)); + } + + layout.setTextOption(textOption); layout.beginLayout(); while (1) { QTextLine line = layout.createLine(); if (!line.isValid()) break; - if (q->widthValid()) { - line.setLineWidth(lineWidth); - line.setPosition(QPointF(0, height)); - height += line.height(); - } + line.setLineWidth(lineWidth); + line.setPosition(QPointF(0, height)); + height += line.height(); } layout.endLayout(); - return QSize(qCeil(layout.boundingRect().width()), layout.boundingRect().height()); + return layout.boundingRect().toAlignedRect().size(); } /*! diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml new file mode 100644 index 0000000..1a8af0e --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml @@ -0,0 +1,131 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 32 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 48 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 64 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 80 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 96 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 112 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 128 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 144 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 160 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 176 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 192 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 208 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 224 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 240 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 256 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 272 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 288 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 304 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 320 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 336 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 352 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 368 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 384 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 400 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 416 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 432 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 448 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } + Frame { + msec: 464 + hash: "c68e50ef84647962481121e2eb1ba4d4" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml new file mode 100644 index 0000000..901025a --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml @@ -0,0 +1,22 @@ +import QtQuick 1.0 + +Rectangle { + width: 400; height: 200 + + Row { + spacing: 20 + anchors.centerIn: parent + Text { + text: "First line\nSecond line"; wrapMode: Text.Wrap + } + Text { + text: "First line\nSecond line"; width: 70 + } + Text { + text: "First Second\nThird Fourth"; wrapMode: Text.Wrap; width: 50 + } + Text { + text: "First line
Second line"; textFormat: Text.StyledText + } + } +} -- cgit v0.12 From a1aee0f169614b31a7fde201a3d1c64010198218 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 2 Nov 2010 11:35:42 +0100 Subject: One more fix for dithering. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2499 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/dithering.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp index c0b4b53..76d15a3 100644 --- a/src/plugins/graphicssystems/meego/dithering.cpp +++ b/src/plugins/graphicssystems/meego/dithering.cpp @@ -68,7 +68,7 @@ // Writes(ads) a new value to the diffusion accumulator. accumulator is a short. // x, y is a position in the accumulation buffer. y can be 0 or 1 -- we operate on two lines at time. -#define ACCUMULATE(accumulator, x, y, width, v) if (x < width && x > 0) accumulator[(y * width) + x] += v +#define ACCUMULATE(accumulator, x, y, width, v) if (x < width && x >= 0) accumulator[(y * width) + x] += v // Clamps a value to be in 0..255 range. #define CLAMP_256(v) if (v > 255) v = 255; if (v < 0) v = 0; @@ -110,18 +110,18 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h // Produce the conversion lookup tables. for (i = 0; i < 256; i++) { lookup_8bit_to_5bit[i] = round(i / 8.0); - if (lookup_8bit_to_5bit[i] > 31) - lookup_8bit_to_5bit[i] -= 1; // Before bitshifts: (i * 8) - (... * 8 * 8) lookup_8bit_to_5bit_diff[i] = (i << 3) - (lookup_8bit_to_5bit[i] << 6); + if (lookup_8bit_to_5bit[i] > 31) + lookup_8bit_to_5bit[i] -= 1; lookup_8bit_to_6bit[i] = round(i / 4.0); - if (lookup_8bit_to_6bit[i] > 63) - lookup_8bit_to_6bit[i] -= 1; // Before bitshifts: (i * 8) - (... * 4 * 8) lookup_8bit_to_6bit_diff[i] = (i << 3) - (lookup_8bit_to_6bit[i] << 5); + if (lookup_8bit_to_6bit[i] > 63) + lookup_8bit_to_6bit[i] -= 1; } // Clear the accumulators @@ -221,11 +221,11 @@ unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, in // Produce the conversion lookup tables. for (i = 0; i < 256; i++) { lookup_8bit_to_4bit[i] = round(i / 16.0); - if (lookup_8bit_to_4bit[i] > 15) - lookup_8bit_to_4bit[i] -= 1; - // Before bitshifts: (i * 8) - (... * 16 * 8) lookup_8bit_to_4bit_diff[i] = (i << 3) - (lookup_8bit_to_4bit[i] << 7); + + if (lookup_8bit_to_4bit[i] > 15) + lookup_8bit_to_4bit[i] = 15; } // Clear the accumulators -- cgit v0.12 From 2f12d81a72fe6abb48cce4d327ecc27d308a8418 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 2 Nov 2010 11:35:42 +0100 Subject: Use 32bit textures for alpha textures after all. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 4444 16bit are too bad quality-wise. Merge-request: 2499 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/dithering.cpp | 18 ++++++++++++++++++ src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp index 76d15a3..122c51e 100644 --- a/src/plugins/graphicssystems/meego/dithering.cpp +++ b/src/plugins/graphicssystems/meego/dithering.cpp @@ -286,3 +286,21 @@ unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, in return out; } + +unsigned char* convertBGRA32_to_RGBA32(const unsigned char *in, int width, int height, int stride) +{ + unsigned char *out = (unsigned char *) malloc(stride * height); + + // For each line... + for (int y = 0; y < height; y++) { + // For each column + for (int x = 0; x < width; x++) { + out[(stride * y) + (x * 4) + 0] = in[(stride * y) + (x * 4) + 2]; + out[(stride * y) + (x * 4) + 1] = in[(stride * y) + (x * 4) + 1]; + out[(stride * y) + (x * 4) + 2] = in[(stride * y) + (x * 4) + 0]; + out[(stride * y) + (x * 4) + 3] = in[(stride * y) + (x * 4) + 3]; + } + } + + return out; +} \ No newline at end of file diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp index 02a4273..eb63692 100644 --- a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp +++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp @@ -51,6 +51,7 @@ // from dithering.cpp extern unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int height, int stride); extern unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, int height, int stride); +extern unsigned char* convertBGRA32_to_RGBA32(const unsigned char *in, int width, int height, int stride); static EGLint preserved_image_attribs[] = { EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE }; @@ -146,8 +147,8 @@ Qt::HANDLE QMeeGoPixmapData::imageToEGLSharedImage(const QImage &image) glGenTextures(1, &textureId); glBindTexture(GL_TEXTURE_2D, textureId); if (image.hasAlphaChannel() && const_cast(image).data_ptr()->checkForAlphaPixels()) { - void *converted = convertARGB32_to_RGBA4444(image.bits(), image.width(), image.height(), image.bytesPerLine()); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width(), image.height(), 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, converted); + void *converted = convertBGRA32_to_RGBA32(image.bits(), image.width(), image.height(), image.bytesPerLine()); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width(), image.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, converted); free(converted); } else { void *converted = convertRGB32_to_RGB565(image.bits(), image.width(), image.height(), image.bytesPerLine()); -- cgit v0.12 From 7229aa57f96d35290914906601084a200132a7ea Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 2 Nov 2010 12:04:36 +0100 Subject: Update .def files for QtGui and QtOpenVG Update the .def files with the latest changes. Reviewed-by: Jason Barron --- src/s60installs/eabi/QtGuiu.def | 3 +++ src/s60installs/eabi/QtOpenVGu.def | 1 + 2 files changed, 4 insertions(+) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index f772bcc..75bb026 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12101,4 +12101,7 @@ EXPORTS _ZN19QApplicationPrivate25qmljsDebugArgumentsStringEv @ 12100 NONAME _ZNK5QFont14lastResortFontEv @ 12101 NONAME _ZN11QFontEngine33convertToPostscriptFontFamilyNameERK10QByteArray @ 12102 NONAME + _ZN15QStaticTextItem13setFontEngineEP11QFontEngine @ 12103 NONAME + _ZN15QStaticTextItemD1Ev @ 12104 NONAME + _ZN15QStaticTextItemD2Ev @ 12105 NONAME diff --git a/src/s60installs/eabi/QtOpenVGu.def b/src/s60installs/eabi/QtOpenVGu.def index 99942b8..e1828c1 100644 --- a/src/s60installs/eabi/QtOpenVGu.def +++ b/src/s60installs/eabi/QtOpenVGu.def @@ -205,4 +205,5 @@ EXPORTS _ZN13QVGPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 204 NONAME _ZN13QVGPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 205 NONAME _ZN13QVGPixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 206 NONAME + _ZNK14QVGPaintEngine16canVgWritePixelsERK6QImage @ 207 NONAME -- cgit v0.12 From 891221a3f0c952817eb7891b9243827edda61085 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Tue, 2 Nov 2010 13:41:50 +0100 Subject: Fix Malayalam Rendering - 'Ra' is PreBase Task-number: QTBUG-1887 Reviewed-by: Lars Knoll --- src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp index 4d8418b..237c9ae 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +++ b/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp @@ -833,7 +833,7 @@ static const unsigned char indicPosition[0xe00-0x900] = { None, None, None, None, None, None, None, Post, - Post, None, Below, None, + Pre, None, Below, None, None, Post, None, None, None, None, None, None, None, None, Post, Post, -- cgit v0.12 From b2016bbfc9c7389e7b64451417395ceba96af21f Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 2 Nov 2010 13:07:01 +0100 Subject: Qml Debugging: Only enable if explicitly requested Enable the remote debugging of QDeclarativeEngines only after QDeclarativeDebugHelper::enableDebugging() has been called. Approved by 4.7 Program Team. Reviewed-by: Alessandro Portale Task-number: QTBUG-13762 --- src/declarative/debugger/qdeclarativedebughelper.cpp | 8 ++++++++ src/declarative/debugger/qdeclarativedebughelper_p.h | 4 ++++ src/declarative/debugger/qdeclarativedebugservice.cpp | 7 +++++++ src/declarative/qml/qdeclarativeengine.cpp | 1 + src/declarative/qml/qdeclarativeengine_p.h | 2 ++ src/s60installs/bwins/QtDeclarativeu.def | 3 ++- src/s60installs/eabi/QtDeclarativeu.def | 3 ++- .../auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp | 5 ++++- .../qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp | 5 ++++- .../private_headers/qdeclarativedebughelper_p.h | 4 ++++ .../qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp | 7 +++++++ .../qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp | 4 ++++ 12 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebughelper.cpp b/src/declarative/debugger/qdeclarativedebughelper.cpp index 207ad2b..b003c12 100644 --- a/src/declarative/debugger/qdeclarativedebughelper.cpp +++ b/src/declarative/debugger/qdeclarativedebughelper.cpp @@ -48,6 +48,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -63,4 +64,11 @@ void QDeclarativeDebugHelper::setAnimationSlowDownFactor(qreal factor) timer->setSlowdownFactor(factor); } +void QDeclarativeDebugHelper::enableDebugging() { + if (!QDeclarativeEnginePrivate::qml_debugging_enabled) { + qWarning("Qml debugging is enabled. Only use this in a safe environment!"); + } + QDeclarativeEnginePrivate::qml_debugging_enabled = true; +} + QT_END_NAMESPACE diff --git a/src/declarative/debugger/qdeclarativedebughelper_p.h b/src/declarative/debugger/qdeclarativedebughelper_p.h index 5689dff..a1ac23d 100644 --- a/src/declarative/debugger/qdeclarativedebughelper_p.h +++ b/src/declarative/debugger/qdeclarativedebughelper_p.h @@ -60,6 +60,10 @@ class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeDebugHelper public: static QScriptEngine *getScriptEngine(QDeclarativeEngine *engine); static void setAnimationSlowDownFactor(qreal factor); + + // Enables remote debugging functionality + // Only use this for debugging in a safe environment! + static void enableDebugging(); }; QT_END_NAMESPACE diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp index c39da3d..8c86ae8 100644 --- a/src/declarative/debugger/qdeclarativedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativedebugservice.cpp @@ -42,6 +42,7 @@ #include "private/qdeclarativedebugservice_p.h" #include "private/qpacketprotocol_p.h" +#include "private/qdeclarativeengine_p.h" #include #include @@ -205,6 +206,12 @@ QDeclarativeDebugServer *QDeclarativeDebugServer::instance() // format: qmljsdebugger=port:3768[,block] if (!appD->qmljsDebugArgumentsString().isEmpty()) { + if (!QDeclarativeEnginePrivate::qml_debugging_enabled) { + qWarning() << QString::fromLatin1("QDeclarativeDebugServer: Ignoring \"-qmljsdebugger=%1\". " + "Debugging has not been enabled.").arg( + appD->qmljsDebugArgumentsString()).toAscii().constData(); + return 0; + } if (appD->qmljsDebugArgumentsString().indexOf(QLatin1String("port:")) == 0) { int separatorIndex = appD->qmljsDebugArgumentsString().indexOf(QLatin1Char(',')); diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 6906f21..808ba68 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -176,6 +176,7 @@ struct StaticQtMetaObject : public QObject }; static bool qt_QmlQtModule_registered = false; +bool QDeclarativeEnginePrivate::qml_debugging_enabled = false; void QDeclarativeEnginePrivate::defineModule() { diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h index 8539fbf..deb4a77 100644 --- a/src/declarative/qml/qdeclarativeengine_p.h +++ b/src/declarative/qml/qdeclarativeengine_p.h @@ -321,6 +321,8 @@ public: static QString urlToLocalFileOrQrc(const QUrl& url); static void defineModule(); + + static bool qml_debugging_enabled; }; /*! diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def index db4012c..9e88df7 100644 --- a/src/s60installs/bwins/QtDeclarativeu.def +++ b/src/s60installs/bwins/QtDeclarativeu.def @@ -1838,5 +1838,6 @@ EXPORTS ?addChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1837 NONAME ABSENT ; void QDeclarativeBasePositioner::addChanged(void) ?start@QDeclarativeAbstractAnimation@@QAEXXZ @ 1838 NONAME ABSENT ; void QDeclarativeAbstractAnimation::start(void) ?qt_metacall@QDeclarativeAbstractAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1839 NONAME ABSENT ; int QDeclarativeAbstractAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?connect@QDeclarativePropertyPrivate@@SA_NPBVQObject@@H0HHPAH@Z @ 1840 NONAME ABSENT ; bool QDeclarativePropertyPrivate::connect(class QObject const *, int, class QObject const *, int, int, int *) + ?enableDebugging@QDeclarativeDebugHelper@@SAXXZ @ 1840 NONAME ; void QDeclarativeDebugHelper::enableDebugging(void) + ?connect@QDeclarativePropertyPrivate@@SA_NPBVQObject@@H0HHPAH@Z @ 1841 NONAME ABSENT ; bool QDeclarativePropertyPrivate::connect(class QObject const *, int, class QObject const *, int, int, int *) diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index 849ca6a..1f69061 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -1883,5 +1883,6 @@ EXPORTS _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1882 NONAME ABSENT _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1883 NONAME ABSENT _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1884 NONAME ABSENT - _ZN27QDeclarativePropertyPrivate7connectEPK7QObjectiS2_iiPi @ 1885 NONAME ABSENT + _ZN23QDeclarativeDebugHelper15enableDebuggingEv @ 1885 NONAME + _ZN27QDeclarativePropertyPrivate7connectEPK7QObjectiS2_iiPi @ 1886 NONAME ABSENT diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp index e6a81b8..53471bf 100644 --- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp +++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include "../../../shared/util.h" #include "../shared/debugutil_p.h" @@ -278,8 +279,10 @@ void tst_QDeclarativeDebug::initTestCase() { qRegisterMetaType(); - QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3768..."); + QTest::ignoreMessage(QtWarningMsg, "Qml debugging is enabled. Only use this in a safe environment!"); + QDeclarativeDebugHelper::enableDebugging(); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3768..."); m_engine = new QDeclarativeEngine(this); QList qml; diff --git a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp index 80241ba..64afd4e 100644 --- a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp +++ b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include "../../../shared/util.h" #include "../shared/debugutil_p.h" @@ -72,8 +73,10 @@ private slots: void tst_QDeclarativeDebugClient::initTestCase() { - QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3770..."); + QTest::ignoreMessage(QtWarningMsg, "Qml debugging is enabled. Only use this in a safe environment!"); + QDeclarativeDebugHelper::enableDebugging(); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3770..."); new QDeclarativeEngine(this); m_conn = new QDeclarativeDebugConnection(this); diff --git a/tests/auto/declarative/qdeclarativedebughelper/private_headers/qdeclarativedebughelper_p.h b/tests/auto/declarative/qdeclarativedebughelper/private_headers/qdeclarativedebughelper_p.h index c9cb839..edfc58f 100644 --- a/tests/auto/declarative/qdeclarativedebughelper/private_headers/qdeclarativedebughelper_p.h +++ b/tests/auto/declarative/qdeclarativedebughelper/private_headers/qdeclarativedebughelper_p.h @@ -58,6 +58,10 @@ class Q_DECLARATIVE_EXPORT QDeclarativeDebugHelper public: static QScriptEngine *getScriptEngine(QDeclarativeEngine *engine); static void setAnimationSlowDownFactor(qreal factor); + + // Enables remote debugging functionality + // Only use this for debugging in a safe environment! + static void enableDebugging(); }; QT_END_NAMESPACE diff --git a/tests/auto/declarative/qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp b/tests/auto/declarative/qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp index 36f2222..60aec9d 100644 --- a/tests/auto/declarative/qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp +++ b/tests/auto/declarative/qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp @@ -54,6 +54,7 @@ class tst_qdeclarativedebughelper : public QObject { private slots: void getScriptEngine(); void setAnimationSlowDownFactor(); + void enableDebugging(); }; class TestAnimation : public QAbstractAnimation { @@ -109,6 +110,12 @@ void tst_qdeclarativedebughelper::setAnimationSlowDownFactor() QVERIFY(animation.updateCalled > 1); } +void tst_qdeclarativedebughelper::enableDebugging() +{ + QTest::ignoreMessage(QtWarningMsg, "Qml debugging is enabled. Only use this in a safe environment!"); + QDeclarativeDebugHelper::enableDebugging(); +} + QTEST_MAIN(tst_qdeclarativedebughelper) #include "tst_qdeclarativedebughelper.moc" diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp index 538129c..30629f9 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp +++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include @@ -75,6 +76,9 @@ private slots: void tst_QDeclarativeDebugService::initTestCase() { + QTest::ignoreMessage(QtWarningMsg, "Qml debugging is enabled. Only use this in a safe environment!"); + QDeclarativeDebugHelper::enableDebugging(); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3769..."); new QDeclarativeEngine(this); -- cgit v0.12 From 445ef8847979dab72893aab1924d46d0fe1a8a3e Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Tue, 2 Nov 2010 17:25:54 +0100 Subject: With some locales, QDoubleValidator would not accept "C" locale valid numbers Locales using dot as thousands delimiter and comma as decimal separator are prone to this error. This is a regression introduced by commit b81b8e43ad57183ed66. Auto-tests included. Reviewed-by: Olivier Task-number: QTBUG_14935 --- src/corelib/tools/qlocale.h | 2 +- src/gui/widgets/qvalidator.cpp | 45 +++++++++++++--------- .../auto/qdoublevalidator/tst_qdoublevalidator.cpp | 4 ++ 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h index 8b424bb..1af2cb4 100644 --- a/src/corelib/tools/qlocale.h +++ b/src/corelib/tools/qlocale.h @@ -114,7 +114,7 @@ class Q_CORE_EXPORT QLocale friend class QString; friend class QByteArray; friend class QIntValidator; - friend class QDoubleValidator; + friend class QDoubleValidatorPrivate; friend class QTextStream; friend class QTextStreamPrivate; diff --git a/src/gui/widgets/qvalidator.cpp b/src/gui/widgets/qvalidator.cpp index b75db45..130d091 100644 --- a/src/gui/widgets/qvalidator.cpp +++ b/src/gui/widgets/qvalidator.cpp @@ -499,6 +499,8 @@ public: } QDoubleValidator::Notation notation; + + QValidator::State validateWithLocale(QString & input, QLocalePrivate::NumberMode numMode, const QLocale &locale) const; }; @@ -654,42 +656,49 @@ QValidator::State QDoubleValidator::validate(QString & input, int &) const break; } + State currentLocaleValidation = d->validateWithLocale(input, numMode, locale()); + if (currentLocaleValidation == Acceptable || locale().language() == QLocale::C) + return currentLocaleValidation; + State cLocaleValidation = d->validateWithLocale(input, numMode, QLocale(QLocale::C)); + return qMax(currentLocaleValidation, cLocaleValidation); +} + +QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QLocalePrivate::NumberMode numMode, const QLocale &locale) const +{ + Q_Q(const QDoubleValidator); QByteArray buff; - if (!locale().d()->validateChars(input, numMode, &buff, dec)) { - QLocale cl(QLocale::C); - if (!cl.d()->validateChars(input, numMode, &buff, dec)) - return Invalid; - } + if (!locale.d()->validateChars(input, numMode, &buff, q->dec)) + return QValidator::Invalid; if (buff.isEmpty()) - return Intermediate; + return QValidator::Intermediate; - if (b >= 0 && buff.startsWith('-')) - return Invalid; + if (q->b >= 0 && buff.startsWith('-')) + return QValidator::Invalid; - if (t < 0 && buff.startsWith('+')) - return Invalid; + if (q->t < 0 && buff.startsWith('+')) + return QValidator::Invalid; bool ok, overflow; double i = QLocalePrivate::bytearrayToDouble(buff.constData(), &ok, &overflow); if (overflow) - return Invalid; + return QValidator::Invalid; if (!ok) - return Intermediate; + return QValidator::Intermediate; - if (i >= b && i <= t) - return Acceptable; + if (i >= q->b && i <= q->t) + return QValidator::Acceptable; - if (d->notation == StandardNotation) { - double max = qMax(qAbs(b), qAbs(t)); + if (notation == QDoubleValidator::StandardNotation) { + double max = qMax(qAbs(q->b), qAbs(q->t)); if (max < LLONG_MAX) { qlonglong n = pow10(numDigits(qlonglong(max))) - 1; if (qAbs(i) > n) - return Invalid; + return QValidator::Invalid; } } - return Intermediate; + return QValidator::Intermediate; } diff --git a/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp b/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp index 26890b3..3470456 100644 --- a/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp +++ b/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp @@ -214,6 +214,10 @@ void tst_QDoubleValidator::validate_data() arabicNum += QChar(1643); arabicNum += QChar(1636); QTest::newRow("arabic") << "ar" << 0.0 << 20.0 << 2 << arabicNum << ACC << ACC; + + QTest::newRow("data_QTBUG_14935-1") << "de" << 0.0 << 1.0 << 5 << QString("0.31") << ACC << ACC; + QTest::newRow("data_QTBUG_14935-2") << "de" << 0.0 << 1000000.0 << 5 << QString("3.123") << ACC << ACC; + QTest::newRow("data_QTBUG_14935-3") << "de" << 0.0 << 1000000.0 << 5 << QString("123,345.678") << ACC << ACC; } void tst_QDoubleValidator::validate() -- cgit v0.12 From af15292e4982c11542487d39fc76ccfb8516598f Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 3 Nov 2010 14:55:46 +1000 Subject: Regression: QDeclarativeText does not update when text turns empty Task-number: QTBUG-14865 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativetext.cpp | 1 + .../graphicsitems/qdeclarativetextlayout.cpp | 13 + .../graphicsitems/qdeclarativetextlayout_p.h | 1 + .../qdeclarativetext/data-MAC/qtbug_14865.0.png | Bin 0 -> 1695 bytes .../qdeclarativetext/data-MAC/qtbug_14865.1.png | Bin 0 -> 625 bytes .../qdeclarativetext/data-MAC/qtbug_14865.qml | 719 +++++++++++++++++++++ .../qmlvisual/qdeclarativetext/qtbug_14865.qml | 17 + 7 files changed, 751 insertions(+) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 8cb47aa..84f276e 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -219,6 +219,7 @@ void QDeclarativeTextPrivate::updateSize() QFontMetrics fm(font); if (text.isEmpty()) { + q->setImplicitWidth(0); q->setImplicitHeight(fm.height()); emit q->paintedSizeChanged(); q->update(); diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp index 89a2158..db5d75d 100644 --- a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp @@ -285,6 +285,19 @@ void QDeclarativeTextLayout::beginLayout() QTextLayout::beginLayout(); } +void QDeclarativeTextLayout::clearLayout() +{ + if (d && d->cached) { + d->cached = false; + d->items.clear(); + d->positions.clear(); + d->glyphs.clear(); + d->chars.clear(); + d->position = QPointF(); + } + QTextLayout::clearLayout(); +} + void QDeclarativeTextLayout::prepare() { if (!d || !d->cached) { diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout_p.h b/src/declarative/graphicsitems/qdeclarativetextlayout_p.h index 90bf0e0..8b81db3 100644 --- a/src/declarative/graphicsitems/qdeclarativetextlayout_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextlayout_p.h @@ -59,6 +59,7 @@ public: ~QDeclarativeTextLayout(); void beginLayout(); + void clearLayout(); void prepare(); void draw(QPainter *, const QPointF & = QPointF()); diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png new file mode 100644 index 0000000..a947584 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png new file mode 100644 index 0000000..84430bb Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml new file mode 100644 index 0000000..940d3c1 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml @@ -0,0 +1,719 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 32 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 48 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 64 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 80 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 96 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 112 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 128 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 144 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 160 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 176 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 192 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 208 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 224 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 240 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 256 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 272 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 288 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 304 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 320 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 336 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 352 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 368 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 384 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 400 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 416 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 432 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 448 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 464 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 480 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 496 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 512 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 528 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 544 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 560 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 576 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 592 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 608 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 624 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 640 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 656 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 672 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 688 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 704 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 720 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 736 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 752 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 768 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 784 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 800 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 816 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 832 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 848 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 864 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 880 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 896 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 912 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 928 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 944 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 960 + image: "qtbug_14865.0.png" + } + Frame { + msec: 976 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 992 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 1008 + hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + } + Frame { + msec: 1024 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1040 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1056 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1072 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1088 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1104 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1120 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1136 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1152 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1168 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1184 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1200 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1216 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1232 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1248 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1264 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1280 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1296 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1312 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1328 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1344 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1360 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1376 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1392 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1408 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1424 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1440 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1456 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1472 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1488 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1504 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1520 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1536 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1552 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1568 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1584 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1600 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1616 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1632 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1648 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1664 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1680 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1696 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1712 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1728 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1744 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1760 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1776 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1792 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1808 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1824 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1840 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1856 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1872 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1888 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1904 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1920 + image: "qtbug_14865.1.png" + } + Frame { + msec: 1936 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1952 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1968 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1984 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2000 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2016 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2032 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2048 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2064 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2080 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2096 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2112 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2128 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2144 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2160 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2176 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2192 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2208 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2224 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2240 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2256 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Key { + type: 6 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 2272 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2288 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2304 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2320 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2336 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2352 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2368 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2384 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2400 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2416 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2432 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2448 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2464 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2480 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2496 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2512 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2528 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2544 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2560 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2576 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2592 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2608 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2624 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2640 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2656 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2672 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2688 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2704 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2720 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2736 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2752 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2768 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2784 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2800 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 2816 + hash: "eee4600ac08b458ac7ac2320e225674c" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml new file mode 100644 index 0000000..07416dc --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml @@ -0,0 +1,17 @@ +import QtQuick 1.0 + +Rectangle { + width: 200; height: 200 + + Text { + id: label + objectName: "label" + text: "Hello world!" + width: 10 + } + + Timer { + running: true; interval: 1000 + onTriggered: label.text = "" + } +} -- cgit v0.12 From 648eb76c22762c510815305e9e495db2aee9d2ad Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 3 Nov 2010 16:18:11 +1000 Subject: Combining ListView.StrictlyEnforceRange and resizing currentItem stalls. There were two problems. 1) layout() called fixup() was called while the view was being flicked. 2) the snapping code was incorrect (and duplicated). Task-number: QTBUG-14821 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativeflickable.cpp | 9 +- .../graphicsitems/qdeclarativeflickable_p_p.h | 3 + .../graphicsitems/qdeclarativelistview.cpp | 62 +- .../qmlvisual/ListView/data/enforcerange.0.png | Bin 0 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.1.png | Bin 0 -> 704 bytes .../qmlvisual/ListView/data/enforcerange.2.png | Bin 0 -> 695 bytes .../qmlvisual/ListView/data/enforcerange.3.png | Bin 0 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.4.png | Bin 0 -> 701 bytes .../qmlvisual/ListView/data/enforcerange.5.png | Bin 0 -> 704 bytes .../qmlvisual/ListView/data/enforcerange.qml | 2119 ++++++++++++++++++++ .../qmlvisual/ListView/enforcerange.qml | 31 + 11 files changed, 2181 insertions(+), 43 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/enforcerange.qml diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index b737785..01a8585 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -53,9 +53,6 @@ QT_BEGIN_NAMESPACE // before we perform a flick. static const int FlickThreshold = 20; -// Really slow flicks can be annoying. -static const int MinimumFlickVelocity = 75; - QDeclarativeFlickableVisibleArea::QDeclarativeFlickableVisibleArea(QDeclarativeFlickable *parent) : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.) , m_yPosition(0.), m_heightRatio(0.) @@ -990,8 +987,8 @@ void QDeclarativeFlickable::viewportMoved() { Q_D(QDeclarativeFlickable); - qreal prevY = d->lastFlickablePosition.x(); - qreal prevX = d->lastFlickablePosition.y(); + qreal prevX = d->lastFlickablePosition.x(); + qreal prevY = d->lastFlickablePosition.y(); d->velocityTimeline.clear(); if (d->pressed || d->calcVelocity) { int elapsed = QDeclarativeItemPrivate::restart(d->velocityTime); @@ -1012,7 +1009,7 @@ void QDeclarativeFlickable::viewportMoved() } } - d->lastFlickablePosition = QPointF(d->vData.move.value(), d->hData.move.value()); + d->lastFlickablePosition = QPointF(d->hData.move.value(), d->vData.move.value()); d->vTime = d->timeline.time(); d->updateBeginningEnd(); diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h index afefde2..92cf748 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h @@ -66,6 +66,9 @@ QT_BEGIN_NAMESPACE +// Really slow flicks can be annoying. +const qreal MinimumFlickVelocity = 75.0; + class QDeclarativeFlickableVisibleArea; class QDeclarativeFlickablePrivate : public QDeclarativeItemPrivate, public QDeclarativeItemChangeListener { diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 38a4839..eab66d8 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -334,28 +334,9 @@ public: return model && model->count() && model->isValid(); } - int snapIndex() { - int index = currentIndex; - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems[i]; - if (item->index == -1) - continue; - qreal itemTop = item->position(); - if (itemTop >= highlight->position()-item->size()/2 && itemTop < highlight->position()+item->size()/2) - return item->index; - } - return index; - } - qreal snapPosAt(qreal pos) { - for (int i = 0; i < visibleItems.count(); ++i) { - FxListItem *item = visibleItems[i]; - if (item->index == -1) - continue; - qreal itemTop = item->position(); - if (itemTop+item->size()/2 >= pos && itemTop <= pos) - return item->position(); - } + if (FxListItem *snapItem = snapItemAt(pos)) + return snapItem->position(); if (visibleItems.count()) { qreal firstPos = visibleItems.first()->position(); qreal endPos = visibleItems.last()->position(); @@ -368,17 +349,18 @@ public: } FxListItem *snapItemAt(qreal pos) { + FxListItem *snapItem = 0; for (int i = 0; i < visibleItems.count(); ++i) { FxListItem *item = visibleItems[i]; if (item->index == -1) continue; qreal itemTop = item->position(); - if (item->index == model->count()-1 || (itemTop+item->size()/2 >= pos)) + if (highlight && itemTop >= pos && item->endPosition() <= pos + highlight->size() - 1) return item; + if (itemTop+item->size()/2 >= pos && itemTop-item->size()/2 < pos) + snapItem = item; } - if (visibleItems.count() && visibleItems.first()->position() <= pos) - return visibleItems.first(); - return 0; + return snapItem; } int lastVisibleIndex() const { @@ -768,8 +750,10 @@ void QDeclarativeListViewPrivate::layout() minExtentDirty = true; maxExtentDirty = true; updateHighlight(); - fixupPosition(); - q->refill(); + if (!q->isMoving() && !q->isFlicking()) { + fixupPosition(); + q->refill(); + } if (header) updateHeader(); if (footer) @@ -1350,12 +1334,15 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m qreal newtarget = data.flickTarget; if (snapMode != QDeclarativeListView::NoSnap || highlightRange == QDeclarativeListView::StrictlyEnforceRange) newtarget = -snapPosAt(-(data.flickTarget - highlightRangeStart)) + highlightRangeStart; - if (velocity < 0 && newtarget < maxExtent) - newtarget = maxExtent; - else if (velocity > 0 && newtarget > minExtent) - newtarget = minExtent; - if (newtarget == data.flickTarget) // boundary unchanged - nothing to do + if (velocity < 0 && newtarget <= maxExtent) + newtarget = maxExtent - overshootDist; + else if (velocity > 0 && newtarget >= minExtent) + newtarget = minExtent + overshootDist; + if (newtarget == data.flickTarget) { // boundary unchanged - nothing to do + if (qAbs(velocity) < MinimumFlickVelocity) + correctFlick = false; return; + } data.flickTarget = newtarget; qreal dist = -newtarget + data.move.value(); if ((v < 0 && dist < 0) || (v > 0 && dist > 0)) { @@ -1365,7 +1352,7 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m return; } timeline.reset(data.move); - timeline.accelDistance(data.move, v, -dist + (v < 0 ? -overshootDist : overshootDist)); + timeline.accelDistance(data.move, v, -dist); timeline.callback(QDeclarativeTimeLineCallback(&data.move, fixupCallback, this)); } } else { @@ -1696,7 +1683,7 @@ void QDeclarativeListView::setCurrentIndex(int index) if (isComponentComplete() && d->isValid()) { d->moveReason = QDeclarativeListViewPrivate::SetIndex; d->updateCurrent(index); - } else { + } else if (d->currentIndex != index) { d->currentIndex = index; emit currentIndexChanged(); } @@ -2323,9 +2310,10 @@ void QDeclarativeListView::viewportMoved() d->highlight->setPosition(qRound(pos)); // update current index - int idx = d->snapIndex(); - if (idx >= 0 && idx != d->currentIndex) - d->updateCurrent(idx); + if (FxListItem *snapItem = d->snapItemAt(d->highlight->position())) { + if (snapItem->index >= 0 && snapItem->index != d->currentIndex) + d->updateCurrent(snapItem->index); + } } } diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png new file mode 100644 index 0000000..d466434 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png new file mode 100644 index 0000000..45d9712 Binary files /dev/null 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 new file mode 100644 index 0000000..3f05a5e Binary files /dev/null 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 new file mode 100644 index 0000000..d466434 Binary files /dev/null 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 new file mode 100644 index 0000000..c902676 Binary files /dev/null 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 new file mode 100644 index 0000000..45d9712 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml new file mode 100644 index 0000000..c15b657 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml @@ -0,0 +1,2119 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 32 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 48 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 64 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 80 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 96 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 112 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 128 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 144 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 160 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 176 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 192 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 208 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 224 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 240 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 256 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 272 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 288 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 304 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 320 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 336 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 352 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 368 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 384 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 400 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 416 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 432 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 448 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 464 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 480 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 496 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 512 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 528 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 544 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 560 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 576 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 592 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 608 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 624 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 640 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 656 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 672 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 688 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 704 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 720 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 736 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 752 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 768 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 784 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 800 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 816 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 832 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 848 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 864 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 880 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 896 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 912 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 928 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 944 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 960 + image: "enforcerange.0.png" + } + Frame { + msec: 976 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 992 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1008 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1024 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1040 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1056 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1072 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1088 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1104 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1120 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1136 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1152 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1168 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1184 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1200 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 77; y: 157 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1216 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1232 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 1248 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 77; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 77; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 76; y: 151 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1280 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 75; y: 144 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 74; y: 136 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "c7667b5af9f2ee912abe5879266cb1e0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 73; y: 131 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 72; y: 122 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "1e762d6ffe1ceb53046d7953645d02d5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 118 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "0d2b7130a84a8efac1cf4fe8a1768231" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 108 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1344 + hash: "6ef2715c3fd26d50d26fb740afa6dece" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 98 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 71; y: 92 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "f489b6f951281ff9a981ec046ca5b17d" + } + Frame { + msec: 1376 + hash: "fd6e7d7db7c4571ee606269fb9680ed9" + } + Frame { + msec: 1392 + hash: "398a238f59a2edf07870b624b914c81d" + } + Frame { + msec: 1408 + hash: "fdce64faab7e7e31a229adda47924cd1" + } + Frame { + msec: 1424 + hash: "8d474956331fdd0c35beb13a06b7c557" + } + Frame { + msec: 1440 + hash: "f89fed6f7fa07a8320f07a1e68240a7e" + } + Frame { + msec: 1456 + hash: "940b70f15082ff138579892bb6f20ce9" + } + Frame { + msec: 1472 + hash: "35ab744ce2a91567dbbd769f9486f870" + } + Frame { + msec: 1488 + hash: "6b2d32b8f1df871c2c014af8b5d87329" + } + Frame { + msec: 1504 + hash: "edf3b33b80cca53999779555f9cd6162" + } + Frame { + msec: 1520 + hash: "180f3cc4ea5ff5b6f9e8be0294732d4e" + } + Frame { + msec: 1536 + hash: "28e9ca60a873910380b2d22d6b3df565" + } + Frame { + msec: 1552 + hash: "3bb1e8d69f171f09eb4c6f9914fc9576" + } + Frame { + msec: 1568 + hash: "0501da09be444df6cee4b19617290317" + } + Frame { + msec: 1584 + hash: "8ce1ac0163b0353167488aff2879e841" + } + Frame { + msec: 1600 + hash: "18e53bf6337cf6590fc3c73c00469d8e" + } + Frame { + msec: 1616 + hash: "0c31ede980d07069f4977d5753d00ddf" + } + Frame { + msec: 1632 + hash: "0a854a54176c24f0ebbb6cb747dc0ab7" + } + Frame { + msec: 1648 + hash: "8dba1ebca6f00b7a64a6982fb8c28c50" + } + Frame { + msec: 1664 + hash: "8d273efc36ba722af4d044e6552c9dcb" + } + Frame { + msec: 1680 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 1696 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 1712 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 1728 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 1744 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 1760 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 1776 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 1792 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 1808 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 1824 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 1840 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 1856 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 1872 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 1888 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 1904 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 1920 + image: "enforcerange.1.png" + } + Frame { + msec: 1936 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 1952 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 1968 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 1984 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2000 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2016 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 2032 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 2048 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 2064 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 2080 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 2096 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 2112 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 2128 + hash: "711274e9b6811b4662ac29d813574fb6" + } + Frame { + msec: 2144 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 2160 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 2176 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 2192 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 2208 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 2224 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 2240 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2256 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2272 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 2288 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 2304 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 2320 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 2336 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 2352 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 2368 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 2384 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 2400 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2416 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2432 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2448 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2464 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2480 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2496 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2512 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2528 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2544 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2560 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2576 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2592 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2608 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2624 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2640 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 2656 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2672 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2688 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 2704 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 2720 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 2736 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 2752 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 2768 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 2784 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 2800 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 2816 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2832 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2848 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2864 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2880 + image: "enforcerange.2.png" + } + Frame { + msec: 2896 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2912 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2928 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2944 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2960 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2976 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 2992 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 3008 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 3024 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 82; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3040 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 3056 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 82; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3072 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 82; y: 42 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3088 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 55 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3104 + hash: "89016574205e00cf42723446d6a3437e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 69 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3120 + hash: "e2db9b1ae5c4be51a548834a7776da1f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 80; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 80; y: 87 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3136 + hash: "fcfad57224192065782a77ad3398d0d1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 80; y: 93 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 80; y: 107 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3152 + hash: "bae4fc0fc2d33008ebe827ece94af196" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 84; y: 130 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 88; y: 144 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3168 + hash: "569581944bf18c8165f72c60bdbf1011" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 96; y: 161 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 96; y: 161 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3184 + hash: "613ff94a26bfaa9a4dc94fcbf6c3eb57" + } + Frame { + msec: 3200 + hash: "a63f8e6b194f900acb1b7a332f9fb9ae" + } + Frame { + msec: 3216 + hash: "6c04761cc86d28112c16f692cda58ba4" + } + Frame { + msec: 3232 + hash: "544275da3f7e2ccaedc8c521bf17f59b" + } + Frame { + msec: 3248 + hash: "52831480eb69184341b12ffb09ace736" + } + Frame { + msec: 3264 + hash: "52831480eb69184341b12ffb09ace736" + } + Frame { + msec: 3280 + hash: "52831480eb69184341b12ffb09ace736" + } + Frame { + msec: 3296 + hash: "52831480eb69184341b12ffb09ace736" + } + Frame { + msec: 3312 + hash: "58f2b900bc335424fc70eaaeb23ceb56" + } + Frame { + msec: 3328 + hash: "58f2b900bc335424fc70eaaeb23ceb56" + } + Frame { + msec: 3344 + hash: "544275da3f7e2ccaedc8c521bf17f59b" + } + Frame { + msec: 3360 + hash: "df9fef370c2f6ff300b20fc24b5b9e34" + } + Frame { + msec: 3376 + hash: "99cdc74eefc8c7c7df4650b373d8bc15" + } + Frame { + msec: 3392 + hash: "0662898d246e5ff6981610d32e2b8375" + } + Frame { + msec: 3408 + hash: "651b4c8b7a241263d48e645e603a55a3" + } + Frame { + msec: 3424 + hash: "82b31c8e8794ce3a9a6a635ef93b29b3" + } + Frame { + msec: 3440 + hash: "388658b5e03f3853e93173bd9501b77b" + } + Frame { + msec: 3456 + hash: "cf1856e961e6b8277a82c03ace5ba864" + } + Frame { + msec: 3472 + hash: "e1d022cc1b41098baffe49925b20678f" + } + Frame { + msec: 3488 + hash: "ee55d155fa495f3a0da8c21ad56dfc61" + } + Frame { + msec: 3504 + hash: "044c3712a6a5f6a973defe85643c8d02" + } + Frame { + msec: 3520 + hash: "e4fe2f1a81a4a4806f4155807f285a2d" + } + Frame { + msec: 3536 + hash: "e4fe2f1a81a4a4806f4155807f285a2d" + } + Frame { + msec: 3552 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3568 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3584 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3600 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3616 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3632 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3648 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3664 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3680 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3696 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3712 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3728 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3744 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3760 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3776 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3792 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3808 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3824 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3840 + image: "enforcerange.3.png" + } + Frame { + msec: 3856 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3872 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3888 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3904 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3920 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3936 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3952 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3968 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 3984 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 4000 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 4016 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Frame { + msec: 4032 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 105; y: 169 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4048 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 168 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 167 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4064 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 164 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 163 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4080 + hash: "19c43fcf2875769c9a15f1ce317a0f1e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 162 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 160 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4096 + hash: "331164730fb7ccf37dc08ddc26c0e182" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 107; y: 157 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 107; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4112 + hash: "73e27ff972eefc421bc65897ad8b9a11" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 108; y: 152 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 148 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4128 + hash: "c5e903fd827f8f1ec060dcb9a925bf6d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 145 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 109; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4144 + hash: "74d4357dff4d6e00c5ae9ea0c34f1010" + } + Frame { + msec: 4160 + hash: "790274ee21ba257b84671a6fb19c142f" + } + Frame { + msec: 4176 + hash: "65ccc26f20be484fefa8ea25a7daf825" + } + Frame { + msec: 4192 + hash: "e435e2fbba7f0f6a65b9fecf07893eb0" + } + Frame { + msec: 4208 + hash: "6a994a18a9331731d5fca50dce2b9cff" + } + Frame { + msec: 4224 + hash: "9fc4405cddc06310215969a4583b2353" + } + Frame { + msec: 4240 + hash: "0d2b7130a84a8efac1cf4fe8a1768231" + } + Frame { + msec: 4256 + hash: "791db15db47090e1af299e5b32e53918" + } + Frame { + msec: 4272 + hash: "0ec6cf7a6ed9a073d2ce8f9e534e2ee5" + } + Frame { + msec: 4288 + hash: "c7b358f51a9500ca4958d266de5307e6" + } + Frame { + msec: 4304 + hash: "d24d00e4cd1ea3aaacf202e2fdf1eaa0" + } + Frame { + msec: 4320 + hash: "169f1a7a933d84071c449132a3c2745e" + } + Frame { + msec: 4336 + hash: "b6bf9c15ed40d6e862f693155c884035" + } + Frame { + msec: 4352 + hash: "8639955aa7a03f54d50d7e9051a4b997" + } + Frame { + msec: 4368 + hash: "411bc9a9aedbfb75f3122eaea6be0c16" + } + Frame { + msec: 4384 + hash: "827094da86716daf69386af2c8d4027a" + } + Frame { + msec: 4400 + hash: "ddddd5457e4a54ca5e7415dc2c7eabe5" + } + Frame { + msec: 4416 + hash: "632a5756af20083504fb1faaa019dd48" + } + Frame { + msec: 4432 + hash: "0cc2901b1b25412f13865887a8c9d13e" + } + Frame { + msec: 4448 + hash: "4c8a9473eb9843634340d70f8eab9487" + } + Frame { + msec: 4464 + hash: "398a238f59a2edf07870b624b914c81d" + } + Frame { + msec: 4480 + hash: "a7c282235e9166b900ea2ff68800a5f5" + } + Frame { + msec: 4496 + hash: "bae4fc0fc2d33008ebe827ece94af196" + } + Frame { + msec: 4512 + hash: "45e0670a2b4c18b847a3c7870539b962" + } + Frame { + msec: 4528 + hash: "8d474956331fdd0c35beb13a06b7c557" + } + Frame { + msec: 4544 + hash: "5d5bdffc30d90fd5b061c6fcf24c2599" + } + Frame { + msec: 4560 + hash: "15721b103981f5fe40b5dfe7d65c5b38" + } + Frame { + msec: 4576 + hash: "940b70f15082ff138579892bb6f20ce9" + } + Frame { + msec: 4592 + hash: "5137ea98fd291a4b967fb66d93253a37" + } + Frame { + msec: 4608 + hash: "35ab744ce2a91567dbbd769f9486f870" + } + Frame { + msec: 4624 + hash: "d5c55c00b07735e5d7c02dfa99ef2f45" + } + Frame { + msec: 4640 + hash: "6b2d32b8f1df871c2c014af8b5d87329" + } + Frame { + msec: 4656 + hash: "edf3b33b80cca53999779555f9cd6162" + } + Frame { + msec: 4672 + hash: "180f3cc4ea5ff5b6f9e8be0294732d4e" + } + Frame { + msec: 4688 + hash: "9b99a1b0c0bb0ce37655d92854ee4d19" + } + Frame { + msec: 4704 + hash: "28e9ca60a873910380b2d22d6b3df565" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 109; y: 131 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4720 + hash: "28e9ca60a873910380b2d22d6b3df565" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 126 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 124 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4736 + hash: "18e53bf6337cf6590fc3c73c00469d8e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 115 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 110 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4752 + hash: "81110f17d191f9795a2c57d136e86550" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 108; y: 99 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 85 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4768 + hash: "b64810845a97bedf6fe11c043457c197" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 105; y: 74 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 103; y: 60 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4784 + hash: "711274e9b6811b4662ac29d813574fb6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 102; y: 54 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 100; y: 40 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 100; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4800 + image: "enforcerange.4.png" + } + Frame { + msec: 4816 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 4832 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 4848 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 4864 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 4880 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 4896 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 4912 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 4928 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 4944 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 4960 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 4976 + hash: "711274e9b6811b4662ac29d813574fb6" + } + Frame { + msec: 4992 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 5008 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 5024 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5040 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 5056 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 5072 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 5088 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 5104 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 5120 + hash: "711274e9b6811b4662ac29d813574fb6" + } + Frame { + msec: 5136 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 5152 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 5168 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 5184 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 5200 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5216 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5232 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 5248 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 5264 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 5280 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 5296 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 5312 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 5328 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 5344 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 5360 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 5376 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 5392 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 5408 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 5424 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5440 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 5456 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5472 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 5488 + hash: "81110f17d191f9795a2c57d136e86550" + } + Frame { + msec: 5504 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 5520 + hash: "090a76cf068a5041ff993f21e6ebd087" + } + Frame { + msec: 5536 + hash: "30eb157c89ad0aeb17fd0012afb9246b" + } + Frame { + msec: 5552 + hash: "6b317b59e1b0f5b17a6d7d96e745f576" + } + Frame { + msec: 5568 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 5584 + hash: "f9fc8467c6dbcb00d1f41a57b550193c" + } + Frame { + msec: 5600 + hash: "711274e9b6811b4662ac29d813574fb6" + } + Frame { + msec: 5616 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 5632 + hash: "744227adbdd31be2920a232ea0dbc85d" + } + Frame { + msec: 5648 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 5664 + hash: "d4b370ff8c3b66fc8a616dd9b944abd1" + } + Frame { + msec: 5680 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 5696 + hash: "674b07dc5b99bf2da93c40d42dc9023d" + } + Frame { + msec: 5712 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 5728 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 5744 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 5760 + image: "enforcerange.5.png" + } + Frame { + msec: 5776 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5792 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5808 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 5824 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 5840 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 5856 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 5872 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5888 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5904 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5920 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5936 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 5952 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 5968 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 5984 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6000 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6016 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6032 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6048 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6064 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6080 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6096 + hash: "b061ee3784fbd4a287758ffd100a623e" + } + Frame { + msec: 6112 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 6128 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 6144 + hash: "7eb75e8e83874d52448a7dbf6a0ad29c" + } + Frame { + msec: 6160 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 6176 + hash: "70b475e88060ead84d05f0ba1b47c139" + } + Frame { + msec: 6192 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 6208 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 6224 + hash: "87aaa82b96131fed8822e57e226162a0" + } + Frame { + msec: 6240 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 6256 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 6272 + hash: "b64810845a97bedf6fe11c043457c197" + } + Frame { + msec: 6288 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6304 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6320 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6336 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6352 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6368 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6384 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6400 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6416 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6432 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6448 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6464 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6480 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6496 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6512 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6528 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6544 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6560 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6576 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6592 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6608 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6624 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6640 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } + Frame { + msec: 6656 + hash: "a4ff6c6c43697808f9ad7387d152cef3" + } +} diff --git a/tests/auto/declarative/qmlvisual/ListView/enforcerange.qml b/tests/auto/declarative/qmlvisual/ListView/enforcerange.qml new file mode 100644 index 0000000..a796be7 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/ListView/enforcerange.qml @@ -0,0 +1,31 @@ +import QtQuick 1.0 + +Item { + id: document + width: 200; height: 200 + + ListView { + id: serviceListView + anchors.fill: parent + model: 100 + + preferredHighlightBegin: 90 + preferredHighlightEnd: 90 + + highlightRangeMode: ListView.StrictlyEnforceRange + + delegate: Component { + Item { + height: 15 + ((serviceListView.currentIndex == index) ? 20 : 0) + width: 200 + Rectangle { width: 180; height: parent.height - 4; x: 10; y: 2; color: "red" } + } + } + } + + Rectangle { + y: 90; width: 200; height: 35 + border.color: "black" + color: "transparent" + } +} -- cgit v0.12 From 3cc9c5f2541f192733436c79c4d14aa34177c3cc Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 3 Nov 2010 16:38:20 +1000 Subject: highlightranges.qml example and visual test contained binding loop. Also, the currentIndex stayed -1 since the views all bound to each others currentIndex, which starts as -1. Task-number: QTBUG-14794 Reviewed-by: Yann Bodson --- .../modelviews/listview/highlightranges.qml | 20 +++++++++++--------- .../auto/declarative/qmlvisual/ListView/listview.qml | 12 ++++++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/examples/declarative/modelviews/listview/highlightranges.qml b/examples/declarative/modelviews/listview/highlightranges.qml index 2716ee5..58d37a3 100644 --- a/examples/declarative/modelviews/listview/highlightranges.qml +++ b/examples/declarative/modelviews/listview/highlightranges.qml @@ -42,15 +42,14 @@ import QtQuick 1.0 import "content" Rectangle { + id: root + property int current: 0 width: 600; height: 300 // This example shows the same model in three different ListView items, // with different highlight ranges. The highlight ranges are set by the // preferredHighlightBegin and preferredHighlightEnd properties in ListView. // - // The second and third ListViews set their currentIndex to be the - // same as the first. The first ListView is given keyboard focus. - // // The first ListView does not set a highlight range, so its currentItem // can move freely within the visible area. If it moves outside the // visible area, the view is automatically scrolled to keep the current @@ -66,9 +65,10 @@ Rectangle { // forces the current item to change when the view is flicked, // since the highlight is unable to move. // - // Note that the first ListView sets its currentIndex to be equal to - // the third ListView's currentIndex. By flicking the third ListView with - // the mouse, the current index of the first ListView will be changed. + // All ListViews bind their currentIndex to the root.current property. + // The first ListView sets root.current whenever its currentIndex changes + // due to keyboard interaction. + // Flicking the third ListView with the mouse also changes root.current. ListView { id: list1 @@ -77,7 +77,8 @@ Rectangle { delegate: petDelegate highlight: Rectangle { color: "lightsteelblue" } - currentIndex: list3.currentIndex + currentIndex: root.current + onCurrentIndexChanged: root.current = currentIndex focus: true } @@ -89,7 +90,7 @@ Rectangle { delegate: petDelegate highlight: Rectangle { color: "yellow" } - currentIndex: list1.currentIndex + currentIndex: root.current preferredHighlightBegin: 80; preferredHighlightEnd: 220 highlightRangeMode: ListView.ApplyRange } @@ -102,7 +103,8 @@ Rectangle { delegate: petDelegate highlight: Rectangle { color: "yellow" } - currentIndex: list1.currentIndex + currentIndex: root.current + onCurrentIndexChanged: root.current = currentIndex preferredHighlightBegin: 125; preferredHighlightEnd: 125 highlightRangeMode: ListView.StrictlyEnforceRange } diff --git a/tests/auto/declarative/qmlvisual/ListView/listview.qml b/tests/auto/declarative/qmlvisual/ListView/listview.qml index 43c86a0..6171c75 100644 --- a/tests/auto/declarative/qmlvisual/ListView/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/listview.qml @@ -1,7 +1,8 @@ import QtQuick 1.0 Rectangle { - property string skip: "Incorrect start: QTBUG-14794" + id: root + property int current: 0 width: 600; height: 300; color: "white" ListModel { @@ -57,7 +58,9 @@ Rectangle { id: list1 width: 200; height: parent.height model: myModel; delegate: myDelegate - highlight: myHighlight; currentIndex: list3.currentIndex + highlight: myHighlight + currentIndex: root.current + onCurrentIndexChanged: root.current = currentIndex focus: true } ListView { @@ -67,13 +70,14 @@ Rectangle { preferredHighlightBegin: 80 preferredHighlightEnd: 220 highlightRangeMode: "ApplyRange" - currentIndex: list1.currentIndex + currentIndex: root.current } ListView { id: list3 x: 400; width: 200; height: parent.height model: myModel; delegate: myDelegate; highlight: myHighlight - currentIndex: list1.currentIndex + currentIndex: root.current + onCurrentIndexChanged: root.current = currentIndex preferredHighlightBegin: 125 preferredHighlightEnd: 125 highlightRangeMode: "StrictlyEnforceRange" -- cgit v0.12 From acc1a2bd5520369c690c2769f067aec6bfd869f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 3 Nov 2010 12:10:01 +0100 Subject: Fixed grabWidget sometimes returning uninitialized memory. Use a QImage initialized with transparent to prevent any translucent parts of the widget to end up as garbage, and to ensure that the resulting QPixmap ends up with an alpha format only when needed. Task-number: QTBUG-14945 Reviewed-by: Kim --- src/gui/image/qpixmap.cpp | 5 +++-- tests/auto/qpixmap/tst_qpixmap.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index 64d8ed2..290c0f0 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -1101,10 +1101,11 @@ QPixmap QPixmap::grabWidget(QWidget * widget, const QRect &rect) if (!r.intersects(widget->rect())) return QPixmap(); - QPixmap res(r.size()); + QImage res(r.size(), QImage::Format_ARGB32_Premultiplied); + res.fill(0); widget->d_func()->render(&res, QPoint(), r, QWidget::DrawWindowBackground | QWidget::DrawChildren | QWidget::IgnoreMask, true); - return res; + return QPixmap::fromImage(res); } /*! diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index fdf8311..a733d56 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -817,7 +817,7 @@ void tst_QPixmap::grabWidget() for (int row = 0; row < image.height(); ++row) { QRgb *line = reinterpret_cast(image.scanLine(row)); for (int col = 0; col < image.width(); ++col) - line[col] = qRgb(rand() & 255, row, col); + line[col] = qRgba(rand() & 255, row, col, 127); } QPalette pal = widget.palette(); -- cgit v0.12 From 75648ab9c4f64830aa36753686bec1a8f91d2f7e Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Wed, 3 Nov 2010 13:04:04 +0100 Subject: Doc: Fixing typo --- src/plugins/graphicssystems/meego/dithering.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp index 122c51e..1a2e3fa 100644 --- a/src/plugins/graphicssystems/meego/dithering.cpp +++ b/src/plugins/graphicssystems/meego/dithering.cpp @@ -76,7 +76,7 @@ // Converts incoming RGB32 (QImage::Format_RGB32) to RGB565. Returns the newly allocated data. unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int height, int stride) { - // Output line stride. Alligned to 4 bytes. + // Output line stride. Aligned to 4 bytes. int alignedWidth = width; if (alignedWidth % 2 > 0) alignedWidth++; @@ -191,7 +191,7 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h // The output has each scan line aligned to 4 bytes (as expected by GL by default). unsigned short* convertARGB32_to_RGBA4444(const unsigned char *in, int width, int height, int stride) { - // Output line stride. Alligned to 4 bytes. + // Output line stride. Aligned to 4 bytes. int alignedWidth = width; if (alignedWidth % 2 > 0) alignedWidth++; @@ -303,4 +303,4 @@ unsigned char* convertBGRA32_to_RGBA32(const unsigned char *in, int width, int h } return out; -} \ No newline at end of file +} -- cgit v0.12 From bee2335bbb3cbfe0e2d1184ca22835b0cf15fb7b Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 4 Nov 2010 11:05:14 +1000 Subject: Doc fix The associated bug report is invalid, but this doc fix helps people understand why (so that they never mistakenly file it again). Task-number: QTBUG-14950 --- doc/src/declarative/dynamicobjects.qdoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc index 3921d3e..daf2ae1 100644 --- a/doc/src/declarative/dynamicobjects.qdoc +++ b/doc/src/declarative/dynamicobjects.qdoc @@ -173,7 +173,11 @@ component. Each instance runs a NumberAnimation, and when the animation has fini Alternatively, the \c application.qml could have destroyed the created object by calling \c object.destroy(). -Notice that if a \c SelfDestroyingRect instance was created statically like this: +Note that it is safe to call destroy() on an object within that object. Objects are not destroyed the +instant destroy() is called, but are cleaned up sometime between the end of that script block and the next frame +(unless you specified a non-zero delay). + +Note also that if a \c SelfDestroyingRect instance was created statically like this: \qml Item { -- cgit v0.12 From 59d4e2022095d8363cd5373a1a74f86a448c3542 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 4 Nov 2010 12:41:28 +1000 Subject: Add testcase for QTBUG-13719. --- .../data/ConstantsOverrideBindings.qml | 6 ++++++ .../data/constantsOverrideBindings.4.qml | 11 +++++++++++ .../qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 15 +++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.4.qml diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/ConstantsOverrideBindings.qml b/tests/auto/declarative/qdeclarativeecmascript/data/ConstantsOverrideBindings.qml index b4a702b..07bb16b 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/ConstantsOverrideBindings.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/ConstantsOverrideBindings.qml @@ -3,4 +3,10 @@ import Qt.test 1.0 MyQmlObject { property int c1: 0 property int c2: c1 + property alias c3: inner.ic1 + + objectProperty: MyQmlObject { + id: inner + property int ic1: c1 + } } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.4.qml new file mode 100644 index 0000000..5a2091f --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.4.qml @@ -0,0 +1,11 @@ +import Qt.test 1.0 + +MyQmlObject { + property alias c1: myConstants.c1 + property alias c3: myConstants.c3 + + objectProperty: ConstantsOverrideBindings { + id: myConstants + c3: 10 + } +} diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 72e2e10..3dd69da 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -733,6 +733,21 @@ void tst_qdeclarativeecmascript::constantsOverrideBindings() QCOMPARE(object->property("c2").toInt(), 13); } #endif + + // Using an alias + { + QDeclarativeComponent component(&engine, TEST_FILE("constantsOverrideBindings.4.qml")); + MyQmlObject *object = qobject_cast(component.create()); + QVERIFY(object != 0); + + QCOMPARE(object->property("c1").toInt(), 0); + QEXPECT_FAIL("", "QTBUG-13719", Continue); + QCOMPARE(object->property("c3").toInt(), 10); + object->setProperty("c1", QVariant(9)); + QCOMPARE(object->property("c1").toInt(), 9); + QEXPECT_FAIL("", "QTBUG-13719", Continue); + QCOMPARE(object->property("c3").toInt(), 10); + } } /* -- cgit v0.12 From f1344a817fdb3d263bd64f4440fedc73ad94ad31 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 4 Nov 2010 13:00:50 +1000 Subject: Don't emit xChanged()/yChanged() twice. Once from QGraphicsObject (QGraphicsItemPrivate::setPosHelper()) and once from QDeclarativeItem::geometryChanged(). Remove from geometryChanged(). Task-number: QTBUG-14942 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 4 ---- .../auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp | 10 ++++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 95a4fd6..e0df751 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1955,12 +1955,8 @@ void QDeclarativeItem::geometryChanged(const QRectF &newGeometry, change.listener->itemGeometryChanged(this, newGeometry, oldGeometry); } - if (newGeometry.x() != oldGeometry.x()) - emit xChanged(); if (newGeometry.width() != oldGeometry.width()) emit widthChanged(); - if (newGeometry.y() != oldGeometry.y()) - emit yChanged(); if (newGeometry.height() != oldGeometry.height()) emit heightChanged(); } diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp index b4903ae..711bf00 100644 --- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp +++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp @@ -686,6 +686,8 @@ void tst_QDeclarativeItem::propertyChanges() QSignalSpy focusSpy(item, SIGNAL(focusChanged(bool))); QSignalSpy wantsFocusSpy(parentItem, SIGNAL(activeFocusChanged(bool))); QSignalSpy childrenChangedSpy(parentItem, SIGNAL(childrenChanged())); + QSignalSpy xSpy(item, SIGNAL(xChanged())); + QSignalSpy ySpy(item, SIGNAL(yChanged())); item->setParentItem(parentItem); item->setWidth(100.0); @@ -731,6 +733,14 @@ void tst_QDeclarativeItem::propertyChanges() QCOMPARE(parentItem->hasFocus(), false); QCOMPARE(wantsFocusSpy.count(),0); + item->setX(10.0); + QCOMPARE(item->x(), 10.0); + QCOMPARE(xSpy.count(), 1); + + item->setY(10.0); + QCOMPARE(item->y(), 10.0); + QCOMPARE(ySpy.count(), 1); + delete canvas; } -- cgit v0.12 From 80544a90d165736088b8286b738fd4e3033b1ade Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 4 Nov 2010 15:07:24 +1000 Subject: Fix regression in 648eb76c and update visual tests. Once fixup() begins, flick should not be recalculated. Task-number: QTBUG-14821 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativelistview.cpp | 1 + .../qmlvisual/ListView/data/enforcerange.qml | 30 +- .../qmlvisual/ListView/data/itemlist.0.png | Bin 976 -> 976 bytes .../qmlvisual/ListView/data/itemlist.1.png | Bin 986 -> 986 bytes .../qmlvisual/ListView/data/itemlist.2.png | Bin 977 -> 977 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 -> 990 bytes .../qmlvisual/ListView/data/itemlist.6.png | Bin 976 -> 976 bytes .../qmlvisual/ListView/data/itemlist.qml | 104 ++-- .../qmlvisual/ListView/data/listview.0.png | Bin 1580 -> 1585 bytes .../qmlvisual/ListView/data/listview.1.png | Bin 1580 -> 1580 bytes .../qmlvisual/ListView/data/listview.2.png | Bin 1661 -> 1667 bytes .../qmlvisual/ListView/data/listview.3.png | Bin 1649 -> 1599 bytes .../qmlvisual/ListView/data/listview.4.png | Bin 1669 -> 1663 bytes .../qmlvisual/ListView/data/listview.5.png | Bin 1651 -> 1666 bytes .../qmlvisual/ListView/data/listview.qml | 604 ++++++++++----------- 17 files changed, 370 insertions(+), 369 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index eab66d8..94b1cb3 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1157,6 +1157,7 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m || (orient == QDeclarativeListView::Vertical && &data == &hData)) return; + correctFlick = false; int oldDuration = fixupDuration; fixupDuration = moveReason == Mouse ? fixupDuration : 0; diff --git a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml index c15b657..20ed077 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml @@ -1074,7 +1074,7 @@ VisualTest { } Frame { msec: 3296 - hash: "52831480eb69184341b12ffb09ace736" + hash: "58f2b900bc335424fc70eaaeb23ceb56" } Frame { msec: 3312 @@ -1082,59 +1082,59 @@ VisualTest { } Frame { msec: 3328 - hash: "58f2b900bc335424fc70eaaeb23ceb56" + hash: "544275da3f7e2ccaedc8c521bf17f59b" } Frame { msec: 3344 - hash: "544275da3f7e2ccaedc8c521bf17f59b" + hash: "df9fef370c2f6ff300b20fc24b5b9e34" } Frame { msec: 3360 - hash: "df9fef370c2f6ff300b20fc24b5b9e34" + hash: "0662898d246e5ff6981610d32e2b8375" } Frame { msec: 3376 - hash: "99cdc74eefc8c7c7df4650b373d8bc15" + hash: "6c04761cc86d28112c16f692cda58ba4" } Frame { msec: 3392 - hash: "0662898d246e5ff6981610d32e2b8375" + hash: "82b31c8e8794ce3a9a6a635ef93b29b3" } Frame { msec: 3408 - hash: "651b4c8b7a241263d48e645e603a55a3" + hash: "388658b5e03f3853e93173bd9501b77b" } Frame { msec: 3424 - hash: "82b31c8e8794ce3a9a6a635ef93b29b3" + hash: "cf1856e961e6b8277a82c03ace5ba864" } Frame { msec: 3440 - hash: "388658b5e03f3853e93173bd9501b77b" + hash: "e1d022cc1b41098baffe49925b20678f" } Frame { msec: 3456 - hash: "cf1856e961e6b8277a82c03ace5ba864" + hash: "a63f8e6b194f900acb1b7a332f9fb9ae" } Frame { msec: 3472 - hash: "e1d022cc1b41098baffe49925b20678f" + hash: "044c3712a6a5f6a973defe85643c8d02" } Frame { msec: 3488 - hash: "ee55d155fa495f3a0da8c21ad56dfc61" + hash: "044c3712a6a5f6a973defe85643c8d02" } Frame { msec: 3504 - hash: "044c3712a6a5f6a973defe85643c8d02" + hash: "e4fe2f1a81a4a4806f4155807f285a2d" } Frame { msec: 3520 - hash: "e4fe2f1a81a4a4806f4155807f285a2d" + hash: "19c43fcf2875769c9a15f1ce317a0f1e" } Frame { msec: 3536 - hash: "e4fe2f1a81a4a4806f4155807f285a2d" + hash: "19c43fcf2875769c9a15f1ce317a0f1e" } Frame { msec: 3552 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png index 75d2089..6a589c6 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.1.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png index 578b7d1..a8957d6 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 def378f..fe2d28b 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 e23b903..0f20b07 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 def378f..fe2d28b 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 b81e713..0ab58c5 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 75d2089..6a589c6 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.qml b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml index b23594b..6d09bc0 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml @@ -982,67 +982,67 @@ VisualTest { } Frame { msec: 3088 - hash: "4b5368f0d86bffeb6bd31b58aec88650" + hash: "fd8e51cca3432f6edcf949857737095f" } Frame { msec: 3104 - hash: "3f4c24f7ac89da982af22032309637fb" + hash: "aa5d4e65932b3ec2f5549079dfc7718d" } Frame { msec: 3120 - hash: "8cacde33b70fc62b9b0c753091168b97" + hash: "f811f3c6b022730dd68ebd7b1659ea40" } Frame { msec: 3136 - hash: "7b8c1bb2a3ab9ba23ac17dc5422adac8" + hash: "e51a2e41972cfc3df46a7d4375024d80" } Frame { msec: 3152 - hash: "5aa34dccdd406b7e93dfdf756bbca5f0" + hash: "275f3594a0e2cc4b6717f9f336e7e1b6" } Frame { msec: 3168 - hash: "4865c30dc45fbf5ca82047b77eca0912" + hash: "9229054bb70662b12a4f7e45ac5b7a90" } Frame { msec: 3184 - hash: "1dcecc3a899b060a1469ef91e0d21765" + hash: "89ff346eca0b71cad3b04a2cb8064fb0" } Frame { msec: 3200 - hash: "31422699bdbbbf827f7bb1f1ef78823e" + hash: "94e6ecb87a7efca6344d6d63a1e3829f" } Frame { msec: 3216 - hash: "5859920a625ef94a644fda85d14e92fb" + hash: "bc5eb6b0eeae316ddd0b308da2cc32e2" } Frame { msec: 3232 - hash: "37f1f7aaeaed28807f51fd9ad8c414ac" + hash: "240081760f0cf2f02be4d6d2600d2bbc" } Frame { msec: 3248 - hash: "14592a6c86f211c20abab5cf34a406b4" + hash: "69b335aeb81fc2ae6173f2ec5cdc4c55" } Frame { msec: 3264 - hash: "77c18ac7dfff2a4e516915e3e3df0717" + hash: "10d481e57cc8cd694500d9ed6ae1f8bb" } Frame { msec: 3280 - hash: "f619097356671f6eb54d3b1c481e709d" + hash: "6b21f71d0bedef4bbcb445a13f61e7a3" } Frame { msec: 3296 - hash: "7f19ea52e9e41a3b1bd90bb2a144d305" + hash: "aa94ebdbb4b8423aff28c95daff0baf5" } Frame { msec: 3312 - hash: "17deb6b26fc9d27d5194995c102da4ac" + hash: "5f6708f615654c459f5749676fc09016" } Frame { msec: 3328 - hash: "29c52328b54f02cc9042f676d710b9b2" + hash: "8ef246d322446e7f0848b99495f89e2b" } Frame { msec: 3344 @@ -1050,11 +1050,11 @@ VisualTest { } Frame { msec: 3360 - hash: "40204fdb7a84b86f1380224908092354" + hash: "3b2e2d957585fb44a7165186a146892c" } Frame { msec: 3376 - hash: "de7f3c83f37cc89c87009626c72e7642" + hash: "124da0099a7dd6fbf6dfd0ecfb09638c" } Frame { msec: 3392 @@ -1074,7 +1074,7 @@ VisualTest { } Frame { msec: 3456 - hash: "b554512bac0766063870c5b3acb1d24f" + hash: "bb5ea2a238920a8486263bc7450edfb4" } Frame { msec: 3472 @@ -1082,7 +1082,7 @@ VisualTest { } Frame { msec: 3488 - hash: "e4dacafba5ab5f8db53f08cef458cf42" + hash: "b554512bac0766063870c5b3acb1d24f" } Frame { msec: 3504 @@ -1094,23 +1094,23 @@ VisualTest { } Frame { msec: 3536 - hash: "40204fdb7a84b86f1380224908092354" + hash: "124da0099a7dd6fbf6dfd0ecfb09638c" } Frame { msec: 3552 - hash: "3b2e2d957585fb44a7165186a146892c" + hash: "40204fdb7a84b86f1380224908092354" } Frame { msec: 3568 - hash: "c3b219bdd7710427d134402a8d3e6429" + hash: "ff93c3290b7d9a9743cc11d41a112a0a" } Frame { msec: 3584 - hash: "8d424f37bb6af879129e57661d30a162" + hash: "c3b219bdd7710427d134402a8d3e6429" } Frame { msec: 3600 - hash: "29c52328b54f02cc9042f676d710b9b2" + hash: "56e2f6b2ac103caf7ada3b56c19622c2" } Frame { msec: 3616 @@ -1118,15 +1118,15 @@ VisualTest { } Frame { msec: 3632 - hash: "17deb6b26fc9d27d5194995c102da4ac" + hash: "8eb6d69d9833d0fbf87f951f489b71fe" } Frame { msec: 3648 - hash: "5f6708f615654c459f5749676fc09016" + hash: "17deb6b26fc9d27d5194995c102da4ac" } Frame { msec: 3664 - hash: "1734205ea5e7539b47d80c5a93ec74aa" + hash: "5f6708f615654c459f5749676fc09016" } Frame { msec: 3680 @@ -1134,7 +1134,7 @@ VisualTest { } Frame { msec: 3696 - hash: "88143ff6c278a5433b314b551b7b8b1d" + hash: "1734205ea5e7539b47d80c5a93ec74aa" } Frame { msec: 3712 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 5408 - hash: "cf2acc805e9707327b01eb979f2b67a3" + hash: "06ce7db518da042e04dd3f79b7220974" } Frame { msec: 5424 @@ -1730,55 +1730,55 @@ VisualTest { } Frame { msec: 5440 - hash: "a978890b419f9503e53d4d3f4f9b8c9b" + hash: "53e9d5a0098f2e91bbea45360b876607" } Frame { msec: 5456 - hash: "73339b67e49210b4760b8e06fa4067b7" + hash: "22a6c7f3dcb5a36592909783b2466c8d" } Frame { msec: 5472 - hash: "d09a245890e813c248050132a76465f3" + hash: "9d8da9199efebb95f56e5d4ebc9a585e" } Frame { msec: 5488 - hash: "35b874b3b4d7d1e59852233fce192b0b" + hash: "c553400402f233a6246be4e544b433ae" } Frame { msec: 5504 - hash: "4f80a0da1941e9c208036f22df93bed8" + hash: "c2e41a54c03340832db93f6f88393f00" } Frame { msec: 5520 - hash: "7bbdc4ce95bc12e505f24cb8b137a0f1" + hash: "3622a619a99c939e96636a86c4428ba3" } Frame { msec: 5536 - hash: "e68b5fb604a45d4e7ee21f6e06460b47" + hash: "e65d5e6c756e750e6d98096fe211465c" } Frame { msec: 5552 - hash: "903059d468bed1ac8395e38a19c9dd38" + hash: "cabd6d30b1f4e42b38b73803aae6d5be" } Frame { msec: 5568 - hash: "d7430ebf26f2de6f648471c19455cf0f" + hash: "68d443f16c16821ffc9ca68b17c76034" } Frame { msec: 5584 - hash: "d5268cd58c222451d48038e715e83802" + hash: "a68b1bc6c2963ee92c3a45f500667b3b" } Frame { msec: 5600 - hash: "99b4534b0bf58dc8e28c1118a5baec33" + hash: "805319ac7ca842feb3649e92f8b5b72f" } Frame { msec: 5616 - hash: "ade5beb259b5277c333ca806fc9bdbec" + hash: "fd8d3f5688b1806998c6087e18c6c730" } Frame { msec: 5632 - hash: "f34d2248999f5f51210064315d631f60" + hash: "b135c8c9975f4d45d2054cf31d0b1fe1" } Frame { msec: 5648 @@ -1786,7 +1786,7 @@ VisualTest { } Frame { msec: 5664 - hash: "65af7a4a4aea5a983ea3fb9324e74256" + hash: "aa32e4c20c6a43c4ef7991a9418e57fe" } Frame { msec: 5680 @@ -1794,7 +1794,7 @@ VisualTest { } Frame { msec: 5696 - hash: "2311ce1a83a43619ab7ce537a2b948e1" + hash: "127871a98123b7bd44f4c38f27cbc836" } Frame { msec: 5712 @@ -1826,15 +1826,15 @@ VisualTest { } Frame { msec: 5824 - hash: "127871a98123b7bd44f4c38f27cbc836" + hash: "2311ce1a83a43619ab7ce537a2b948e1" } Frame { msec: 5840 - hash: "b8db9180b4ad15fdbd25a4e974512f92" + hash: "127871a98123b7bd44f4c38f27cbc836" } Frame { msec: 5856 - hash: "0974df6a7277bba11a3d3f400c68f4f1" + hash: "b8db9180b4ad15fdbd25a4e974512f92" } Frame { msec: 5872 @@ -1842,11 +1842,11 @@ VisualTest { } Frame { msec: 5888 - hash: "b3e92eb4cfe548b92ac526066dfc7d23" + hash: "aa32e4c20c6a43c4ef7991a9418e57fe" } Frame { msec: 5904 - hash: "40382f644935dc4e99353fa29c3e0b21" + hash: "b3e92eb4cfe548b92ac526066dfc7d23" } Frame { msec: 5920 @@ -1862,7 +1862,7 @@ VisualTest { } Frame { msec: 5968 - hash: "b135c8c9975f4d45d2054cf31d0b1fe1" + hash: "f34d2248999f5f51210064315d631f60" } Frame { msec: 5984 @@ -1870,7 +1870,7 @@ VisualTest { } Frame { msec: 6000 - hash: "bf47cc398a702dd17c8efebb3d2f8073" + hash: "b135c8c9975f4d45d2054cf31d0b1fe1" } Frame { msec: 6016 diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png index 78c1c27..c7fa695 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.1.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png index ecd1e01..b6c5e19 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 ba1733f..711c47a 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 7a393d1..e56fae0 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 cb73ca9..0030842 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 cbbe6d7..2ec8177 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.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml index 1db722f..45f96e1 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml @@ -6,107 +6,107 @@ VisualTest { } Frame { msec: 16 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 32 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 48 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 64 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 80 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 96 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 112 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 128 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 144 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 160 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 176 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 192 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 208 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 224 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 240 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 256 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 272 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 288 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 304 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 320 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 336 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 352 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 368 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 384 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 400 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Frame { msec: 416 - hash: "95c48087b681f0bcb09b2d7aad1a0299" + hash: "3b88645092be28037fca4a6034f5b2f7" } Key { type: 6 @@ -122,15 +122,15 @@ VisualTest { } Frame { msec: 448 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "435ac0668ad4d0e196eb040d385053cb" } Frame { msec: 464 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "e9532fe1acc1c27a2119e6dde3e01637" } Frame { msec: 480 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9c757feaf5a8d1e88c659fca97e3b7b2" } Key { type: 7 @@ -142,35 +142,35 @@ VisualTest { } Frame { msec: 496 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "ccc7785a45a41615db01580835a4638e" } Frame { msec: 512 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "11ad92022bcd5d3fbd28ffb9f51c69eb" } Frame { msec: 528 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "a8a94e1f95216864c368b8c3d0ae682b" } Frame { msec: 544 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "d83e213d35e7fcff2580b4e197547f24" } Frame { msec: 560 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9e5a57fabdc443e395cacbaf6e0c9bef" } Frame { msec: 576 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9e5a57fabdc443e395cacbaf6e0c9bef" } Frame { msec: 592 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9e5a57fabdc443e395cacbaf6e0c9bef" } Frame { msec: 608 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9e5a57fabdc443e395cacbaf6e0c9bef" } Key { type: 6 @@ -182,27 +182,27 @@ VisualTest { } Frame { msec: 624 - hash: "3b88645092be28037fca4a6034f5b2f7" + hash: "9e5a57fabdc443e395cacbaf6e0c9bef" } Frame { msec: 640 - hash: "435ac0668ad4d0e196eb040d385053cb" + hash: "0e9c577fa86d9b3734da0d50040624e0" } Frame { msec: 656 - hash: "e9532fe1acc1c27a2119e6dde3e01637" + hash: "834cf83f0f8d613191cac775b5737664" } Frame { msec: 672 - hash: "9c757feaf5a8d1e88c659fca97e3b7b2" + hash: "495ea7650b2ae45f9afd7f9f6ecdd793" } Frame { msec: 688 - hash: "ccc7785a45a41615db01580835a4638e" + hash: "55c761ccee6543bb3b9564bb813df58e" } Frame { msec: 704 - hash: "11ad92022bcd5d3fbd28ffb9f51c69eb" + hash: "e29e5f86cb3b1fb5ec77fde696024812" } Key { type: 7 @@ -214,19 +214,19 @@ VisualTest { } Frame { msec: 720 - hash: "a8a94e1f95216864c368b8c3d0ae682b" + hash: "f24b7d5a8f5ab03460505d6203269d1b" } Frame { msec: 736 - hash: "d83e213d35e7fcff2580b4e197547f24" + hash: "893473965efe9e0540b197cbaa3f765d" } Frame { msec: 752 - hash: "9e5a57fabdc443e395cacbaf6e0c9bef" + hash: "a541b7be2f370f948048b2101b037ab7" } Frame { msec: 768 - hash: "9e5a57fabdc443e395cacbaf6e0c9bef" + hash: "a541b7be2f370f948048b2101b037ab7" } Key { type: 6 @@ -238,19 +238,19 @@ VisualTest { } Frame { msec: 784 - hash: "0e9c577fa86d9b3734da0d50040624e0" + hash: "da065f1e72883a45241630b96ee5b1f8" } Frame { msec: 800 - hash: "834cf83f0f8d613191cac775b5737664" + hash: "e97f78604c0c6d468c8dd225642e2ebd" } Frame { msec: 816 - hash: "495ea7650b2ae45f9afd7f9f6ecdd793" + hash: "7b9d4b14eedfa4ff10dd7e3747c4a7f5" } Frame { msec: 832 - hash: "55c761ccee6543bb3b9564bb813df58e" + hash: "6d55ba6287c720614854d36bb681a9f3" } Key { type: 7 @@ -262,27 +262,27 @@ VisualTest { } Frame { msec: 848 - hash: "e29e5f86cb3b1fb5ec77fde696024812" + hash: "3e7a44811f59bfb81de2f4f884a7af17" } Frame { msec: 864 - hash: "f24b7d5a8f5ab03460505d6203269d1b" + hash: "101113a7723b9d09275f66152b82142f" } Frame { msec: 880 - hash: "893473965efe9e0540b197cbaa3f765d" + hash: "0044e068522f912630868476f8bf49f8" } Frame { msec: 896 - hash: "a541b7be2f370f948048b2101b037ab7" + hash: "92065f9f170ee09abf67f0d0c7a1b6ba" } Frame { msec: 912 - hash: "a541b7be2f370f948048b2101b037ab7" + hash: "92065f9f170ee09abf67f0d0c7a1b6ba" } Frame { msec: 928 - hash: "a541b7be2f370f948048b2101b037ab7" + hash: "92065f9f170ee09abf67f0d0c7a1b6ba" } Key { type: 6 @@ -294,7 +294,7 @@ VisualTest { } Frame { msec: 944 - hash: "a541b7be2f370f948048b2101b037ab7" + hash: "92065f9f170ee09abf67f0d0c7a1b6ba" } Frame { msec: 960 @@ -302,7 +302,7 @@ VisualTest { } Frame { msec: 976 - hash: "e97f78604c0c6d468c8dd225642e2ebd" + hash: "e15814643bad6a71cb8c318ee5fd684a" } Key { type: 7 @@ -314,23 +314,23 @@ VisualTest { } Frame { msec: 992 - hash: "7b9d4b14eedfa4ff10dd7e3747c4a7f5" + hash: "9b07b6861a97d0871ed89369ff7449da" } Frame { msec: 1008 - hash: "6d55ba6287c720614854d36bb681a9f3" + hash: "7d95daf35c1823ea7187162b62010c57" } Frame { msec: 1024 - hash: "3e7a44811f59bfb81de2f4f884a7af17" + hash: "cc1e70fd1235d50ca291580bef1d6fc4" } Frame { msec: 1040 - hash: "101113a7723b9d09275f66152b82142f" + hash: "c8250f4cf69642e78523412b7b75501c" } Frame { msec: 1056 - hash: "0044e068522f912630868476f8bf49f8" + hash: "c57e421c803e8bfa1a85409cbb858829" } Key { type: 6 @@ -342,19 +342,19 @@ VisualTest { } Frame { msec: 1072 - hash: "4a50079d15b51758bf39b6d3fc51f337" + hash: "19b429a90d9877e62a7dee53ebf01fb2" } Frame { msec: 1088 - hash: "df659ebf6a5926943de92d6838127b9c" + hash: "7c810f174bed3826016272515df2d525" } Frame { msec: 1104 - hash: "0aa422c4af139023817465090f42f264" + hash: "9034cf480bda0d8b55aa6c43fc96b23d" } Frame { msec: 1120 - hash: "fb598a01e5cd9e3655f86a47ff7bda0d" + hash: "f62697a1f4e4df2869c14462a0d514fd" } Key { type: 7 @@ -366,19 +366,19 @@ VisualTest { } Frame { msec: 1136 - hash: "83a63dfcdbb27035d3e5208b066a2e1e" + hash: "c878f53b338d1ce332973193b0fa4b86" } Frame { msec: 1152 - hash: "c8250f4cf69642e78523412b7b75501c" + hash: "5d26f27061b319c391961dc30d985593" } Frame { msec: 1168 - hash: "c57e421c803e8bfa1a85409cbb858829" + hash: "e038ae877e8dddd3d99bf97475f59b3d" } Frame { msec: 1184 - hash: "f7611692216c0519b9188924e8a6b92e" + hash: "f44adc5e46d320c62095e1285ca8848b" } Key { type: 6 @@ -390,15 +390,15 @@ VisualTest { } Frame { msec: 1200 - hash: "0f9495c9f9f91c409f868959854824ed" + hash: "17f6b13e0556ac07dc527a9013a307a1" } Frame { msec: 1216 - hash: "d4a752aa1c4112a3b60f40468932945d" + hash: "70a1cc3b6dd3be4e30bb6763344fb980" } Frame { msec: 1232 - hash: "fbe2d7c160132f312911aabe4cad8bf5" + hash: "097c37d2243a27b8e800b5d4ec94b2e3" } Key { type: 7 @@ -410,27 +410,27 @@ VisualTest { } Frame { msec: 1248 - hash: "2d3c7dc0d0efac613a32860968d166ac" + hash: "15839227c002b1c71eb516f6653a7531" } Frame { msec: 1264 - hash: "fa0891d8c22dd26c1cb27d86864a8225" + hash: "f4a8103ef9010c651368d325fe9eee98" } Frame { msec: 1280 - hash: "5d26f27061b319c391961dc30d985593" + hash: "d158ec1c83719c58c1d0a2e4cc90998f" } Frame { msec: 1296 - hash: "e038ae877e8dddd3d99bf97475f59b3d" + hash: "6f66a44f5dc3fe150db2291b8cbc7327" } Frame { msec: 1312 - hash: "f44adc5e46d320c62095e1285ca8848b" + hash: "8a016eac5befb215a157f7fe5bc743de" } Frame { msec: 1328 - hash: "f44adc5e46d320c62095e1285ca8848b" + hash: "8a016eac5befb215a157f7fe5bc743de" } Key { type: 6 @@ -442,15 +442,15 @@ VisualTest { } Frame { msec: 1344 - hash: "17f6b13e0556ac07dc527a9013a307a1" + hash: "807129a4c578b1a5f0d3d84686eb0553" } Frame { msec: 1360 - hash: "70a1cc3b6dd3be4e30bb6763344fb980" + hash: "f9f2da990518048f0b050cc193567a20" } Frame { msec: 1376 - hash: "097c37d2243a27b8e800b5d4ec94b2e3" + hash: "762de7b1f4e56df6d7a245a23446884b" } Key { type: 7 @@ -462,23 +462,23 @@ VisualTest { } Frame { msec: 1392 - hash: "15839227c002b1c71eb516f6653a7531" + hash: "84ba7354badc3dca92974933c3610010" } Frame { msec: 1408 - hash: "f4a8103ef9010c651368d325fe9eee98" + hash: "36c3018870d74cff638d00acd03a0cf0" } Frame { msec: 1424 - hash: "d158ec1c83719c58c1d0a2e4cc90998f" + hash: "82b756a14eb0e802cd3e2d2d2a07f28e" } Frame { msec: 1440 - hash: "6f66a44f5dc3fe150db2291b8cbc7327" + hash: "74af1c12613130dc53533fe1178d5534" } Frame { msec: 1456 - hash: "8a016eac5befb215a157f7fe5bc743de" + hash: "c32818b0ba24f11295580d1ccffffdc0" } Key { type: 6 @@ -490,19 +490,19 @@ VisualTest { } Frame { msec: 1472 - hash: "807129a4c578b1a5f0d3d84686eb0553" + hash: "b858be109fac6852234bf1db161e515b" } Frame { msec: 1488 - hash: "f9f2da990518048f0b050cc193567a20" + hash: "9b3f8cffd3e79241d8a3b1f7d80790db" } Frame { msec: 1504 - hash: "762de7b1f4e56df6d7a245a23446884b" + hash: "840dc72aabc4a9b28bae641354676324" } Frame { msec: 1520 - hash: "84ba7354badc3dca92974933c3610010" + hash: "c60bfd5cc8b26a841035db29baba5dab" } Key { type: 7 @@ -514,23 +514,23 @@ VisualTest { } Frame { msec: 1536 - hash: "36c3018870d74cff638d00acd03a0cf0" + hash: "88d80dc8b0d968aa718ff464e507f53b" } Frame { msec: 1552 - hash: "82b756a14eb0e802cd3e2d2d2a07f28e" + hash: "f7ffc82d3448c415b4997401fb61b96b" } Frame { msec: 1568 - hash: "74af1c12613130dc53533fe1178d5534" + hash: "df8e9a09752fe2b2eff9184ba8e88ef1" } Frame { msec: 1584 - hash: "c32818b0ba24f11295580d1ccffffdc0" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1600 - hash: "c32818b0ba24f11295580d1ccffffdc0" + hash: "97330e949a609f5f33832dd17e0c3716" } Key { type: 6 @@ -542,15 +542,15 @@ VisualTest { } Frame { msec: 1616 - hash: "b858be109fac6852234bf1db161e515b" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1632 - hash: "9b3f8cffd3e79241d8a3b1f7d80790db" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1648 - hash: "840dc72aabc4a9b28bae641354676324" + hash: "97330e949a609f5f33832dd17e0c3716" } Key { type: 7 @@ -562,19 +562,19 @@ VisualTest { } Frame { msec: 1664 - hash: "c60bfd5cc8b26a841035db29baba5dab" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1680 - hash: "88d80dc8b0d968aa718ff464e507f53b" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1696 - hash: "f7ffc82d3448c415b4997401fb61b96b" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1712 - hash: "df8e9a09752fe2b2eff9184ba8e88ef1" + hash: "97330e949a609f5f33832dd17e0c3716" } Frame { msec: 1728 @@ -966,71 +966,71 @@ VisualTest { } Frame { msec: 2608 - hash: "85c0127315a489cfcf14ec7e16e43f4c" + hash: "68f3366932fed9156bf68dce6660b2a8" } Frame { msec: 2624 - hash: "65f1be6c38fa9e024671bfe612c585b4" + hash: "9f4be0b58c46035a11c5b80ec60618d5" } Frame { msec: 2640 - hash: "74b7b60a048d37c38f179d071e9d9730" + hash: "6d38a4eaa2a41c57599cca381957ec4c" } Frame { msec: 2656 - hash: "13c96d066af31d75647b0be21f1ae68d" + hash: "1061db26c9080067bf121eb1d164a3f3" } Frame { msec: 2672 - hash: "a1f880a95596f6c82385e51a4853327e" + hash: "c78d271711dc8f13fb48b41871249141" } Frame { msec: 2688 - hash: "8596123a6b0f234d90869d823448ff8e" + hash: "c5825611f6c429fddd8c20495507ea5f" } Frame { msec: 2704 - hash: "1ca65b63eea4034e3889f53c86ac95b7" + hash: "9888b608bcf80496a3fe8848be4e3629" } Frame { msec: 2720 - hash: "b847b515d89ad0394ef0fd4954158940" + hash: "9995d6ba039045d94903d5095b018ca8" } Frame { msec: 2736 - hash: "f73f7747115fdda2f0a13734a0dc9446" + hash: "f8ea705b4710b3ffb11c2fe08ccccda2" } Frame { msec: 2752 - hash: "5b31a1aca62cf654428e4d7fc25208b6" + hash: "7354c2fcabdede9fb1ee823ce098da3b" } Frame { msec: 2768 - hash: "f797d3c0364515138059967e17e185ed" + hash: "0d6beff960fa26771f09748356accedb" } Frame { msec: 2784 - hash: "dff0266adf50e30bc2a7674b001d19dc" + hash: "0720a8a1ed85344a1de6682b3aefd502" } Frame { msec: 2800 - hash: "610c72005c1aa83306fecc9ca34bf5a4" + hash: "0245488740e13dbfc836b587b2bdf917" } Frame { msec: 2816 - hash: "542587ab3dff0cfb3f724096871e925a" + hash: "25c4fcdd85017d18df7e83c15f1accbc" } Frame { msec: 2832 - hash: "fd79c9159a77b1be25d9cfde2e6cecb6" + hash: "51192ae0eae814f3dead9d949e2e4676" } Frame { msec: 2848 - hash: "e3d4bb451d6210e6006c54178d406068" + hash: "ddbe6b273882c6018c01e0a4480b1adb" } Frame { msec: 2864 - hash: "3dd3c57049bddb206c0204d7fbf673b0" + hash: "bb840a0677114b67d9b08589e8a8192b" } Frame { msec: 2880 @@ -1038,15 +1038,15 @@ VisualTest { } Frame { msec: 2896 - hash: "44008e30de01ecb1893a0fe4b06ec63a" + hash: "6ceadf740293537c7b9f2e2cfe8e6f1e" } Frame { msec: 2912 - hash: "c593c7e7edab1a034b96f778259b5b91" + hash: "f5c99d06e0b3055374ee4c6bf3e634f4" } Frame { msec: 2928 - hash: "9ac483cb720fef5783abd4e0072cf71e" + hash: "18fe01fadf4c5acbd369f4450db1efa6" } Frame { msec: 2944 @@ -1186,63 +1186,63 @@ VisualTest { } Frame { msec: 3232 - hash: "45bacd56ecaeefd9c80c7bd77e79cff0" + hash: "0e1f352c163ad8fe852c2e4857881d2f" } Frame { msec: 3248 - hash: "ad5239583e3924c98358e0ec7d12fd39" + hash: "3c3b44481a6c2330a4a03076e35055f4" } Frame { msec: 3264 - hash: "8e0fbae41165c553af4a49ed5691dfbb" + hash: "6ea3210a929774aea84a7beb4a784842" } Frame { msec: 3280 - hash: "c697930f45e23628c83a248de44472fb" + hash: "74dd747f9a64b19e5c5230c90ad3b642" } Frame { msec: 3296 - hash: "840e1f8ba5fe6e42d6dc41c1e42dc3dc" + hash: "c02be4ebefd19f4c5e864e8bbab7c13e" } Frame { msec: 3312 - hash: "e071cd254b69da678997eeb7ac0a13f8" + hash: "ce661af9085c833ec7d1fd66ebe67649" } Frame { msec: 3328 - hash: "27954d55c9772aa0ba237e7bdff75517" + hash: "4bf921874cfdc1b7d14e3a110b9e70a1" } Frame { msec: 3344 - hash: "5879feff61f02a9322b8620c84be4462" + hash: "f3e9cf8ac9e109e88d8c426fdcee28a9" } Frame { msec: 3360 - hash: "feba016bdcdc3f59b70000375a5b4242" + hash: "aa718a37f7ccf655d176adb799b5ddfb" } Frame { msec: 3376 - hash: "e57ae7048209884fb024481318c88080" + hash: "aa114a9676af508b4a106b21f7a2ed10" } Frame { msec: 3392 - hash: "93707dc8ec5e02adb691d0c6f3ff7772" + hash: "a5bbbaebb61b83384f5be82a9c3181ba" } Frame { msec: 3408 - hash: "ab2d8b822a4e2cd7c6a9cfa2e81d2113" + hash: "83deebf650b192de7c8a764d5379eeb4" } Frame { msec: 3424 - hash: "a9d0e39b30b16eafec85e08a75e2b50f" + hash: "5b433e1f5b97b39b6e86c837f0b91f2b" } Frame { msec: 3440 - hash: "8c94d16c8cde9b3d0ac8ccfb1374387d" + hash: "b5236be4e416f89a91eda7afbd75fc63" } Frame { msec: 3456 - hash: "7f4873f6c773b3d2d814bb1ea5c5dec6" + hash: "1713477f5484a1b35686f2f4bff27612" } Frame { msec: 3472 @@ -1254,63 +1254,63 @@ VisualTest { } Frame { msec: 3504 - hash: "042adc29907ca50187d4aad772a7500d" + hash: "7f64804cd07a0ae63d0e3a1b9f8f8a84" } Frame { msec: 3520 - hash: "90accd1b4f5bbe5cc59f3a73d697ea18" + hash: "9ae6bc952da97239bfee88633637aeb7" } Frame { msec: 3536 - hash: "3ce26e9c0b2ee1b4cb3dc19bbac92736" + hash: "ba34cd0d57d5d027ad6c2de102676399" } Frame { msec: 3552 - hash: "ca976ad1590e156e155cdba452dbc0ce" + hash: "c49632f9369aa901fcb702e76295c1e8" } Frame { msec: 3568 - hash: "b342477cedfb2a3839aa145703f33cb4" + hash: "3adab59e06a635a033564dfc8edc4877" } Frame { msec: 3584 - hash: "8fccdb3fbf637426b8b3df088a5a24a5" + hash: "67643cbfb3c9864b7447a9a8e316b251" } Frame { msec: 3600 - hash: "973c8d2d2496c5cc871aecc0b6be0bbb" + hash: "d04d288cbf89e1ad3bbf25ffebd7a382" } Frame { msec: 3616 - hash: "6af9574467c7b565450dc6533dddb0f2" + hash: "e6c4d34b9b3de464ec0dcf8719b86313" } Frame { msec: 3632 - hash: "ced3d8a93bf564c0ebec837f1655c202" + hash: "f73462d0fe19cbbd771f9f78d7bc4384" } Frame { msec: 3648 - hash: "0a38fe8ac9024b4a30b8efbcf155bbd8" + hash: "6369f075a492240aee36eae8dcb2ace5" } Frame { msec: 3664 - hash: "2421dc73fe95e8abb246ae894ac255b2" + hash: "1e9424a3b93833f8ae855c5f7877679a" } Frame { msec: 3680 - hash: "98789298fcc85a0b3307036c800d80af" + hash: "da274c1ae57d217ef4515326d32646b4" } Frame { msec: 3696 - hash: "6361b512cfd9aa5f97529089ad7d902c" + hash: "1cbe684ba95e6ef635873f746e942f3d" } Frame { msec: 3712 - hash: "5f26400f45140d634ac49ae5ce6bc2cf" + hash: "228e13c1d3dea6e666637de7cedd6dd4" } Frame { msec: 3728 - hash: "49586dcf6a4c7a80563e9cc67b16a520" + hash: "a3f8fec49fb88652e9339b621ea8b972" } Mouse { type: 2 @@ -1322,7 +1322,7 @@ VisualTest { } Frame { msec: 3744 - hash: "fa8827f2a5eefaa9f740e36e4eb05083" + hash: "7c3eb16bf4f66d2b9889c9d80aaae8b2" } Mouse { type: 5 @@ -1334,7 +1334,7 @@ VisualTest { } Frame { msec: 3760 - hash: "5f2e33f8b436686840a124ba71f7d203" + hash: "1825d33eb9ae94a63d334d93e07ce9af" } Mouse { type: 5 @@ -1346,7 +1346,7 @@ VisualTest { } Frame { msec: 3776 - hash: "b0093a1f538381e79f43c91192437be5" + hash: "306652a5a179cf23ee87c10571814f53" } Mouse { type: 5 @@ -1358,7 +1358,7 @@ VisualTest { } Frame { msec: 3792 - hash: "9a8e645817c214a0353beadc0bc2e3f8" + hash: "3d3ba7cd968a1f91f7534cabd7cc034b" } Mouse { type: 5 @@ -1370,7 +1370,7 @@ VisualTest { } Frame { msec: 3808 - hash: "3f059fefcb7908e6f89a4b245bd0c948" + hash: "862f70151938a5d27db37a9f5dd53faa" } Mouse { type: 5 @@ -1382,7 +1382,7 @@ VisualTest { } Frame { msec: 3824 - hash: "48ccbb037ebe01dc9c73fafa54aa6175" + hash: "92b9283fa8b5642ce9bd14d875a12b75" } Mouse { type: 5 @@ -1406,7 +1406,7 @@ VisualTest { } Frame { msec: 3856 - hash: "3398c59636fc02358fc0b22d7bc2afd3" + hash: "58e61d0a4f397c5a2b137d6a6e85d99b" } Mouse { type: 5 @@ -1418,7 +1418,7 @@ VisualTest { } Frame { msec: 3872 - hash: "86ebc9911fc2da29a1960ae3999e4329" + hash: "6cdd764ee39789307e5e313bfbbb7765" } Mouse { type: 5 @@ -1438,83 +1438,83 @@ VisualTest { } Frame { msec: 3888 - hash: "7e910c843f531af6d08a0c7ea890c823" + hash: "a88656d49e4636b18c4f6f4a0ab943d6" } Frame { msec: 3904 - hash: "7e92be7beeba33541e16305d5cb7b3b6" + hash: "f1ec9a65d5f8d2020db1b70bcd419417" } Frame { msec: 3920 - hash: "1e7caa1bb4627bea028cdd2ef2260d9f" + hash: "ca7d3d7d26445d13acd7fe4a2c5d1d4d" } Frame { msec: 3936 - hash: "a7d77ec36935d8d8c8a6120d373d714c" + hash: "90016f51541a15ba4b6265f6843a2998" } Frame { msec: 3952 - hash: "770e16a5c7bf17522445bdae41d170df" + hash: "bdb992552a5c5707ddb372631f72e6a3" } Frame { msec: 3968 - hash: "d5c93bb61aeef777bb91dd504e91ecf6" + hash: "af69ed47f0f40648d55af10c87866805" } Frame { msec: 3984 - hash: "2247494cb67e7f0cade508b6ef46cb3e" + hash: "33e77562bdf839ca1e969b918d90a07b" } Frame { msec: 4000 - hash: "61a480c3a29f37b4383b430b02eb5dc1" + hash: "2001b5ca444808a79c49adc9d03c960e" } Frame { msec: 4016 - hash: "f741ede20b0ad51f81c7aba44705a08e" + hash: "e4186283e5fe0c1efb29eca6f59e9079" } Frame { msec: 4032 - hash: "73bb52725e3906ac3074371936e9f3f3" + hash: "dab82d0bbba66df3297712b42f74f25a" } Frame { msec: 4048 - hash: "a915081e3c6ca9397567cb3df2aed517" + hash: "b180ad3acdfd736276ef4d1de040bb55" } Frame { msec: 4064 - hash: "79b514577bcc36db6de4db2e8b284a4c" + hash: "577445b0e4d6f8079830c2b87ce5829d" } Frame { msec: 4080 - hash: "5412571baa69b8e0c3b4daf52796482a" + hash: "45fffe51376abef4cb28842b392ab0b7" } Frame { msec: 4096 - hash: "7f739333fdc9c3457461e7fcf49bf650" + hash: "fc14e3b2d16e1f078d223876ef71c81e" } Frame { msec: 4112 - hash: "ed9a9fdd4bea6e9f7f7078934337b4a6" + hash: "4ef2b65280a00a6a4e66185f41479aef" } Frame { msec: 4128 - hash: "4fbc687f1a5b4364a90441134162c817" + hash: "131181ce7ff2f4d4e69823fcb7a20755" } Frame { msec: 4144 - hash: "7c91ad050f31e30b7f16b99dd1ed19df" + hash: "8e6db058e96dad9c4963b881083ab9bf" } Frame { msec: 4160 - hash: "44777e9a08d5f112b922272227b22558" + hash: "e2d407b6dff40625790d4fd9e599b374" } Frame { msec: 4176 - hash: "c4f7523d0a214e188c95d7cbd4455a9d" + hash: "631fe708fdcb1e4f4ea89b10da5db623" } Frame { msec: 4192 - hash: "7703b85f0bda71fa8ff84a557b015458" + hash: "e11831f37a3a1da78cbdc7604ddccd68" } Mouse { type: 2 @@ -1526,7 +1526,7 @@ VisualTest { } Frame { msec: 4208 - hash: "0bd445389e69d1d758a9b17eee69d584" + hash: "c2dccc4e890b2302edd413dcdb87b50b" } Mouse { type: 5 @@ -1538,7 +1538,7 @@ VisualTest { } Frame { msec: 4224 - hash: "13bfb19a05b5aef65f7f70b2c0b01424" + hash: "b4f6a6650dd779c8ad8696c23f44411a" } Mouse { type: 5 @@ -1550,7 +1550,7 @@ VisualTest { } Frame { msec: 4240 - hash: "9d6a81d6f7df8aa93c9421fa3cdc3a7d" + hash: "ad913e53e63c030ffdf4560766722760" } Mouse { type: 5 @@ -1570,7 +1570,7 @@ VisualTest { } Frame { msec: 4256 - hash: "4d88acb157fdeb0c608b6c9d75e999e8" + hash: "ef31f8a4d5bde5a2e308d19ee6d5e759" } Mouse { type: 5 @@ -1582,7 +1582,7 @@ VisualTest { } Frame { msec: 4272 - hash: "fe506e31923e1feb2d2b3c105444f61f" + hash: "3ba07527f66e8bea5a8fb7647b0b4f3f" } Mouse { type: 5 @@ -1594,7 +1594,7 @@ VisualTest { } Frame { msec: 4288 - hash: "72c0ccbbf296742f67139bd9a4abcf6b" + hash: "70e5fe656f5fd843383964825690b678" } Mouse { type: 5 @@ -1614,7 +1614,7 @@ VisualTest { } Frame { msec: 4304 - hash: "75b083e391afb3cdb8e4bcd885f17966" + hash: "b7d8738be4cd6caa63dbecdb0f810a2f" } Mouse { type: 5 @@ -1626,7 +1626,7 @@ VisualTest { } Frame { msec: 4320 - hash: "2babcf0e4d434120e0a7eb7d8716baa7" + hash: "d6312191f9d7bbddc07f9253d8a93469" } Mouse { type: 5 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4336 - hash: "676e6a7587781146f58f82ca1ceac2b3" + hash: "b182da64886cf4f444296e5fde26701e" } Mouse { type: 5 @@ -1650,7 +1650,7 @@ VisualTest { } Frame { msec: 4352 - hash: "58ecd6234c3c0f7ceec942098e3ae0fc" + hash: "ebefef14b6fb990e0c6900884528bbd3" } Mouse { type: 5 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4368 - hash: "25a8af71ba1cf4581682cbec3b9baf8a" + hash: "9a3451ed091b1bb6b975a9c5506b1ea4" } Mouse { type: 5 @@ -1674,7 +1674,7 @@ VisualTest { } Frame { msec: 4384 - hash: "11c305643f2ed535a6dc0a7a54caf17c" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Mouse { type: 5 @@ -1686,7 +1686,7 @@ VisualTest { } Frame { msec: 4400 - hash: "29b33349f90286b2c078ae8d5896a338" + hash: "eaaf9ea1d7fcf4a2a9dd58b1b5bb3cae" } Mouse { type: 5 @@ -1698,7 +1698,7 @@ VisualTest { } Frame { msec: 4416 - hash: "af917864d02b49bef4190ee1fca607dc" + hash: "7ca8e3d76cf913d85f84f0b96acde829" } Mouse { type: 5 @@ -1710,7 +1710,7 @@ VisualTest { } Frame { msec: 4432 - hash: "7b1af6cddd2f78615354f747dfd016b9" + hash: "7cfef56b24a552c6d4ecb3d0b88a1d08" } Mouse { type: 5 @@ -1730,7 +1730,7 @@ VisualTest { } Frame { msec: 4448 - hash: "84f1757af8c26b4f00298090e09f7f68" + hash: "d032b257259810b4fe514c63ca5c9e4b" } Mouse { type: 5 @@ -1742,7 +1742,7 @@ VisualTest { } Frame { msec: 4464 - hash: "fd214ddbd1f60dc733994ba7a2048951" + hash: "568f6a57e6f1644b0dc245d03a1d7b85" } Mouse { type: 5 @@ -1754,83 +1754,83 @@ VisualTest { } Frame { msec: 4480 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4496 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4512 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4528 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4544 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4560 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4576 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4592 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4608 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4624 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4640 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4656 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4672 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4688 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4704 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4720 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4736 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4752 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4768 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4784 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4800 @@ -1838,15 +1838,15 @@ VisualTest { } Frame { msec: 4816 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4832 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4848 - hash: "01f209a3b5e9adaa32ad55c7d1f1d4c7" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Mouse { type: 5 @@ -1866,7 +1866,7 @@ VisualTest { } Frame { msec: 4864 - hash: "1dc57bc129f3a6d5287ec0fa2a99d62e" + hash: "d48ecbd0661e08b2117fe2fd96ffeb2c" } Mouse { type: 5 @@ -1878,7 +1878,7 @@ VisualTest { } Frame { msec: 4880 - hash: "7b1af6cddd2f78615354f747dfd016b9" + hash: "7cfef56b24a552c6d4ecb3d0b88a1d08" } Mouse { type: 5 @@ -1890,7 +1890,7 @@ VisualTest { } Frame { msec: 4896 - hash: "a890208c702b9fde41584a33b3038940" + hash: "5b12e9d17d9d464b055601db9cf0da44" } Mouse { type: 5 @@ -1902,7 +1902,7 @@ VisualTest { } Frame { msec: 4912 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "25333e1f0cc9cfc664fd7369af544c06" } Mouse { type: 5 @@ -1914,39 +1914,39 @@ VisualTest { } Frame { msec: 4928 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4944 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4960 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4976 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4992 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5008 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5024 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5040 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5056 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Mouse { type: 3 @@ -1958,175 +1958,175 @@ VisualTest { } Frame { msec: 5072 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5088 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5104 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5120 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5136 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5152 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5168 - hash: "cdc2d0868771429226c74e77676f55f1" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5184 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5200 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5216 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5232 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5248 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5264 - hash: "768d6d504470ce841e51022dd514edc5" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5280 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5296 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5312 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5328 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5344 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5360 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5376 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5392 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5408 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5424 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5440 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5456 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5472 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5488 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5504 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5520 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5536 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5552 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5568 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5584 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5600 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5616 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5632 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5648 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5664 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5680 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5696 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5712 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5728 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5744 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5760 @@ -2134,94 +2134,94 @@ VisualTest { } Frame { msec: 5776 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5792 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5808 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5824 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5840 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5856 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5872 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5888 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5904 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5920 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5936 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5952 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5968 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5984 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6000 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6016 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6032 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6048 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6064 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6080 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6096 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6112 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6128 - hash: "6df3f8000a0d390b89d41c6ece6ea221" + hash: "dbd87bf02d698b7f053d307ef0c98452" } } -- cgit v0.12 From b628a6dc1373fcfbc71a7668d39111c699396674 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 4 Nov 2010 15:18:08 +1000 Subject: Document list type operations Task-number: QTBUG-14645 --- doc/src/declarative/basictypes.qdoc | 85 ++++++++++++++++++++++++++++++++++--- doc/src/declarative/extending.qdoc | 9 +++- 2 files changed, 87 insertions(+), 7 deletions(-) diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 6abe96f..8ab06ab 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -355,9 +355,11 @@ \brief A list of objects. - A list of objects. While not technically a basic type, QML also - supports lists of object types. When used from QML, the engine - automatically appends each value to the list. + A list type contains a list of objects. While not technically + a basic type, QML supports lists of object types. When used + from QML, the engine automatically appends each value to the list. + Items in the list can be accessed by index using the usual + \c listName[index] syntax. For example, the \l Item class contains a list property named children that can be used like this: @@ -366,14 +368,87 @@ Item { children: [ Item { id: child1 }, - Rectangle { id: child2 }, + Rectangle { id: child2; width: 200 }, Text { id: child3 } ] + + Component.onCompleted: { + console.log("Width of child rectangle:", children[1].width) + } } \endqml - \c child1, \c child2 and \c child3 will all be added to the children list + \c child1, \c child2 and \c child3 will be added to the children list in the order in which they appear. + List \l {Adding new properties}{properties} can be created as a + \c variant type, or as a \c list type, where \c Type is the + type of the object in the list: + + \qml + Item { + property variant values: [ 10, 20, 'abc', 'xyz' ] + + property list rects: [ + Rectangle { width: 100; height: 100}, + Rectangle { width: 200; height: 200} + ] + } + \endqml + + A \c variant list can contain values of any of the \l {QML Basic Types}{basic QML types} + such as numbers, strings, etc. while a \c list list can only contain values + that match (or are derived from) the specified \c Type. + + A list property can be cleared by setting it to an empty list: + + \qml + Item { + children: [] + } + \endqml + + A list property cannot be modified in any other way. Items cannot be dynamically added to + or removed from the list through JavaScript operations; any \c push() operations on the + list only modify a \e copy of the list and not the actual list. (These current limitations + are due to restrictions on \l {Property Binding} where lists are involved.) + + To create a modifiable list, create an array object from within a \c .js JavaScript file, + or implement a custom list element in C++. Here is a QML element that modifies the list in a + JavaScript file: + + \table + \row + \o + \qml + // QML + import "script.js" as Script + + Item { + Component.onCompleted: { + Script.addItem('abc') + console.log("Added:", Script.getList()[0]) + } + } + \endqml + + \o + \code + // script.js + var myArray = new Array() + + function getList() { + return myArray + } + + function addItem(item) { + myArray.push(item) + } + \endcode + \endtable + + However, note that a JavaScript list should not be used as a QML \c property value, + as the property is not updated when the list changes. + \sa {QML Basic Types} */ diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index 18887c7..5c1b977 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -647,7 +647,8 @@ language. \section1 Adding new properties -New properties can be added to an existing type. These new properties are +New properties can be added to an existing type using the \c property keyword. +These new properties are available for use within QML, and also appear as regular Qt properties on the C++ object, accessible through the regular property access mechanisms. @@ -679,8 +680,12 @@ like this: property list listOfItemsProperty \endcode +Custom types must be registered with qmlRegisterType() to be usable as a property +type. Also note that list properties cannot be modified like ordinary JavaScript +arrays; see the \l {list}{list type documentation} for details. + QML supports two methods for adding a new property to a type: a new property -definition, and a property alias. +definition, and a property alias. These are shown below. \section2 Property definitions -- cgit v0.12 From b5588ded342ed9dbc9f00fc8a4091e447880eccc Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 4 Nov 2010 15:18:52 +1000 Subject: Largely rewrite the Using QML in C++ Applications documentation. It now has an overview of different approaches to QML/C++ integration and demonstrates how to pass data between QML and C++ through properties/functions/signals. The part in the old docs that focused on QDeclarativeContext has been merged into the QDeclarativeContext class docs (although most of the info was largely covered in there already) and the part that covered Network Components has been moved to the QDeclarativeComponent class docs. The custom enum types example previously in extending-tutorial.qdoc has been moved to these new docs. Task-number: QTBUG-14923 --- doc/src/declarative/extending-tutorial.qdoc | 20 +- doc/src/declarative/qtbinding.qdoc | 631 ++++++++++++++++----- .../qtbinding/context-advanced/MyItem.qml | 46 ++ .../qtbinding/context-advanced/applicationdata.h | 52 ++ .../qtbinding/context-advanced/connections.qml | 52 ++ .../context-advanced/context-advanced.pro | 3 + .../qtbinding/context-advanced/main.cpp | 60 ++ .../declarative/qtbinding/context/MyItem.qml | 45 ++ .../declarative/qtbinding/context/context.pro | 2 + .../declarative/qtbinding/context/main.cpp | 56 ++ .../contextproperties/contextproperties.pro | 2 - .../qtbinding/contextproperties/main.cpp | 78 --- .../qtbinding/contextproperties/main.qml | 55 -- .../qtbinding/custompalette/custompalette.h | 79 --- .../qtbinding/custompalette/custompalette.pro | 3 - .../declarative/qtbinding/custompalette/main.cpp | 61 -- .../declarative/qtbinding/custompalette/main.qml | 62 -- .../snippets/declarative/qtbinding/enums/enums.pro | 3 + .../declarative/qtbinding/enums/imageviewer.h | 68 +++ .../snippets/declarative/qtbinding/enums/main.cpp | 73 +++ .../declarative/qtbinding/enums/standalone.qml | 49 ++ .../declarative/qtbinding/functions-cpp/MyItem.qml | 55 ++ .../qtbinding/functions-cpp/functions-qml.pro | 3 + .../declarative/qtbinding/functions-cpp/main.cpp | 59 ++ .../declarative/qtbinding/functions-cpp/myclass.h | 57 ++ .../declarative/qtbinding/functions-qml/MyItem.qml | 50 ++ .../qtbinding/functions-qml/functions-qml.pro | 2 + .../declarative/qtbinding/functions-qml/main.cpp | 63 ++ .../declarative/qtbinding/loading/MyItem.qml | 56 ++ .../declarative/qtbinding/loading/loading.pro | 2 + .../declarative/qtbinding/loading/main.cpp | 90 +++ .../qtbinding/newelements/imageviewer.h | 56 ++ .../declarative/qtbinding/newelements/main.cpp | 62 ++ .../qtbinding/newelements/newelements.pro | 3 + .../qtbinding/newelements/standalone.qml | 44 ++ .../qtbinding/properties-cpp/MyItem.qml | 54 ++ .../qtbinding/properties-cpp/applicationdata.h | 71 +++ .../declarative/qtbinding/properties-cpp/main.cpp | 58 ++ .../qtbinding/properties-cpp/properties-cpp.pro | 3 + .../qtbinding/properties-qml/MyItem.qml | 47 ++ .../declarative/qtbinding/properties-qml/main.cpp | 61 ++ .../qtbinding/properties-qml/properties-qml.pro | 2 + .../declarative/qtbinding/resources/main.qml | 5 +- .../declarative/qtbinding/signals-cpp/MyItem.qml | 50 ++ .../qtbinding/signals-cpp/imageviewer.h | 64 +++ .../declarative/qtbinding/signals-cpp/main.cpp | 81 +++ .../qtbinding/signals-cpp/signals-cpp.pro | 3 + .../qtbinding/signals-cpp/standalone.qml | 48 ++ .../declarative/qtbinding/signals-qml/MyItem.qml | 55 ++ .../declarative/qtbinding/signals-qml/main.cpp | 59 ++ .../declarative/qtbinding/signals-qml/myclass.h | 51 ++ .../qtbinding/signals-qml/signals-qml.pro | 3 + .../declarative/qtbinding/stopwatch/main.cpp | 62 -- .../declarative/qtbinding/stopwatch/main.qml | 58 -- .../declarative/qtbinding/stopwatch/stopwatch.cpp | 62 -- .../declarative/qtbinding/stopwatch/stopwatch.h | 61 -- .../declarative/qtbinding/stopwatch/stopwatch.pro | 3 - src/declarative/qml/qdeclarativecomponent.cpp | 37 ++ src/declarative/qml/qdeclarativecontext.cpp | 21 +- tests/auto/declarative/examples/tst_examples.cpp | 1 + 60 files changed, 2363 insertions(+), 759 deletions(-) create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/context-advanced.pro create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/context/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context/context.pro create mode 100644 doc/src/snippets/declarative/qtbinding/context/main.cpp delete mode 100644 doc/src/snippets/declarative/qtbinding/contextproperties/contextproperties.pro delete mode 100644 doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp delete mode 100644 doc/src/snippets/declarative/qtbinding/contextproperties/main.qml delete mode 100644 doc/src/snippets/declarative/qtbinding/custompalette/custompalette.h delete mode 100644 doc/src/snippets/declarative/qtbinding/custompalette/custompalette.pro delete mode 100644 doc/src/snippets/declarative/qtbinding/custompalette/main.cpp delete mode 100644 doc/src/snippets/declarative/qtbinding/custompalette/main.qml create mode 100644 doc/src/snippets/declarative/qtbinding/enums/enums.pro create mode 100644 doc/src/snippets/declarative/qtbinding/enums/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/enums/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/enums/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/functions-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/functions-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/loading/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/loading/loading.pro create mode 100644 doc/src/snippets/declarative/qtbinding/loading/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/newelements.pro create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/properties-cpp.pro create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/properties-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/signals-cpp.pro create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/signals-qml.pro delete mode 100644 doc/src/snippets/declarative/qtbinding/stopwatch/main.cpp delete mode 100644 doc/src/snippets/declarative/qtbinding/stopwatch/main.qml delete mode 100644 doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.cpp delete mode 100644 doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.h delete mode 100644 doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.pro diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc index 3b2fe3b..2bfe62e 100644 --- a/doc/src/declarative/extending-tutorial.qdoc +++ b/doc/src/declarative/extending-tutorial.qdoc @@ -260,32 +260,28 @@ custom QML types may see unexpected behavior if bindings are not implemented. The \c PieChart type currently has a string-type property and a color-type property. It could have many other types of properties. For example, it could have an -enum-type property to store a display mode for each chart: +int-type property to store an identifier for each chart: \code // C++ class PieChart : public QDeclarativeItem { - Q_ENUMS(DisplayMode) - Q_PROPERTY(DisplayMode displayMode READ displayMode WRITE setDisplayMode) + Q_PROPERTY(int chartId READ chartId WRITE setChartId NOTIFY chartIdChanged) ... public: - enum DisplayMode { - MultiLevel, - Exploded, - ThreeDimensional - }; - - void setDisplayMode(DisplayMode mode); - DisplayMode displayMode() const; + void setChartId(int chartId); + int chartId() const; ... + + signals: + void chartIdChanged(); }; // QML PieChart { ... - displayMode: PieChart.Exploded + chartId: 100 } \endcode diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 58d53de..8a969eb 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -30,126 +30,389 @@ \target qtbinding \title Using QML in C++ Applications -\tableofcontents +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'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. -The QML API is split into three main classes - QDeclarativeEngine, QDeclarativeComponent and QDeclarativeContext. -QDeclarativeEngine provides the environment in which QML is run, QDeclarativeComponent encapsulates -\l {QML Documents}, and QDeclarativeContext allows applications to expose data to QML component instances. +You may want to mix QML and C++ for a number of reasons. For example: -QML also includes a convenience API, QDeclarativeView, for applications that simply want to embed QML -components into a new QGraphicsView. QDeclarativeView covers up many of the details discussed below. -While QDeclarativeView is mainly intended for rapid prototyping it can have uses in production applications. +\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 +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 +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 -If you are looking at retrofitting an existing Qt application with QML, -read \l{Integrating QML with existing Qt UI code}. -\section1 Basic Usage +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 +that provide the essential capabilities for doing this. These are: -Every application requires at least one QDeclarativeEngine. A QDeclarativeEngine allows the configuration of -global settings that apply to all the QML component instances - such as the QNetworkAccessManager -that is used for network communications, and the path used for persistent storage. -Multiple QDeclarativeEngine's are only needed if the application requires these settings to differ -between QML component instances. +\list +\o QDeclarativeEngine: A QML engine provides the environment for executing QML code. Every +application requires at least one engine instance. +\o QDeclarativeComponent: A component encapsulates a \l{QML Documents}{QML document}. +\o QDeclarativeContext: A context allows an application to expose data to the QML components +created by an engine. +\endlist -\l {QML Documents} are loaded using the QDeclarativeComponent class. Each QDeclarativeComponent instance -represents a single QML document. A QDeclarativeComponent can be passed a document URL, or raw text -representing the content of the document. The document URL can be a local filesystem URL, or -any network URL supported by QNetworkAccessManager. +A QDeclarativeEngine allows the configuration of global settings that apply to all of its QML +component instances: for example, the QNetworkAccessManager to be used for network communications, +and the file path to be used for persistent storage. -QML component instances can then be created by calling the QDeclarativeComponent::create() method. Here's -an example of loading a QML document, and creating an object from it. +QDeclarativeComponent is used to load QML documents. Each QDeclarativeComponent instance represents +a single document. A component can be created from the URL or file path of a QML document, or the raw +QML code of the document. Component instances are instatiated through the +QDeclarativeComponent::create() method, like this: \code - QDeclarativeEngine *engine = new QDeclarativeEngine(parent); - QDeclarativeComponent component(engine, QUrl::fromLocalFile("main.qml")); - QObject *myObject = component.create(); +QDeclarativeEngine engine; +QDeclarativeComponent component(&engine, QUrl::fromLocalFile("MyRectangle.qml")); +QObject *rectangleInstance = component.create(); + +// ... +delete rectangleInstance; \endcode -\section1 Exposing Data +QML documents can also be loaded using QDeclarativeView. This class provides a convenient +QWidget-based view for embedding QML components into QGraphicsView-based applications. (For other +methods of integrating QML into QWidget-based applications, see \l {Integrating QML with existing Qt +UI code}.) + + +\section1 Approaches to using QML with C++ + +There are a number of ways to extend your QML application through C++. For example, you could: + +\list +\o Load a QML component and manipulate it (or its children) from C++ +\o Embed a C++ object and its properties directly into a QML component (for example, to make a +particular C++ object callable from QML, or to replace a dummy list model data with a real data set) +\o Define new QML elements (through QObject-based C++ classes) and create them directly from your +QML code +\endlist + +These methods are shown below. Naturally these approaches are not exclusive; you can mix any of +these methods throughout your application as appropriate. + + +\section2 Loading QML components from C++ + +A QML document can be loaded with QDeclarativeComponent or QDeclarativeView. QDeclarativeComponent +loads a QML component as a C++ object; QDeclarativeView also does this, +but additionally loads the QML component directly into a QGraphicsView. It is convenient for loading +a displayable QML component into a QWidget-based application. + +For example, suppose there is a \c MyItem.qml file that looks like this: + +\snippet doc/src/snippets/declarative/qtbinding/loading/MyItem.qml start +\snippet doc/src/snippets/declarative/qtbinding/loading/MyItem.qml end + +This QML document can be loaded with QDeclarativeComponent or QDeclarativeView with the following +C++ code. Using a QDeclarativeComponent requires calling QDeclarativeComponent::create() to create +a new instance of the component, while a QDeclarativeView automatically creates an instance of the +component, which is accessible via QDeclarativeView::rootObject(): + +\table +\row +\o +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp QDeclarativeComponent-a +\dots 0 +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp QDeclarativeComponent-b +\o +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp QDeclarativeView +\endtable + +This \c object is the instance of the \c MyItem.qml component that has been created. You can now +modify the item's properties using QObject::setProperty() or QDeclarativeProperty: + +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp properties + +Alternatively, you can cast the object to its actual type and call functions with compile-time +safety. In this case the base object of \c MyItem.qml is an \l Item, which is defined by the +QDeclarativeItem class: + +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp cast + +You can also connect to any signals or call functions defined in the component using +QMetaObject::invokeMethod() and QObject::connect(). See \l {Exchanging data between QML and C++} +below for further details. + +\section3 Locating child objects + +QML components are essentially object trees with children that have siblings and their own children. +Child objects of QML components can be located using the QObject::objectName property with +QObject::findChild(). For example, if the root item in \c MyItem.qml had a child \l Rectangle item: + +\snippet doc/src/snippets/declarative/qtbinding/loading/MyItem.qml start +\codeline +\snippet doc/src/snippets/declarative/qtbinding/loading/MyItem.qml child +\snippet doc/src/snippets/declarative/qtbinding/loading/MyItem.qml end + +The child could be located like this: + +\snippet doc/src/snippets/declarative/qtbinding/loading/main.cpp findChild + +If \c objectName is used inside a delegate of a ListView, \l Repeater or some other +element that creates multiple instances of its delegates, there will be multiple children with +the same \c objectName. In this case, QObject::findChildren() can be used to find all children +with a matching \c objectName. + +\warning While it is possible to use C++ to access and manipulate QML objects deep into the +object tree, we recommend that you do not take this approach outside of application +testing and prototyping. One strength of QML and C++ integration is the ability to implement the +QML user interface separately from the C++ logic and dataset backend, and this strategy breaks if the +C++ side reaches deep into the QML components to manipulate them directly. This would make it difficult +to, for example, swap a QML view component for another view, if the new component was missing a +required \c objectName. It is better for the C++ implementation to know as little as possible about +the QML user interface implementation and the composition of the QML object tree. + + +\section2 Embedding C++ objects into QML components + +When loading a QML scene into a C++ application, it can be useful to directly embed C++ data into +the QML object. QDeclarativeContext enables this by exposing data to the context of a QML +component, allowing data to be injected from C++ into QML. + +For example, here is a QML item that refers to a \c currentDateTime value that does not exist in +the current scope: + +\snippet doc/src/snippets/declarative/qtbinding/context/MyItem.qml 0 + +This \c currentDateTime value can be set directly by the C++ application that loads the QML +component, using QDeclarativeContext::setContextProperty(): + +\snippet doc/src/snippets/declarative/qtbinding/context/main.cpp 0 + +Context properties can hold either QVariant or QObject* values. This means custom C++ objects can +also be injected using this approach, and these objects can be modified and read directly in QML. +Here, we modify the above example to embed a QObject instance instead of a QDateTime value, and the QML code +invokes a method on the object instance: + +\table +\row +\o +\snippet doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h 0 +\codeline +\snippet doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp 0 +\o +\snippet doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml 0 +\endtable + +(Note that date/time values returned from C++ to QML can be formatted through +\l{QML:Qt::formatDateTime}{Qt.formatDateTime()} and associated functions.) + +If the QML item needs to receive signals from the context property, it can connect to them using the +\l Connections element. For example, if \c ApplicationData has a signal named \c +dataChanged(), this signal can be connected to using an \c onDataChanged handler within +a \l Connections object: + +\snippet doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml 0 + +Context properties can be useful for using C++ based data models in a QML view. See the +\l {declarative/modelviews/stringlistmodel}{String ListModel}, +\l {declarative/modelviews/objectlistmodel}{Object ListModel} and +\l {declarative/modelviews/abstractitemmodel}{AbstractItemModel} models for +respective examples on using QStringListModel, QObjectList-based models and QAbstractItemModel +in QML views. + +Also see the QDeclarativeContext documentation for more information. + + +\section2 Defining new QML elements + +While new QML elements can be \l {Defining new Components}{defined in QML}, they can also be +defined by C++ classes; in fact, many of the core \l {QML Elements} are implemented through +C++ classes. When you create a QML object using one of these elements, you are simply creating an +instance of a QObject-based C++ class and setting its properties. + +For example, here is an \c ImageViewer class with an \c image URL property: + +\snippet doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h 0 + +Aside from the fact that it inherits QDeclarativeItem, this is an ordinary class that could +exist outside of QML. However, once it is registered with the QML engine using qmlRegisterType(): + +\snippet doc/src/snippets/declarative/qtbinding/newelements/main.cpp register + +Then, any QML code loaded by your C++ application or \l{QDeclarativeExtensionPlugin}{plugin} can create and manipulate +\c ImageViewer objects: + +\snippet doc/src/snippets/declarative/qtbinding/newelements/standalone.qml 0 + +Note that custom C++ types do not have to inherit from QDeclarativeItem; this is only necessary if it is +a displayable item. If the item is not displayable, it can simply inherit from QObject. + +For more information on defining new QML elements, see the \l {Tutorial: Writing QML extensions with C++} +{Writing QML extensions with C++} tutorial and the \l {Extending QML in C++} reference +documentation. + + + +\section1 Exchanging data between QML and C++ + +QML and C++ objects can communicate with one another through signals, slots and property +modifications. For a C++ object, any data that is exposed to Qt's \l{The Meta-Object System}{Meta-Object System} +- that is, properties, signals, slots and Q_INVOKABLE methods - become available to QML. On +the QML side, all QML object data is automatically made available to the meta-object system and can +be accessed from C++. + + +\section2 Calling functions -QML components are instantiated in a QDeclarativeContext. A context allows the application to expose data -to the QML component instance. A single QDeclarativeContext can be used to instantiate all the objects -used by an application, or several QDeclarativeContext can be created for more fine grained control over -the data exposed to each instance. If a context is not passed to the QDeclarativeComponent::create() -method, the QDeclarativeEngine's \l {QDeclarativeEngine::rootContext()}{root context} is used. Data exposed through -the root context is available to all object instances. +QML functions can be called from C++ and vice-versa. -\section1 Simple Data +All QML functions are exposed to the meta-object system and can be called using +QMetaObject::invokeMethod(). Here is a C++ application that uses this to call a QML function: -To expose data to a QML component instance, applications set \l {QDeclarativeContext::setContextProperty()} -{context properties} which are then accessible by name from QML \l {Property Binding}s and JavaScript. -The following example shows how to expose a background color to a QML file through QDeclarativeView: +\table +\row +\o \snippet doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml 0 +\o \snippet doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp 0 +\endtable + +Notice the Q_RETURN_ARG() and Q_ARG() arguments for QMetaObject::invokeMethod() must be specified as +QVariant types, as this is the generic data type used for QML functions and return values. + +To call a C++ function from QML, the function must be either a Qt slot, or a function marked with +the Q_INVOKABLE macro, to be available to QML. In the following example, the QML code invokes +methods on the \c myObject object, which has been set using QDeclarativeContext::setContextProperty(): + +\table +\row +\o +\snippet doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml 0 +\o +\snippet doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h 0 +\codeline +\snippet doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp 0 +\endtable + +Note that QML does not support overloaded functions. If a C++ has more than one function with the +same name, there is no guarantee which overloaded function will be called from QML. + + +\section2 Receiving signals + +All QML signals are automatically available to C++, and can be connected to using QObject::connect() +like any ordinary Qt C++ signal. + +Here is a QML component with a signal named \c qmlSignal. This signal is connected to a C++ object's +slot using QObject::connect(): + +\table +\row +\o +\snippet doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml 0 +\o +\snippet doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h 0 +\codeline +\snippet doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp 0 +\endtable + +To connect to Qt C++ signals from within QML, use a signal handler with the \c on syntax. +If the C++ object is directly creatable from within QML (see \l {Defining new QML elements} above) +then the signal handler can be defined within the object declaration. In the following example, the +QML code creates a \c ImageViewer object, and the \c imageChanged and \c loadingError signals of the +C++ object are connected to through \c onImagedChanged and \c onLoadingError signal handlers in QML: \table \row \o -\c {// main.cpp} -\snippet doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp 0 + +\snippet doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h start +\dots 4 +\snippet doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h end \o -\c {// main.qml} -\snippet doc/src/snippets/declarative/qtbinding/contextproperties/main.qml 0 +\snippet doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml 0 +\endtable + +(Note that if a signal has been declared as the NOTIFY signal for a property, QML allows it to be +received with an \c onChanged handler even if the signal's name does not follow the \c +Changed naming convention. In the above example, if the "imageChanged" signal was named +"imageModified" instead, the \c onImageChanged signal handler would still be called.) + +If, however, the object with the signal is not created from within the QML code, and the QML item only has a +reference to the created object - for example, if the object was set using +QDeclarativeContext::setContextProperty() - then the \l Connections element can be used +instead to create the signal handler: +\table +\row +\o \snippet doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp connections +\o \snippet doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml 0 \endtable -Or, if you want \c main.cpp to create the component without showing it in a QDeclarativeView, you could create an instance of QDeclarativeContext using QDeclarativeEngine::rootContext() instead: -\snippet doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp 1 +\section2 Modifying properties -Context properties work just like normal properties in QML bindings - if the \c backgroundColor -context property in this example was changed to red, the component object instances would -all be automatically updated. Note that it is the responsibility of the creator to delete any -QDeclarativeContext it constructs. If the \c windowContext is no longer needed when -the \c window component instantiation is destroyed, the \c windowContext must be destroyed -explicitly. The simplest way to ensure this is to set \c window as \c windowContext's parent. +Any properties declared in a QML object are automatically accessible from C++. Given a QML item +like this: -QDeclarativeContexts form a tree - each QDeclarativeContext except for the root context has a parent. Child -QDeclarativeContexts effectively inherit the context properties present in their parents. This gives -applications more freedom in partitioning the data exposed to different QML object instances. -If a QDeclarativeContext sets a context property that is also set in one of its parents, the new context -property shadows that in the parent. In The following example, the \c background context property -in \c {Context 1} shadows the \c background context property in the root context. +\snippet doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml 0 -\image qml-context-tree.png +The value of the \c someNumber property can be set and read using QDeclarativeProperty, or +QObject::setProperty() and QObject::property(): -\section2 Structured Data +\snippet doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp 0 -Context properties can also be used to expose structured and writable data to QML objects. In -addition to all the types already supported by QVariant, QObject derived types can be assigned to -context properties. QObject context properties allow the data exposed to be more structured, and -allow QML to set values. +You should always use QObject::setProperty(), QDeclarativeProperty or QMetaProperty::write() to +change a QML property value, to ensure the QML engine is made aware of the property change. For example, +say you have a custom element \c PushButton with a \c buttonText property that internally reflects +the value of a \c m_buttonText member variable. Modifying the member variable directly like this is +not a good idea: -The following example creates a \c CustomPalette object, and sets it as the \c palette context -property. +\badcode +// BAD! +QDeclarativeComponent component(engine, "MyButton.qml"); +PushButton *button = qobject_cast(component.create()); +button->m_buttonText = "Click me"; +\endcode -\snippet doc/src/snippets/declarative/qtbinding/custompalette/custompalette.h 0 +Since the value is changed directly, this bypasses Qt's \l{The Meta-Object System}{meta-object system} +and the QML engine is not made aware of the property change. This means property bindings to +\c buttonText would not be updated, and any \c onButtonTextChanged handlers would not be called. -\snippet doc/src/snippets/declarative/qtbinding/custompalette/main.cpp 0 -The QML that follows references the palette object, and its properties, to set the appropriate -background and text colors. When the window is clicked, the palette's text color is changed, and -the window text will update accordingly. +\target properties-cpp -\snippet doc/src/snippets/declarative/qtbinding/custompalette/main.qml 0 +Any \l {The Property System}{Qt properties} - that is, those declared with the Q_PROPERTY() +macro - are accessible from QML. Here is a modified version of the \l {Embedding C++ objects into +QML components}{earlier example} on this page; here, the \c ApplicationData class has a \c backgroundColor +property. This property can be written to and read from QML: -To detect when a C++ property value - in this case the \c CustomPalette's \c text property - -changes, the property must have a corresponding NOTIFY signal. The NOTIFY signal specifies a signal -that is emitted whenever the property changes value. Implementers should take care to only emit the -signal if the value \e changes to prevent loops from occurring. Accessing a property from a -binding that does not have a NOTIFY signal will cause QML to issue a warning at runtime. +\table +\row +\o \snippet doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h 0 +\o \snippet doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml 0 +\endtable -\section2 Dynamic Structured Data +Notice the \c backgroundColorChanged signal is declared as the NOTIFY signal for the +\c backgroundColor property. If a Qt property does not have an associated NOTIFY signal, +the property cannot be used for \l {Property Binding} in QML, as the QML engine would not be +notified when the value changes. If you are using custom types in QML, make sure their +properties have NOTIFY signals so that they can be used in property bindings. -If an application is too dynamic to structure data as compile-time QObject types, dynamically -structured data can be constructed at runtime using the QDeclarativePropertyMap class. +See \l {Tutorial: Writing QML extensions with C++} for further details and examples +on using Qt properties with QML. -\section1 Calling C++ methods from QML +\section1 Supported data types -It is possible to call methods of QObject derived types by either exposing the -methods as public slots, or by marking the methods Q_INVOKABLE. +Any C++ data that is used from QML - whether as custom properties, or parameters for signals or +functions - must be of a type that is recognizable by QML. -The C++ methods can also have parameters and return values. QML has support for -the following types: +By default, QML recognizes the following data types: \list \o bool @@ -163,102 +426,168 @@ the following types: \o QSize, QSizeF \o QRect, QRectF \o QVariant +\o QObject* +\o Enumerations declared with Q_ENUMS() \endlist -This example toggles the "Stopwatch" object on/off when the MouseArea is clicked: +To allow a custom C++ type to be created or used in QML, the C++ class must be registered as a QML +type using qmlRegisterType(), as shown in the \l {Defining new QML elements} section above. -\table -\row -\o -\c {// main.cpp} -\snippet doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.h 0 -\snippet doc/src/snippets/declarative/qtbinding/stopwatch/main.cpp 0 -\o -\c {// main.qml} -\snippet doc/src/snippets/declarative/qtbinding/stopwatch/main.qml 0 +\section2 Using enumerations of a custom type -\endtable +To use an enumeration from a custom C++ component, the enumeration must be declared with Q_ENUMS() to +register it with Qt's meta object system. For example, the following C++ type has a \c Status enum: -Note that in this particular example a better way to achieve the same result -is to have a "running" property in \c main.qml. This leads to much nicer QML code: +\snippet doc/src/snippets/declarative/qtbinding/enums/imageviewer.h start +\snippet doc/src/snippets/declarative/qtbinding/enums/imageviewer.h end + +Providing the \c ImageViewer class has been registered using qmlRegisterType(), its \c Status enum can +now be used from QML: + +\snippet doc/src/snippets/declarative/qtbinding/enums/standalone.qml 0 + +The C++ type must be registered with QML to use its enums. If your C++ type is not instantiable, it +can be registered using qmlRegisterUncreatableType(). + +See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++} tutorial and +the \l {Extending QML in C++} reference documentation for more information. + + +\section2 Automatic type conversion + +As a convenience, some basic types can be specified in QML using format strings to make it easier to +pass simple values from QML to C++. \table +\header +\o Type +\o String format +\o Example \row -\o -\code -// main.qml -import QtQuick 1.0 - -Rectangle { - MouseArea { - anchors.fill: parent - onClicked: stopwatch.running = !stopwatch.running - } -} -\endcode +\o QColor +\o Color name, "#RRGGBB", "#RRGGBBAA" +\o "red", "#ff0000", "#ff000000" +\row +\o QDate +\o "YYYY-MM-DD" +\o "2010-05-31" +\row +\o QPoint +\o "x,y" +\o "10,20" +\row +\o QRect +\o "x,y,WidthxHeight" +\o "50,50,100x100" +\row +\o QSize +\o "WidthxHeight" +\o "100x200" +\row +\o QTime +\o "hh:mm:ss" +\o "14:22:55" +\row +\o QUrl +\o URL string +\o "http://www.example.com" +\row +\o QVector3D +\o "x,y,z" +\o "0,1,0" +\row +\o Enumeration value +\o Enum value name +\o "AlignRight" \endtable -Of course, it is also possible to call \l {Adding new methods}{functions declared in QML from C++}. +(More details on these string formats and types can be found in the +\l {QML Basic Types}{basic type documentation}.) + +These string formats can be used to set QML \c property values and pass arguments to C++ +functions. This is demonstrated by various examples on this page; in the above +\l{#properties-cpp}{Qt properties example}, the \c ApplicationData class has a \c backgroundColor +property of a QColor type, which is set from the QML code with the string "red" rather rather +than an actual QColor object. + +If it is preferred to pass an explicitly-typed value rather than a string, the global +\l{QmlGlobalQtObject}{Qt object} provides convenience functions for creating some of the object +types listed above. For example, \l{QML:Qt::rgba()}{Qt.rgba()} creates a QColor value from four +RGBA values. The QColor returned from this function could be used instead of a string to set +a QColor-type property or to call a C++ function that requires a QColor parameter. + + +\section1 Writing QML plugins + +The QtDeclarative 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. + +See the QDeclarativeExtensionPlugin documentation and \l {How to Create Qt Plugins} for more +details. + + +\section1 Managing resource files with the Qt resource system +The \l {The Qt Resource System}{Qt resource system} allows resource files to be stored as +binary files in an application executable. This can be useful when building a mixed +QML/C++ application as it enables QML files (as well as other resources such as images +and sound files) to be referred to through the resource system URI scheme rather than +relative or absolute paths to filesystem resources. Note, however, that if you use the resource +system, the application executable must be re-compiled whenever a QML source file is changed +in order to update the resources in the package. -\section1 Network Components +To use the resource system in a mixed QML/C++ application: -If the URL passed to QDeclarativeComponent is a network resource, or if the QML document references a -network resource, the QDeclarativeComponent has to fetch the network data before it is able to create -objects. In this case, the QDeclarativeComponent will have a \l {QDeclarativeComponent::Loading}{Loading} -\l {QDeclarativeComponent::status()}{status}. An application will have to wait until the component -is \l {QDeclarativeComponent::Ready}{Ready} before calling \l {QDeclarativeComponent::create()}. +\list +\o Create a \c .qrc \l {The Qt Resource System}{resource collection file} that lists resource + files in XML format +\o From C++, load the main QML file as a resource using the \c :/ prefix or as a URL with the + \c qrc scheme +\endlist + +Once this is done, all files specified by relative paths in QML will be loaded from +the resource system instead. Use of the resource system is completely transparent to +the QML layer; this means all QML code should refer to resource files using relative +paths and should \e not use the \c qrc scheme. This scheme should only be used from +C++ code for referring to resource files. -The following example shows how to load a QML file from a network resource. After creating -the QDeclarativeComponent, it tests whether the component is loading. If it is, it connects to the -QDeclarativeComponent::statusChanged() signal and otherwise calls the \c {continueLoading()} method -directly. This test is necessary, even for URLs that are known to be remote, just in case -the component has been cached and is ready immediately. +Here is a application packaged using the \l {The Qt Resource System}{Qt resource system}. +The directory structure looks like this: \code -MyApplication::MyApplication() -{ - // ... - component = new QDeclarativeComponent(engine, QUrl("http://www.example.com/main.qml")); - if (component->isLoading()) - QObject::connect(component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), - this, SLOT(continueLoading())); - else - continueLoading(); -} - -void MyApplication::continueLoading() -{ - if (component->isError()) { - qWarning() << component->errors(); - } else { - QObject *myObject = component->create(); - } -} +project + |- example.qrc + |- main.qml + |- images + |- background.png + |- main.cpp + |- project.pro \endcode -\section1 Qt Resources +The \c main.qml and \c background.png files will be packaged as resource files. This is +done in the \c example.qrc resource collection file: -QML content can be loaded from \l {The Qt Resource System} using the \e qrc: URL scheme. -For example: +\quotefile doc/src/snippets/declarative/qtbinding/resources/example.qrc -\c [project/example.qrc] -\quotefile doc/src/snippets/declarative/qtbinding/resources/example.qrc +Since \c background.png is a resource file, \c main.qml can refer to it using the relative +path specified in \c example.qrc: + +\snippet doc/src/snippets/declarative/qtbinding/resources/main.qml 0 -\c [project/project.pro] -\quotefile doc/src/snippets/declarative/qtbinding/resources/resources.pro +To allow QML to locate resource files correctly, the \c main.cpp loads the main QML +file, \c main.qml, as a resource file using the \c qrc scheme: -\c [project/main.cpp] \snippet doc/src/snippets/declarative/qtbinding/resources/main.cpp 0 -\c [project/main.qml] -\snippet doc/src/snippets/declarative/qtbinding/resources/main.qml 0 +Finally \c project.pro uses the RESOURCES variable to indicate that \c example.qrc should +be used to build the application resources: + +\quotefile doc/src/snippets/declarative/qtbinding/resources/resources.pro + +See \l {The Qt Resource System} for more information. -Note that the resource system cannot be accessed from QML directly. If the main QML file is -loaded as a resource, all files specified as relative paths in QML will also be loaded from -the resource system. Using the resource system is completely transparent to the QML layer. -This also means that if the main QML file is not loaded as a resource then files in the resource -system cannot be accessed from QML. */ + diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml b/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml new file mode 100644 index 0000000..607651a --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml @@ -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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Text { text: applicationData.getCurrentDateTime() } +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h b/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h new file mode 100644 index 0000000..930e381 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![0] +class ApplicationData : public QObject +{ + Q_OBJECT +public: + Q_INVOKABLE QDateTime getCurrentDateTime() const { + return QDateTime::currentDateTime(); + } +}; +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml b/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml new file mode 100644 index 0000000..749bea3 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//![0] +Text { + text: applicationData.getCurrentDateTime() + + Connections { + target: applicationData + onDataChanged: console.log("The application data changed!") + } +} +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/context-advanced.pro b/doc/src/snippets/declarative/qtbinding/context-advanced/context-advanced.pro new file mode 100644 index 0000000..188a9fb --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/context-advanced.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += applicationdata.h diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp b/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp new file mode 100644 index 0000000..b92215b --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "applicationdata.h" + +//![0] +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + + QDeclarativeView view; + + ApplicationData data; + view.rootContext()->setContextProperty("applicationData", &data); + + view.setSource(QUrl::fromLocalFile("MyItem.qml")); + view.show(); + + return app.exec(); +} +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/context/MyItem.qml b/doc/src/snippets/declarative/qtbinding/context/MyItem.qml new file mode 100644 index 0000000..faa42dc --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context/MyItem.qml @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Text { text: currentDateTime } +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/context/context.pro b/doc/src/snippets/declarative/qtbinding/context/context.pro new file mode 100644 index 0000000..68eeaf2 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context/context.pro @@ -0,0 +1,2 @@ +QT += declarative +SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/context/main.cpp b/doc/src/snippets/declarative/qtbinding/context/main.cpp new file mode 100644 index 0000000..bbe9956 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/context/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + +//![0] +QDeclarativeView view; +view.rootContext()->setContextProperty("currentDateTime", QDateTime::currentDateTime()); +view.setSource(QUrl::fromLocalFile("MyItem.qml")); +view.show(); +//![0] + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/contextproperties/contextproperties.pro b/doc/src/snippets/declarative/qtbinding/contextproperties/contextproperties.pro deleted file mode 100644 index 68eeaf2..0000000 --- a/doc/src/snippets/declarative/qtbinding/contextproperties/contextproperties.pro +++ /dev/null @@ -1,2 +0,0 @@ -QT += declarative -SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp b/doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp deleted file mode 100644 index 6887e8f..0000000 --- a/doc/src/snippets/declarative/qtbinding/contextproperties/main.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include - -//![0] -#include -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QDeclarativeView view; - QDeclarativeContext *context = view.rootContext(); - context->setContextProperty("backgroundColor", - QColor(Qt::yellow)); - - view.setSource(QUrl::fromLocalFile("main.qml")); - view.show(); - - return app.exec(); -} -//![0] - -static void alternative() -{ - // Alternatively, if we don't actually want to display main.qml: -//![1] - QDeclarativeEngine engine; - QDeclarativeContext *windowContext = new QDeclarativeContext(engine.rootContext()); - windowContext->setContextProperty("backgroundColor", QColor(Qt::yellow)); - - QDeclarativeComponent component(&engine, "main.qml"); - QObject *window = component.create(windowContext); -//![1] -} - - diff --git a/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml b/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml deleted file mode 100644 index 425346d..0000000 --- a/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 1.0 - -Rectangle { - width: 300 - height: 300 - - color: backgroundColor - - Text { - anchors.centerIn: parent - text: "Hello Yellow World!" - } -} -//![0] diff --git a/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.h b/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.h deleted file mode 100644 index 7e84bd4..0000000 --- a/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include - -//![0] -class CustomPalette : public QObject -{ - Q_OBJECT - Q_PROPERTY(QColor background READ background WRITE setBackground NOTIFY backgroundChanged) - Q_PROPERTY(QColor text READ text WRITE setText NOTIFY textChanged) - -public: - CustomPalette() : m_background(Qt::white), m_text(Qt::black) {} - - QColor background() const { return m_background; } - void setBackground(const QColor &c) { - if (c != m_background) { - m_background = c; - emit backgroundChanged(); - } - } - - QColor text() const { return m_text; } - void setText(const QColor &c) { - if (c != m_text) { - m_text = c; - emit textChanged(); - } - } - -signals: - void textChanged(); - void backgroundChanged(); - -private: - QColor m_background; - QColor m_text; -}; - -//![0] diff --git a/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.pro b/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.pro deleted file mode 100644 index e6af0d0..0000000 --- a/doc/src/snippets/declarative/qtbinding/custompalette/custompalette.pro +++ /dev/null @@ -1,3 +0,0 @@ -QT += declarative -HEADERS += custompalette.h -SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/custompalette/main.cpp b/doc/src/snippets/declarative/qtbinding/custompalette/main.cpp deleted file mode 100644 index 7481b75..0000000 --- a/doc/src/snippets/declarative/qtbinding/custompalette/main.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include - -#include "custompalette.h" - -//![0] -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QDeclarativeView view; - view.rootContext()->setContextProperty("palette", new CustomPalette); - - view.setSource(QUrl::fromLocalFile("main.qml")); - view.show(); - - return app.exec(); -} -//![0] - diff --git a/doc/src/snippets/declarative/qtbinding/custompalette/main.qml b/doc/src/snippets/declarative/qtbinding/custompalette/main.qml deleted file mode 100644 index a20d9e0..0000000 --- a/doc/src/snippets/declarative/qtbinding/custompalette/main.qml +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 1.0 - -Rectangle { - width: 240 - height: 320 - color: palette.background - - Text { - anchors.centerIn: parent - color: palette.text - text: "Click me to change color!" - } - - MouseArea { - anchors.fill: parent - onClicked: { - palette.text = "blue"; - } - } -} -//![0] diff --git a/doc/src/snippets/declarative/qtbinding/enums/enums.pro b/doc/src/snippets/declarative/qtbinding/enums/enums.pro new file mode 100644 index 0000000..82bc123 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/enums/enums.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += imageviewer.h diff --git a/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h b/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h new file mode 100644 index 0000000..8aaddee --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![start] +class ImageViewer : public QDeclarativeItem +{ + Q_OBJECT + Q_ENUMS(Status) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) +public: + enum Status { + Ready, + Loading, + Error + }; + + Status status() const; +//![start] + + ImageViewer(QDeclarativeItem *parent = 0); + +public slots: + void emitSignals(); + +//![end] +signals: + void statusChanged(); +}; +//![end] diff --git a/doc/src/snippets/declarative/qtbinding/enums/main.cpp b/doc/src/snippets/declarative/qtbinding/enums/main.cpp new file mode 100644 index 0000000..9243f4b --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/enums/main.cpp @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "imageviewer.h" + +ImageViewer::ImageViewer(QDeclarativeItem *parent) + : QDeclarativeItem(parent) +{ + QTimer::singleShot(0, this, SLOT(emitSignals())); +} + +ImageViewer::Status ImageViewer::status() const +{ + return Ready; +} + +void ImageViewer::emitSignals() +{ + emit statusChanged(); +} + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + qmlRegisterType("MyLibrary", 1, 0, "ImageViewer"); + + QDeclarativeView view; + view.setSource(QUrl::fromLocalFile("standalone.qml")); + view.show(); + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/enums/standalone.qml b/doc/src/snippets/declarative/qtbinding/enums/standalone.qml new file mode 100644 index 0000000..ad6c14c --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/enums/standalone.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import MyLibrary 1.0 + +//![0] +ImageViewer { + onStatusChanged: { + if (status == ImageViewer.Ready) + console.log("Image viewer is ready!") + } +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml new file mode 100644 index 0000000..8d8cd56 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Item { + width: 100; height: 100 + + MouseArea { + anchors.fill: parent + onClicked: { + myObject.cppMethod("Hello from QML") + myObject.cppSlot(12345) + } + } +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/functions-qml.pro b/doc/src/snippets/declarative/qtbinding/functions-cpp/functions-qml.pro new file mode 100644 index 0000000..01066c1 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/functions-qml.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += myclass.h diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp new file mode 100644 index 0000000..91d6aec --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "myclass.h" + +//![0] +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + + QDeclarativeView view; + MyClass myClass; + view.rootContext()->setContextProperty("myObject", &myClass); + + view.setSource(QUrl::fromLocalFile("MyItem.qml")); + view.show(); + + return app.exec(); +} +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h b/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h new file mode 100644 index 0000000..76c628e --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![0] +class MyClass : public QObject +{ + Q_OBJECT +public: + Q_INVOKABLE void cppMethod(const QString &msg) { + qDebug() << "Called the C++ method with" << msg; + } + +public slots: + void cppSlot(int number) { + qDebug() << "Called the C++ slot with" << number; + } +}; +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml new file mode 100644 index 0000000..6161d6e --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Item { + function myQmlFunction(msg) { + console.log("Got message:", msg) + return "some return value" + } +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/functions-qml/functions-qml.pro b/doc/src/snippets/declarative/qtbinding/functions-qml/functions-qml.pro new file mode 100644 index 0000000..68eeaf2 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-qml/functions-qml.pro @@ -0,0 +1,2 @@ +QT += declarative +SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp new file mode 100644 index 0000000..3e9e51e --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + +//![0] +// main.cpp +QDeclarativeEngine engine; +QDeclarativeComponent component(&engine, "MyItem.qml"); +QObject *object = component.create(); + +QVariant returnedValue; +QVariant msg = "Hello from C++"; +QMetaObject::invokeMethod(object, "myQmlFunction", + Q_RETURN_ARG(QVariant, returnedValue), + Q_ARG(QVariant, msg)); + +qDebug() << "QML function returned:" << returnedValue.toString(); +delete object; +//![0] +} + diff --git a/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml b/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml new file mode 100644 index 0000000..40138f6 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![start] +import QtQuick 1.0 + +Item { + width: 100; height: 100 +//![start] + +//![child] + Rectangle { + anchors.fill: parent + objectName: "rect" + } +//![child] + +//![end] +} +//![end] diff --git a/doc/src/snippets/declarative/qtbinding/loading/loading.pro b/doc/src/snippets/declarative/qtbinding/loading/loading.pro new file mode 100644 index 0000000..68eeaf2 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/loading/loading.pro @@ -0,0 +1,2 @@ +QT += declarative +SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/loading/main.cpp b/doc/src/snippets/declarative/qtbinding/loading/main.cpp new file mode 100644 index 0000000..bd400b0 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/loading/main.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +static void withComponent() +{ +//![QDeclarativeComponent-a] +// Using QDeclarativeComponent +QDeclarativeEngine engine; +QDeclarativeComponent component(&engine, + QUrl::fromLocalFile("MyItem.qml")); +QObject *object = component.create(); +//![QDeclarativeComponent-a] +} + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + +//![QDeclarativeView] +// Using QDeclarativeView +QDeclarativeView view; +view.setSource(QUrl::fromLocalFile("MyItem.qml")); +view.show(); +QObject *object = view.rootObject(); +//![QDeclarativeView] + +//![properties] +object->setProperty("width", 500); +QDeclarativeProperty(object, "width").write(500); +//![properties] + +//![cast] +QDeclarativeItem *item = qobject_cast(object); +item->setWidth(500); +//![cast] + +//![findChild] +QObject *rect = object->findChild("rect"); +if (rect) + rect->setProperty("color", "red"); +//![findChild] + +//![QDeclarativeComponent-b] +delete object; +//![QDeclarativeComponent-b] + +withComponent(); + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h new file mode 100644 index 0000000..fd9db5e --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![0] +class ImageViewer : public QDeclarativeItem +{ + Q_OBJECT + Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) + +public: + void setImage(const QUrl &url); + QUrl image() const; + +signals: + void imageChanged(); +}; +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/newelements/main.cpp b/doc/src/snippets/declarative/qtbinding/newelements/main.cpp new file mode 100644 index 0000000..57994ca --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/newelements/main.cpp @@ -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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "imageviewer.h" + +void ImageViewer::setImage(const QUrl &url) {} +QUrl ImageViewer::image() const { return QUrl(); } + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + //![register] + qmlRegisterType("MyLibrary", 1, 0, "ImageViewer"); + //![register] + + QDeclarativeView view; + view.setSource(QUrl::fromLocalFile("standalone.qml")); + view.show(); + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/newelements/newelements.pro b/doc/src/snippets/declarative/qtbinding/newelements/newelements.pro new file mode 100644 index 0000000..82bc123 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/newelements/newelements.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += imageviewer.h diff --git a/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml b/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml new file mode 100644 index 0000000..7345f21 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +import MyLibrary 1.0 + +ImageViewer { image: "smile.png" } +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml new file mode 100644 index 0000000..9db4b93 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Rectangle { + width: 100; height: 100 + color: applicationData.backgroundColor + + MouseArea { + anchors.fill: parent + onClicked: applicationData.backgroundColor = "red" + } +} +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h b/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h new file mode 100644 index 0000000..763a451 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include + +//![0] +class ApplicationData : public QObject +{ + Q_OBJECT + Q_PROPERTY(QColor backgroundColor + READ backgroundColor + WRITE setBackgroundColor + NOTIFY backgroundColorChanged) + +public: + void setBackgroundColor(const QColor &c) { + if (c != m_color) { + m_color = c; + emit backgroundColorChanged(); + } + } + + QColor backgroundColor() const { + return m_color; + } + +signals: + void backgroundColorChanged(); + +private: + QColor m_color; +}; +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp new file mode 100644 index 0000000..36b508d --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "applicationdata.h" + +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + + QDeclarativeView view; + + ApplicationData data; + view.rootContext()->setContextProperty("applicationData", &data); + + view.setSource(QUrl::fromLocalFile("MyItem.qml")); + view.show(); + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/properties-cpp.pro b/doc/src/snippets/declarative/qtbinding/properties-cpp/properties-cpp.pro new file mode 100644 index 0000000..188a9fb --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/properties-cpp.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += applicationdata.h diff --git a/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml new file mode 100644 index 0000000..a43ded8 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml @@ -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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Item { + property int someNumber: 100 +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp new file mode 100644 index 0000000..d8daff8 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + +//![0] +QDeclarativeEngine engine; +QDeclarativeComponent component(&engine, "MyItem.qml"); +QObject *object = component.create(); + +qDebug() << "Property value:" << QDeclarativeProperty::read(object, "someNumber").toInt(); +QDeclarativeProperty::write(object, "someNumber", 5000); + +qDebug() << "Property value:" << object->property("someNumber").toInt(); +object->setProperty("someNumber", 100); +//![0] + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/properties-qml/properties-qml.pro b/doc/src/snippets/declarative/qtbinding/properties-qml/properties-qml.pro new file mode 100644 index 0000000..68eeaf2 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/properties-qml/properties-qml.pro @@ -0,0 +1,2 @@ +QT += declarative +SOURCES += main.cpp diff --git a/doc/src/snippets/declarative/qtbinding/resources/main.qml b/doc/src/snippets/declarative/qtbinding/resources/main.qml index 644d963..43029cf 100644 --- a/doc/src/snippets/declarative/qtbinding/resources/main.qml +++ b/doc/src/snippets/declarative/qtbinding/resources/main.qml @@ -39,9 +39,8 @@ ****************************************************************************/ //![0] +// main.qml import QtQuick 1.0 -Image { - source: "images/background.png" -} +Image { source: "images/background.png" } //![0] diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml new file mode 100644 index 0000000..d900830 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Item { + Connections { + target: imageViewer + onImageChanged: console.log("Image has changed!") + } +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h b/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h new file mode 100644 index 0000000..7288d11 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![start] +class ImageViewer : public QDeclarativeItem +{ + Q_OBJECT + Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) +public: +//![start] + ImageViewer(QDeclarativeItem *item = 0); + + void setImage(const QUrl &url) {} + QUrl image() const { return QUrl(); } + +public slots: + void emitSignals(); + +//![end] +signals: + void imageChanged(); + void loadingError(const QString &errorMsg); +}; +//![end] + diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp new file mode 100644 index 0000000..e5dd33c --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +#include "imageviewer.h" + + +ImageViewer::ImageViewer(QDeclarativeItem *item) + : QDeclarativeItem(item) +{ + QTimer::singleShot(0, this, SLOT(emitSignals())); +} + +void ImageViewer::emitSignals() +{ + emit imageChanged(); + emit loadingError("some error message"); +} + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + qmlRegisterType("MyLibrary", 1, 0, "ImageViewer"); + + QDeclarativeView standalone; + standalone.setSource(QUrl::fromLocalFile("standalone.qml")); + standalone.show(); + +//![connections] +ImageViewer viewer; + +QDeclarativeView view; +view.rootContext()->setContextProperty("imageViewer", &viewer); + +view.setSource(QUrl::fromLocalFile("MyItem.qml")); +view.show(); +//![connections] + + return app.exec(); +} + + diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/signals-cpp.pro b/doc/src/snippets/declarative/qtbinding/signals-cpp/signals-cpp.pro new file mode 100644 index 0000000..9aa8702 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/signals-cpp.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += "imageviewer.h" diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml b/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml new file mode 100644 index 0000000..4027b19 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import MyLibrary 1.0 + +//![0] +ImageViewer { + onImageChanged: console.log("Image changed!") + onLoadingError: console.log("Image failed to load:", errorMsg) +} +//![0] + diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml new file mode 100644 index 0000000..e4b6ced --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// MyItem.qml +import QtQuick 1.0 + +Item { + id: item + width: 100; height: 100 + + signal qmlSignal(string msg) + + MouseArea { + anchors.fill: parent + onClicked: item.qmlSignal("Hello from QML") + } +} +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp new file mode 100644 index 0000000..f1d03c4 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +//![0] +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + + QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml")); + QObject *item = view.rootObject(); + + MyClass myClass; + QObject::connect(item, SIGNAL(qmlSignal(QString)), + &myClass, SLOT(cppSlot(QString))); + + view.show(); + return app.exec(); +} +//![0] + +#include "moc_main.cpp" diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h b/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h new file mode 100644 index 0000000..c326a54 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include +//![0] +class MyClass : public QObject +{ + Q_OBJECT +public slots: + void cppSlot(const QString &msg) { + qDebug() << "Called the C++ slot with message:" << msg; + } +}; +//![0] diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/signals-qml.pro b/doc/src/snippets/declarative/qtbinding/signals-qml/signals-qml.pro new file mode 100644 index 0000000..01066c1 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/signals-qml.pro @@ -0,0 +1,3 @@ +QT += declarative +SOURCES += main.cpp +HEADERS += myclass.h diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/main.cpp b/doc/src/snippets/declarative/qtbinding/stopwatch/main.cpp deleted file mode 100644 index 12481da..0000000 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/main.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "stopwatch.h" - -#include -#include -#include - -//![0] -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QDeclarativeView view; - view.rootContext()->setContextProperty("stopwatch", - new Stopwatch); - - view.setSource(QUrl::fromLocalFile("main.qml")); - view.show(); - - return app.exec(); -} -//![0] - diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml b/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml deleted file mode 100644 index f894f71..0000000 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 1.0 - -Rectangle { - width: 300 - height: 300 - - MouseArea { - anchors.fill: parent - onClicked: { - if (stopwatch.isRunning()) - stopwatch.stop() - else - stopwatch.start(); - } - } -} -//![0] diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.cpp b/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.cpp deleted file mode 100644 index 124422f..0000000 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "stopwatch.h" - -Stopwatch::Stopwatch() - : m_running(false) -{ -} - -bool Stopwatch::isRunning() const -{ - return m_running; -} - -void Stopwatch::start() -{ - m_running = true; -} - -void Stopwatch::stop() -{ - m_running = false; -} - diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.h b/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.h deleted file mode 100644 index fd65916..0000000 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include - -//![0] -class Stopwatch : public QObject -{ - Q_OBJECT -public: - Stopwatch(); - - Q_INVOKABLE bool isRunning() const; - -public slots: - void start(); - void stop(); - -private: - bool m_running; -}; - -//![0] - diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.pro b/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.pro deleted file mode 100644 index d803e6a..0000000 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/stopwatch.pro +++ /dev/null @@ -1,3 +0,0 @@ -QT += declarative -HEADERS += stopwatch.h -SOURCES += main.cpp stopwatch.cpp diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 0a2a6db..2686ce3 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -98,6 +98,43 @@ class QByteArray; int width = item->width(); // width = 200 \endcode + + \section2 Network Components + + If the URL passed to QDeclarativeComponent is a network resource, or if the QML document references a + network resource, the QDeclarativeComponent has to fetch the network data before it is able to create + objects. In this case, the QDeclarativeComponent will have a \l {QDeclarativeComponent::Loading}{Loading} + \l {QDeclarativeComponent::status()}{status}. An application will have to wait until the component + is \l {QDeclarativeComponent::Ready}{Ready} before calling \l {QDeclarativeComponent::create()}. + + The following example shows how to load a QML file from a network resource. After creating + the QDeclarativeComponent, it tests whether the component is loading. If it is, it connects to the + QDeclarativeComponent::statusChanged() signal and otherwise calls the \c {continueLoading()} method + directly. Note that QDeclarativeComponent::isLoading() may be false for a network component if the + component has been cached and is ready immediately. + + \code + MyApplication::MyApplication() + { + // ... + component = new QDeclarativeComponent(engine, QUrl("http://www.example.com/main.qml")); + if (component->isLoading()) + QObject::connect(component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), + this, SLOT(continueLoading())); + else + continueLoading(); + } + + void MyApplication::continueLoading() + { + if (component->isError()) { + qWarning() << component->errors(); + } else { + QObject *myObject = component->create(); + } + } + \endcode + \sa {Using QML in C++ Applications}, {Integrating QML with existing Qt UI code} */ diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp index 59d5cfa..1e58a71 100644 --- a/src/declarative/qml/qdeclarativecontext.cpp +++ b/src/declarative/qml/qdeclarativecontext.cpp @@ -86,9 +86,14 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() QDeclarativeComponent component(&engine); component.setData("import QtQuick 1.0\nListView { model: myModel }", QUrl()); - component.create(context); + QObject *window = component.create(context); \endcode + Note it is the responsibility of the creator to delete any QDeclarativeContext it + constructs. If the \c context object in the example is no longer needed when the + \c window component instance is destroyed, the \c context must be destroyed explicitly. + The simplest way to ensure this is to set \c window as the parent of \c context. + To simplify binding and maintaining larger data sets, a context object can be set on a QDeclarativeContext. All the properties of the context object are available by name in the context, as though they were all individually added through calls @@ -119,11 +124,13 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() All properties added explicitly by QDeclarativeContext::setContextProperty() take precedence over the context object's properties. - Contexts form a hierarchy. The root of this hierarchy is the QDeclarativeEngine's - \l {QDeclarativeEngine::rootContext()}{root context}. A component instance can - access the data in its own context, as well as all its ancestor contexts. Data - can be made available to all instances by modifying the - \l {QDeclarativeEngine::rootContext()}{root context}. + \section2 The Context Hierarchy + + Contexts form a hierarchy. The root of this hierarchy is the QML engine's + \l {QDeclarativeEngine::rootContext()}{root context}. Child contexts inherit + the context properties of their parents; if a child context sets a context property + that already exists in its parent, the new context property overrides that of the + parent. The following example defines two contexts - \c context1 and \c context2. The second context overrides the "b" context property inherited from the first with a @@ -144,7 +151,7 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() context, their bindings are. If a context is destroyed, the property bindings of outstanding QML objects will stop evaluating. - \note Setting the context object or adding new context properties after an object + \warning Setting the context object or adding new context properties after an object has been created in that context is an expensive operation (essentially forcing all bindings to reevaluate). Thus whenever possible you should complete "setup" of the context before using it to create any objects. diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp index cff0b46..0c7f8fb 100644 --- a/tests/auto/declarative/examples/tst_examples.cpp +++ b/tests/auto/declarative/examples/tst_examples.cpp @@ -86,6 +86,7 @@ tst_examples::tst_examples() // Add directories you want excluded here excludedDirs << "doc/src/snippets/declarative/visualdatamodel_rootindex"; + excludedDirs << "doc/src/snippets/declarative/qtbinding"; #ifdef QT_NO_WEBKIT excludedDirs << "examples/declarative/modelviews/webview"; -- cgit v0.12 From eedb9980c89e77e21e1336195930a148b6a2e712 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 4 Nov 2010 16:05:30 +1000 Subject: Fix errors in example code. Also reverts the example code to the old list format. Task-number: QTBUG-14871 --- src/declarative/graphicsitems/qdeclarativeimage.cpp | 16 +++++++++------- src/declarative/graphicsitems/qdeclarativeloader.cpp | 16 +++++++++------- src/declarative/util/qdeclarativefontloader.cpp | 16 +++++++++------- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp index 08d237f..1f1e93d 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp @@ -288,23 +288,25 @@ qreal QDeclarativeImage::paintedHeight() const Use this status to provide an update or respond to the status change in some way. For example, you could: - \e {Trigger a state change:} - \qml - State { name: 'loaded'; when: image.status = Image.Ready } + \list + \o Trigger a state change: + \qml + State { name: 'loaded'; when: image.status == Image.Ready } \endqml - \e {Implement an \c onStatusChanged signal handler:} - \qml + \o Implement an \c onStatusChanged signal handler: + \qml Image { id: image onStatusChanged: if (image.status == Image.Ready) console.log('Loaded') } \endqml - \e {Bind to the status value:} + \o Bind to the status value: \qml - Text { text: image.status != Image.Ready ? 'Not Loaded' : 'Loaded' } + Text { text: image.status == Image.Ready ? 'Loaded' : 'Not loaded' } \endqml + \endlist \sa progress */ diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 7777567..109fbbb 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -395,23 +395,25 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() Use this status to provide an update or respond to the status change in some way. For example, you could: - \e {Trigger a state change:} - \qml - State { name: 'loaded'; when: loader.status = Loader.Ready } + \list + \o Trigger a state change: + \qml + State { name: 'loaded'; when: loader.status == Loader.Ready } \endqml - \e {Implement an \c onStatusChanged signal handler:} - \qml + \o Implement an \c onStatusChanged signal handler: + \qml Loader { id: loader onStatusChanged: if (loader.status == Loader.Ready) console.log('Loaded') } \endqml - \e {Bind to the status value:} + \o Bind to the status value: \qml - Text { text: loader.status != Loader.Ready ? 'Not Loaded' : 'Loaded' } + Text { text: loader.status == Loader.Ready ? 'Loaded' : 'Not loaded' } \endqml + \endlist Note that if the source is a local file, the status will initially be Ready (or Error). While there will be no onStatusChanged signal in that case, the onLoaded will still be invoked. diff --git a/src/declarative/util/qdeclarativefontloader.cpp b/src/declarative/util/qdeclarativefontloader.cpp index 9fee257..03a0561 100644 --- a/src/declarative/util/qdeclarativefontloader.cpp +++ b/src/declarative/util/qdeclarativefontloader.cpp @@ -297,23 +297,25 @@ void QDeclarativeFontLoader::setName(const QString &name) Use this status to provide an update or respond to the status change in some way. For example, you could: - \e {Trigger a state change:} - \qml - State { name: 'loaded'; when: loader.status = FontLoader.Ready } + \list + \o Trigger a state change: + \qml + State { name: 'loaded'; when: loader.status == FontLoader.Ready } \endqml - \e {Implement an \c onStatusChanged signal handler:} - \qml + \o Implement an \c onStatusChanged signal handler: + \qml FontLoader { id: loader onStatusChanged: if (loader.status == FontLoader.Ready) console.log('Loaded') } \endqml - \e {Bind to the status value:} + \o Bind to the status value: \qml - Text { text: loader.status != FontLoader.Ready ? 'Not Loaded' : 'Loaded' } + Text { text: loader.status == FontLoader.Ready ? 'Loaded' : 'Not loaded' } \endqml + \endlist */ QDeclarativeFontLoader::Status QDeclarativeFontLoader::status() const { -- cgit v0.12 From 693a1dd90dc2e5a9ba7aabed5fcc3984e7440ba9 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 4 Nov 2010 16:19:25 +1000 Subject: Maintain passing visualtests on X11 springanimation/follow.qml has had updated visuals, unknown cause. the text tests were committed without an actual testcase, now added the 'skip' property has now been documented in the tst_qmlvisual help Task-number: QTBUG-14792 --- .../qdeclarativespringanimation/data/follow.qml | 6 +- .../qdeclarativetext/data-X11/qtbug_14865.0.png | Bin 0 -> 1400 bytes .../qdeclarativetext/data-X11/qtbug_14865.qml | 447 +++++++++++++++++++++ .../qdeclarativetext/data/qtbug_14865.0.png | Bin 0 -> 1400 bytes .../qdeclarativetext/data/qtbug_14865.qml | 447 +++++++++++++++++++++ .../font/data-X11/plaintext2.0.png | Bin 0 -> 2778 bytes .../qdeclarativetext/font/data-X11/plaintext2.qml | 11 + .../qdeclarativetext/font/data/plaintext2.0.png | Bin 0 -> 2778 bytes .../qdeclarativetext/font/data/plaintext2.qml | 11 + tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 6 + 10 files changed, 925 insertions(+), 3 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.qml diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml index e5c55a4..a688563 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml @@ -450,7 +450,7 @@ VisualTest { } Frame { msec: 1760 - hash: "2c01571e523002166ba6ec476bc8a68b" + hash: "b2b4b3de77e2b7fd58d3da1ad52355a9" } Frame { msec: 1776 @@ -1554,7 +1554,7 @@ VisualTest { } Frame { msec: 6144 - hash: "0506667a14ace4e2edf04956c137e217" + hash: "8cd5edce652013a2ed4bf95693259538" } Frame { msec: 6160 @@ -1731,7 +1731,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 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 new file mode 100644 index 0000000..a4bae3a Binary files /dev/null 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 new file mode 100644 index 0000000..a470a66 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml @@ -0,0 +1,447 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 32 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 48 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 64 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 80 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 96 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 112 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 128 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 144 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 160 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 176 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 192 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 208 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 224 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 240 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 256 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 272 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 288 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 304 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 320 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 336 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 352 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 368 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 384 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 400 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 416 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 432 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 448 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 464 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 480 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 496 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 512 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 528 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 544 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 560 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 576 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 592 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 608 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 624 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 640 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 656 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 672 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 688 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 704 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 720 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 736 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 752 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 768 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 784 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 800 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 816 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 832 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 848 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 864 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 880 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 896 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 912 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 928 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 944 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 960 + image: "qtbug_14865.0.png" + } + Frame { + msec: 976 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 992 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 1008 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 1024 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1040 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1056 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1072 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1088 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1104 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1120 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1136 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1152 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1168 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1184 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1200 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1216 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1232 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1248 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1264 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1280 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1296 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1312 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1328 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1344 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1360 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1376 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1392 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1408 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1424 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1440 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1456 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1472 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1488 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1504 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1520 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1536 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1552 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1568 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1584 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1600 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1616 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1632 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1648 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1664 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1680 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1696 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1712 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1728 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1744 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1760 + hash: "eee4600ac08b458ac7ac2320e225674c" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.0.png new file mode 100644 index 0000000..a4bae3a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.qml new file mode 100644 index 0000000..a470a66 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.qml @@ -0,0 +1,447 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 32 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 48 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 64 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 80 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 96 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 112 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 128 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 144 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 160 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 176 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 192 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 208 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 224 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 240 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 256 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 272 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 288 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 304 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 320 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 336 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 352 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 368 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 384 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 400 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 416 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 432 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 448 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 464 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 480 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 496 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 512 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 528 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 544 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 560 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 576 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 592 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 608 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 624 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 640 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 656 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 672 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 688 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 704 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 720 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 736 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 752 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 768 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 784 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 800 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 816 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 832 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 848 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 864 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 880 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 896 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 912 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 928 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 944 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 960 + image: "qtbug_14865.0.png" + } + Frame { + msec: 976 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 992 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 1008 + hash: "fd4d35de0a95388dd92ffbb82fbe0e8a" + } + Frame { + msec: 1024 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1040 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1056 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1072 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1088 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1104 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1120 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1136 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1152 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1168 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1184 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1200 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1216 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1232 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1248 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1264 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1280 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1296 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1312 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1328 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1344 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1360 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1376 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1392 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1408 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1424 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1440 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1456 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1472 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1488 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1504 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1520 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1536 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1552 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1568 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1584 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1600 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1616 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1632 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1648 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1664 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1680 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1696 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1712 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1728 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1744 + hash: "eee4600ac08b458ac7ac2320e225674c" + } + Frame { + msec: 1760 + hash: "eee4600ac08b458ac7ac2320e225674c" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png new file mode 100644 index 0000000..0574f63 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.qml new file mode 100644 index 0000000..f6cddc4 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "plaintext2.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.0.png new file mode 100644 index 0000000..0574f63 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.qml new file mode 100644 index 0000000..f6cddc4 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "plaintext2.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index b52b430..81404ea 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -345,6 +345,12 @@ void usage() "If you ONLY wish to use the 'error' property, you can record your test with\n" "-recordnovisuals, or discard existing visuals with -removevisuals; the test\n" "will then only fail on a syntax error, crash, or non-empty 'error' property.\n" + "\n" + "If your test has anything set to the 'skip' property on the root object then\n" + "test failures will be ignored. This allows for an opt-out of automated\n" + "aggregation of test results. The value of the 'skip' property (usually a\n" + "string) will then be printed to stdout when the test is run as part of the\n" + "message saying the test has been skipped.\n" ); } -- cgit v0.12 From 893e2fdc16976085092d09eb65d9650ce471af3f Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 4 Nov 2010 17:02:32 +1000 Subject: Add documentation about script evaluation context and allowed types Task-number: QTBUG-14919 --- src/declarative/qml/qdeclarativeworkerscript.cpp | 30 ++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index 789116e..be7ea0e 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -514,7 +514,7 @@ void QDeclarativeWorkerScriptEngine::run() /*! \qmlclass WorkerScript QDeclarativeWorkerScript - \ingroup qml-utility-elements + \ingroup qml-utility-elements \brief The WorkerScript element enables the use of threads in QML. Use WorkerScript to run operations in a new thread. @@ -528,7 +528,7 @@ void QDeclarativeWorkerScriptEngine::run() \snippet doc/src/snippets/declarative/workerscript.qml 0 - The above worker script specifies a javascript file, "script.js", that handles + The above worker script specifies a JavaScript file, "script.js", that handles the operations to be performed in the new thread. Here is \c script.js: \qml @@ -543,6 +543,19 @@ void QDeclarativeWorkerScriptEngine::run() \tt script.js. This in turn sends a reply message that is then received by the \tt onMessage() handler of \tt myWorker. + + \section3 Restrictions + + Since the \c WorkerScript.onMessage() function is run in a separate thread, the + JavaScript file is evaluated in a context separate from the main QML engine. This means + that unlike an ordinary JavaScript file that is imported into QML, the \c script.js + in the above example cannot access the properties, methods or other attributes + of the QML item, nor can it access any context properties set on the QML object + through QDeclarativeContext. + + Additionally, there are restrictions on the types of values that can be passed to and + from the worker script. See the sendMessage() documentation for details. + \sa {declarative/threading/workerscript}{WorkerScript example}, {declarative/threading/threadedlistmodel}{Threaded ListModel example} */ @@ -586,6 +599,19 @@ void QDeclarativeWorkerScript::setSource(const QUrl &source) Sends the given \a message to a worker script handler in another thread. The other worker script handler can receive this message through the onMessage() handler. + + The \c message object may only contain values of the following + types: + + \list + \o boolean, number, string + \o JavaScript objects and arrays + \o ListModel objects (any other type of QObject* is not allowed) + \endlist + + All objects and arrays are copied to the \c message. With the exception + of ListModel objects, any modifications by the other thread to an object + passed in \c message will not be reflected in the original object. */ void QDeclarativeWorkerScript::sendMessage(const QScriptValue &message) { -- cgit v0.12 From d5ed9ed21b67b6e5e884e7c87fabc096b8c677a2 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 4 Nov 2010 18:01:36 +1000 Subject: Make qmlvisual tests more stable Text elements now use shared components that have the same default values, instead of using the system defaults (that can vary between computers). This also removes text edit/input cursor blinking. Task-number: QTBUG-14792 --- .../qdeclarativetext/align/multilineAlign.qml | 3 +- .../qdeclarativetext/baseline/parentanchor.qml | 5 +- .../qdeclarativetext/bugs/QTBUG-14469.qml | 1 + .../qdeclarativetext/elide/data-X11/elide.0.png | Bin 1167 -> 1150 bytes .../qdeclarativetext/elide/data-X11/elide.qml | 132 +++--- .../elide/data-X11/multilength.qml | 66 +-- .../qmlvisual/qdeclarativetext/elide/elide.qml | 9 +- .../qmlvisual/qdeclarativetext/elide/elide2.qml | 3 +- .../qdeclarativetext/elide/multilength.qml | 3 +- .../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 77181 -> 77252 bytes .../qdeclarativetext/font/data-X11/richtext.0.png | Bin 103375 -> 101974 bytes .../qmlvisual/qdeclarativetext/font/plaintext.qml | 55 +-- .../qmlvisual/qdeclarativetext/font/plaintext2.qml | 9 +- .../qmlvisual/qdeclarativetext/font/richtext.qml | 43 +- .../qmlvisual/qdeclarativetext/qtbug_14865.qml | 3 +- .../qdeclarativetextedit/MultilineEdit.qml | 11 +- .../qdeclarativetextedit/cursorDelegate.qml | 6 +- .../data-X11/usingMultilineEdit.10.png | Bin 6074 -> 6055 bytes .../data-X11/usingMultilineEdit.11.png | Bin 6074 -> 6055 bytes .../data-X11/usingMultilineEdit.8.png | Bin 6072 -> 6051 bytes .../data-X11/usingMultilineEdit.9.png | Bin 6074 -> 6055 bytes .../data-X11/usingMultilineEdit.qml | 452 ++++++++++----------- .../qdeclarativetextedit/data-X11/wrap.qml | 194 ++++----- .../qmlvisual/qdeclarativetextedit/qt-669.qml | 3 +- .../qdeclarativetextedit/usingMultilineEdit.qml | 8 +- .../qmlvisual/qdeclarativetextedit/wrap.qml | 9 +- .../qmlvisual/qdeclarativetextinput/LineEdit.qml | 11 +- .../qdeclarativetextinput/cursorDelegate.qml | 6 +- .../qdeclarativetextinput/data-X11/echoMode.0.png | Bin 570 -> 580 bytes .../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 1061 -> 1073 bytes .../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 1661 -> 1672 bytes .../qdeclarativetextinput/data-X11/echoMode.qml | 180 ++++---- .../qmlvisual/qdeclarativetextinput/echoMode.qml | 9 +- .../qmlvisual/qdeclarativetextinput/hAlign.qml | 15 +- .../qdeclarativetextinput/usingLineEdit.qml | 6 +- tests/auto/declarative/qmlvisual/shared/README | 7 + .../auto/declarative/qmlvisual/shared/TestText.qml | 8 + .../declarative/qmlvisual/shared/TestTextEdit.qml | 14 + .../declarative/qmlvisual/shared/TestTextInput.qml | 14 + tests/auto/declarative/qmlvisual/shared/Vera.ttf | Bin 0 -> 65932 bytes tests/auto/declarative/qmlvisual/shared/qmldir | 3 + 41 files changed, 677 insertions(+), 611 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/shared/README create mode 100644 tests/auto/declarative/qmlvisual/shared/TestText.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/TestTextInput.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/Vera.ttf create mode 100644 tests/auto/declarative/qmlvisual/shared/qmldir diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/multilineAlign.qml index 976f0b0..a427719 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/multilineAlign.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 /*Tests both the alignments of multiline text, and that it can deal with changing them properly @@ -8,7 +9,7 @@ Item{ height: 80 property int stage: 0 onStageChanged: if(stage == 6) Qt.quit(); - Text{ + TestText{ text: "I am the very model of a modern major general." anchors.fill: parent; wrapMode: Text.WordWrap diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml index c1920db..618a65f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml @@ -1,13 +1,14 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { id: s; width: 600; height: 100; property string text: "The quick brown fox jumps over the lazy dog." - Text { + TestText { text: s.text anchors.verticalCenter: s.verticalCenter } - Text { + TestText { text: s.text anchors.baseline: s.verticalCenter } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/QTBUG-14469.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/QTBUG-14469.qml index ea3a939..aca7c2d 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/QTBUG-14469.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/QTBUG-14469.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 /* The bug was that if text was set to "" or the size didn't increase, the text didn't repaint ended up only repainting for 1, 10, 11, 12. diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png index b250b38..de216ba 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png differ 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 f3bc1db..fcaeed5 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 32 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 48 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 64 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 80 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 96 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 112 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 128 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 144 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 160 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 176 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 192 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 208 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 224 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 240 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 256 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 272 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 288 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 304 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 320 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 336 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 352 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 368 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 384 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 400 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 416 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 432 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 448 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 464 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 480 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 496 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 512 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 528 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 544 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 560 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 576 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 592 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 608 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 624 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 640 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 656 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 672 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 688 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 704 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 720 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 736 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 752 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 768 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 784 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 800 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 816 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 832 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 848 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 864 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 880 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 896 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 912 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 928 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 944 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 960 @@ -246,34 +246,34 @@ VisualTest { } Frame { msec: 976 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 } Frame { msec: 992 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 1008 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 1024 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 1040 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } Frame { msec: 1056 - hash: "9992670f23580ce63cdd3ab3fed621a1" + hash: "bdf278826a033dbb744d1fa9492c9351" } } 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 5d36d48..3871f91 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml @@ -6,71 +6,71 @@ VisualTest { } Frame { msec: 16 - hash: "a9dc5058e29f9c129087eaa013002185" + hash: "51e3a7214bf2fd98108de683ae650b05" } Frame { msec: 32 - hash: "da0d63697414c19f57235c4d133faf63" + hash: "72bd0f47e179c5356d4a0575939b6c05" } Frame { msec: 48 - hash: "e3992f5512959c061d53fc3899acec14" + hash: "9229869bf23fe10394ffb6bacc38d2b5" } Frame { msec: 64 - hash: "e225de5dc21fee719ebc43fa8838f841" + hash: "4f75c0a0b7a04c8abdf2768a819b6c14" } Frame { msec: 80 - hash: "a5673b8b7ad5a9d67e785beaaa4c0307" + hash: "514a9a762cd0356cbcecb93e73c81534" } Frame { msec: 96 - hash: "2c126bf2d794039e1380595b9c40ae2e" + hash: "68436451f6f3ee981bf8851944b82dda" } Frame { msec: 112 - hash: "f974072b4863b842b520b4c11c427f5d" + hash: "fa33b582c0890bc9852f3a6c80864988" } Frame { msec: 128 - hash: "bf06ec5a2c1c46e780cdd0d859b2becb" + hash: "f65928b270f12f2917193ba70d9388ee" } Frame { msec: 144 - hash: "3a58b1900912a5a6ace72757f3af4d1a" + hash: "755d1421a9b2bf3be9d665f5f8d6f767" } Frame { msec: 160 - hash: "3fa86df29f53e7f6f65fb6e605f5e705" + hash: "dbec63b93f3617440317f7ddc2fbd6fa" } Frame { msec: 176 - hash: "6d29c12395050b049537819cf0a65746" + hash: "1ec885da7efc3d71904c79a4a4768f27" } Frame { msec: 192 - hash: "352a390ab4e3e31b645f025e65885cfc" + hash: "a20981af2ce8e82a6c1825e438dfd815" } Frame { msec: 208 - hash: "7c3be9d325f023a356b6ed73332bc804" + hash: "3c951028229d8d6a3a0faa18f21afbe6" } Frame { msec: 224 - hash: "09dd10566eda09e0366b7bf0a8ce9e1b" + hash: "8354d4c9bd5ccb2eae46cdaf3fd337bb" } Frame { msec: 240 - hash: "6cafcba107e48f7efe2db60a14c3749d" + hash: "05880d6d76fa8dc421af4d06cbdd4448" } Frame { msec: 256 - hash: "a4b6df2874ce48ed5a17aab43f32e665" + hash: "370e33f141d0a8396b5c2bb279f9bb67" } Frame { msec: 272 - hash: "b6a3df4b704fa7e8284572b9c520b03d" + hash: "663b162ce447eee0f2194a92b463d6fe" } Frame { msec: 288 @@ -1258,66 +1258,66 @@ VisualTest { } Frame { msec: 5024 - hash: "a9dc5058e29f9c129087eaa013002185" + hash: "51e3a7214bf2fd98108de683ae650b05" } Frame { msec: 5040 - hash: "5d06ae83ab9cc218175013042922b908" + hash: "af3da99b9abc3b3440b22d4d428dcd1a" } Frame { msec: 5056 - hash: "e225de5dc21fee719ebc43fa8838f841" + hash: "4f75c0a0b7a04c8abdf2768a819b6c14" } Frame { msec: 5072 - hash: "b89bf31a945cb6c880e95bf2d2a6e944" + hash: "c73dc19d48511634717cf4e95f843a5d" } Frame { msec: 5088 - hash: "fa54db3c383bc1da121c0d3b09e942d3" + hash: "0f263ab43dde78f1280483c6287b44a2" } Frame { msec: 5104 - hash: "2c126bf2d794039e1380595b9c40ae2e" + hash: "68436451f6f3ee981bf8851944b82dda" } Frame { msec: 5120 - hash: "1e9639693e5ec1edb72e71d126c434bb" + hash: "e0ea33b011cc8aef74070e26b71bd05e" } Frame { msec: 5136 - hash: "3a58b1900912a5a6ace72757f3af4d1a" + hash: "755d1421a9b2bf3be9d665f5f8d6f767" } Frame { msec: 5152 - hash: "11a846d93430e622a9750e4e2a7b76fe" + hash: "7e20da3dab6bd290498756ac392bc052" } Frame { msec: 5168 - hash: "801d7707e86b776fe2459c42b26337f5" + hash: "babdfa14fbba8f6eb0c95334588123ce" } Frame { msec: 5184 - hash: "6d29c12395050b049537819cf0a65746" + hash: "1ec885da7efc3d71904c79a4a4768f27" } Frame { msec: 5200 - hash: "5a68af870474ffb8a694710b10f52bc7" + hash: "2159f4c9f72bca3ba98b4fd0aeb3c1ba" } Frame { msec: 5216 - hash: "09dd10566eda09e0366b7bf0a8ce9e1b" + hash: "8354d4c9bd5ccb2eae46cdaf3fd337bb" } Frame { msec: 5232 - hash: "f43b377f99f74e2cf07e419887f7ee0b" + hash: "ee95872db6f9440800bb98023764dc2a" } Frame { msec: 5248 - hash: "108287fc253d36a5ebf8582ef2a5fd57" + hash: "23197dd2bb352193b72d4445912d9c94" } Frame { msec: 5264 - hash: "a4b6df2874ce48ed5a17aab43f32e665" + hash: "370e33f141d0a8396b5c2bb279f9bb67" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml index b96ecb3..e52c609 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { width: childrenRect.width @@ -6,23 +7,23 @@ Rectangle { Column { width: 80 height: myText.height*4 - Text { + TestText { elide: "ElideLeft" text: "aaa bbb ccc ddd eee fff" width: 80 id: myText } - Text { + TestText { elide: "ElideMiddle" text: "aaa bbb ccc ddd eee fff" width: 80 } - Text { + TestText { elide: "ElideRight" text: "aaa bbb ccc ddd eee fff" width: 80 } - Text { + TestText { elide: "ElideNone" text: "aaa bbb ccc ddd eee fff" width: 80 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml index b772982..0370a73 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml @@ -1,10 +1,11 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { width: 500 height: 100 - Text { + TestText { NumberAnimation on width { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 } elide: Text.ElideRight text: 'Here is some very long text that we should truncate when sizing window' diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml index 3ef64ef..db991a2 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { width: 500 @@ -9,7 +10,7 @@ Rectangle { height: myText.height color: "white" anchors.centerIn: parent - Text { + TestText { id: myText NumberAnimation on width { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 } elide: "ElideRight" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png index 89195ae..30dc0a9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png index 6a48728..8d3c37b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml index e82d80f..3a06cf0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { id: s; width: 620; height: 600; color: "lightsteelblue" @@ -6,96 +7,96 @@ Rectangle { Column { spacing: 8 - Text { + TestText { text: s.text } - Text { + TestText { text: s.text; font.pixelSize: 18 } - Text { + TestText { text: s.text; font.pointSize: 20 } - Text { + TestText { text: s.text; color: "red"; smooth: true } - Text { + TestText { text: s.text; font.capitalization: "AllUppercase" } - Text { + TestText { text: s.text; font.underline: true } - Text { + TestText { text: s.text; font.overline: true; smooth: true } - Text { + TestText { text: s.text; font.strikeout: true } - Text { + TestText { text: s.text; font.underline: true; font.overline: true; font.strikeout: true } - Text { + TestText { text: s.text; font.letterSpacing: 2 } - Text { + TestText { text: s.text; font.underline: true; font.letterSpacing: 2; font.capitalization: "AllUppercase"; color: "blue" } - Text { + TestText { text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow" } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; height: 20 } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; height: 20 } Row{ height: childrenRect.height spacing: 4 - Text { + TestText { text: s.text; elide: Text.ElideLeft; width: 200 } - Text { + TestText { text: s.text; elide: Text.ElideMiddle; width: 200 } - Text { + TestText { text: s.text; elide: Text.ElideRight; width: 200 } } Row{ height: childrenRect.height spacing: 4 - Text{ + TestText{ text: s.text; elide: Text.ElideLeft; width: 200; wrapMode: Text.WordWrap } - Text { + TestText { text: s.text; elide: Text.ElideMiddle; width: 200; wrapMode: Text.WordWrap } - Text { + TestText { text: s.text; elide: Text.ElideRight; width: 200; wrapMode: Text.WordWrap } } Row{ height: childrenRect.height spacing: 4 - Text { + TestText { text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere } - Text { + TestText { text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.Wrap } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200 } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml index 901025a..01de1f0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { width: 400; height: 200 @@ -6,16 +7,16 @@ Rectangle { Row { spacing: 20 anchors.centerIn: parent - Text { + TestText { text: "First line\nSecond line"; wrapMode: Text.Wrap } - Text { + TestText { text: "First line\nSecond line"; width: 70 } - Text { + TestText { text: "First Second\nThird Fourth"; wrapMode: Text.Wrap; width: 50 } - Text { + TestText { text: "First line
Second line"; textFormat: Text.StyledText } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml index 7d174cc..3670479 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../../shared" 1.0 Rectangle { id: s; width: 620; height: 600; color: "lightsteelblue" @@ -6,70 +7,70 @@ Rectangle { Column { spacing: 6 - Text { + TestText { text: s.text } - Text { + TestText { text: s.text; font.pixelSize: 18 } - Text { + TestText { text: s.text; font.pointSize: 18 } - Text { + TestText { text: s.text; color: "red"; smooth: true } - Text { + TestText { text: s.text; font.capitalization: "AllUppercase" } - Text { + TestText { text: s.text; font.underline: true } - Text { + TestText { text: s.text; font.overline: true; smooth: true } - Text { + TestText { text: s.text; font.strikeout: true } - Text { + TestText { text: s.text; font.underline: true; font.overline: true; font.strikeout: true } - Text { + TestText { text: s.text; font.letterSpacing: 2 } - Text { + TestText { text: s.text; font.underline: true; font.letterSpacing: 2; font.capitalization: "AllUppercase"; color: "blue" } - Text { + TestText { text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray" } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow" } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; height: 20 } - Text { + TestText { text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; height: 20 } Row{ height: childrenRect.height; spacing: 4 - Text { + TestText { text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere } - Text { + TestText { text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.Wrap } - Text { + TestText { text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200 } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml index 07416dc..3d5fbf0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml @@ -1,9 +1,10 @@ import QtQuick 1.0 +import "../shared" 1.0 Rectangle { width: 200; height: 200 - Text { + TestText { id: label objectName: "label" text: "Hello world!" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml index fd29eb6..4273f32 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../shared" 1.0 Item { id:lineedit @@ -7,16 +8,16 @@ Item { width: 240 + 11 //Should be set manually in most cases height: textEdit.height + 11 - Rectangle{ + Rectangle { color: 'lightsteelblue' anchors.fill: parent } clip: true Component.onCompleted: textEdit.cursorPosition = 0; - TextEdit{ + TestTextEdit { id:textEdit - cursorDelegate: Item{ - Rectangle{ + cursorDelegate: Item { + Rectangle { visible: parent.parent.focus color: "#009BCE" height: 13 @@ -46,7 +47,7 @@ Item { wrapMode: TextEdit.WordWrap font.pixelSize:15 } - MouseArea{ + MouseArea { //Implements all line edit mouse handling id: mainMouseArea anchors.fill: parent; diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml index 8798a5f..1e0f71a 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml @@ -1,5 +1,7 @@ import QtQuick 1.0 - Rectangle { +import "../shared" 1.0 + +Rectangle { resources: [ Component { id: cursorA Item { id: cPage; @@ -21,7 +23,7 @@ import QtQuick 1.0 width: 400 height: 200 color: "white" - TextEdit { id: mainText + TestTextEdit { id: mainText text: "Hello World" cursorDelegate: cursorA focus: true 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 9c72d52..ae21dca 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 9c72d52..ae21dca 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 d49c2ff..5f329b6 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 9c72d52..ae21dca 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 c12094e..5a1f8de 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 5952 - hash: "eba517141a4dc94025801fabc8c5e813" + hash: "3d71f15694368397bc8f6a6a0c2c16de" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6432 - hash: "a609d3c9cb375240e66dd316af27543c" + hash: "b7eeca12627f0ca82a0e56179184b3b8" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6448 - hash: "0d376060ba0f9843ed814a8d8150d047" + hash: "abccf1571b12444328188003928a0aea" } Mouse { type: 5 @@ -3554,11 +3554,11 @@ VisualTest { } Frame { msec: 8000 - hash: "a62df700f3209668a813e765a79e7859" + hash: "236c237e3f4673d568a8cf2c3665cb49" } Frame { msec: 8016 - hash: "a62df700f3209668a813e765a79e7859" + hash: "236c237e3f4673d568a8cf2c3665cb49" } Key { type: 7 @@ -3578,11 +3578,11 @@ VisualTest { } Frame { msec: 8032 - hash: "e8928770969b82523e828e3036bbe106" + hash: "cea55dd0cd5b0c2e37808bd38c689ddf" } Frame { msec: 8048 - hash: "e8928770969b82523e828e3036bbe106" + hash: "cea55dd0cd5b0c2e37808bd38c689ddf" } Key { type: 7 @@ -3602,11 +3602,11 @@ VisualTest { } Frame { msec: 8064 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8080 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Key { type: 6 @@ -3626,31 +3626,31 @@ VisualTest { } Frame { msec: 8096 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8112 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8128 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8144 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8160 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8176 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Frame { msec: 8192 - hash: "ba0c406580cc0fa02a6b26367a290ec9" + hash: "9bf8a1a8a79230f459fcec6d21843f3f" } Key { type: 6 @@ -3662,19 +3662,19 @@ VisualTest { } Frame { msec: 8208 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8224 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8240 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8256 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Key { type: 7 @@ -3686,19 +3686,19 @@ VisualTest { } Frame { msec: 8272 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8288 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8304 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Frame { msec: 8320 - hash: "479b5ba3f5b3d38b5e9aba6b5204da03" + hash: "261d950728b1628d637e739a72c58e9f" } Key { type: 6 @@ -3710,19 +3710,19 @@ VisualTest { } Frame { msec: 8336 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8352 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8368 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8384 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Key { type: 7 @@ -3734,23 +3734,23 @@ VisualTest { } Frame { msec: 8400 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8416 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8432 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8448 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Frame { msec: 8464 - hash: "978ed05f4ea2cc7ddb06807a25883335" + hash: "aad904179a9dbda49f411b9ae3efcb53" } Key { type: 6 @@ -3762,19 +3762,19 @@ VisualTest { } Frame { msec: 8480 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8496 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8512 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8528 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Key { type: 7 @@ -3786,27 +3786,27 @@ VisualTest { } Frame { msec: 8544 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8560 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8576 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8592 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8608 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8624 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8640 @@ -3814,7 +3814,7 @@ VisualTest { } Frame { msec: 8656 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Key { type: 7 @@ -3826,139 +3826,139 @@ VisualTest { } Frame { msec: 8672 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8688 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8704 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8720 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8736 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8752 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8768 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8784 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8800 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8816 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8832 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8848 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8864 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8880 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8896 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8912 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8928 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8944 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8960 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8976 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 8992 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9008 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9024 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9040 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9056 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9072 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9088 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9104 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9120 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9136 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9152 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9168 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9184 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9200 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 2 @@ -3970,11 +3970,11 @@ VisualTest { } Frame { msec: 9216 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9232 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9248 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 5 @@ -4006,7 +4006,7 @@ VisualTest { } Frame { msec: 9264 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 5 @@ -4026,7 +4026,7 @@ VisualTest { } Frame { msec: 9280 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 3 @@ -4038,43 +4038,43 @@ VisualTest { } Frame { msec: 9296 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9312 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9328 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9344 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9360 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9376 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9392 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9408 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9424 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Frame { msec: 9440 - hash: "b65c439a091d3293352de410d28aaca1" + hash: "b5c199f82cea188d2aafa4fa09f444fc" } Mouse { type: 2 @@ -4086,27 +4086,27 @@ VisualTest { } Frame { msec: 9456 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9472 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9488 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9504 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9520 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9536 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Mouse { type: 3 @@ -4118,15 +4118,15 @@ VisualTest { } Frame { msec: 9552 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9568 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9584 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9600 @@ -4134,19 +4134,19 @@ VisualTest { } Frame { msec: 9616 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9632 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9648 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9664 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Key { type: 6 @@ -4158,111 +4158,111 @@ VisualTest { } Frame { msec: 9680 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9696 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9712 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9728 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9744 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9760 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9776 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9792 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9808 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9824 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9840 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9856 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9872 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9888 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9904 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9920 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9936 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9952 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9968 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 9984 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10000 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10016 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10032 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10048 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10064 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10080 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10096 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Key { type: 6 @@ -4274,35 +4274,35 @@ VisualTest { } Frame { msec: 10112 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10128 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10144 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10160 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10176 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10192 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10208 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10224 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Key { type: 7 @@ -4314,35 +4314,35 @@ VisualTest { } Frame { msec: 10240 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10256 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10272 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10288 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10304 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10320 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10336 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Frame { msec: 10352 - hash: "8d9ca5bff73c2c93a0db5787ca7ef76b" + hash: "ead21885244133a71e103eb9ae6b61e4" } Key { type: 6 @@ -4354,27 +4354,27 @@ VisualTest { } Frame { msec: 10368 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10384 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10400 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10416 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10432 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10448 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Key { type: 7 @@ -4386,27 +4386,27 @@ VisualTest { } Frame { msec: 10464 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10480 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10496 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10512 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10528 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10544 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10560 @@ -4414,23 +4414,23 @@ VisualTest { } Frame { msec: 10576 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10592 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10608 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10624 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10640 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Key { type: 7 @@ -4442,219 +4442,219 @@ VisualTest { } Frame { msec: 10656 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10672 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10688 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10704 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10720 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10736 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10752 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10768 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10784 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10800 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10816 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10832 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10848 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10864 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10880 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10896 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10912 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10928 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10944 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10960 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10976 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 10992 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11008 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11024 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11040 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11056 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11072 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11088 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11104 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11120 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11136 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11152 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11168 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11184 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11200 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11216 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11232 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11248 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11264 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11280 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11296 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11312 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11328 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11344 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11360 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11376 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11392 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11408 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11424 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11440 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11456 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11472 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11488 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11504 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11520 @@ -4662,26 +4662,26 @@ VisualTest { } Frame { msec: 11536 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11552 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11568 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11584 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11600 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } Frame { msec: 11616 - hash: "3d08eff16edf54f522a75df1734150df" + hash: "a6c8b66b0d3f1124a6a316209a1456ff" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml index defaf78..475aee1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml @@ -230,7 +230,7 @@ VisualTest { } Frame { msec: 528 - hash: "41fc29e728daf52d54a3acacceabab39" + hash: "36fb24a55e2cda02c3001adaa67e82a7" } Key { type: 6 @@ -450,19 +450,19 @@ VisualTest { } Frame { msec: 1024 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1040 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1056 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1072 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Key { type: 7 @@ -474,31 +474,31 @@ VisualTest { } Frame { msec: 1088 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1104 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1120 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1136 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1152 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1168 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Frame { msec: 1184 - hash: "6d8069ea1f16634ebcf94ba45041984f" + hash: "f681181b9e889f2fe0ac5ccddaa8c39f" } Key { type: 6 @@ -638,7 +638,7 @@ VisualTest { } Frame { msec: 1520 - hash: "7e63c2f83280eee33bb3c954d769e297" + hash: "a086058fa845a399a222c2571ef25442" } Key { type: 7 @@ -650,11 +650,11 @@ VisualTest { } Frame { msec: 1536 - hash: "7e63c2f83280eee33bb3c954d769e297" + hash: "a086058fa845a399a222c2571ef25442" } Frame { msec: 1552 - hash: "7e63c2f83280eee33bb3c954d769e297" + hash: "a086058fa845a399a222c2571ef25442" } Key { type: 6 @@ -842,15 +842,15 @@ VisualTest { } Frame { msec: 2016 - hash: "6e626464dfc68af86649589a23fe5368" + hash: "2ddf4c1b9ec2d5540c456e10c2af775e" } Frame { msec: 2032 - hash: "6e626464dfc68af86649589a23fe5368" + hash: "2ddf4c1b9ec2d5540c456e10c2af775e" } Frame { msec: 2048 - hash: "6e626464dfc68af86649589a23fe5368" + hash: "2ddf4c1b9ec2d5540c456e10c2af775e" } Key { type: 6 @@ -1050,11 +1050,11 @@ VisualTest { } Frame { msec: 2528 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2544 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 2560 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2576 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2592 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2608 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2624 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Frame { msec: 2640 - hash: "0a5589c5877c807b8d9540a1dd86e265" + hash: "1475ec7421f2c16f7dbb13eeb35f21c8" } Key { type: 6 @@ -1246,23 +1246,23 @@ VisualTest { } Frame { msec: 3024 - hash: "718894676b3feeff1924b9b315838551" + hash: "ab08c67bc5c8f53bba66ad48f618d9c9" } Frame { msec: 3040 - hash: "718894676b3feeff1924b9b315838551" + hash: "ab08c67bc5c8f53bba66ad48f618d9c9" } Frame { msec: 3056 - hash: "718894676b3feeff1924b9b315838551" + hash: "ab08c67bc5c8f53bba66ad48f618d9c9" } Frame { msec: 3072 - hash: "718894676b3feeff1924b9b315838551" + hash: "ab08c67bc5c8f53bba66ad48f618d9c9" } Frame { msec: 3088 - hash: "718894676b3feeff1924b9b315838551" + hash: "ab08c67bc5c8f53bba66ad48f618d9c9" } Key { type: 6 @@ -1606,7 +1606,7 @@ VisualTest { } Frame { msec: 4016 - hash: "8c949a494d7bd5f9b6e5ac5bf3baec59" + hash: "67b49fc16da9390bff9814b34659baca" } Key { type: 6 @@ -1814,11 +1814,11 @@ VisualTest { } Frame { msec: 4528 - hash: "55e236c3b51b7104cf3254a44b0f1c92" + hash: "c5ce4fc832787535e66e64c546383d28" } Frame { msec: 4544 - hash: "55e236c3b51b7104cf3254a44b0f1c92" + hash: "c5ce4fc832787535e66e64c546383d28" } Key { type: 6 @@ -2002,127 +2002,127 @@ VisualTest { } Frame { msec: 5024 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5040 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5056 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5072 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5088 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5104 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5120 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5136 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5152 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5168 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5184 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5200 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5216 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5232 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5248 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5264 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5280 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5296 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5312 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5328 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5344 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5360 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5376 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5392 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5408 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5424 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5440 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5456 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5472 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5488 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5504 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 5520 @@ -2250,131 +2250,131 @@ VisualTest { } Frame { msec: 6016 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6032 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6048 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6064 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6080 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6096 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6112 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6128 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6144 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6160 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6176 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6192 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6208 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6224 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6240 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6256 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6272 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6288 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6304 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6320 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6336 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6352 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6368 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6384 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6400 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6416 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6432 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6448 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6464 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6480 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6496 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6512 - hash: "a0208b5276f3f26500f40535017563a6" + hash: "41179a181fd4ae8bd15a259b66d90eea" } Frame { msec: 6528 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml index d7054ba..5f80234 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../shared" 1.0 Rectangle { Component { id: testableCursor @@ -10,7 +11,7 @@ Rectangle { } width:300; height:40; - TextEdit { + TestTextEdit { focus: true; cursorDelegate: testableCursor text: "Jackdaws love my big sphinx of Quartz" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml index f03e1cc..bf5e7a0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml @@ -3,12 +3,12 @@ import QtQuick 1.0 Rectangle{ width: 280 height: 140 - Column{ - MultilineEdit{ + Column { + MultilineEdit { text: 'I am the very model of a modern major general. I\'ve information vegetable, animal and mineral. I know the kings of england and I quote the fights historical - from Marathon to Waterloo in order categorical.'; width: 182; height: 60; } - Rectangle{height: 20; width: 20;}//Spacer - MultilineEdit{text: 'Hello world'} + Rectangle {height: 20; width: 20;}//Spacer + MultilineEdit {text: 'Hello world'} } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml index 4afe417..63400f1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml @@ -1,30 +1,31 @@ import QtQuick 1.0 +import "../shared" 1.0 Item { height:400 width: 200 - TextEdit { + TestTextEdit { width: 200 height: 100 wrapMode: TextEdit.WordWrap focus: true } //With QTBUG-6273 only the bottom one would be wrapped - TextEdit { + TestTextEdit { width: 200 height: 100 wrapMode: TextEdit.WordWrap text: "This is a test that text edit wraps correctly." y:100 } - TextEdit { + TestTextEdit { width: 150 height: 100 wrapMode: TextEdit.WrapAnywhere text: "This is a test that text edit wraps correctly. thisisaverylongstringwithnospaces" y:200 } - TextEdit { + TestTextEdit { width: 150 height: 100 wrapMode: TextEdit.Wrap diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml index 74c16e2..50c3cb4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml @@ -1,4 +1,5 @@ import QtQuick 1.0 +import "../shared" 1.0 Item { id:lineedit @@ -7,16 +8,16 @@ Item { width: textInp.width + 11 height: 13 + 11 - Rectangle{ + Rectangle { color: 'lightsteelblue' anchors.fill: parent } clip: true Component.onCompleted: textInp.cursorPosition = 0; - TextInput{ + TestTextInput { id:textInp - cursorDelegate: Item{ - Rectangle{ + cursorDelegate: Item { + Rectangle { visible: parent.parent.focus color: "#009BCE" height: 13 @@ -42,7 +43,7 @@ Item { horizontalAlignment: TextInput.AlignLeft font.pixelSize:15 } - MouseArea{ + MouseArea { //Implements all line edit mouse handling id: mainMouseArea anchors.fill: parent; diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml index 69dc32a..f2a34b7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml @@ -1,5 +1,7 @@ import QtQuick 1.0 - Rectangle { +import "../shared" 1.0 + +Rectangle { resources: [ Component { id: cursorA Item { id: cPage; @@ -22,7 +24,7 @@ import QtQuick 1.0 width: 400 height: 200 color: "white" - TextInput { id: mainText + TestTextInput { id: mainText text: "Hello World" cursorDelegate: cursorA focus: true 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 e7e4ad8..551a3de 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png index 07a19e2..826d99a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png index 075c4d5..727e873 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.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 31d3592..c8f1f27 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml @@ -158,7 +158,7 @@ VisualTest { } Frame { msec: 528 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Key { type: 7 @@ -170,43 +170,43 @@ VisualTest { } Frame { msec: 544 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 560 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 576 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 592 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 608 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 624 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 640 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 656 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 672 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Frame { msec: 688 - hash: "48b0300c8109a227176bd90e6b8ca682" + hash: "86f9d315291a08f35f1c431ae802ada2" } Key { type: 6 @@ -218,23 +218,23 @@ VisualTest { } Frame { msec: 704 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 720 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 736 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 752 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 768 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Key { type: 7 @@ -246,23 +246,23 @@ VisualTest { } Frame { msec: 784 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 800 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 816 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 832 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Frame { msec: 848 - hash: "7de871fbd0f87da5c31216863f6eb0ba" + hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" } Key { type: 6 @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 880 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 896 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Key { type: 7 @@ -294,15 +294,15 @@ VisualTest { } Frame { msec: 912 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 928 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 944 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Frame { msec: 960 @@ -310,7 +310,7 @@ VisualTest { } Frame { msec: 976 - hash: "2fa1f1853e1ebf127fcb42ba072bc66f" + hash: "b3504e4dbb653a7c039dcf8ab0351055" } Key { type: 6 @@ -322,11 +322,11 @@ VisualTest { } Frame { msec: 992 - hash: "7bd52cf50949b283ec40b82cf457841a" + hash: "16069bd86f3b8a896087a455e76f1059" } Frame { msec: 1008 - hash: "7bd52cf50949b283ec40b82cf457841a" + hash: "16069bd86f3b8a896087a455e76f1059" } Frame { msec: 1024 @@ -502,15 +502,15 @@ VisualTest { } Frame { msec: 1520 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1536 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1552 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1584 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1600 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1616 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1632 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Frame { msec: 1648 - hash: "7b294a04afc0567d321a28930bc43600" + hash: "80685804ddaefa46508a3cbe4cd16f59" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "00095464e3f162c2a825f7fdae21ab6f" + hash: "270f91762428ce515e0de44dea26d6ed" } Frame { msec: 1680 - hash: "00095464e3f162c2a825f7fdae21ab6f" + hash: "270f91762428ce515e0de44dea26d6ed" } Frame { msec: 1696 - hash: "00095464e3f162c2a825f7fdae21ab6f" + hash: "270f91762428ce515e0de44dea26d6ed" } Frame { msec: 1712 - hash: "00095464e3f162c2a825f7fdae21ab6f" + hash: "270f91762428ce515e0de44dea26d6ed" } Frame { msec: 1728 - hash: "00095464e3f162c2a825f7fdae21ab6f" + hash: "270f91762428ce515e0de44dea26d6ed" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Frame { msec: 1776 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Frame { msec: 1792 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Frame { msec: 1824 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Frame { msec: 1840 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Frame { msec: 1856 - hash: "c25d79796963ca42789725c6621bce01" + hash: "5ff3755b130835886503045e45700235" } Key { type: 6 @@ -638,15 +638,15 @@ VisualTest { } Frame { msec: 1872 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1888 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1904 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1920 @@ -662,23 +662,23 @@ VisualTest { } Frame { msec: 1936 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1952 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1968 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 1984 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 2000 - hash: "e876aa2aaa6ae2c3a5f048771858c21b" + hash: "deab81e7fcc4ecc31d02fccc52a4cc17" } Frame { msec: 2016 @@ -898,11 +898,11 @@ VisualTest { } Frame { msec: 2528 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2544 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Key { type: 7 @@ -914,83 +914,83 @@ VisualTest { } Frame { msec: 2560 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2576 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2592 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2608 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2624 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2640 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2656 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2672 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2688 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2704 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2720 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2736 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2752 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2768 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2784 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2800 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2816 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2832 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2848 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2864 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2880 @@ -998,35 +998,35 @@ VisualTest { } Frame { msec: 2896 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2912 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2928 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2944 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2960 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2976 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 2992 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 3008 - hash: "73ebe3eec273bac501d56451c0c0a828" + hash: "34d00f787b814ad82c025c77d6be51a2" } Frame { msec: 3024 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml index 5d11403..83ec088 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml @@ -1,10 +1,11 @@ import QtQuick 1.0 +import "../shared" 1.0 -Item{ +Item { height: 50; width: 200 - Column{ + Column { //Not an exhaustive echo mode test, that's in QLineEdit (since the functionality is in QLineControl) - TextInput{ id: main; focus: true; echoMode: TextInput.Password; passwordCharacter: '.' } - Text{ text: main.text } + TestTextInput { id: main; focus: true; echoMode: TextInput.Password; passwordCharacter: '.' } + TestText { text: main.text } } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml index cf29f7c..ad8db33 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml @@ -1,36 +1,37 @@ import QtQuick 1.0 +import "../shared" 1.0 Item{ width:600; height:300; - Column{ + Column { //Because they have auto width, these three should look the same - TextInput{ + TestTextInput { text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignLeft; } - TextInput{ + TestTextInput { text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignHCenter; } - TextInput{ + TestTextInput { text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignRight; } Rectangle{ width: 600; height: 10; color: "pink" } - TextInput{ + TestTextInput { height: 30; width: 600; text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignLeft; } - TextInput{ + TestTextInput { height: 30; width: 600; text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignHCenter; } - TextInput{ + TestTextInput { height: 30; width: 600; text: "Jackdaws love my big sphinx of quartz"; diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml index 318af0f..758717e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml @@ -3,8 +3,8 @@ import QtQuick 1.0 Rectangle{ width: 600 height: 200 - Column{ - LineEdit{text: 'Hello world'} - LineEdit{text: 'Hello underwhelmingly verbose world'; width: 80; height: 24;} + Column { + LineEdit {text: 'Hello world'} + LineEdit {text: 'Hello underwhelmingly verbose world'; width: 80; height: 24;} } } diff --git a/tests/auto/declarative/qmlvisual/shared/README b/tests/auto/declarative/qmlvisual/shared/README new file mode 100644 index 0000000..56a88ae --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/README @@ -0,0 +1,7 @@ +These components provide a standard set of what would otherwise be system dependant settings. These are +-default font +-default fontSize +-cursor blink time (unblinking cursor) + +This should probably be replaced with a Test Style/Theme once QtComponents is done. +Note that having multiple font loaders is probably quite inefficient, so don't use these for performance tests. diff --git a/tests/auto/declarative/qmlvisual/shared/TestText.qml b/tests/auto/declarative/qmlvisual/shared/TestText.qml new file mode 100644 index 0000000..be40112 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/TestText.qml @@ -0,0 +1,8 @@ +import QtQuick 1.0 +import "../shared" 1.0 + +Text{ + FontLoader { id: fixedFont; source: "Vera.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 new file mode 100644 index 0000000..fb35ae3 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml @@ -0,0 +1,14 @@ +import QtQuick 1.0 +import "../shared" 1.0 + +TextEdit { + id: edit + FontLoader { id: fixedFont; source: "Vera.ttf" } + font.family: fixedFont.name + font.pixelSize: 12 + cursorDelegate: Rectangle { + width: 1; + color: "black"; + visible: edit.cursorVisible + } +} diff --git a/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml new file mode 100644 index 0000000..8593218 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml @@ -0,0 +1,14 @@ +import QtQuick 1.0 +import "../shared" 1.0 + +TextInput { + id: inp + FontLoader { id: fixedFont; source: "Vera.ttf" } + font.family: fixedFont.name + font.pixelSize: 12 + cursorDelegate: Rectangle { + width: 1; + color: "black"; + visible: parent.cursorVisible//bug that 'inp' doesn't seem to work? + } +} diff --git a/tests/auto/declarative/qmlvisual/shared/Vera.ttf b/tests/auto/declarative/qmlvisual/shared/Vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/shared/Vera.ttf differ diff --git a/tests/auto/declarative/qmlvisual/shared/qmldir b/tests/auto/declarative/qmlvisual/shared/qmldir new file mode 100644 index 0000000..4aebb39 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmldir @@ -0,0 +1,3 @@ +TestText 1.0 TestText.qml +TestTextEdit 1.0 TestTextEdit.qml +TestTextInput 1.0 TestTextInput.qml -- cgit v0.12 From 2875e6b26c9a40ad1f5e4e214937e5a19a56432c Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 4 Nov 2010 18:09:37 +1000 Subject: Run all QML visual tests now. They all pass for me, and running them through CI will help find the unstable ones. --- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 81404ea..ce08eab 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -102,7 +102,7 @@ void tst_qmlvisual::visual_data() QTest::addColumn("testdata"); QStringList files; - if (qgetenv("QMLVISUAL_ALL") != "") + if (qgetenv("QMLVISUAL_ALL") != "0") files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR)); else { //these are newly added tests we want to try out in CI (then move to the stable list) -- cgit v0.12 From c454cbf083d9851107e958e6c2626f61065fee8b Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 5 Nov 2010 09:21:29 +1000 Subject: Update visual tests for Mac. --- .../align/data-MAC/multilineAlign.0.png | Bin 2434 -> 2388 bytes .../align/data-MAC/multilineAlign.qml | 118 +- .../baseline/data-MAC/parentanchor.qml | 62 +- .../qdeclarativetext/data-MAC/qtbug_14865.0.png | Bin 1695 -> 1640 bytes .../qdeclarativetext/data-MAC/qtbug_14865.qml | 396 +----- .../qdeclarativetext/elide/data-MAC/elide.0.png | Bin 1613 -> 1706 bytes .../qdeclarativetext/elide/data-MAC/elide.qml | 132 +- .../qdeclarativetext/elide/data-MAC/elide2.0.png | Bin 3477 -> 3564 bytes .../qdeclarativetext/elide/data-MAC/elide2.1.png | Bin 3080 -> 3271 bytes .../qdeclarativetext/elide/data-MAC/elide2.2.png | Bin 2501 -> 2549 bytes .../qdeclarativetext/elide/data-MAC/elide2.3.png | Bin 1574 -> 1574 bytes .../qdeclarativetext/elide/data-MAC/elide2.qml | 482 +++---- .../elide/data-MAC/multilength.0.png | Bin 2877 -> 2883 bytes .../elide/data-MAC/multilength.qml | 146 +- .../qdeclarativetext/font/data-MAC/plaintext.0.png | Bin 95506 -> 96247 bytes .../font/data-MAC/plaintext2.0.png | Bin 0 -> 3481 bytes .../qdeclarativetext/font/data-MAC/plaintext2.qml | 122 +- .../qdeclarativetext/font/data-MAC/richtext.0.png | Bin 121473 -> 118835 bytes .../data-MAC/cursorDelegate.0.png | Bin 3542 -> 3636 bytes .../data-MAC/cursorDelegate.1.png | Bin 3566 -> 3611 bytes .../data-MAC/cursorDelegate.2.png | Bin 3592 -> 3612 bytes .../data-MAC/cursorDelegate.3.png | Bin 3570 -> 3612 bytes .../data-MAC/cursorDelegate.4.png | Bin 3569 -> 3609 bytes .../data-MAC/cursorDelegate.qml | 648 ++++----- .../qdeclarativetextedit/data-MAC/qt-669.0.png | Bin 3293 -> 3273 bytes .../qdeclarativetextedit/data-MAC/qt-669.1.png | Bin 3298 -> 3265 bytes .../qdeclarativetextedit/data-MAC/qt-669.2.png | Bin 3290 -> 3266 bytes .../qdeclarativetextedit/data-MAC/qt-669.3.png | Bin 3295 -> 3245 bytes .../qdeclarativetextedit/data-MAC/qt-669.qml | 530 ++++---- .../data-MAC/usingMultilineEdit.0.png | Bin 4954 -> 5123 bytes .../data-MAC/usingMultilineEdit.1.png | Bin 5289 -> 5500 bytes .../data-MAC/usingMultilineEdit.10.png | Bin 8028 -> 8641 bytes .../data-MAC/usingMultilineEdit.11.png | Bin 8028 -> 8641 bytes .../data-MAC/usingMultilineEdit.2.png | Bin 5820 -> 6163 bytes .../data-MAC/usingMultilineEdit.3.png | Bin 6293 -> 6785 bytes .../data-MAC/usingMultilineEdit.4.png | Bin 6484 -> 6943 bytes .../data-MAC/usingMultilineEdit.5.png | Bin 6657 -> 7043 bytes .../data-MAC/usingMultilineEdit.6.png | Bin 7006 -> 7428 bytes .../data-MAC/usingMultilineEdit.7.png | Bin 6792 -> 6860 bytes .../data-MAC/usingMultilineEdit.8.png | Bin 7844 -> 8659 bytes .../data-MAC/usingMultilineEdit.9.png | Bin 8028 -> 8641 bytes .../data-MAC/usingMultilineEdit.qml | 1428 ++++++++++---------- .../qdeclarativetextedit/data-MAC/wrap.0.png | Bin 11729 -> 11626 bytes .../qdeclarativetextedit/data-MAC/wrap.1.png | Bin 11956 -> 11869 bytes .../qdeclarativetextedit/data-MAC/wrap.2.png | Bin 12323 -> 12264 bytes .../qdeclarativetextedit/data-MAC/wrap.3.png | Bin 12931 -> 12607 bytes .../qdeclarativetextedit/data-MAC/wrap.4.png | Bin 13447 -> 13243 bytes .../qdeclarativetextedit/data-MAC/wrap.5.png | Bin 13478 -> 13260 bytes .../qdeclarativetextedit/data-MAC/wrap.6.png | Bin 13478 -> 13260 bytes .../qdeclarativetextedit/data-MAC/wrap.qml | 844 ++++++------ .../data-MAC/cursorDelegate.0.png | Bin 3557 -> 3613 bytes .../data-MAC/cursorDelegate.1.png | Bin 4062 -> 4140 bytes .../data-MAC/cursorDelegate.2.png | Bin 3529 -> 3593 bytes .../data-MAC/cursorDelegate.3.png | Bin 3563 -> 3605 bytes .../data-MAC/cursorDelegate.4.png | Bin 3566 -> 3605 bytes .../data-MAC/cursorDelegate.qml | 610 ++++----- .../qdeclarativetextinput/data-MAC/echoMode.0.png | Bin 681 -> 703 bytes .../qdeclarativetextinput/data-MAC/echoMode.1.png | Bin 1299 -> 1360 bytes .../qdeclarativetextinput/data-MAC/echoMode.2.png | Bin 1968 -> 2031 bytes .../qdeclarativetextinput/data-MAC/echoMode.qml | 376 +++--- .../qdeclarativetextinput/data-MAC/hAlign.qml | 50 +- 61 files changed, 2776 insertions(+), 3168 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png index 5243f4a..8b6329d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml index ad7f35e..85c0cce 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 32 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 48 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 64 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 80 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 96 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 112 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 128 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 144 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 160 - hash: "5033bd624cd855ba10da39e6cb30e7d2" + hash: "75c15f88551f961727b547082216d0bb" } Frame { msec: 176 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 192 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 208 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 224 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 240 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 256 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 272 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 288 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 304 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 320 - hash: "d0d1afd7d8ff38e033cec4fa68978767" + hash: "1a58de7b864ae75e65f69461155cbfb2" } Frame { msec: 336 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 352 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 368 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 384 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 400 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 416 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 432 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 448 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 464 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 480 - hash: "26eed73af37b01ebecb4ee98ed9d67c6" + hash: "8a6b615ce522e7aa1011bc1d16193871" } Frame { msec: 496 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 512 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 528 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 544 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 560 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 576 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 592 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 608 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 624 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 640 - hash: "f046b9aaa9f1eba08386a160e2f281ca" + hash: "17141b7167d2249238c15cf751b3d8b6" } Frame { msec: 656 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 672 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 688 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 704 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 720 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 736 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 752 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 768 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 784 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 800 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 816 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 832 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 848 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 864 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 880 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 896 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 912 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 928 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 944 - hash: "52f90c22e44475fac04559164c044aee" + hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" } Frame { msec: 960 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml index 56527d1..d7428dd 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml @@ -6,126 +6,126 @@ VisualTest { } Frame { msec: 16 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 32 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 48 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 64 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 80 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 96 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 112 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 128 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 144 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 160 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 176 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 192 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 208 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 224 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 240 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 256 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 272 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 288 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 304 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 320 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 336 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 352 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 368 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 384 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 400 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 416 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 432 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 448 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 464 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 480 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } Frame { msec: 496 - hash: "01ef07707e44ea079350128454209892" + hash: "80e9ca4c4ffac9c032334a3369ef9db6" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png index a947584..7547856 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml index 940d3c1..6b9986f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 32 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 48 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 64 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 80 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 96 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 112 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 128 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 144 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 160 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 176 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 192 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 208 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 224 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 240 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 256 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 272 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 288 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 304 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 320 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 336 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 352 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 368 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 384 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 400 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 416 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 432 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 448 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 464 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 480 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 496 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 512 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 528 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 544 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 560 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 576 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 592 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 608 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 624 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 640 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 656 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 672 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 688 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 704 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 720 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 736 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 752 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 768 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 784 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 800 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 816 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 832 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 848 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 864 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 880 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 896 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 912 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 928 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 944 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 960 @@ -246,15 +246,15 @@ VisualTest { } Frame { msec: 976 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 992 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 1008 - hash: "f5b2ec4a5220eabe1186bb2fd65a7263" + hash: "35c278720fd30e14dce9cf8684dd2cd7" } Frame { msec: 1024 @@ -444,276 +444,4 @@ VisualTest { msec: 1760 hash: "eee4600ac08b458ac7ac2320e225674c" } - Frame { - msec: 1776 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1792 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1808 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1824 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1840 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1856 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1872 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1888 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1904 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1920 - image: "qtbug_14865.1.png" - } - Frame { - msec: 1936 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1952 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1968 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 1984 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2000 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2016 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2032 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2048 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2064 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2080 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2096 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2112 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2128 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2144 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2160 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2176 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2192 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2208 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2224 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2240 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2256 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2272 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2288 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2304 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2320 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2336 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2352 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2368 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2384 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2400 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2416 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2432 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2448 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2464 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2480 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2496 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2512 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2528 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2544 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2560 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2576 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2592 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2608 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2624 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2640 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2656 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2672 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2688 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2704 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2720 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2736 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2752 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2768 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2784 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2800 - hash: "eee4600ac08b458ac7ac2320e225674c" - } - Frame { - msec: 2816 - hash: "eee4600ac08b458ac7ac2320e225674c" - } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png index 91ee2e5..88e065b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml index 718375a..96144e1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 32 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 48 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 64 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 80 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 96 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 112 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 128 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 144 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 160 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 176 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 192 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 208 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 224 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 240 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 256 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 272 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 288 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 304 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 320 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 336 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 352 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 368 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 384 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 400 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 416 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 432 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 448 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 464 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 480 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 496 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 512 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 528 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 544 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 560 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 576 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 592 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 608 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 624 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 640 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 656 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 672 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 688 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 704 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 720 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 736 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 752 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 768 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 784 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 800 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 816 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 832 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 848 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 864 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 880 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 896 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 912 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 928 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 944 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 960 @@ -246,34 +246,34 @@ VisualTest { } Frame { msec: 976 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 992 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 1008 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 1024 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 1040 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } Frame { msec: 1056 - hash: "10e33a5f4c2161281d5a6b4481a17921" + hash: "7d056af7620fe8387955a1401a4f088a" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png index 0f9a0aa..4df514a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png index f3bb7b9..e752fec 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png index b2f09de..d2f8633 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png index bca63db..0162321 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml index 48a0ff4..b531942 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 32 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 48 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 64 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 80 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 96 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 112 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 128 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 144 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 160 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 176 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 192 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 208 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 224 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 240 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 256 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 272 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 288 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 304 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 320 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 336 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 352 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 368 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 384 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 400 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 416 - hash: "083c607c9b66240f445611a18f3025b3" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 432 - hash: "57993cfe25ba9e6f3dcdcea5fab6545c" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 448 - hash: "57993cfe25ba9e6f3dcdcea5fab6545c" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 464 - hash: "57993cfe25ba9e6f3dcdcea5fab6545c" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 480 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 496 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 512 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 528 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 544 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 560 - hash: "45086d8e81c178855fc1e8fd283b7157" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 576 - hash: "c859ff5a516792a614008d0d3d096060" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 592 - hash: "c859ff5a516792a614008d0d3d096060" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 608 - hash: "c859ff5a516792a614008d0d3d096060" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 624 - hash: "c859ff5a516792a614008d0d3d096060" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 640 - hash: "c859ff5a516792a614008d0d3d096060" + hash: "90a45871fcfc509e60d4ee01527cde3b" } Frame { msec: 656 - hash: "02d4eb733c7249f2c38c1768a9988739" + hash: "c73bf21c0c9946e123372c660c78e7dd" } Frame { msec: 672 - hash: "02d4eb733c7249f2c38c1768a9988739" + hash: "c73bf21c0c9946e123372c660c78e7dd" } Frame { msec: 688 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "c73bf21c0c9946e123372c660c78e7dd" } Frame { msec: 704 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "bba29f9ce1a1d7dafdfe34b0ab952658" } Frame { msec: 720 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "bba29f9ce1a1d7dafdfe34b0ab952658" } Frame { msec: 736 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "bba29f9ce1a1d7dafdfe34b0ab952658" } Frame { msec: 752 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "bba29f9ce1a1d7dafdfe34b0ab952658" } Frame { msec: 768 - hash: "f87a38e5ef6cfe9d5c131671fecb7903" + hash: "bba29f9ce1a1d7dafdfe34b0ab952658" } Frame { msec: 784 - hash: "3262cf6b60e56028056b81db17cfef61" + hash: "26f95496c4f1fa217d681a1ae79eff86" } Frame { msec: 800 - hash: "3262cf6b60e56028056b81db17cfef61" + hash: "26f95496c4f1fa217d681a1ae79eff86" } Frame { msec: 816 - hash: "3262cf6b60e56028056b81db17cfef61" + hash: "26f95496c4f1fa217d681a1ae79eff86" } Frame { msec: 832 - hash: "31c337926e645ad93699a223c7ad223e" + hash: "26f95496c4f1fa217d681a1ae79eff86" } Frame { msec: 848 - hash: "31c337926e645ad93699a223c7ad223e" + hash: "96a83eae50a073573ace90239a64d326" } Frame { msec: 864 - hash: "31c337926e645ad93699a223c7ad223e" + hash: "96a83eae50a073573ace90239a64d326" } Frame { msec: 880 - hash: "31c337926e645ad93699a223c7ad223e" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 896 - hash: "31c337926e645ad93699a223c7ad223e" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 912 - hash: "64253f08448ad6884b76271afe7831ab" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 928 - hash: "64253f08448ad6884b76271afe7831ab" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 944 - hash: "64253f08448ad6884b76271afe7831ab" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 960 @@ -246,247 +246,247 @@ VisualTest { } Frame { msec: 976 - hash: "64253f08448ad6884b76271afe7831ab" + hash: "7b15d75c611f24977f2a1b44ef9e16d8" } Frame { msec: 992 - hash: "f463cbd97856cd3cb0316cfbbc4c960f" + hash: "7b000cccb4e4cdaa53b025d235478b1c" } Frame { msec: 1008 - hash: "f463cbd97856cd3cb0316cfbbc4c960f" + hash: "7b000cccb4e4cdaa53b025d235478b1c" } Frame { msec: 1024 - hash: "06731429ea2d012364b2fd6177e4fcb1" + hash: "18366b01550fdd4a7dc7305a6289ac9b" } Frame { msec: 1040 - hash: "06731429ea2d012364b2fd6177e4fcb1" + hash: "18366b01550fdd4a7dc7305a6289ac9b" } Frame { msec: 1056 - hash: "06731429ea2d012364b2fd6177e4fcb1" + hash: "18366b01550fdd4a7dc7305a6289ac9b" } Frame { msec: 1072 - hash: "06731429ea2d012364b2fd6177e4fcb1" + hash: "18366b01550fdd4a7dc7305a6289ac9b" } Frame { msec: 1088 - hash: "06731429ea2d012364b2fd6177e4fcb1" + hash: "18366b01550fdd4a7dc7305a6289ac9b" } Frame { msec: 1104 - hash: "a3f1acd84b5fc99e8ffa3c900013ca0d" + hash: "cde86069e7f9809ef2c88cc6ea83910b" } Frame { msec: 1120 - hash: "a3f1acd84b5fc99e8ffa3c900013ca0d" + hash: "cde86069e7f9809ef2c88cc6ea83910b" } Frame { msec: 1136 - hash: "a3f1acd84b5fc99e8ffa3c900013ca0d" + hash: "cde86069e7f9809ef2c88cc6ea83910b" } Frame { msec: 1152 - hash: "2cb79791e784739b5c4a12578df47205" + hash: "cde86069e7f9809ef2c88cc6ea83910b" } Frame { msec: 1168 - hash: "2cb79791e784739b5c4a12578df47205" + hash: "b8c7416944cb741ceb4ee0e8545037b1" } Frame { msec: 1184 - hash: "2cb79791e784739b5c4a12578df47205" + hash: "b8c7416944cb741ceb4ee0e8545037b1" } Frame { msec: 1200 - hash: "c040d9e9494193164206890e8dd79508" + hash: "b8c7416944cb741ceb4ee0e8545037b1" } Frame { msec: 1216 - hash: "c040d9e9494193164206890e8dd79508" + hash: "74a03bf98bb205d7962e0fcc025c4ed3" } Frame { msec: 1232 - hash: "c040d9e9494193164206890e8dd79508" + hash: "74a03bf98bb205d7962e0fcc025c4ed3" } Frame { msec: 1248 - hash: "daaa92c4049a1ef9d290d99b0c83306e" + hash: "74a03bf98bb205d7962e0fcc025c4ed3" } Frame { msec: 1264 - hash: "daaa92c4049a1ef9d290d99b0c83306e" + hash: "74a03bf98bb205d7962e0fcc025c4ed3" } Frame { msec: 1280 - hash: "daaa92c4049a1ef9d290d99b0c83306e" + hash: "0d286d7e274868e87f7de4367b69386e" } Frame { msec: 1296 - hash: "daaa92c4049a1ef9d290d99b0c83306e" + hash: "0d286d7e274868e87f7de4367b69386e" } Frame { msec: 1312 - hash: "daaa92c4049a1ef9d290d99b0c83306e" + hash: "892e9e8feeb15bbad5f38cb354aa7290" } Frame { msec: 1328 - hash: "afedb8f328ae31f2e5d68cd917d652ff" + hash: "892e9e8feeb15bbad5f38cb354aa7290" } Frame { msec: 1344 - hash: "afedb8f328ae31f2e5d68cd917d652ff" + hash: "892e9e8feeb15bbad5f38cb354aa7290" } Frame { msec: 1360 - hash: "afedb8f328ae31f2e5d68cd917d652ff" + hash: "06d6ad94b01af5b441fd64536f7740ff" } Frame { msec: 1376 - hash: "afedb8f328ae31f2e5d68cd917d652ff" + hash: "06d6ad94b01af5b441fd64536f7740ff" } Frame { msec: 1392 - hash: "afedb8f328ae31f2e5d68cd917d652ff" + hash: "06d6ad94b01af5b441fd64536f7740ff" } Frame { msec: 1408 - hash: "1a7c95dcd5dd375a01179626d3e1bb4b" + hash: "0552844f7915835d3a35a01137d4c310" } Frame { msec: 1424 - hash: "1a7c95dcd5dd375a01179626d3e1bb4b" + hash: "0552844f7915835d3a35a01137d4c310" } Frame { msec: 1440 - hash: "1a7c95dcd5dd375a01179626d3e1bb4b" + hash: "0552844f7915835d3a35a01137d4c310" } Frame { msec: 1456 - hash: "1a7c95dcd5dd375a01179626d3e1bb4b" + hash: "0552844f7915835d3a35a01137d4c310" } Frame { msec: 1472 - hash: "1a7c95dcd5dd375a01179626d3e1bb4b" + hash: "0552844f7915835d3a35a01137d4c310" } Frame { msec: 1488 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "afdf5d4d9e49a82a395afad6b3fe4f86" } Frame { msec: 1504 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "afdf5d4d9e49a82a395afad6b3fe4f86" } Frame { msec: 1520 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "afdf5d4d9e49a82a395afad6b3fe4f86" } Frame { msec: 1536 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "afdf5d4d9e49a82a395afad6b3fe4f86" } Frame { msec: 1552 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "bb434e586d40ae0ebcb89cde55a4ca11" } Frame { msec: 1568 - hash: "79e56686d52dad27374fe45933f7e045" + hash: "bb434e586d40ae0ebcb89cde55a4ca11" } Frame { msec: 1584 - hash: "ad8f8e33731a8861016c3c9567419fff" + hash: "bb434e586d40ae0ebcb89cde55a4ca11" } Frame { msec: 1600 - hash: "ad8f8e33731a8861016c3c9567419fff" + hash: "bb434e586d40ae0ebcb89cde55a4ca11" } Frame { msec: 1616 - hash: "ad8f8e33731a8861016c3c9567419fff" + hash: "bb434e586d40ae0ebcb89cde55a4ca11" } Frame { msec: 1632 - hash: "609e9d64c3e376b37cf0833333d57a0b" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1648 - hash: "609e9d64c3e376b37cf0833333d57a0b" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1664 - hash: "609e9d64c3e376b37cf0833333d57a0b" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1680 - hash: "609e9d64c3e376b37cf0833333d57a0b" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1696 - hash: "f3a64e17c082529f753292a722a2b3e8" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1712 - hash: "f3a64e17c082529f753292a722a2b3e8" + hash: "771561a07b3eb2396231b17343da7125" } Frame { msec: 1728 - hash: "f3a64e17c082529f753292a722a2b3e8" + hash: "d3d23db79c5f2a374b267bcda8919d1e" } Frame { msec: 1744 - hash: "76627f7257d24b08a9011c806d4c8458" + hash: "d3d23db79c5f2a374b267bcda8919d1e" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 1760 - hash: "76627f7257d24b08a9011c806d4c8458" + hash: "36a40dbdbb39122d30c26643e5924548" } Frame { msec: 1776 - hash: "76627f7257d24b08a9011c806d4c8458" + hash: "36a40dbdbb39122d30c26643e5924548" } Frame { msec: 1792 - hash: "76627f7257d24b08a9011c806d4c8458" + hash: "36a40dbdbb39122d30c26643e5924548" } Frame { msec: 1808 - hash: "4275796ca36c974f6ba7ba2fc7c3d68f" + hash: "36a40dbdbb39122d30c26643e5924548" } Frame { msec: 1824 - hash: "4275796ca36c974f6ba7ba2fc7c3d68f" + hash: "36a40dbdbb39122d30c26643e5924548" } Frame { msec: 1840 - hash: "4275796ca36c974f6ba7ba2fc7c3d68f" + hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" } Frame { msec: 1856 - hash: "4275796ca36c974f6ba7ba2fc7c3d68f" + hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" } Frame { msec: 1872 - hash: "4275796ca36c974f6ba7ba2fc7c3d68f" + hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" } Frame { msec: 1888 - hash: "9005e33c220aaadb6c1b756c496140b5" + hash: "765b11a4fff9a7295440568899107159" } Frame { msec: 1904 - hash: "9005e33c220aaadb6c1b756c496140b5" + hash: "765b11a4fff9a7295440568899107159" } Frame { msec: 1920 @@ -494,239 +494,239 @@ VisualTest { } Frame { msec: 1936 - hash: "9005e33c220aaadb6c1b756c496140b5" + hash: "765b11a4fff9a7295440568899107159" } Frame { msec: 1952 - hash: "9005e33c220aaadb6c1b756c496140b5" + hash: "765b11a4fff9a7295440568899107159" } Frame { msec: 1968 - hash: "1664ce25b0e427b89e64c00668797dc1" + hash: "e2726e028d0a17a918a28d248a087d71" } Frame { msec: 1984 - hash: "1664ce25b0e427b89e64c00668797dc1" + hash: "e2726e028d0a17a918a28d248a087d71" } Frame { msec: 2000 - hash: "1664ce25b0e427b89e64c00668797dc1" + hash: "e2726e028d0a17a918a28d248a087d71" } Frame { msec: 2016 - hash: "1664ce25b0e427b89e64c00668797dc1" + hash: "e2726e028d0a17a918a28d248a087d71" } Frame { msec: 2032 - hash: "1664ce25b0e427b89e64c00668797dc1" + hash: "94243dc2a8013e86250c993103b2d789" } Frame { msec: 2048 - hash: "4421ad90c93cca320b790c0432745a5e" + hash: "94243dc2a8013e86250c993103b2d789" } Frame { msec: 2064 - hash: "4421ad90c93cca320b790c0432745a5e" + hash: "94243dc2a8013e86250c993103b2d789" } Frame { msec: 2080 - hash: "4421ad90c93cca320b790c0432745a5e" + hash: "94243dc2a8013e86250c993103b2d789" } Frame { msec: 2096 - hash: "c21285318beec99e9afd1dde46a5497b" + hash: "94243dc2a8013e86250c993103b2d789" } Frame { msec: 2112 - hash: "c21285318beec99e9afd1dde46a5497b" + hash: "d8fdababa06e1cafa9047de16d5a07b5" } Frame { msec: 2128 - hash: "c21285318beec99e9afd1dde46a5497b" + hash: "d8fdababa06e1cafa9047de16d5a07b5" } Frame { msec: 2144 - hash: "ec4f44aa4f4b7de7e597cab376c1f82f" + hash: "d8fdababa06e1cafa9047de16d5a07b5" } Frame { msec: 2160 - hash: "ec4f44aa4f4b7de7e597cab376c1f82f" + hash: "d8fdababa06e1cafa9047de16d5a07b5" } Frame { msec: 2176 - hash: "ec4f44aa4f4b7de7e597cab376c1f82f" + hash: "d8fdababa06e1cafa9047de16d5a07b5" } Frame { msec: 2192 - hash: "ad984149e44b3be55e420b1be3c0b8c3" + hash: "f31d3f99faff3289b38ec91a43108707" } Frame { msec: 2208 - hash: "ad984149e44b3be55e420b1be3c0b8c3" + hash: "f31d3f99faff3289b38ec91a43108707" } Frame { msec: 2224 - hash: "ad984149e44b3be55e420b1be3c0b8c3" + hash: "f31d3f99faff3289b38ec91a43108707" } Frame { msec: 2240 - hash: "ad984149e44b3be55e420b1be3c0b8c3" + hash: "60468f768e70c91cd28dca9479ed7738" } Frame { msec: 2256 - hash: "ad984149e44b3be55e420b1be3c0b8c3" + hash: "60468f768e70c91cd28dca9479ed7738" } Frame { msec: 2272 - hash: "cd016ce04572119cf89263091ae55b2f" + hash: "fd5e8714cdd406f5626682c15a6efa38" } Frame { msec: 2288 - hash: "cd016ce04572119cf89263091ae55b2f" + hash: "fd5e8714cdd406f5626682c15a6efa38" } Frame { msec: 2304 - hash: "e621ae81e0da861323efe03d1a6f2ac4" + hash: "fd5e8714cdd406f5626682c15a6efa38" } Frame { msec: 2320 - hash: "e621ae81e0da861323efe03d1a6f2ac4" + hash: "20f37569f7f3b374753b991b28d98e74" } Frame { msec: 2336 - hash: "e621ae81e0da861323efe03d1a6f2ac4" + hash: "20f37569f7f3b374753b991b28d98e74" } Frame { msec: 2352 - hash: "e621ae81e0da861323efe03d1a6f2ac4" + hash: "20f37569f7f3b374753b991b28d98e74" } Frame { msec: 2368 - hash: "e621ae81e0da861323efe03d1a6f2ac4" + hash: "20f37569f7f3b374753b991b28d98e74" } Frame { msec: 2384 - hash: "b9f9502b8acbd59927b78104dc39b3ea" + hash: "20f37569f7f3b374753b991b28d98e74" } Frame { msec: 2400 - hash: "b9f9502b8acbd59927b78104dc39b3ea" + hash: "8ab72206d4ba87effd44844c67ab4d53" } Frame { msec: 2416 - hash: "b9f9502b8acbd59927b78104dc39b3ea" + hash: "8ab72206d4ba87effd44844c67ab4d53" } Frame { msec: 2432 - hash: "b9f9502b8acbd59927b78104dc39b3ea" + hash: "65fccdd3a8803ec1d70a12407366fb57" } Frame { msec: 2448 - hash: "b9f9502b8acbd59927b78104dc39b3ea" + hash: "65fccdd3a8803ec1d70a12407366fb57" } Frame { msec: 2464 - hash: "69bc7470ddd917ec73a075ba16715ccf" + hash: "65fccdd3a8803ec1d70a12407366fb57" } Frame { msec: 2480 - hash: "69bc7470ddd917ec73a075ba16715ccf" + hash: "65fccdd3a8803ec1d70a12407366fb57" } Frame { msec: 2496 - hash: "69bc7470ddd917ec73a075ba16715ccf" + hash: "65fccdd3a8803ec1d70a12407366fb57" } Frame { msec: 2512 - hash: "69bc7470ddd917ec73a075ba16715ccf" + hash: "ea98cc56d2f402814d8c1b952c8bd9a0" } Frame { msec: 2528 - hash: "69bc7470ddd917ec73a075ba16715ccf" + hash: "ea98cc56d2f402814d8c1b952c8bd9a0" } Frame { msec: 2544 - hash: "9d2d1ad3db3f80ffc6fcd321a4f5adfa" + hash: "ea98cc56d2f402814d8c1b952c8bd9a0" } Frame { msec: 2560 - hash: "9d2d1ad3db3f80ffc6fcd321a4f5adfa" + hash: "ea98cc56d2f402814d8c1b952c8bd9a0" } Frame { msec: 2576 - hash: "9d2d1ad3db3f80ffc6fcd321a4f5adfa" + hash: "6dd6532db6afba17d36930bfd71abb5d" } Frame { msec: 2592 - hash: "9d2d1ad3db3f80ffc6fcd321a4f5adfa" + hash: "6dd6532db6afba17d36930bfd71abb5d" } Frame { msec: 2608 - hash: "c82742c641c411df5d9ecb4d19b7a30d" + hash: "6dd6532db6afba17d36930bfd71abb5d" } Frame { msec: 2624 - hash: "c82742c641c411df5d9ecb4d19b7a30d" + hash: "6dd6532db6afba17d36930bfd71abb5d" } Frame { msec: 2640 - hash: "c82742c641c411df5d9ecb4d19b7a30d" + hash: "6dd6532db6afba17d36930bfd71abb5d" } Frame { msec: 2656 - hash: "ae50d41ef5289fc31b5cd18462905379" + hash: "70989ac02176a37beb2cf259cd2d9770" } Frame { msec: 2672 - hash: "ae50d41ef5289fc31b5cd18462905379" + hash: "70989ac02176a37beb2cf259cd2d9770" } Frame { msec: 2688 - hash: "ae50d41ef5289fc31b5cd18462905379" + hash: "70989ac02176a37beb2cf259cd2d9770" } Frame { msec: 2704 - hash: "ae50d41ef5289fc31b5cd18462905379" + hash: "70989ac02176a37beb2cf259cd2d9770" } Frame { msec: 2720 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "1c6d8786cb42afa2af611dec5ebdcda7" } Frame { msec: 2736 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "1c6d8786cb42afa2af611dec5ebdcda7" } Frame { msec: 2752 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "3e8215d2cb61404230284ddd0041a79c" } Frame { msec: 2768 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "3e8215d2cb61404230284ddd0041a79c" } Frame { msec: 2784 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "3e8215d2cb61404230284ddd0041a79c" } Frame { msec: 2800 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "3e8215d2cb61404230284ddd0041a79c" } Frame { msec: 2816 - hash: "38d393df298826121109b6bd2d454bc0" + hash: "3e8215d2cb61404230284ddd0041a79c" } Frame { msec: 2832 - hash: "50a47e20ff34a2935b1dde36c85f7f54" + hash: "a4ed37665222950eab7fcb53dbe22bcf" } Frame { msec: 2848 - hash: "50a47e20ff34a2935b1dde36c85f7f54" + hash: "a4ed37665222950eab7fcb53dbe22bcf" } Frame { msec: 2864 - hash: "4daa350f9385217b9eef714f40b4e6d0" + hash: "a4ed37665222950eab7fcb53dbe22bcf" } Frame { msec: 2880 @@ -734,239 +734,239 @@ VisualTest { } Frame { msec: 2896 - hash: "4daa350f9385217b9eef714f40b4e6d0" + hash: "a4ed37665222950eab7fcb53dbe22bcf" } Frame { msec: 2912 - hash: "0e36ea4104aa509455555796262ea30d" + hash: "a4ed37665222950eab7fcb53dbe22bcf" } Frame { msec: 2928 - hash: "0e36ea4104aa509455555796262ea30d" + hash: "a7f26f5fbcc97f408974e4bc23fd0b70" } Frame { msec: 2944 - hash: "0e36ea4104aa509455555796262ea30d" + hash: "a7f26f5fbcc97f408974e4bc23fd0b70" } Frame { msec: 2960 - hash: "0e36ea4104aa509455555796262ea30d" + hash: "913478b8d5d05967efd1c83e80e773e2" } Frame { msec: 2976 - hash: "0e36ea4104aa509455555796262ea30d" + hash: "913478b8d5d05967efd1c83e80e773e2" } Frame { msec: 2992 - hash: "4dd59519884c4aa19834430b2b0a3040" + hash: "913478b8d5d05967efd1c83e80e773e2" } Frame { msec: 3008 - hash: "4dd59519884c4aa19834430b2b0a3040" + hash: "130749caf262b3055e7ac229b6b89548" } Frame { msec: 3024 - hash: "4dd59519884c4aa19834430b2b0a3040" + hash: "130749caf262b3055e7ac229b6b89548" } Frame { msec: 3040 - hash: "4dd59519884c4aa19834430b2b0a3040" + hash: "130749caf262b3055e7ac229b6b89548" } Frame { msec: 3056 - hash: "4dd59519884c4aa19834430b2b0a3040" + hash: "130749caf262b3055e7ac229b6b89548" } Frame { msec: 3072 - hash: "5e2e943b2ab6f798660b32e132ec6bef" + hash: "130749caf262b3055e7ac229b6b89548" } Frame { msec: 3088 - hash: "5e2e943b2ab6f798660b32e132ec6bef" + hash: "d7260d913c58065a671ff6b931bb2fb6" } Frame { msec: 3104 - hash: "5e2e943b2ab6f798660b32e132ec6bef" + hash: "d7260d913c58065a671ff6b931bb2fb6" } Frame { msec: 3120 - hash: "a64b8d6bae4b6445d5de78b126e3af63" + hash: "d7260d913c58065a671ff6b931bb2fb6" } Frame { msec: 3136 - hash: "a64b8d6bae4b6445d5de78b126e3af63" + hash: "d7260d913c58065a671ff6b931bb2fb6" } Frame { msec: 3152 - hash: "8732d4c3b6ea276079794d2c892d14a9" + hash: "9059402dce5cb1813af8f7ebbd831bca" } Frame { msec: 3168 - hash: "8732d4c3b6ea276079794d2c892d14a9" + hash: "9059402dce5cb1813af8f7ebbd831bca" } Frame { msec: 3184 - hash: "8732d4c3b6ea276079794d2c892d14a9" + hash: "9059402dce5cb1813af8f7ebbd831bca" } Frame { msec: 3200 - hash: "931f767d8c733d2262b8c73003629fd1" + hash: "80387fc8aedc0c490c689c3a1711fe9f" } Frame { msec: 3216 - hash: "931f767d8c733d2262b8c73003629fd1" + hash: "80387fc8aedc0c490c689c3a1711fe9f" } Frame { msec: 3232 - hash: "931f767d8c733d2262b8c73003629fd1" + hash: "80387fc8aedc0c490c689c3a1711fe9f" } Frame { msec: 3248 - hash: "931f767d8c733d2262b8c73003629fd1" + hash: "f461bf58cbfd345a3f4e087cfcb0e9f0" } Frame { msec: 3264 - hash: "931f767d8c733d2262b8c73003629fd1" + hash: "f461bf58cbfd345a3f4e087cfcb0e9f0" } Frame { msec: 3280 - hash: "526f7d87bdce834a8d4396df4406d4c7" + hash: "d41a792b81cb891a91f2bff6dbee3bdd" } Frame { msec: 3296 - hash: "526f7d87bdce834a8d4396df4406d4c7" + hash: "d41a792b81cb891a91f2bff6dbee3bdd" } Frame { msec: 3312 - hash: "526f7d87bdce834a8d4396df4406d4c7" + hash: "d41a792b81cb891a91f2bff6dbee3bdd" } Frame { msec: 3328 - hash: "526f7d87bdce834a8d4396df4406d4c7" + hash: "d41a792b81cb891a91f2bff6dbee3bdd" } Frame { msec: 3344 - hash: "526f7d87bdce834a8d4396df4406d4c7" + hash: "d41a792b81cb891a91f2bff6dbee3bdd" } Frame { msec: 3360 - hash: "0c9bb37ebb01a6127b60d26792cc3524" + hash: "664ac430dd416e6d1ed7e001458202cf" } Frame { msec: 3376 - hash: "0c9bb37ebb01a6127b60d26792cc3524" + hash: "664ac430dd416e6d1ed7e001458202cf" } Frame { msec: 3392 - hash: "0c9bb37ebb01a6127b60d26792cc3524" + hash: "664ac430dd416e6d1ed7e001458202cf" } Frame { msec: 3408 - hash: "04b580975c168ef07b11496a18b55582" + hash: "664ac430dd416e6d1ed7e001458202cf" } Frame { msec: 3424 - hash: "04b580975c168ef07b11496a18b55582" + hash: "664ac430dd416e6d1ed7e001458202cf" } Frame { msec: 3440 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "c7a9e47b613745858a76a57e1782b566" } Frame { msec: 3456 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "c7a9e47b613745858a76a57e1782b566" } Frame { msec: 3472 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" } Frame { msec: 3488 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" } Frame { msec: 3504 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" } Frame { msec: 3520 - hash: "c4abe8e74b0a0a61ee671b4d7047b244" + hash: "59c03ceae9b13576bd0e285234dfe264" } Frame { msec: 3536 - hash: "179c36c797dfd91fdc6bd373f5331cbb" + hash: "59c03ceae9b13576bd0e285234dfe264" } Frame { msec: 3552 - hash: "179c36c797dfd91fdc6bd373f5331cbb" + hash: "59c03ceae9b13576bd0e285234dfe264" } Frame { msec: 3568 - hash: "179c36c797dfd91fdc6bd373f5331cbb" + hash: "59c03ceae9b13576bd0e285234dfe264" } Frame { msec: 3584 - hash: "179c36c797dfd91fdc6bd373f5331cbb" + hash: "59c03ceae9b13576bd0e285234dfe264" } Frame { msec: 3600 - hash: "179c36c797dfd91fdc6bd373f5331cbb" + hash: "b883d12eea2ec596cb6ee81f2d1db35f" } Frame { msec: 3616 - hash: "49b9d5168c3fa5e09953251ffb509743" + hash: "b883d12eea2ec596cb6ee81f2d1db35f" } Frame { msec: 3632 - hash: "49b9d5168c3fa5e09953251ffb509743" + hash: "b883d12eea2ec596cb6ee81f2d1db35f" } Frame { msec: 3648 - hash: "49b9d5168c3fa5e09953251ffb509743" + hash: "b883d12eea2ec596cb6ee81f2d1db35f" } Frame { msec: 3664 - hash: "49b9d5168c3fa5e09953251ffb509743" + hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" } Frame { msec: 3680 - hash: "49b9d5168c3fa5e09953251ffb509743" + hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" } Frame { msec: 3696 - hash: "da74be0adb46300cac7ba9bfe3660c33" + hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" } Frame { msec: 3712 - hash: "da74be0adb46300cac7ba9bfe3660c33" + hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" } Frame { msec: 3728 - hash: "9276749ab90c7da1eb62c6277613f75a" + hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" } Frame { msec: 3744 - hash: "9276749ab90c7da1eb62c6277613f75a" + hash: "ee357c3850d0f328db859e7b790bed83" } Frame { msec: 3760 - hash: "b85b7f367d4da5bd01fe87a292a356fd" + hash: "ee357c3850d0f328db859e7b790bed83" } Frame { msec: 3776 - hash: "b85b7f367d4da5bd01fe87a292a356fd" + hash: "f706095272153c1e9fc4a4825ba54d91" } Frame { msec: 3792 - hash: "b85b7f367d4da5bd01fe87a292a356fd" + hash: "f706095272153c1e9fc4a4825ba54d91" } Frame { msec: 3808 - hash: "b85b7f367d4da5bd01fe87a292a356fd" + hash: "34f4d03164469f99bb7bcb365041cf8e" } Frame { msec: 3824 - hash: "b85b7f367d4da5bd01fe87a292a356fd" + hash: "34f4d03164469f99bb7bcb365041cf8e" } Frame { msec: 3840 @@ -974,18 +974,18 @@ VisualTest { } Frame { msec: 3856 - hash: "e871d5f9d6437154ef85a60fe5a6a08e" + hash: "34f4d03164469f99bb7bcb365041cf8e" } Frame { msec: 3872 - hash: "e871d5f9d6437154ef85a60fe5a6a08e" + hash: "34f4d03164469f99bb7bcb365041cf8e" } Frame { msec: 3888 - hash: "f66f5d470e913f4bec6c8982702b8a60" + hash: "97cb5f52e1a5e82a15542b7e5f772fba" } Frame { msec: 3904 - hash: "f66f5d470e913f4bec6c8982702b8a60" + hash: "97cb5f52e1a5e82a15542b7e5f772fba" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png index 944208b..8caaf5f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml index e76ad11..30df3fa 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "fa4edc25cc530be81c5c18c089c76643" + hash: "2e258ad7cb0a2cd7c6c47a0b0a9563c1" } Frame { msec: 32 - hash: "d543f734101d89c6d4e4a5992bd34cb3" + hash: "d818e0f4f1011a2a8f1d0d803fa18bc0" } Frame { msec: 48 - hash: "fc96f61ab3f8235d96c815f8876728f5" + hash: "44b37be97bbd1f0e26d81f76d9643e51" } Frame { msec: 64 - hash: "0bdeb73a4cfbe216ca795756baa353c8" + hash: "3079a5cf6b8277ae3e1b29ae09d04adc" } Frame { msec: 80 - hash: "4451049db7f7d0b62325af6d27073f16" + hash: "ba899e6f18abb7105f915cef4e60f1e1" } Frame { msec: 96 - hash: "ef51f1424db831f962960e468b547cc5" + hash: "6d2d2b3dc8afa60e32a39449ba90f78d" } Frame { msec: 112 - hash: "c79ffb52d5aa11e2ee99e9db57c58c3e" + hash: "965af350a8fc20c7bcffb370802bc9d9" } Frame { msec: 128 - hash: "3827b0ca877b214ceffdc7444f9eae14" + hash: "8e088db1ff0eb9f5c28268dee929928c" } Frame { msec: 144 - hash: "8e375f05606f04f81c2ff0551ce7a290" + hash: "a0ba6c6bd1e491778294346eeabd8138" } Frame { msec: 160 - hash: "8d48743f9d3c02cdb342c57b080ab52a" + hash: "068a018a5c017cb76ebf3721e0acdb35" } Frame { msec: 176 - hash: "a8d1cae0e817ca059a73594f35eeccaf" + hash: "efa65cae0a4d027c2ec508deecef8aa5" } Frame { msec: 192 - hash: "71d024907815100b5ea74e072e167384" + hash: "9c224e97aa56c6b203a48fb689d72c9a" } Frame { msec: 208 - hash: "8f294501a7d0dff60233c922161f0b8d" + hash: "4f78af1e82a2dd46bab2d237d4f574e5" } Frame { msec: 224 - hash: "303deae49dd99baba31af8915dd43d4d" + hash: "7d022c13e3ef07ca0b6618ae8865dbf1" } Frame { msec: 240 - hash: "41f34af1ca4417e546d40057727a24b8" + hash: "1dc2ecf6cb92cd7d9e467de0049a8598" } Frame { msec: 256 - hash: "baf5102132a01cb44925f7fc1532f8fb" + hash: "262174926ac657c3cd788e2383b5842b" } Frame { msec: 272 - hash: "559c5e92b2cc8f20c2289bdabc7d2a3c" + hash: "984c40aaa927f9e9e73ad228f057d3d9" } Frame { msec: 288 - hash: "39a50d44ae47e6c358d6ebaa2234cbfb" + hash: "0c74101beaeb0a59c1e6b1bf751ca71d" } Frame { msec: 304 - hash: "4bdfe9e04c2ee21a584dc7612603fe62" + hash: "1c2dd6a6675014255e83c2ae734d717b" } Frame { msec: 320 - hash: "e3ff2c98c9309964ccc612c4499817ff" + hash: "f6ac3e9e82a9a710f500f8053b6030ac" } Frame { msec: 336 - hash: "f3509a8a9fe255e30e1b23ca36803169" + hash: "9676fdc060e5784e96534a962992c024" } Frame { msec: 352 - hash: "644629a42f8a2c8dc1f84e274e25df52" + hash: "c46634183e4bde82419bf757bd674a72" } Frame { msec: 368 - hash: "e169e2e67b0ebffc2181463a1e155e5c" + hash: "d04d082f4a1602a308da7f373cbb4094" } Frame { msec: 384 - hash: "74ccb97fe629c48211543e885930f18e" + hash: "a4178c9ffbb74f3f221fc63bee26ca35" } Frame { msec: 400 - hash: "14d97918485475971a832002a333722d" + hash: "0667b13789a501995b2846f7d93fb973" } Frame { msec: 416 - hash: "4e768d02555701df2109d07259228b05" + hash: "fda46bf0beecbb4326b2fc6f6926f0a7" } Frame { msec: 432 - hash: "ceeeeffb00e1f74ace1a11832d183c81" + hash: "85cbdea027d76dee1dad376679a40a22" } Frame { msec: 448 - hash: "3e6660aff9dfd72e5bd7e67d547af8b5" + hash: "0fd56200749ea5882e1bd714e9803d44" } Frame { msec: 464 - hash: "991a782f939dbfe96b316254177f34ad" + hash: "10bf5c477f64f442990716b7eec8fd70" } Frame { msec: 480 - hash: "ce4adfec222428d3fd7dd6069c69674c" + hash: "7cbd8ba3f09c3d00051cd33006381afb" } Frame { msec: 496 - hash: "27d658710bdeb0395052291bb736fdac" + hash: "dca10161836025808cddce9fd93f2412" } Frame { msec: 512 - hash: "a448c7c9fc2b4cf62f57ced461e39a05" + hash: "b949ec6303ccaafc203066c7f9b33ef2" } Frame { msec: 528 - hash: "0e1fd2a517db3a3fafb2840bbe550592" + hash: "853c521bad75c08c0dfe3a00bed01136" } Frame { msec: 544 - hash: "2ff7fe0c183fddc88d0daaabb866d78b" + hash: "dd76c440dc8cfcb7305409483d21d65d" } Frame { msec: 560 - hash: "73c952ed17daaf19755728185d999f96" + hash: "c9b70db4b94e4b0cc855102f43b8e731" } Frame { msec: 576 - hash: "85e9928b19d66b8ab1ee6b10d8b2b401" + hash: "d196057b8aa1e11ec9cf11032b57ca03" } Frame { msec: 592 - hash: "0c6fa7c70f98d53f2f0425e79083dc2c" + hash: "0fae715746a8a340a8f3c4428cf96783" } Frame { msec: 608 - hash: "589813b70ea86dd5ebe47ccf2121b5a8" + hash: "dd2e89d00ce85b167fbc822fedbfb449" } Frame { msec: 624 - hash: "7b94db2fd4f35fda4183a4351581a931" + hash: "a5228adf745f580364eafcbbdd994178" } Frame { msec: 640 - hash: "5769822d37ed1e88aacbbaaddbd7520a" + hash: "f750f588ee00805bc3757940f95de9ae" } Frame { msec: 656 - hash: "36ab6549d745c1d0e7a7b47b9d1f6887" + hash: "55a79fefc2bf6d42b442e68150e3a9bc" } Frame { msec: 672 - hash: "d130cecb02cdacc0cdbcce80e492d21b" + hash: "7b932e7585e66cc7cd31f858ce78a6e1" } Frame { msec: 688 - hash: "d1395dbf450e90c4f18c872cd50fca8f" + hash: "10f204c59a5bff0c49dfc7691c35cef8" } Frame { msec: 704 - hash: "7415bda155a9287ba22eac9c0548f10e" + hash: "cf901c80729eb0b83b46777e727d43e2" } Frame { msec: 720 - hash: "b65b886a632b042c00317a4013071f6c" + hash: "f6bf6e11ef6a71d7e746fae1d0a44531" } Frame { msec: 736 - hash: "cf4289cd85cb18bbf1a677008d8f1f0a" + hash: "4a8795196ece8c0ef18319008dbc0f2f" } Frame { msec: 752 - hash: "97a6e76519c522854ec88cc9e40165da" + hash: "44d32f0b5377ad3b08928413f20e95e1" } Frame { msec: 768 - hash: "bb80a571507cdc994f79ef05b0ad3b68" + hash: "9e0dd160a465573cbac831a14e36ba6d" } Frame { msec: 784 - hash: "823d647182b73e0f57ff7aca373160f1" + hash: "fb2e2522cee569632d9682aa04e7ca08" } Frame { msec: 800 - hash: "29b649d6cc3510a904561050bea9aa5b" + hash: "71b0e8d7671cee10f4f71a80abcde7ec" } Frame { msec: 816 - hash: "195089eb803c1eef039bac097e446ae6" + hash: "4affee92d320d6eca9995ddd8989627f" } Frame { msec: 832 - hash: "eb5d4b8a47cec6940c5c5019e1ca2fae" + hash: "b3e5e26a34cd491d3cd23f4e611266e2" } Frame { msec: 848 - hash: "e8aebb115dba21f631ad6bce87615fd3" + hash: "aa185efe8d0c4c61d4df55266830cfd8" } Frame { msec: 864 - hash: "15c9982c4c71542788e563db6e069fd1" + hash: "19c01ead1135f84b4b3a32583815fd10" } Frame { msec: 880 - hash: "8124924f33282195f0a04cb178a332b1" + hash: "a231a722225c26ff764f16570d1e6beb" } Frame { msec: 896 - hash: "0134d4df0b3b524107baa4068c64af7f" + hash: "466fce12d10bd4b714d4ead14d1c5839" } Frame { msec: 912 - hash: "bd3015b94540bafebfc9a7190b0e3d6c" + hash: "158650554c8467ed7d93c3c11177e041" } Frame { msec: 928 - hash: "3edcdf689225edcba379775c86390609" + hash: "ac16910bc816ca6c76a78160dda8380d" } Frame { msec: 944 - hash: "407d4d439efec4cb07c80a5bc6638b51" + hash: "23ac6eeb0c9bd48dbc844b1263a18cbb" } Frame { msec: 960 @@ -246,58 +246,58 @@ VisualTest { } Frame { msec: 976 - hash: "7b58d2d0726bb994d9e651411d76cbe4" + hash: "3da0b9d963113cfb58152bac1c757065" } Frame { msec: 992 - hash: "15801c5e1e470c8c45c24debfb9b478b" + hash: "e1a33345ee1372069d9282406f1e5605" } Frame { msec: 1008 - hash: "e257158a1da8908df7522bede4e9c4d9" + hash: "da872c570bccf17e88ac7db1d6d076ae" } Frame { msec: 1024 - hash: "3cb21bef1761c2f70b880b54ca9234fc" + hash: "6feea54c6a7f9895001efeff177f9be9" } Frame { msec: 1040 - hash: "b5effa369f0ab095f4345e2b9f6caa5f" + hash: "09049b33ca46a2fc2d06855e29ae66bf" } Frame { msec: 1056 - hash: "aaafb43e6290a9e7b351dd7c13b8aaaf" + hash: "cd96d789f57ac1d425942416337174f1" } Frame { msec: 1072 - hash: "8a4b622539868188f40f8c7fe75c6ddf" + hash: "0a763dd626e27ad14963aecfb8d7673c" } Frame { msec: 1088 - hash: "365c2f7c0d1c718cf326864c3ba75d2e" + hash: "3d81f68bb7aac95b66b0cd0defbb3657" } Frame { msec: 1104 - hash: "bac17384d4f375652bbc574459554835" + hash: "469b862006f99dfefcca803bc49287e3" } Frame { msec: 1120 - hash: "6bf6917ee323a05824bd6d071459d0b2" + hash: "c3f698102bd46231430ab9e8029b8192" } Frame { msec: 1136 - hash: "7aee8af3ef6b6592011b29281fb0e545" + hash: "421a9b4848a59281aea73c08a7219a33" } Frame { msec: 1152 - hash: "5351b508cbd2e0352f230d211b864c4f" + hash: "0066eaa302678a4be35dca0c3ed33b1c" } Frame { msec: 1168 - hash: "5a051f26ba6287707dbff8422d1eb9f3" + hash: "4cceb05bfeb231189b66f1fbdfaeccd3" } Frame { msec: 1184 - hash: "67611596f75fe97b13a9cf0dc0313727" + hash: "ccf229cdd6fde7ef663791d27a008bee" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png index 22863cf..cd436b5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png new file mode 100644 index 0000000..e47b479 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml index 1a8af0e..f6cddc4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml @@ -6,126 +6,6 @@ VisualTest { } Frame { msec: 16 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 32 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 48 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 64 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 80 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 96 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 112 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 128 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 144 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 160 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 176 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 192 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 208 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 224 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 240 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 256 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 272 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 288 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 304 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 320 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 336 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 352 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 368 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 384 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 400 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 416 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 432 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Key { - type: 6 - key: 16777249 - modifiers: 67108864 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 448 - hash: "c68e50ef84647962481121e2eb1ba4d4" - } - Frame { - msec: 464 - hash: "c68e50ef84647962481121e2eb1ba4d4" + image: "plaintext2.0.png" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png index aac7c8d..ba833a2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png index 3f2c403..f41c165 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png index e94c97b..539e4df 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png index 847f8a5..47ceaac 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png index 9002e80..e24a453 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png index 0a399c8..ecf8335 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml index f714adc..ff5db41 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml @@ -6,87 +6,87 @@ VisualTest { } Frame { msec: 16 - hash: "fd83046af94eac26d394a5da986e734c" + hash: "c1bb09480464b7813bc10b0093d14745" } Frame { msec: 32 - hash: "c9bf546976fc17de9ea9e877f4978f02" + hash: "9d0e449506ce93052216b7a952af3dea" } Frame { msec: 48 - hash: "c711fd5d0c3900494493f8309b79ad0c" + hash: "52641f9d6dfba8bf2b94aa37ade140d1" } Frame { msec: 64 - hash: "b297d098f02fbbeac830b20b0a5194c5" + hash: "7610775f69a461d5487e8bc3db6b6e1f" } Frame { msec: 80 - hash: "b5e956f236ba52cb673af22417d1aabc" + hash: "afe0c3fdcb498f1f6b877c5d808b2555" } Frame { msec: 96 - hash: "e8cd9511f073ff40a6645ad6aa2b5bee" + hash: "97dabf3984492d2f868b36c3e7bfce50" } Frame { msec: 112 - hash: "315734f8f38efbc810ca2e65bd752ddd" + hash: "869624c2ae63b0a447401a955a6fefb1" } Frame { msec: 128 - hash: "fa7d20c99cb8c20494b558ce8ef860a2" + hash: "7031966f014d4acd5b00c46c89f61403" } Frame { msec: 144 - hash: "56cc00965e12254e0133fe1d914fffb2" + hash: "bd5395e7e0aa0d50cb30504f9961c954" } Frame { msec: 160 - hash: "690aa50862a887edcc9392d1c3ca0424" + hash: "a7142c3c1eb9c934e0b258c163fcdfec" } Frame { msec: 176 - hash: "c3df3735586ed103d137d4902d7a1cc3" + hash: "373c57edb812db59f40710305d80e9e9" } Frame { msec: 192 - hash: "0a2c07dc17922651d2abd6400fff6e43" + hash: "78b16507899c3c8de04b55389ea0ad49" } Frame { msec: 208 - hash: "8004e4ab3ed02f68f6f5f7f5fb9fe6c6" + hash: "b0fd95dc2ac09a1cbd67ad0f86682666" } Frame { msec: 224 - hash: "7937850b86f3611ee1d75da9deb7420d" + hash: "5f073a4a89413b6a6c5d6ff52717bb2f" } Frame { msec: 240 - hash: "ecd42368bf2a9058185b9b25b659f4c6" + hash: "82e61a4d3f58ee5104893e254a77f13e" } Frame { msec: 256 - hash: "e545c6ba42edd1e6a055b48f162315ab" + hash: "a8fe05178e6339454d57575692fa3df3" } Frame { msec: 272 - hash: "f8b28cd90fe0c4aa90e8a69d2d9cdce7" + hash: "192f80add5f612b07dcb8d69f2161648" } Frame { msec: 288 - hash: "49de66674e8f38f925f3505c64201076" + hash: "cfd85885f59ea80b0b0152446a829fec" } Frame { msec: 304 - hash: "b33880917cae07d038620065ec2c1d1c" + hash: "a7295dcc92f80a5f343bf05076a03748" } Frame { msec: 320 - hash: "97c8af8dc7e5372a3a0f5bed0050127e" + hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" } Frame { msec: 336 - hash: "b0236b8c44398cb9f97324f6ca9ce5c4" + hash: "419c538908d0226ff4485f1094eaa08e" } Key { type: 6 @@ -98,27 +98,27 @@ VisualTest { } Frame { msec: 352 - hash: "2695b45a1ea89518d236ef3b8dccd89e" + hash: "8afe64448d42419f97ca207487b3b0f8" } Frame { msec: 368 - hash: "61370b1d04626facfd243176cb4bb79b" + hash: "86091218d2d066d8f95a460426266369" } Frame { msec: 384 - hash: "53c53e501469ca0ef0f0325a13aa4aa4" + hash: "fc45978cac92b6cdeeecc2dd4c29aa53" } Frame { msec: 400 - hash: "c56717a79ccffe756c5423bc5e44a53f" + hash: "03a90ae5cbe68cc210e303c78a14e065" } Frame { msec: 416 - hash: "e5ec3e6d4a7a527e8f2c0afa5fd66c4b" + hash: "15603a997aa02afb688aa74cd930f3b4" } Frame { msec: 432 - hash: "4ccb9af28572e13f961f2057eb98482d" + hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" } Key { type: 6 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 448 - hash: "0b8ce455fd40c3cd74fb05d4b603cceb" + hash: "4dbdc16538cbbf1a87c6a54e09e02b16" } Frame { msec: 464 - hash: "f5c3754201dbb6f4ca4f4c1611036c5a" + hash: "2011ee59d2ec4bb0ae0d63727f091648" } Frame { msec: 480 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 496 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Key { type: 6 @@ -154,35 +154,35 @@ VisualTest { } Frame { msec: 512 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 528 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 544 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 560 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 576 - hash: "9e887b7206f31bbb95573ea4ff157579" + hash: "b4205f141a7a6b646cf641ba922d588b" } Frame { msec: 592 - hash: "0d66c3a6c2df2a2ffe95901e55a5f945" + hash: "94c3adf5da700bb63ed6eaf0adf8d037" } Frame { msec: 608 - hash: "af497d287a3cc1637da43f3cad97a479" + hash: "62c4757a2e26341655e27417f85ba6d8" } Frame { msec: 624 - hash: "e7c4f22fcc84e1fdf09191b3ae8529fa" + hash: "9de2ce48334b088c0a0960a581f43a36" } Key { type: 7 @@ -194,15 +194,15 @@ VisualTest { } Frame { msec: 640 - hash: "ec6b2062c0dc274febc63aa3a2313299" + hash: "9ca827d4812521d1590ca6e7117bd788" } Frame { msec: 656 - hash: "de8e8c97aef11ee03bec315fc82a46f8" + hash: "66f65cd7215ea89e60d8f60337fffe97" } Frame { msec: 672 - hash: "2f9e1a13c276282fd70b3242ec136b22" + hash: "05caae5e0d092c4d0595286aa4baa6a0" } Key { type: 6 @@ -214,31 +214,31 @@ VisualTest { } Frame { msec: 688 - hash: "60e390b7bb10dc756c83d5d52c7832f7" + hash: "2282153f3ae493aa6ad5377b12d88043" } Frame { msec: 704 - hash: "76bf44fbfcac0c8a6615ef4ba67ee91d" + hash: "aee2503a5d4ec61795b0486da5c53867" } Frame { msec: 720 - hash: "614e3712c8b91bcbadaedca209fc80dc" + hash: "f564e1ae90bc6b1ea4bc84f1729eb487" } Frame { msec: 736 - hash: "eb2204890d51b1112ea79f37768bb74e" + hash: "f5c70adef5725a0574b63dd5ab7d7b12" } Frame { msec: 752 - hash: "d5b0d7d19ae4d9df059002e619726266" + hash: "74ed3230417c69b0dc82ce9cfe4b6cd0" } Frame { msec: 768 - hash: "9bd5a7fde4e26a5913c41c61175a2fba" + hash: "374270279bcc00167d2b63bf9a658785" } Frame { msec: 784 - hash: "533e6355f554cfc324f90c70484632ab" + hash: "68445a2b5470e44baf7af95efc20ba33" } Key { type: 7 @@ -250,43 +250,43 @@ VisualTest { } Frame { msec: 800 - hash: "bf05da75483bdc6c4945c1c3a4f8b72a" + hash: "5add6c9527edf6bbdb3a79b8a524db70" } Frame { msec: 816 - hash: "9b7468ba9c2d9e354d15f60ca7ecf6b6" + hash: "01a96c8407fa2c0f9e7a822249ac9adc" } Frame { msec: 832 - hash: "5d57dbc8d8996c2275da30a6f22ea37f" + hash: "6b9af295d8f2fb5ba8d9c234596d0a88" } Frame { msec: 848 - hash: "3efa002ab3b856b0b8d4849b8bb6e567" + hash: "3837442e90c2a1534e21d21bfc3b46e1" } Frame { msec: 864 - hash: "84471ddf06c2c90a17bbef9d634ffabc" + hash: "afd7d2494dae8e7ef40a165ccc627313" } Frame { msec: 880 - hash: "cf8460f68815510416dc1cd86dd80c19" + hash: "6e7058d540b26d3c5f15804f2f93b835" } Frame { msec: 896 - hash: "7e1e02e0795e695a423ee3518c9e8e8f" + hash: "ffa489a15db741d8b835d998336bc1b3" } Frame { msec: 912 - hash: "ca5ea92767f31f7fb7e04894edadb73b" + hash: "5a0308d1d2a6a36e16ddb312294fcbf8" } Frame { msec: 928 - hash: "616e57b513b4e950803c49584de106bd" + hash: "bd56ed24908c7e8ec4e5ebc75a19ca86" } Frame { msec: 944 - hash: "718badb44982d10fe92b646aa5dc3d96" + hash: "7bd56b12087226100da27776f8943427" } Frame { msec: 960 @@ -294,19 +294,19 @@ VisualTest { } Frame { msec: 976 - hash: "4acc383cecec9d65dafa3b75b2711577" + hash: "f48a56350bba266c2f19deb46d39e174" } Frame { msec: 992 - hash: "9e26dd446fe8ed2b8a57888bc7f2f643" + hash: "9587bb118f2eb2bf8bb3cfc40ed18310" } Frame { msec: 1008 - hash: "369f454d8f387320423f2b2e568d6ad6" + hash: "0f9e9622427ebaf85369b3013ae9aaf0" } Frame { msec: 1024 - hash: "369f454d8f387320423f2b2e568d6ad6" + hash: "0f9e9622427ebaf85369b3013ae9aaf0" } Key { type: 7 @@ -318,39 +318,39 @@ VisualTest { } Frame { msec: 1040 - hash: "9e26dd446fe8ed2b8a57888bc7f2f643" + hash: "9587bb118f2eb2bf8bb3cfc40ed18310" } Frame { msec: 1056 - hash: "4acc383cecec9d65dafa3b75b2711577" + hash: "f48a56350bba266c2f19deb46d39e174" } Frame { msec: 1072 - hash: "2909eabaad28f76c37c780d0e0d9e357" + hash: "8234f16d07e76aeedb6ca14d622453cb" } Frame { msec: 1088 - hash: "718badb44982d10fe92b646aa5dc3d96" + hash: "7bd56b12087226100da27776f8943427" } Frame { msec: 1104 - hash: "616e57b513b4e950803c49584de106bd" + hash: "bd56ed24908c7e8ec4e5ebc75a19ca86" } Frame { msec: 1120 - hash: "ca5ea92767f31f7fb7e04894edadb73b" + hash: "5a0308d1d2a6a36e16ddb312294fcbf8" } Frame { msec: 1136 - hash: "7e1e02e0795e695a423ee3518c9e8e8f" + hash: "ffa489a15db741d8b835d998336bc1b3" } Frame { msec: 1152 - hash: "cf8460f68815510416dc1cd86dd80c19" + hash: "6e7058d540b26d3c5f15804f2f93b835" } Frame { msec: 1168 - hash: "84471ddf06c2c90a17bbef9d634ffabc" + hash: "afd7d2494dae8e7ef40a165ccc627313" } Key { type: 6 @@ -362,31 +362,31 @@ VisualTest { } Frame { msec: 1184 - hash: "0e4120f723b1b1d879065f0324ba18fa" + hash: "1d5c9458d568df773dbff4e333e14de0" } Frame { msec: 1200 - hash: "2a8c575dbe68797c8a909df9f1166ff8" + hash: "8eef242d89b7e2eff7678030f9fd808e" } Frame { msec: 1216 - hash: "e26abb9311a2b25ed32efb0da41a4d53" + hash: "97dc6ebbf64a19f5026c02ea4c79d63b" } Frame { msec: 1232 - hash: "d35ae7b04e8ddf1962a20f8593c9c18c" + hash: "52d2135428c3c2bf85f0fa7c2ba01a25" } Frame { msec: 1248 - hash: "afbbcee5ea4c854aebb7ba56856cf9c8" + hash: "c713bd1d1ab2df81292020e6e822546c" } Frame { msec: 1264 - hash: "2d97ae4f3657617d4f4df55090c2d0e1" + hash: "0c61ff34510168e324c53786720dd953" } Frame { msec: 1280 - hash: "dc024030252b263dc7dd3c05580d7ec6" + hash: "ba1488f2d9d4482cdf41c40af7642030" } Key { type: 7 @@ -398,95 +398,95 @@ VisualTest { } Frame { msec: 1296 - hash: "c9072651fd565ed8c6d69a258e464fca" + hash: "91d2da369579bb72641d4e7e7cd696f5" } Frame { msec: 1312 - hash: "bb6a90fd1cb94ed4b590c9ae65d31f86" + hash: "1cf1d30d6def868a60f434fe84c23c47" } Frame { msec: 1328 - hash: "d3e5054c8b0a25adb9bd0fe78bd72153" + hash: "ba5b3005af3c44caaf7272cbb56e60da" } Frame { msec: 1344 - hash: "158e31266eae1718958d37d2096b32af" + hash: "116ab7576b5e45e6009920854ff87f39" } Frame { msec: 1360 - hash: "6986bbfaedae3838de7a92f911d1e4d1" + hash: "294c76d6f63c230af666b0b86e0c9844" } Frame { msec: 1376 - hash: "8ab83b3b3038150036d6d6135d6e2d8d" + hash: "c721a5b17b1eb4a063fa3b727d13ba62" } Frame { msec: 1392 - hash: "6749a62f9d9eadc33e2d109c140bfdde" + hash: "a98bd750b67a0ef8831c9c66a0b06a28" } Frame { msec: 1408 - hash: "7519758a28f49b3a669f6676a1b47253" + hash: "7739509b0f5e62207ba62262d8822388" } Frame { msec: 1424 - hash: "a8470fa7ddf69b4f86c5933f85256684" + hash: "62d70a7e3ce290c52d37090bf899377c" } Frame { msec: 1440 - hash: "1f2f34e0dfeb38bd568915718627abf5" + hash: "3f3c1137c02e14796c3a4537337d1dd8" } Frame { msec: 1456 - hash: "d843ec499de0a7c0094a479f75cab4c6" + hash: "4997a45af699c1face114c72a9ce067d" } Frame { msec: 1472 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1488 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1504 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1520 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1536 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1552 - hash: "25cf1c1efce5ad53695099ffeb93d27f" + hash: "093cce71722904a32b030478f3af49bb" } Frame { msec: 1568 - hash: "444090b334e856ff4f9b9938c7676666" + hash: "a4810a97e51259350bb1543dffc156af" } Frame { msec: 1584 - hash: "6064d9310e5d660c8e1aae9e9cfc6bd3" + hash: "838871072acbefc1c8c488f47312da9b" } Frame { msec: 1600 - hash: "fc562db867e30ac63a9992b3cf554553" + hash: "8cfe8847729878519669caa8b702d910" } Frame { msec: 1616 - hash: "e127594d11d3e4c0d1f3e4585ef3a901" + hash: "a2fd8e049d03b87a306bb5b81e3f7311" } Frame { msec: 1632 - hash: "6d3d43b6a38cf1c64289282bbcaf2ac2" + hash: "29bd4d5e36cb6b232f513b6bb0c00b28" } Frame { msec: 1648 - hash: "bd58d75020a5272ae3cdcb0ed780e496" + hash: "9637f14efb2e355bfe886d7c5f2a8d38" } Key { type: 6 @@ -498,35 +498,35 @@ VisualTest { } Frame { msec: 1664 - hash: "655cdefae8b30a40e6baaa04b790f811" + hash: "0365fa8845c3c1e53ef35d22423eb973" } Frame { msec: 1680 - hash: "a654e6c9c5414593425bd2ccc6a0f916" + hash: "bf88d5d2cd2ff062c1cc8a391a238b1d" } Frame { msec: 1696 - hash: "88e3865dcb7da6be36cff12a1da7c94b" + hash: "46b22f33eb80f013e44da11153441864" } Frame { msec: 1712 - hash: "4d85866e40d8118081d2747af7343c42" + hash: "05ae42e3a0296a569dec147c76be273d" } Frame { msec: 1728 - hash: "d84111903e76a53be7b55d7dc3847914" + hash: "1a8cc65973d08bb949f7a71b0bb8be1a" } Frame { msec: 1744 - hash: "4f7b708a511dc7a882af661ca3282404" + hash: "ca3bde8cd8de81c4210fcfd000fe0f5e" } Frame { msec: 1760 - hash: "29d940c479f0c76c6f4d88e417672878" + hash: "e06d104d1ed451eea4c1d9bdae9d10f4" } Frame { msec: 1776 - hash: "ade916241f4b2a50e6b84f8ae41369ef" + hash: "c95153ae401ad8a2e839905841c074f3" } Key { type: 6 @@ -538,35 +538,35 @@ VisualTest { } Frame { msec: 1792 - hash: "ecd42368bf2a9058185b9b25b659f4c6" + hash: "82e61a4d3f58ee5104893e254a77f13e" } Frame { msec: 1808 - hash: "7937850b86f3611ee1d75da9deb7420d" + hash: "5f073a4a89413b6a6c5d6ff52717bb2f" } Frame { msec: 1824 - hash: "8004e4ab3ed02f68f6f5f7f5fb9fe6c6" + hash: "b0fd95dc2ac09a1cbd67ad0f86682666" } Frame { msec: 1840 - hash: "0a2c07dc17922651d2abd6400fff6e43" + hash: "78b16507899c3c8de04b55389ea0ad49" } Frame { msec: 1856 - hash: "c3df3735586ed103d137d4902d7a1cc3" + hash: "373c57edb812db59f40710305d80e9e9" } Frame { msec: 1872 - hash: "690aa50862a887edcc9392d1c3ca0424" + hash: "a7142c3c1eb9c934e0b258c163fcdfec" } Frame { msec: 1888 - hash: "56cc00965e12254e0133fe1d914fffb2" + hash: "bd5395e7e0aa0d50cb30504f9961c954" } Frame { msec: 1904 - hash: "fa7d20c99cb8c20494b558ce8ef860a2" + hash: "7031966f014d4acd5b00c46c89f61403" } Key { type: 7 @@ -582,79 +582,79 @@ VisualTest { } Frame { msec: 1936 - hash: "e8cd9511f073ff40a6645ad6aa2b5bee" + hash: "97dabf3984492d2f868b36c3e7bfce50" } Frame { msec: 1952 - hash: "b5e956f236ba52cb673af22417d1aabc" + hash: "afe0c3fdcb498f1f6b877c5d808b2555" } Frame { msec: 1968 - hash: "b297d098f02fbbeac830b20b0a5194c5" + hash: "7610775f69a461d5487e8bc3db6b6e1f" } Frame { msec: 1984 - hash: "c711fd5d0c3900494493f8309b79ad0c" + hash: "52641f9d6dfba8bf2b94aa37ade140d1" } Frame { msec: 2000 - hash: "c9bf546976fc17de9ea9e877f4978f02" + hash: "9d0e449506ce93052216b7a952af3dea" } Frame { msec: 2016 - hash: "fd83046af94eac26d394a5da986e734c" + hash: "c1bb09480464b7813bc10b0093d14745" } Frame { msec: 2032 - hash: "c9bf546976fc17de9ea9e877f4978f02" + hash: "9d0e449506ce93052216b7a952af3dea" } Frame { msec: 2048 - hash: "c711fd5d0c3900494493f8309b79ad0c" + hash: "52641f9d6dfba8bf2b94aa37ade140d1" } Frame { msec: 2064 - hash: "b297d098f02fbbeac830b20b0a5194c5" + hash: "7610775f69a461d5487e8bc3db6b6e1f" } Frame { msec: 2080 - hash: "b5e956f236ba52cb673af22417d1aabc" + hash: "afe0c3fdcb498f1f6b877c5d808b2555" } Frame { msec: 2096 - hash: "e8cd9511f073ff40a6645ad6aa2b5bee" + hash: "97dabf3984492d2f868b36c3e7bfce50" } Frame { msec: 2112 - hash: "315734f8f38efbc810ca2e65bd752ddd" + hash: "869624c2ae63b0a447401a955a6fefb1" } Frame { msec: 2128 - hash: "fa7d20c99cb8c20494b558ce8ef860a2" + hash: "7031966f014d4acd5b00c46c89f61403" } Frame { msec: 2144 - hash: "56cc00965e12254e0133fe1d914fffb2" + hash: "bd5395e7e0aa0d50cb30504f9961c954" } Frame { msec: 2160 - hash: "690aa50862a887edcc9392d1c3ca0424" + hash: "a7142c3c1eb9c934e0b258c163fcdfec" } Frame { msec: 2176 - hash: "c3df3735586ed103d137d4902d7a1cc3" + hash: "373c57edb812db59f40710305d80e9e9" } Frame { msec: 2192 - hash: "0a2c07dc17922651d2abd6400fff6e43" + hash: "78b16507899c3c8de04b55389ea0ad49" } Frame { msec: 2208 - hash: "8004e4ab3ed02f68f6f5f7f5fb9fe6c6" + hash: "b0fd95dc2ac09a1cbd67ad0f86682666" } Frame { msec: 2224 - hash: "7937850b86f3611ee1d75da9deb7420d" + hash: "5f073a4a89413b6a6c5d6ff52717bb2f" } Key { type: 7 @@ -666,35 +666,35 @@ VisualTest { } Frame { msec: 2240 - hash: "ecd42368bf2a9058185b9b25b659f4c6" + hash: "82e61a4d3f58ee5104893e254a77f13e" } Frame { msec: 2256 - hash: "e545c6ba42edd1e6a055b48f162315ab" + hash: "a8fe05178e6339454d57575692fa3df3" } Frame { msec: 2272 - hash: "f8b28cd90fe0c4aa90e8a69d2d9cdce7" + hash: "192f80add5f612b07dcb8d69f2161648" } Frame { msec: 2288 - hash: "49de66674e8f38f925f3505c64201076" + hash: "cfd85885f59ea80b0b0152446a829fec" } Frame { msec: 2304 - hash: "b33880917cae07d038620065ec2c1d1c" + hash: "a7295dcc92f80a5f343bf05076a03748" } Frame { msec: 2320 - hash: "97c8af8dc7e5372a3a0f5bed0050127e" + hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" } Frame { msec: 2336 - hash: "b0236b8c44398cb9f97324f6ca9ce5c4" + hash: "419c538908d0226ff4485f1094eaa08e" } Frame { msec: 2352 - hash: "2695b45a1ea89518d236ef3b8dccd89e" + hash: "8afe64448d42419f97ca207487b3b0f8" } Key { type: 6 @@ -706,35 +706,35 @@ VisualTest { } Frame { msec: 2368 - hash: "61370b1d04626facfd243176cb4bb79b" + hash: "86091218d2d066d8f95a460426266369" } Frame { msec: 2384 - hash: "53c53e501469ca0ef0f0325a13aa4aa4" + hash: "fc45978cac92b6cdeeecc2dd4c29aa53" } Frame { msec: 2400 - hash: "c56717a79ccffe756c5423bc5e44a53f" + hash: "03a90ae5cbe68cc210e303c78a14e065" } Frame { msec: 2416 - hash: "e5ec3e6d4a7a527e8f2c0afa5fd66c4b" + hash: "15603a997aa02afb688aa74cd930f3b4" } Frame { msec: 2432 - hash: "4ccb9af28572e13f961f2057eb98482d" + hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" } Frame { msec: 2448 - hash: "0b8ce455fd40c3cd74fb05d4b603cceb" + hash: "4dbdc16538cbbf1a87c6a54e09e02b16" } Frame { msec: 2464 - hash: "f5c3754201dbb6f4ca4f4c1611036c5a" + hash: "2011ee59d2ec4bb0ae0d63727f091648" } Frame { msec: 2480 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Key { type: 7 @@ -746,95 +746,95 @@ VisualTest { } Frame { msec: 2496 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 2512 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 2528 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 2544 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 2560 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 2576 - hash: "3c1972940b70a388ebfd007b0b5d9860" + hash: "02996bef06c74f34cf8be4cf4d1392d5" } Frame { msec: 2592 - hash: "674707d6ae5ef5109940f1bd62427a63" + hash: "2d8cb2d213ce22132ba63a829c07f768" } Frame { msec: 2608 - hash: "8f512390b74d7a545eb60a86d4b8dee6" + hash: "0a16c282a18fdc657ea48fb208dea494" } Frame { msec: 2624 - hash: "0502cfe70da38a6ebccd7fdf799be464" + hash: "86baec52ccb8ae818439c637c5be1514" } Frame { msec: 2640 - hash: "23c45beae15b893ec4450b0d380aeb17" + hash: "72e2415581ba2a96b8f23cf8f5985afb" } Frame { msec: 2656 - hash: "45de58892db757e76c95ddb76e267f6f" + hash: "7776d964b2b5f80bac51a29d298a067f" } Frame { msec: 2672 - hash: "ff3f1529c937c4d95cf4dfb8592759dc" + hash: "3b5d0a9f961c2102a4118a8e2d2793ae" } Frame { msec: 2688 - hash: "236c6e16bbfab9268f488d6dbf9544be" + hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4" } Frame { msec: 2704 - hash: "3bb19cbddf5e66c08bdd5c881e93db3e" + hash: "d30e5d7c27b72ec95c41a87741061a3f" } Frame { msec: 2720 - hash: "057ea6d1007993908c9c398391b85072" + hash: "0374cc41cdb6528e212f678e0e049f2b" } Frame { msec: 2736 - hash: "faa124cd5d0a027dc5e3b92125bc9cc5" + hash: "c80bc90c90b02d1d42176f16fa992f27" } Frame { msec: 2752 - hash: "234ac2e7f0b87a86e0678e3cbc5a1e30" + hash: "70182707dbdf87a2c8db556f030bec17" } Frame { msec: 2768 - hash: "bdee3016f1811188691786bafe305196" + hash: "0c6c0c3d27d87128d65b40789714dd6b" } Frame { msec: 2784 - hash: "9ecc192aec9b15314132b16dd3f43860" + hash: "46e1debee4ca606492a36de6191f4594" } Frame { msec: 2800 - hash: "26dc03cf86d6812cfb788599b1c34de0" + hash: "f327bb2ea12b2baffc0a98d44a0ded16" } Frame { msec: 2816 - hash: "8752b33ae49ea6d1ee27376d8585776e" + hash: "15bc04b65bde5e8ca69b6a1f88647c16" } Frame { msec: 2832 - hash: "a181b264ba729ad1d8ff91a0c56fb98a" + hash: "27156c3309835ec20a02877f1188e14a" } Frame { msec: 2848 - hash: "af426cd28c90ac2d46d2b2478ce616f3" + hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" } Key { type: 6 @@ -846,7 +846,7 @@ VisualTest { } Frame { msec: 2864 - hash: "7462f7f9c339fc4d8b0c08e54b0ed71d" + hash: "c5569c3c06bcf01b7e69e7f7ad6203ef" } Frame { msec: 2880 @@ -854,27 +854,27 @@ VisualTest { } Frame { msec: 2896 - hash: "10f5b360c3809fbe51de55f47199c541" + hash: "5d1c41e371b1a95426882b3991383b6b" } Frame { msec: 2912 - hash: "ecab3f62c89e1cb9ff9b10ace4cdb40b" + hash: "4b9581a767fc1c94451780c044baf003" } Frame { msec: 2928 - hash: "d3eac9d8cd01bbb44fd61fca497230c0" + hash: "39978ba9bb1a535d7735228c650add38" } Frame { msec: 2944 - hash: "33ff6af85e783c617a42ca5021d1463b" + hash: "1a2afe394227dcf2da118559e2e58fd7" } Frame { msec: 2960 - hash: "a53cccc463d6f6fc24dc0d6309246640" + hash: "2f6bdb7af9bf9334231180b6113b125f" } Frame { msec: 2976 - hash: "8fc354dd6ddbd829240a3c2c9dcafdeb" + hash: "85017ca5ca286830e2745abf2f1f963a" } Key { type: 7 @@ -886,63 +886,63 @@ VisualTest { } Frame { msec: 2992 - hash: "0529a6cb7083caf513de4677970ed33f" + hash: "3760b42a25e332c6df49bd92109dae98" } Frame { msec: 3008 - hash: "bb38f9cdd67d18bc9297b353d499bb35" + hash: "7c0347f97f9e4d7fcf47a90b336d264a" } Frame { msec: 3024 - hash: "bb38f9cdd67d18bc9297b353d499bb35" + hash: "7c0347f97f9e4d7fcf47a90b336d264a" } Frame { msec: 3040 - hash: "0529a6cb7083caf513de4677970ed33f" + hash: "3760b42a25e332c6df49bd92109dae98" } Frame { msec: 3056 - hash: "8fc354dd6ddbd829240a3c2c9dcafdeb" + hash: "85017ca5ca286830e2745abf2f1f963a" } Frame { msec: 3072 - hash: "a53cccc463d6f6fc24dc0d6309246640" + hash: "2f6bdb7af9bf9334231180b6113b125f" } Frame { msec: 3088 - hash: "33ff6af85e783c617a42ca5021d1463b" + hash: "1a2afe394227dcf2da118559e2e58fd7" } Frame { msec: 3104 - hash: "d3eac9d8cd01bbb44fd61fca497230c0" + hash: "39978ba9bb1a535d7735228c650add38" } Frame { msec: 3120 - hash: "ecab3f62c89e1cb9ff9b10ace4cdb40b" + hash: "4b9581a767fc1c94451780c044baf003" } Frame { msec: 3136 - hash: "10f5b360c3809fbe51de55f47199c541" + hash: "5d1c41e371b1a95426882b3991383b6b" } Frame { msec: 3152 - hash: "2a0b3f5170c31a2f2ae512ab3c4268fc" + hash: "73c771b964becb418289e0674571eb6f" } Frame { msec: 3168 - hash: "7462f7f9c339fc4d8b0c08e54b0ed71d" + hash: "c5569c3c06bcf01b7e69e7f7ad6203ef" } Frame { msec: 3184 - hash: "0367ee5e3204a54d225791fbd833fc21" + hash: "7c55078e04b56c9aba7d227917323021" } Frame { msec: 3200 - hash: "86f96b2b846cad8660d80f7dbda24806" + hash: "01c6b78b296c00e4597ae1bd36a65f3a" } Frame { msec: 3216 - hash: "ce05bb9e0a7bd884c12f100b9d219461" + hash: "67e9271f71b2d6d9eb2e230953db06c5" } Key { type: 6 @@ -954,31 +954,31 @@ VisualTest { } Frame { msec: 3232 - hash: "8b04473fad0ffec6b56d2dca8d4dd81c" + hash: "642a6f4d7b3f467263b8e033578927af" } Frame { msec: 3248 - hash: "cedcf233a83047beef7a8aa3486df671" + hash: "9f000f97b33427860cb5daeb259c72ea" } Frame { msec: 3264 - hash: "8117b9590a36bbb4fd0d73c1df2e655e" + hash: "d74e3f977b5decb89dda46ea608a933a" } Frame { msec: 3280 - hash: "5c3168c676a7dc35913e365b2acafea1" + hash: "f4e446cd96a3eb1a0df83cf032e7a0b2" } Frame { msec: 3296 - hash: "4314ebdafbfbad5f108a4cb9874ed06c" + hash: "abe715855a79a8ced43000884c4bf04b" } Frame { msec: 3312 - hash: "d2ffe99b443ecf1188bd3639ddbccda3" + hash: "29fd5c17b9a169c1850aa538b4006084" } Frame { msec: 3328 - hash: "a0894a3492ed7e5bf5b834db890325e2" + hash: "cefdcaebb9c319ac358b0d7fc9424327" } Key { type: 7 @@ -990,103 +990,103 @@ VisualTest { } Frame { msec: 3344 - hash: "57498e86bdc3cfd37bf29505c289d100" + hash: "85bfa23957bb5cd947e0819ffa442ea3" } Frame { msec: 3360 - hash: "57d77411f30c4733f2afec2fc99f3d0b" + hash: "48f18d9d12331dc8725ea9e4b7f79823" } Frame { msec: 3376 - hash: "a3c4b4fef44c4019daba366c1e3a58b1" + hash: "63cde59ffbbe2b9087ca228733de18dd" } Frame { msec: 3392 - hash: "f8461558248b7da3bdf2df641154171a" + hash: "73f5d4594f23ff4aac5e42aee00dce81" } Frame { msec: 3408 - hash: "13e84656ef70bf07e2a444d60ac933e1" + hash: "51a1b8e79d209643d55d4cecc6a70ed0" } Frame { msec: 3424 - hash: "186d8a59092cfe4128b46a3c87eb347b" + hash: "7f2ae476246b23d79997a2545723ff62" } Frame { msec: 3440 - hash: "ac4898002fdc5ea7894d741cac863c8d" + hash: "996da2eff9302908a55308dbcc8fb3c2" } Frame { msec: 3456 - hash: "2e95c1966c94acccd2a44a6c2942d36d" + hash: "264f34128dfe563126b9f187c65df61e" } Frame { msec: 3472 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3488 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3504 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3520 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3536 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3552 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 3568 - hash: "7f83ba29fd27aa4817b7b84afbc8d6d7" + hash: "70d6b73499c36138bee63e07afb0b186" } Frame { msec: 3584 - hash: "8575a99b28bb5b8c2d01a5ed91f25d47" + hash: "66500c2cc3d69b9fb48dc46e384aca6d" } Frame { msec: 3600 - hash: "eda67cb2d32f3f605a74a01148f04c99" + hash: "6ccc70f6120acb53152b71bcf95514ca" } Frame { msec: 3616 - hash: "1d65e6e7160f092fe65f683df7c10f92" + hash: "5c10e6b0e541fe913b589601a55ea6ce" } Frame { msec: 3632 - hash: "274c59f268f667a1f11b8ea04a4f88a0" + hash: "2c62584e4c09c1d22f9016aa6fa74e10" } Frame { msec: 3648 - hash: "e46d917e79910b3319c4579776bbdd60" + hash: "fd8f53e36a86ae22deb4f7af5aa1eb81" } Frame { msec: 3664 - hash: "42b7662aad44804653101117ca698023" + hash: "e33226eb0e81a64bed7bcdb50e99cd13" } Frame { msec: 3680 - hash: "dda5147cb6e4e8f61819de6a90dcb165" + hash: "a7053a2b7bc9f4749c290bace6b55634" } Frame { msec: 3696 - hash: "b4a5dcd0bb667d3a42c8f0703d753ed6" + hash: "782cb4e647e849ac7299d41f04bc89e3" } Frame { msec: 3712 - hash: "4ae70de6785fdbecf7650637c8e99a71" + hash: "0f7d04fe594ae027364a7c2b570c5a27" } Frame { msec: 3728 - hash: "22dc8343eab28b0526d5486405b68478" + hash: "dfb00adcdc2f68bfb691bce47845b0e7" } Key { type: 6 @@ -1098,27 +1098,27 @@ VisualTest { } Frame { msec: 3744 - hash: "49de66674e8f38f925f3505c64201076" + hash: "cfd85885f59ea80b0b0152446a829fec" } Frame { msec: 3760 - hash: "f8b28cd90fe0c4aa90e8a69d2d9cdce7" + hash: "192f80add5f612b07dcb8d69f2161648" } Frame { msec: 3776 - hash: "e545c6ba42edd1e6a055b48f162315ab" + hash: "a8fe05178e6339454d57575692fa3df3" } Frame { msec: 3792 - hash: "ecd42368bf2a9058185b9b25b659f4c6" + hash: "82e61a4d3f58ee5104893e254a77f13e" } Frame { msec: 3808 - hash: "7937850b86f3611ee1d75da9deb7420d" + hash: "5f073a4a89413b6a6c5d6ff52717bb2f" } Frame { msec: 3824 - hash: "8004e4ab3ed02f68f6f5f7f5fb9fe6c6" + hash: "b0fd95dc2ac09a1cbd67ad0f86682666" } Frame { msec: 3840 @@ -1134,59 +1134,59 @@ VisualTest { } Frame { msec: 3856 - hash: "c3df3735586ed103d137d4902d7a1cc3" + hash: "373c57edb812db59f40710305d80e9e9" } Frame { msec: 3872 - hash: "690aa50862a887edcc9392d1c3ca0424" + hash: "a7142c3c1eb9c934e0b258c163fcdfec" } Frame { msec: 3888 - hash: "56cc00965e12254e0133fe1d914fffb2" + hash: "bd5395e7e0aa0d50cb30504f9961c954" } Frame { msec: 3904 - hash: "fa7d20c99cb8c20494b558ce8ef860a2" + hash: "7031966f014d4acd5b00c46c89f61403" } Frame { msec: 3920 - hash: "315734f8f38efbc810ca2e65bd752ddd" + hash: "869624c2ae63b0a447401a955a6fefb1" } Frame { msec: 3936 - hash: "e8cd9511f073ff40a6645ad6aa2b5bee" + hash: "97dabf3984492d2f868b36c3e7bfce50" } Frame { msec: 3952 - hash: "b5e956f236ba52cb673af22417d1aabc" + hash: "afe0c3fdcb498f1f6b877c5d808b2555" } Frame { msec: 3968 - hash: "b297d098f02fbbeac830b20b0a5194c5" + hash: "7610775f69a461d5487e8bc3db6b6e1f" } Frame { msec: 3984 - hash: "c711fd5d0c3900494493f8309b79ad0c" + hash: "52641f9d6dfba8bf2b94aa37ade140d1" } Frame { msec: 4000 - hash: "c9bf546976fc17de9ea9e877f4978f02" + hash: "9d0e449506ce93052216b7a952af3dea" } Frame { msec: 4016 - hash: "fd83046af94eac26d394a5da986e734c" + hash: "c1bb09480464b7813bc10b0093d14745" } Frame { msec: 4032 - hash: "c9bf546976fc17de9ea9e877f4978f02" + hash: "9d0e449506ce93052216b7a952af3dea" } Frame { msec: 4048 - hash: "c711fd5d0c3900494493f8309b79ad0c" + hash: "52641f9d6dfba8bf2b94aa37ade140d1" } Frame { msec: 4064 - hash: "b297d098f02fbbeac830b20b0a5194c5" + hash: "7610775f69a461d5487e8bc3db6b6e1f" } Key { type: 7 @@ -1198,183 +1198,183 @@ VisualTest { } Frame { msec: 4080 - hash: "b5e956f236ba52cb673af22417d1aabc" + hash: "afe0c3fdcb498f1f6b877c5d808b2555" } Frame { msec: 4096 - hash: "e8cd9511f073ff40a6645ad6aa2b5bee" + hash: "97dabf3984492d2f868b36c3e7bfce50" } Frame { msec: 4112 - hash: "315734f8f38efbc810ca2e65bd752ddd" + hash: "869624c2ae63b0a447401a955a6fefb1" } Frame { msec: 4128 - hash: "fa7d20c99cb8c20494b558ce8ef860a2" + hash: "7031966f014d4acd5b00c46c89f61403" } Frame { msec: 4144 - hash: "56cc00965e12254e0133fe1d914fffb2" + hash: "bd5395e7e0aa0d50cb30504f9961c954" } Frame { msec: 4160 - hash: "690aa50862a887edcc9392d1c3ca0424" + hash: "a7142c3c1eb9c934e0b258c163fcdfec" } Frame { msec: 4176 - hash: "c3df3735586ed103d137d4902d7a1cc3" + hash: "373c57edb812db59f40710305d80e9e9" } Frame { msec: 4192 - hash: "0a2c07dc17922651d2abd6400fff6e43" + hash: "78b16507899c3c8de04b55389ea0ad49" } Frame { msec: 4208 - hash: "8004e4ab3ed02f68f6f5f7f5fb9fe6c6" + hash: "b0fd95dc2ac09a1cbd67ad0f86682666" } Frame { msec: 4224 - hash: "7937850b86f3611ee1d75da9deb7420d" + hash: "5f073a4a89413b6a6c5d6ff52717bb2f" } Frame { msec: 4240 - hash: "ecd42368bf2a9058185b9b25b659f4c6" + hash: "82e61a4d3f58ee5104893e254a77f13e" } Frame { msec: 4256 - hash: "e545c6ba42edd1e6a055b48f162315ab" + hash: "a8fe05178e6339454d57575692fa3df3" } Frame { msec: 4272 - hash: "f8b28cd90fe0c4aa90e8a69d2d9cdce7" + hash: "192f80add5f612b07dcb8d69f2161648" } Frame { msec: 4288 - hash: "49de66674e8f38f925f3505c64201076" + hash: "cfd85885f59ea80b0b0152446a829fec" } Frame { msec: 4304 - hash: "b33880917cae07d038620065ec2c1d1c" + hash: "a7295dcc92f80a5f343bf05076a03748" } Frame { msec: 4320 - hash: "97c8af8dc7e5372a3a0f5bed0050127e" + hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" } Frame { msec: 4336 - hash: "b0236b8c44398cb9f97324f6ca9ce5c4" + hash: "419c538908d0226ff4485f1094eaa08e" } Frame { msec: 4352 - hash: "2695b45a1ea89518d236ef3b8dccd89e" + hash: "8afe64448d42419f97ca207487b3b0f8" } Frame { msec: 4368 - hash: "61370b1d04626facfd243176cb4bb79b" + hash: "86091218d2d066d8f95a460426266369" } Frame { msec: 4384 - hash: "53c53e501469ca0ef0f0325a13aa4aa4" + hash: "fc45978cac92b6cdeeecc2dd4c29aa53" } Frame { msec: 4400 - hash: "c56717a79ccffe756c5423bc5e44a53f" + hash: "03a90ae5cbe68cc210e303c78a14e065" } Frame { msec: 4416 - hash: "e5ec3e6d4a7a527e8f2c0afa5fd66c4b" + hash: "15603a997aa02afb688aa74cd930f3b4" } Frame { msec: 4432 - hash: "4ccb9af28572e13f961f2057eb98482d" + hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" } Frame { msec: 4448 - hash: "0b8ce455fd40c3cd74fb05d4b603cceb" + hash: "4dbdc16538cbbf1a87c6a54e09e02b16" } Frame { msec: 4464 - hash: "f5c3754201dbb6f4ca4f4c1611036c5a" + hash: "2011ee59d2ec4bb0ae0d63727f091648" } Frame { msec: 4480 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4496 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4512 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4528 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4544 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4560 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4576 - hash: "3c1972940b70a388ebfd007b0b5d9860" + hash: "02996bef06c74f34cf8be4cf4d1392d5" } Frame { msec: 4592 - hash: "674707d6ae5ef5109940f1bd62427a63" + hash: "2d8cb2d213ce22132ba63a829c07f768" } Frame { msec: 4608 - hash: "8f512390b74d7a545eb60a86d4b8dee6" + hash: "0a16c282a18fdc657ea48fb208dea494" } Frame { msec: 4624 - hash: "0502cfe70da38a6ebccd7fdf799be464" + hash: "86baec52ccb8ae818439c637c5be1514" } Frame { msec: 4640 - hash: "23c45beae15b893ec4450b0d380aeb17" + hash: "72e2415581ba2a96b8f23cf8f5985afb" } Frame { msec: 4656 - hash: "45de58892db757e76c95ddb76e267f6f" + hash: "7776d964b2b5f80bac51a29d298a067f" } Frame { msec: 4672 - hash: "ff3f1529c937c4d95cf4dfb8592759dc" + hash: "3b5d0a9f961c2102a4118a8e2d2793ae" } Frame { msec: 4688 - hash: "236c6e16bbfab9268f488d6dbf9544be" + hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4" } Frame { msec: 4704 - hash: "3bb19cbddf5e66c08bdd5c881e93db3e" + hash: "d30e5d7c27b72ec95c41a87741061a3f" } Frame { msec: 4720 - hash: "057ea6d1007993908c9c398391b85072" + hash: "0374cc41cdb6528e212f678e0e049f2b" } Frame { msec: 4736 - hash: "faa124cd5d0a027dc5e3b92125bc9cc5" + hash: "c80bc90c90b02d1d42176f16fa992f27" } Frame { msec: 4752 - hash: "234ac2e7f0b87a86e0678e3cbc5a1e30" + hash: "70182707dbdf87a2c8db556f030bec17" } Frame { msec: 4768 - hash: "bdee3016f1811188691786bafe305196" + hash: "0c6c0c3d27d87128d65b40789714dd6b" } Frame { msec: 4784 - hash: "9ecc192aec9b15314132b16dd3f43860" + hash: "46e1debee4ca606492a36de6191f4594" } Frame { msec: 4800 @@ -1382,118 +1382,118 @@ VisualTest { } Frame { msec: 4816 - hash: "8752b33ae49ea6d1ee27376d8585776e" + hash: "15bc04b65bde5e8ca69b6a1f88647c16" } Frame { msec: 4832 - hash: "a181b264ba729ad1d8ff91a0c56fb98a" + hash: "27156c3309835ec20a02877f1188e14a" } Frame { msec: 4848 - hash: "af426cd28c90ac2d46d2b2478ce616f3" + hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" } Frame { msec: 4864 - hash: "d062f03ccc0eb1f56aba411e1078c4ab" + hash: "35f243da98f9934d5ac0a7cc1fde73ef" } Frame { msec: 4880 - hash: "793cb0a98cac4a0f5d9a1dc5df5cd0ce" + hash: "42d393d75e0c1d5aea0e1694190e4507" } Frame { msec: 4896 - hash: "da1f9732e1d7cd0b82f0c0949937067e" + hash: "0ec47c6c74efd66d339d9be13148e334" } Frame { msec: 4912 - hash: "35d38ce67e19453f255241473294f7e9" + hash: "2e7597e8d03f0a05cf96fe7e2a3ee540" } Frame { msec: 4928 - hash: "e8c5d9895119167f2fcb4a15b0f1b65e" + hash: "093c9e5ac431284de7e81e082868c5db" } Frame { msec: 4944 - hash: "26c0d91942f1cb3313d604804d1e4b9e" + hash: "60ae71c4a6c905f47b2b457d9167153b" } Frame { msec: 4960 - hash: "eaf1ba458119f6d3dedcd581d5c04f8c" + hash: "e4be7897b1b30ab916a53df2998282d7" } Frame { msec: 4976 - hash: "a54c778d78c9a715ce0429e9c366ef8b" + hash: "c082b97799dffdb73ad65b2920507e9c" } Frame { msec: 4992 - hash: "f3a8edba1311c54a12024dbcf1656b85" + hash: "aadaab0547a4f15c533589b531f39504" } Frame { msec: 5008 - hash: "7c5c30318c41ab5c5874239bbcfbaae2" + hash: "847f0a1faf094e73d533692fa47a030a" } Frame { msec: 5024 - hash: "7c5c30318c41ab5c5874239bbcfbaae2" + hash: "847f0a1faf094e73d533692fa47a030a" } Frame { msec: 5040 - hash: "f3a8edba1311c54a12024dbcf1656b85" + hash: "aadaab0547a4f15c533589b531f39504" } Frame { msec: 5056 - hash: "a54c778d78c9a715ce0429e9c366ef8b" + hash: "c082b97799dffdb73ad65b2920507e9c" } Frame { msec: 5072 - hash: "eaf1ba458119f6d3dedcd581d5c04f8c" + hash: "e4be7897b1b30ab916a53df2998282d7" } Frame { msec: 5088 - hash: "26c0d91942f1cb3313d604804d1e4b9e" + hash: "60ae71c4a6c905f47b2b457d9167153b" } Frame { msec: 5104 - hash: "e8c5d9895119167f2fcb4a15b0f1b65e" + hash: "093c9e5ac431284de7e81e082868c5db" } Frame { msec: 5120 - hash: "35d38ce67e19453f255241473294f7e9" + hash: "2e7597e8d03f0a05cf96fe7e2a3ee540" } Frame { msec: 5136 - hash: "da1f9732e1d7cd0b82f0c0949937067e" + hash: "0ec47c6c74efd66d339d9be13148e334" } Frame { msec: 5152 - hash: "793cb0a98cac4a0f5d9a1dc5df5cd0ce" + hash: "42d393d75e0c1d5aea0e1694190e4507" } Frame { msec: 5168 - hash: "d062f03ccc0eb1f56aba411e1078c4ab" + hash: "35f243da98f9934d5ac0a7cc1fde73ef" } Frame { msec: 5184 - hash: "af426cd28c90ac2d46d2b2478ce616f3" + hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" } Frame { msec: 5200 - hash: "a181b264ba729ad1d8ff91a0c56fb98a" + hash: "27156c3309835ec20a02877f1188e14a" } Frame { msec: 5216 - hash: "8752b33ae49ea6d1ee27376d8585776e" + hash: "15bc04b65bde5e8ca69b6a1f88647c16" } Frame { msec: 5232 - hash: "26dc03cf86d6812cfb788599b1c34de0" + hash: "f327bb2ea12b2baffc0a98d44a0ded16" } Frame { msec: 5248 - hash: "9ecc192aec9b15314132b16dd3f43860" + hash: "46e1debee4ca606492a36de6191f4594" } Frame { msec: 5264 - hash: "bdee3016f1811188691786bafe305196" + hash: "0c6c0c3d27d87128d65b40789714dd6b" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png index c4bf75d..dfd30f6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png index f28b342..9d4eb9b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png index 955aed7..968517e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png index 02ac575..eb62c19 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml index 8d14a2b..a7df61f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml @@ -6,99 +6,99 @@ VisualTest { } Frame { msec: 16 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 32 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 48 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 64 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 80 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 96 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 112 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 128 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 144 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 160 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 176 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 192 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 208 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 224 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 240 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 256 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 272 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 288 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 304 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 320 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 336 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 352 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 368 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 384 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Key { type: 6 @@ -110,15 +110,15 @@ VisualTest { } Frame { msec: 400 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 416 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 432 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Key { type: 7 @@ -130,27 +130,27 @@ VisualTest { } Frame { msec: 448 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 464 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 480 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 496 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 512 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 528 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Key { type: 6 @@ -162,15 +162,15 @@ VisualTest { } Frame { msec: 544 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 560 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 576 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Key { type: 7 @@ -182,27 +182,27 @@ VisualTest { } Frame { msec: 592 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 608 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 624 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 640 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 656 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 672 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Key { type: 6 @@ -214,19 +214,19 @@ VisualTest { } Frame { msec: 688 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 704 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 720 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 736 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Key { type: 7 @@ -238,23 +238,23 @@ VisualTest { } Frame { msec: 752 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 768 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 784 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 800 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 816 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Key { type: 6 @@ -266,19 +266,19 @@ VisualTest { } Frame { msec: 832 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 848 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 864 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 880 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Key { type: 7 @@ -290,19 +290,19 @@ VisualTest { } Frame { msec: 896 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 912 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 928 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 944 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Key { type: 6 @@ -318,15 +318,15 @@ VisualTest { } Frame { msec: 976 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 992 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 1008 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Key { type: 7 @@ -338,23 +338,23 @@ VisualTest { } Frame { msec: 1024 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 1040 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 1056 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 1072 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 1088 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 1104 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1120 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1136 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Key { type: 7 @@ -386,23 +386,23 @@ VisualTest { } Frame { msec: 1152 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1168 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1184 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1200 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 1216 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Key { type: 6 @@ -414,19 +414,19 @@ VisualTest { } Frame { msec: 1232 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1248 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1264 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1280 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Key { type: 7 @@ -438,19 +438,19 @@ VisualTest { } Frame { msec: 1296 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1312 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1328 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 1344 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Key { type: 6 @@ -462,19 +462,19 @@ VisualTest { } Frame { msec: 1360 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1376 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1392 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1408 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Key { type: 7 @@ -486,23 +486,23 @@ VisualTest { } Frame { msec: 1424 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1440 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1456 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1472 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1488 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Key { type: 6 @@ -514,15 +514,15 @@ VisualTest { } Frame { msec: 1504 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1520 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1536 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Key { type: 7 @@ -534,79 +534,79 @@ VisualTest { } Frame { msec: 1552 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1568 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1584 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1600 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1616 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1632 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1648 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1664 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1680 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1696 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1712 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1728 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1744 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1760 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1776 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1792 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1808 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1824 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Frame { msec: 1840 - hash: "2723a5a18241fd8787c2e298673e61e3" + hash: "ab021c71945620eba0b0cd70c7cffe5d" } Key { type: 6 @@ -618,19 +618,19 @@ VisualTest { } Frame { msec: 1856 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1872 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1888 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1904 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1920 @@ -638,19 +638,19 @@ VisualTest { } Frame { msec: 1936 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1952 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1968 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 1984 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Key { type: 7 @@ -662,23 +662,23 @@ VisualTest { } Frame { msec: 2000 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 2016 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 2032 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 2048 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Frame { msec: 2064 - hash: "730ff91304bee489409ea616678a9877" + hash: "2ce295d30754b14d889795d2192fef41" } Key { type: 6 @@ -690,23 +690,23 @@ VisualTest { } Frame { msec: 2080 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2096 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2112 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2128 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2144 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Key { type: 7 @@ -718,23 +718,23 @@ VisualTest { } Frame { msec: 2160 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2176 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2192 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2208 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Frame { msec: 2224 - hash: "8c9706e5cc1dd8cba4312aa07249ae74" + hash: "22bdd816325b5466ca937cf2535a3ef8" } Key { type: 6 @@ -746,11 +746,11 @@ VisualTest { } Frame { msec: 2240 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 2256 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Key { type: 7 @@ -762,23 +762,23 @@ VisualTest { } Frame { msec: 2272 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 2288 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 2304 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 2320 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Frame { msec: 2336 - hash: "d9af8bbbe324c23f69251847c64497d9" + hash: "a88ac2f56d3d75a277b0855e2baeda33" } Key { type: 6 @@ -790,15 +790,15 @@ VisualTest { } Frame { msec: 2352 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2368 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2384 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Key { type: 7 @@ -810,55 +810,55 @@ VisualTest { } Frame { msec: 2400 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2416 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2432 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2448 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2464 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2480 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2496 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2512 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2528 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2544 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2560 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2576 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Frame { msec: 2592 - hash: "9a3654cf08a913058fd47c072e09a5c8" + hash: "0873eebe3bbcb864644811670642028e" } Key { type: 6 @@ -870,23 +870,23 @@ VisualTest { } Frame { msec: 2608 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2624 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2640 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2656 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2672 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Key { type: 7 @@ -898,23 +898,23 @@ VisualTest { } Frame { msec: 2688 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2704 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2720 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2736 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Frame { msec: 2752 - hash: "dc2b08893d3ec12e2da923215eedf2de" + hash: "94d3da7909c84467c62deb2861104d21" } Key { type: 6 @@ -926,15 +926,15 @@ VisualTest { } Frame { msec: 2768 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 2784 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 2800 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Key { type: 7 @@ -946,19 +946,19 @@ VisualTest { } Frame { msec: 2816 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 2832 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 2848 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Frame { msec: 2864 - hash: "755c3478a46c430b058e99cf433942b8" + hash: "5a7abe3d30f7dc66c2cda37b03ff339f" } Key { type: 6 @@ -974,15 +974,15 @@ VisualTest { } Frame { msec: 2896 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 2912 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 2928 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Key { type: 7 @@ -994,23 +994,23 @@ VisualTest { } Frame { msec: 2944 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 2960 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 2976 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 2992 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Frame { msec: 3008 - hash: "dbc65e33a133cd8fa7669175de83d94a" + hash: "ddf97bfd6216415dd2a56871f19c2d49" } Key { type: 6 @@ -1022,23 +1022,23 @@ VisualTest { } Frame { msec: 3024 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3040 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3056 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3072 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3088 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Key { type: 7 @@ -1050,155 +1050,155 @@ VisualTest { } Frame { msec: 3104 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3120 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3136 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3152 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3168 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3184 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3200 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3216 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3232 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3248 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3264 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3280 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3296 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3312 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3328 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3344 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3360 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3376 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3392 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3408 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3424 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3440 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3456 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3472 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3488 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3504 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3520 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3536 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3552 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3568 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3584 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3600 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3616 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3632 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3648 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3664 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3680 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Frame { msec: 3696 - hash: "1e5621ab02591170fabc0d91c4a09c69" + hash: "5db508bc5a66018d9732cf8427461ef2" } Key { type: 6 @@ -1210,27 +1210,27 @@ VisualTest { } Frame { msec: 3712 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3728 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3744 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3760 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3776 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3792 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Key { type: 7 @@ -1242,11 +1242,11 @@ VisualTest { } Frame { msec: 3808 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3824 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3840 @@ -1254,118 +1254,118 @@ VisualTest { } Frame { msec: 3856 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3872 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3888 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3904 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3920 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3936 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3952 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3968 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 3984 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4000 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4016 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4032 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4048 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4064 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4080 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4096 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4112 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4128 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4144 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4160 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4176 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4192 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4208 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4224 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4240 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4256 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4272 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4288 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } Frame { msec: 4304 - hash: "7fc0cd5e044691bcef6a62d2fb6cd2d4" + hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png index a3f0089..5049c3f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png index 95772a9..ee6e16a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png index 1b280eb..d9d2252 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png index 1b280eb..d9d2252 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png index cdd3dc0..cf99d98 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png index a3115f6..e3937f0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png index d2c895b..2fe3337 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png index e0e1ced..97b9913 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png index bde3d7d..08e059f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png index 38bf8be..bbc5ba2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png index 7475f96..465b64e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png index 1b280eb..d9d2252 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml index c12ee51..a8173be 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml @@ -6,83 +6,83 @@ VisualTest { } Frame { msec: 16 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 32 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 48 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 64 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 80 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 96 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 112 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 128 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 144 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 160 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 176 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 192 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 208 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 224 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 240 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 256 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 272 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 288 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 304 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 320 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Mouse { type: 2 @@ -94,23 +94,23 @@ VisualTest { } Frame { msec: 336 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 352 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 368 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 384 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 400 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Mouse { type: 3 @@ -122,63 +122,63 @@ VisualTest { } Frame { msec: 416 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 432 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 448 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 464 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 480 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 496 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 512 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 528 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 544 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 560 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 576 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 592 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 608 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 624 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Frame { msec: 640 - hash: "e931c5f5d15e4f977e1822f2a6dd57df" + hash: "e742c08c259034e879b95eea60794e77" } Mouse { type: 2 @@ -190,11 +190,11 @@ VisualTest { } Frame { msec: 656 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 672 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Mouse { type: 3 @@ -206,71 +206,71 @@ VisualTest { } Frame { msec: 688 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 704 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 720 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 736 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 752 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 768 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 784 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 800 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 816 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 832 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 848 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 864 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 880 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 896 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 912 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 928 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 944 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 960 @@ -278,87 +278,87 @@ VisualTest { } Frame { msec: 976 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 992 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1008 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1024 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1040 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1056 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1072 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1088 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1104 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1120 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1136 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1152 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1168 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1184 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1200 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1216 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1232 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1248 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1264 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1280 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Frame { msec: 1296 - hash: "01cf9ccfc86504bc6efe5fec1e68e537" + hash: "3eaecb73d32414207c898a36c9c41da3" } Key { type: 6 @@ -370,23 +370,23 @@ VisualTest { } Frame { msec: 1312 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Frame { msec: 1328 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Frame { msec: 1344 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Frame { msec: 1360 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Frame { msec: 1376 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Key { type: 7 @@ -398,7 +398,7 @@ VisualTest { } Frame { msec: 1392 - hash: "bac01431244974a1768d84318f49bf89" + hash: "c101a1d74691605f2740452950693e43" } Key { type: 6 @@ -410,19 +410,19 @@ VisualTest { } Frame { msec: 1408 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1424 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1440 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1456 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Key { type: 7 @@ -434,27 +434,27 @@ VisualTest { } Frame { msec: 1472 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1488 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1504 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1520 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1536 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Frame { msec: 1552 - hash: "e22c6376c05d52c8997a67bf21d82a83" + hash: "e3e33c9f73352079db2f5e96c0069974" } Key { type: 6 @@ -466,15 +466,15 @@ VisualTest { } Frame { msec: 1568 - hash: "47f630d2cc3a3fa15309f5f631a36690" + hash: "0e79208365ec4b5a609d13b9e6c5c8d8" } Frame { msec: 1584 - hash: "47f630d2cc3a3fa15309f5f631a36690" + hash: "0e79208365ec4b5a609d13b9e6c5c8d8" } Frame { msec: 1600 - hash: "47f630d2cc3a3fa15309f5f631a36690" + hash: "0e79208365ec4b5a609d13b9e6c5c8d8" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1616 - hash: "47f630d2cc3a3fa15309f5f631a36690" + hash: "0e79208365ec4b5a609d13b9e6c5c8d8" } Key { type: 6 @@ -498,23 +498,23 @@ VisualTest { } Frame { msec: 1632 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Frame { msec: 1648 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Frame { msec: 1664 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Frame { msec: 1680 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Frame { msec: 1696 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Key { type: 7 @@ -526,11 +526,11 @@ VisualTest { } Frame { msec: 1712 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Frame { msec: 1728 - hash: "b03df007a2e778d3f055ceb12ab61ec1" + hash: "5485c9cf4050ef8c1dda227d27326f78" } Key { type: 6 @@ -542,15 +542,15 @@ VisualTest { } Frame { msec: 1744 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Frame { msec: 1760 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Frame { msec: 1776 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Key { type: 7 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1792 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Frame { msec: 1808 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Frame { msec: 1824 - hash: "f73e5dc997ddc56554f914014c376f24" + hash: "1063a2e6164b372ba364c15c1c8b6ade" } Key { type: 6 @@ -582,23 +582,23 @@ VisualTest { } Frame { msec: 1840 - hash: "d089f840e514b68fad1edbbce686525f" + hash: "213c0057171a86bd4e2d898fac4d6642" } Frame { msec: 1856 - hash: "d089f840e514b68fad1edbbce686525f" + hash: "213c0057171a86bd4e2d898fac4d6642" } Frame { msec: 1872 - hash: "d089f840e514b68fad1edbbce686525f" + hash: "213c0057171a86bd4e2d898fac4d6642" } Frame { msec: 1888 - hash: "d089f840e514b68fad1edbbce686525f" + hash: "213c0057171a86bd4e2d898fac4d6642" } Frame { msec: 1904 - hash: "d089f840e514b68fad1edbbce686525f" + hash: "213c0057171a86bd4e2d898fac4d6642" } Key { type: 7 @@ -622,15 +622,15 @@ VisualTest { } Frame { msec: 1936 - hash: "9751cdca40cadacfc28de757b20ed639" + hash: "df9766751a5698f84f98faa0ac0e6f1a" } Frame { msec: 1952 - hash: "9751cdca40cadacfc28de757b20ed639" + hash: "df9766751a5698f84f98faa0ac0e6f1a" } Frame { msec: 1968 - hash: "9751cdca40cadacfc28de757b20ed639" + hash: "df9766751a5698f84f98faa0ac0e6f1a" } Key { type: 6 @@ -642,11 +642,11 @@ VisualTest { } Frame { msec: 1984 - hash: "8fb457eb7c17974786ff239c09101d27" + hash: "47cb63f13c81ac6557ecc68d4e6f9c99" } Frame { msec: 2000 - hash: "8fb457eb7c17974786ff239c09101d27" + hash: "47cb63f13c81ac6557ecc68d4e6f9c99" } Key { type: 7 @@ -658,7 +658,7 @@ VisualTest { } Frame { msec: 2016 - hash: "8fb457eb7c17974786ff239c09101d27" + hash: "47cb63f13c81ac6557ecc68d4e6f9c99" } Key { type: 6 @@ -670,11 +670,11 @@ VisualTest { } Frame { msec: 2032 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Frame { msec: 2048 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Key { type: 7 @@ -686,19 +686,19 @@ VisualTest { } Frame { msec: 2064 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Frame { msec: 2080 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Frame { msec: 2096 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Frame { msec: 2112 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2128 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Frame { msec: 2144 - hash: "eeb022c3dd997ce86c3a60146d19b540" + hash: "4f39251d7a0071a67435d088f46fc4fe" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Frame { msec: 2176 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Frame { msec: 2192 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Frame { msec: 2208 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Frame { msec: 2224 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Frame { msec: 2240 - hash: "ba2033e83b5aef2408197ebf7db543a6" + hash: "722715a78e99d0f1f9a2830090c98f3c" } Key { type: 7 @@ -766,23 +766,23 @@ VisualTest { } Frame { msec: 2256 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Frame { msec: 2272 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Frame { msec: 2288 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Frame { msec: 2304 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Frame { msec: 2320 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Key { type: 7 @@ -794,11 +794,11 @@ VisualTest { } Frame { msec: 2336 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Frame { msec: 2352 - hash: "8a843083f0415f1e06bfe925b3bd7f52" + hash: "aa085c20f74a765297f7904680c7591e" } Key { type: 6 @@ -810,19 +810,19 @@ VisualTest { } Frame { msec: 2368 - hash: "c3d6b261447c0fa65722c697b60ef415" + hash: "0cc1397ce700d4a84647dddee65241b3" } Frame { msec: 2384 - hash: "c3d6b261447c0fa65722c697b60ef415" + hash: "0cc1397ce700d4a84647dddee65241b3" } Frame { msec: 2400 - hash: "c3d6b261447c0fa65722c697b60ef415" + hash: "0cc1397ce700d4a84647dddee65241b3" } Frame { msec: 2416 - hash: "c3d6b261447c0fa65722c697b60ef415" + hash: "0cc1397ce700d4a84647dddee65241b3" } Key { type: 7 @@ -834,7 +834,7 @@ VisualTest { } Frame { msec: 2432 - hash: "c3d6b261447c0fa65722c697b60ef415" + hash: "0cc1397ce700d4a84647dddee65241b3" } Key { type: 6 @@ -846,27 +846,27 @@ VisualTest { } Frame { msec: 2448 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Frame { msec: 2464 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Frame { msec: 2480 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Frame { msec: 2496 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Frame { msec: 2512 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Frame { msec: 2528 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Key { type: 7 @@ -878,7 +878,7 @@ VisualTest { } Frame { msec: 2544 - hash: "7899672516311904cc7108f975290615" + hash: "ac693aa9030cc388dce9004916734aed" } Key { type: 6 @@ -890,19 +890,19 @@ VisualTest { } Frame { msec: 2560 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2576 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2592 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2608 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Key { type: 7 @@ -914,23 +914,23 @@ VisualTest { } Frame { msec: 2624 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2640 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2656 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2672 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Frame { msec: 2688 - hash: "4c9dc2d3538a47f0c5f4e5b8f1863583" + hash: "e1f1b75892dc186e7f9546661722e259" } Key { type: 6 @@ -942,27 +942,27 @@ VisualTest { } Frame { msec: 2704 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Frame { msec: 2720 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Frame { msec: 2736 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Frame { msec: 2752 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Frame { msec: 2768 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Frame { msec: 2784 - hash: "0e583b5b8c82af7fe74ff845abb57069" + hash: "4c1829c6c263cf290e0e71035f678589" } Key { type: 6 @@ -974,7 +974,7 @@ VisualTest { } Frame { msec: 2800 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Key { type: 7 @@ -986,19 +986,19 @@ VisualTest { } Frame { msec: 2816 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Frame { msec: 2832 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Frame { msec: 2848 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Frame { msec: 2864 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Key { type: 7 @@ -1014,15 +1014,15 @@ VisualTest { } Frame { msec: 2896 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Frame { msec: 2912 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Frame { msec: 2928 - hash: "5b282d8041386acfd94eab03a0d40fe8" + hash: "fa5cf022b185f178d0121b442af01c00" } Key { type: 6 @@ -1034,15 +1034,15 @@ VisualTest { } Frame { msec: 2944 - hash: "9b19fe7f4665fdbd471e22cac9d97bab" + hash: "b0748cac94695eb95774e0cdfabf47cc" } Frame { msec: 2960 - hash: "9b19fe7f4665fdbd471e22cac9d97bab" + hash: "b0748cac94695eb95774e0cdfabf47cc" } Frame { msec: 2976 - hash: "9b19fe7f4665fdbd471e22cac9d97bab" + hash: "b0748cac94695eb95774e0cdfabf47cc" } Key { type: 7 @@ -1062,19 +1062,19 @@ VisualTest { } Frame { msec: 2992 - hash: "ed57767e75c850ad9bf2d08050419c56" + hash: "b05fc4c21113146463372b1ea981e265" } Frame { msec: 3008 - hash: "ed57767e75c850ad9bf2d08050419c56" + hash: "b05fc4c21113146463372b1ea981e265" } Frame { msec: 3024 - hash: "ed57767e75c850ad9bf2d08050419c56" + hash: "b05fc4c21113146463372b1ea981e265" } Frame { msec: 3040 - hash: "ed57767e75c850ad9bf2d08050419c56" + hash: "b05fc4c21113146463372b1ea981e265" } Key { type: 7 @@ -1086,7 +1086,7 @@ VisualTest { } Frame { msec: 3056 - hash: "ed57767e75c850ad9bf2d08050419c56" + hash: "b05fc4c21113146463372b1ea981e265" } Key { type: 6 @@ -1098,15 +1098,15 @@ VisualTest { } Frame { msec: 3072 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Frame { msec: 3088 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Frame { msec: 3104 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Key { type: 6 @@ -1118,7 +1118,7 @@ VisualTest { } Frame { msec: 3120 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Key { type: 7 @@ -1130,11 +1130,11 @@ VisualTest { } Frame { msec: 3136 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Frame { msec: 3152 - hash: "225820f0472a6af17f56687a655b382a" + hash: "01b789845bf308fc896d53bbbfe0dd01" } Key { type: 6 @@ -1146,19 +1146,19 @@ VisualTest { } Frame { msec: 3168 - hash: "719effbf9211edc87c56cb5628a57ded" + hash: "433d805d957203918fc4a8edfc93290e" } Frame { msec: 3184 - hash: "719effbf9211edc87c56cb5628a57ded" + hash: "433d805d957203918fc4a8edfc93290e" } Frame { msec: 3200 - hash: "719effbf9211edc87c56cb5628a57ded" + hash: "433d805d957203918fc4a8edfc93290e" } Frame { msec: 3216 - hash: "719effbf9211edc87c56cb5628a57ded" + hash: "433d805d957203918fc4a8edfc93290e" } Key { type: 7 @@ -1170,7 +1170,7 @@ VisualTest { } Frame { msec: 3232 - hash: "719effbf9211edc87c56cb5628a57ded" + hash: "433d805d957203918fc4a8edfc93290e" } Key { type: 7 @@ -1190,19 +1190,19 @@ VisualTest { } Frame { msec: 3248 - hash: "5d8d2ba8c15937cc2f70414a71f87d24" + hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" } Frame { msec: 3264 - hash: "5d8d2ba8c15937cc2f70414a71f87d24" + hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" } Frame { msec: 3280 - hash: "5d8d2ba8c15937cc2f70414a71f87d24" + hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" } Frame { msec: 3296 - hash: "5d8d2ba8c15937cc2f70414a71f87d24" + hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" } Key { type: 7 @@ -1214,7 +1214,7 @@ VisualTest { } Frame { msec: 3312 - hash: "5d8d2ba8c15937cc2f70414a71f87d24" + hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" } Key { type: 6 @@ -1226,23 +1226,23 @@ VisualTest { } Frame { msec: 3328 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Frame { msec: 3344 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Frame { msec: 3360 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Frame { msec: 3376 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Frame { msec: 3392 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Key { type: 7 @@ -1254,7 +1254,7 @@ VisualTest { } Frame { msec: 3408 - hash: "4df9946eb277ca403fd63a2e19535369" + hash: "b4bc12141255c91630e775fcf4935f22" } Key { type: 6 @@ -1266,23 +1266,23 @@ VisualTest { } Frame { msec: 3424 - hash: "bb1bde5147f4f203f2af3787df0f0c7a" + hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" } Frame { msec: 3440 - hash: "bb1bde5147f4f203f2af3787df0f0c7a" + hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" } Frame { msec: 3456 - hash: "bb1bde5147f4f203f2af3787df0f0c7a" + hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" } Frame { msec: 3472 - hash: "bb1bde5147f4f203f2af3787df0f0c7a" + hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" } Frame { msec: 3488 - hash: "bb1bde5147f4f203f2af3787df0f0c7a" + hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" } Key { type: 7 @@ -1302,27 +1302,27 @@ VisualTest { } Frame { msec: 3504 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Frame { msec: 3520 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Frame { msec: 3536 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Frame { msec: 3552 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Frame { msec: 3568 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Frame { msec: 3584 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Key { type: 7 @@ -1334,7 +1334,7 @@ VisualTest { } Frame { msec: 3600 - hash: "60225c94dc1e1485406d8ba59737d383" + hash: "3f154d5eace7e0e688fe609d7eebe80d" } Key { type: 6 @@ -1346,19 +1346,19 @@ VisualTest { } Frame { msec: 3616 - hash: "8321580dd92a92edbf12df43259999f4" + hash: "8cecca2b1a586b7121692a8f618a1a50" } Frame { msec: 3632 - hash: "8321580dd92a92edbf12df43259999f4" + hash: "8cecca2b1a586b7121692a8f618a1a50" } Frame { msec: 3648 - hash: "8321580dd92a92edbf12df43259999f4" + hash: "8cecca2b1a586b7121692a8f618a1a50" } Frame { msec: 3664 - hash: "8321580dd92a92edbf12df43259999f4" + hash: "8cecca2b1a586b7121692a8f618a1a50" } Key { type: 6 @@ -1370,7 +1370,7 @@ VisualTest { } Frame { msec: 3680 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Key { type: 7 @@ -1382,15 +1382,15 @@ VisualTest { } Frame { msec: 3696 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3712 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3728 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Key { type: 7 @@ -1402,27 +1402,27 @@ VisualTest { } Frame { msec: 3744 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3760 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3776 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3792 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3808 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3824 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3840 @@ -1430,35 +1430,35 @@ VisualTest { } Frame { msec: 3856 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3872 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3888 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3904 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3920 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3936 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3952 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Frame { msec: 3968 - hash: "d704cc8d5bbdc8768d25372aa654925c" + hash: "90bd87209b6d26785689779641b1f506" } Key { type: 6 @@ -1470,23 +1470,23 @@ VisualTest { } Frame { msec: 3984 - hash: "5a73c6a6df5bc4808fd4ed20e44f2ea3" + hash: "7fac93ef3184d5a844448c75b0aa8e18" } Frame { msec: 4000 - hash: "5a73c6a6df5bc4808fd4ed20e44f2ea3" + hash: "7fac93ef3184d5a844448c75b0aa8e18" } Frame { msec: 4016 - hash: "5a73c6a6df5bc4808fd4ed20e44f2ea3" + hash: "7fac93ef3184d5a844448c75b0aa8e18" } Frame { msec: 4032 - hash: "5a73c6a6df5bc4808fd4ed20e44f2ea3" + hash: "7fac93ef3184d5a844448c75b0aa8e18" } Frame { msec: 4048 - hash: "5a73c6a6df5bc4808fd4ed20e44f2ea3" + hash: "7fac93ef3184d5a844448c75b0aa8e18" } Key { type: 6 @@ -1498,7 +1498,7 @@ VisualTest { } Frame { msec: 4064 - hash: "89613ce626a22573fa41191fcede3273" + hash: "591366861f9e23276042250d5b1da7f9" } Key { type: 7 @@ -1510,19 +1510,19 @@ VisualTest { } Frame { msec: 4080 - hash: "89613ce626a22573fa41191fcede3273" + hash: "591366861f9e23276042250d5b1da7f9" } Frame { msec: 4096 - hash: "89613ce626a22573fa41191fcede3273" + hash: "591366861f9e23276042250d5b1da7f9" } Frame { msec: 4112 - hash: "89613ce626a22573fa41191fcede3273" + hash: "591366861f9e23276042250d5b1da7f9" } Frame { msec: 4128 - hash: "89613ce626a22573fa41191fcede3273" + hash: "591366861f9e23276042250d5b1da7f9" } Key { type: 6 @@ -1534,11 +1534,11 @@ VisualTest { } Frame { msec: 4144 - hash: "7d9ef94b610cc7e9bcfd04bfac91ae38" + hash: "c5c33e5f4429698b1a1bc084a41d303d" } Frame { msec: 4160 - hash: "7d9ef94b610cc7e9bcfd04bfac91ae38" + hash: "c5c33e5f4429698b1a1bc084a41d303d" } Key { type: 7 @@ -1550,15 +1550,15 @@ VisualTest { } Frame { msec: 4176 - hash: "7d9ef94b610cc7e9bcfd04bfac91ae38" + hash: "c5c33e5f4429698b1a1bc084a41d303d" } Frame { msec: 4192 - hash: "7d9ef94b610cc7e9bcfd04bfac91ae38" + hash: "c5c33e5f4429698b1a1bc084a41d303d" } Frame { msec: 4208 - hash: "7d9ef94b610cc7e9bcfd04bfac91ae38" + hash: "c5c33e5f4429698b1a1bc084a41d303d" } Key { type: 6 @@ -1570,11 +1570,11 @@ VisualTest { } Frame { msec: 4224 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4240 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Key { type: 7 @@ -1586,11 +1586,11 @@ VisualTest { } Frame { msec: 4256 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4272 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Key { type: 7 @@ -1602,27 +1602,27 @@ VisualTest { } Frame { msec: 4288 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4304 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4320 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4336 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4352 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Frame { msec: 4368 - hash: "9653692fe9292ef0d0559412f68e9cf7" + hash: "36223521c9ab06661239329c14e4fabe" } Key { type: 6 @@ -1634,23 +1634,23 @@ VisualTest { } Frame { msec: 4384 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Frame { msec: 4400 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Frame { msec: 4416 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Frame { msec: 4432 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Frame { msec: 4448 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Key { type: 7 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4464 - hash: "902831b5d2a134629e04b53c87cdc709" + hash: "22ab171b9805302b729afd314e55a0f4" } Key { type: 6 @@ -1674,23 +1674,23 @@ VisualTest { } Frame { msec: 4480 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4496 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4512 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4528 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4544 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Key { type: 7 @@ -1702,15 +1702,15 @@ VisualTest { } Frame { msec: 4560 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4576 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4592 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Key { type: 6 @@ -1722,51 +1722,51 @@ VisualTest { } Frame { msec: 4608 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4624 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4640 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4656 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4672 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4688 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4704 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4720 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4736 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4752 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4768 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4784 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4800 @@ -1774,11 +1774,11 @@ VisualTest { } Frame { msec: 4816 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Frame { msec: 4832 - hash: "cc1dc01f123309c70743535f61b18278" + hash: "beaad223234484e21f824ceb7f1edc2a" } Key { type: 6 @@ -1790,31 +1790,31 @@ VisualTest { } Frame { msec: 4848 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4864 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4880 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4896 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4912 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4928 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4944 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Key { type: 7 @@ -1826,19 +1826,19 @@ VisualTest { } Frame { msec: 4960 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4976 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 4992 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5008 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Key { type: 7 @@ -1850,187 +1850,187 @@ VisualTest { } Frame { msec: 5024 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5040 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5056 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5072 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5088 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5104 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5120 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5136 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5152 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5168 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5184 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5200 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5216 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5232 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5248 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5264 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5280 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5296 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5312 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5328 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5344 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5360 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5376 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5392 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5408 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5424 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5440 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5456 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5472 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5488 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5504 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5520 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5536 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5552 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5568 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5584 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5600 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5616 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5632 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5648 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5664 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5680 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5696 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5712 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5728 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5744 - hash: "652b66d0b62e7fcf9d4fff50296966b0" + hash: "49b26f36a10d808fdcb8248a384a4da6" } Frame { msec: 5760 @@ -2046,19 +2046,19 @@ VisualTest { } Frame { msec: 5776 - hash: "a8710131aa2cfcedeb1956319174bd44" + hash: "476040951352f144bda4ed7fb817cd7f" } Frame { msec: 5792 - hash: "a8710131aa2cfcedeb1956319174bd44" + hash: "476040951352f144bda4ed7fb817cd7f" } Frame { msec: 5808 - hash: "a8710131aa2cfcedeb1956319174bd44" + hash: "476040951352f144bda4ed7fb817cd7f" } Frame { msec: 5824 - hash: "a8710131aa2cfcedeb1956319174bd44" + hash: "476040951352f144bda4ed7fb817cd7f" } Mouse { type: 5 @@ -2078,7 +2078,7 @@ VisualTest { } Frame { msec: 5840 - hash: "a8710131aa2cfcedeb1956319174bd44" + hash: "476040951352f144bda4ed7fb817cd7f" } Mouse { type: 5 @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 5856 - hash: "069e40e23640f303e24f8821907bf907" + hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" } Mouse { type: 5 @@ -2118,7 +2118,7 @@ VisualTest { } Frame { msec: 5872 - hash: "069e40e23640f303e24f8821907bf907" + hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" } Mouse { type: 5 @@ -2138,7 +2138,7 @@ VisualTest { } Frame { msec: 5888 - hash: "3aba0fbccdbbbfc6b452464a35941f01" + hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" } Mouse { type: 5 @@ -2158,7 +2158,7 @@ VisualTest { } Frame { msec: 5904 - hash: "8d68c5797a7a3be6ab1bc83a1adea983" + hash: "173735fb4be11da603fb8ae8cffc609d" } Mouse { type: 5 @@ -2178,7 +2178,7 @@ VisualTest { } Frame { msec: 5920 - hash: "633201d777634e5a2e4ccc0ba7a84ada" + hash: "173735fb4be11da603fb8ae8cffc609d" } Mouse { type: 5 @@ -2198,7 +2198,7 @@ VisualTest { } Frame { msec: 5936 - hash: "e1d36d4dbdff47e6b6f864dae077bc7f" + hash: "b337a09f359fb2a237731c66ab95c92c" } Mouse { type: 5 @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 5952 - hash: "905419e116b2c93145c85456e6e7ccac" + hash: "32719becb40f8c6bd49b5f5754786913" } Mouse { type: 5 @@ -2238,7 +2238,7 @@ VisualTest { } Frame { msec: 5968 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2250,7 +2250,7 @@ VisualTest { } Frame { msec: 5984 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2270,7 +2270,7 @@ VisualTest { } Frame { msec: 6000 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 6016 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2310,7 +2310,7 @@ VisualTest { } Frame { msec: 6032 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2330,7 +2330,7 @@ VisualTest { } Frame { msec: 6048 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2350,7 +2350,7 @@ VisualTest { } Frame { msec: 6064 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 6080 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2390,7 +2390,7 @@ VisualTest { } Frame { msec: 6096 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2410,7 +2410,7 @@ VisualTest { } Frame { msec: 6112 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2430,7 +2430,7 @@ VisualTest { } Frame { msec: 6128 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2450,7 +2450,7 @@ VisualTest { } Frame { msec: 6144 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2470,7 +2470,7 @@ VisualTest { } Frame { msec: 6160 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2490,7 +2490,7 @@ VisualTest { } Frame { msec: 6176 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2502,23 +2502,23 @@ VisualTest { } Frame { msec: 6192 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Frame { msec: 6208 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Frame { msec: 6224 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Frame { msec: 6240 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Frame { msec: 6256 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2530,7 +2530,7 @@ VisualTest { } Frame { msec: 6272 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2550,7 +2550,7 @@ VisualTest { } Frame { msec: 6288 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2570,7 +2570,7 @@ VisualTest { } Frame { msec: 6304 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2590,7 +2590,7 @@ VisualTest { } Frame { msec: 6320 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2610,7 +2610,7 @@ VisualTest { } Frame { msec: 6336 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 6352 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 6368 - hash: "f851ebbbab70e4f283caefc26f304946" + hash: "e6bff88d0a5e2e7df4b3355749ecc902" } Mouse { type: 5 @@ -2670,7 +2670,7 @@ VisualTest { } Frame { msec: 6384 - hash: "ca385b53209d35e0c78e8124c782d03f" + hash: "5de7bbfdf96d84c8fbe74b4817a3c88a" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 6400 - hash: "ca385b53209d35e0c78e8124c782d03f" + hash: "5de7bbfdf96d84c8fbe74b4817a3c88a" } Mouse { type: 5 @@ -2702,7 +2702,7 @@ VisualTest { } Frame { msec: 6416 - hash: "730fa19a0deb6e210ee7ca136ecfb4e0" + hash: "056d22660f6feedfb453755978aa4c1d" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6432 - hash: "e749a531bb6b30611bed794e2630555f" + hash: "9d8568931fdca572dd31ea62ebbaf76a" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6448 - hash: "4d7a02eeb0d0ed7eb29fbfb72bce9ba1" + hash: "29aa2da8a830d5605a8d2d2543097177" } Mouse { type: 5 @@ -2754,7 +2754,7 @@ VisualTest { } Frame { msec: 6464 - hash: "2476a4d7038b9f1c50557cf077ea4412" + hash: "154e312998b32cc09daf1693d07eda2f" } Mouse { type: 5 @@ -2774,7 +2774,7 @@ VisualTest { } Frame { msec: 6480 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2794,7 +2794,7 @@ VisualTest { } Frame { msec: 6496 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2814,7 +2814,7 @@ VisualTest { } Frame { msec: 6512 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2834,7 +2834,7 @@ VisualTest { } Frame { msec: 6528 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2854,7 +2854,7 @@ VisualTest { } Frame { msec: 6544 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2874,7 +2874,7 @@ VisualTest { } Frame { msec: 6560 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2894,7 +2894,7 @@ VisualTest { } Frame { msec: 6576 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2914,27 +2914,27 @@ VisualTest { } Frame { msec: 6592 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Frame { msec: 6608 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Frame { msec: 6624 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Frame { msec: 6640 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Frame { msec: 6656 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Frame { msec: 6672 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2954,7 +2954,7 @@ VisualTest { } Frame { msec: 6688 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -2974,7 +2974,7 @@ VisualTest { } Frame { msec: 6704 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3014,7 +3014,7 @@ VisualTest { } Frame { msec: 6736 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3034,7 +3034,7 @@ VisualTest { } Frame { msec: 6752 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3054,7 +3054,7 @@ VisualTest { } Frame { msec: 6768 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3074,7 +3074,7 @@ VisualTest { } Frame { msec: 6784 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3094,7 +3094,7 @@ VisualTest { } Frame { msec: 6800 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3114,7 +3114,7 @@ VisualTest { } Frame { msec: 6816 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3134,7 +3134,7 @@ VisualTest { } Frame { msec: 6832 - hash: "ff9bdea73a03bc51f76b6732176a0bad" + hash: "5b3a17fd92fe5117aa405d4c737e6673" } Mouse { type: 5 @@ -3154,7 +3154,7 @@ VisualTest { } Frame { msec: 6848 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "476040951352f144bda4ed7fb817cd7f" } Mouse { type: 5 @@ -3174,7 +3174,7 @@ VisualTest { } Frame { msec: 6864 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Mouse { type: 5 @@ -3194,7 +3194,7 @@ VisualTest { } Frame { msec: 6880 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Mouse { type: 3 @@ -3206,55 +3206,55 @@ VisualTest { } Frame { msec: 6896 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6912 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6928 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6944 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6960 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6976 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 6992 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7008 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7024 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7040 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7056 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7072 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Frame { msec: 7088 - hash: "2b0458102c2231777202e66e0eaa8c8c" + hash: "2cb10cb75beb454df7918b6948c6ad8a" } Mouse { type: 2 @@ -3266,23 +3266,23 @@ VisualTest { } Frame { msec: 7104 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7120 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7136 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7152 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7168 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Mouse { type: 3 @@ -3294,103 +3294,103 @@ VisualTest { } Frame { msec: 7184 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7200 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7216 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7232 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7248 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7264 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7280 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7296 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7312 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7328 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7344 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7360 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7376 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7392 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7408 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7424 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7440 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7456 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7472 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7488 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7504 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7520 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7536 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7552 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Frame { msec: 7568 - hash: "2ca3f2d1e4673bd97d05b43c4b70174a" + hash: "eafa794e0c09cc2558575bafa945ecdf" } Key { type: 6 @@ -3402,15 +3402,15 @@ VisualTest { } Frame { msec: 7584 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7600 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7616 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Key { type: 7 @@ -3422,15 +3422,15 @@ VisualTest { } Frame { msec: 7632 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7648 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7664 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7680 @@ -3438,11 +3438,11 @@ VisualTest { } Frame { msec: 7696 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Frame { msec: 7712 - hash: "ed7e9042cc805a60b1e8cf58a654ac66" + hash: "0444d714b801f88685df9722390faf4f" } Key { type: 6 @@ -3454,63 +3454,63 @@ VisualTest { } Frame { msec: 7728 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7744 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7760 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7776 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7792 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7808 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7824 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7840 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7856 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7872 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7888 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7904 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7920 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7936 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Frame { msec: 7952 - hash: "16829fffc675d304661b9ff844a675f3" + hash: "250a49b60ad8e9b901977e01063ec20a" } Key { type: 7 @@ -3530,11 +3530,11 @@ VisualTest { } Frame { msec: 7968 - hash: "45cfab0823b20b5dc206b42781cd9fb0" + hash: "bec2aea61fef64475e638848b96d28c3" } Frame { msec: 7984 - hash: "45cfab0823b20b5dc206b42781cd9fb0" + hash: "bec2aea61fef64475e638848b96d28c3" } Key { type: 7 @@ -3554,11 +3554,11 @@ VisualTest { } Frame { msec: 8000 - hash: "01069fb12c399f4d22d4d4ec79779752" + hash: "54177e0d53373636850e18399640fee8" } Frame { msec: 8016 - hash: "01069fb12c399f4d22d4d4ec79779752" + hash: "54177e0d53373636850e18399640fee8" } Key { type: 7 @@ -3578,11 +3578,11 @@ VisualTest { } Frame { msec: 8032 - hash: "88b6c6cca32a6d4adfc51cc7cce5e4bb" + hash: "81c03bd9dfd562e9f13784c906fa0d9e" } Frame { msec: 8048 - hash: "88b6c6cca32a6d4adfc51cc7cce5e4bb" + hash: "81c03bd9dfd562e9f13784c906fa0d9e" } Key { type: 7 @@ -3602,11 +3602,11 @@ VisualTest { } Frame { msec: 8064 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8080 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Key { type: 6 @@ -3626,31 +3626,31 @@ VisualTest { } Frame { msec: 8096 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8112 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8128 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8144 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8160 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8176 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Frame { msec: 8192 - hash: "7b8423cfd0806b7d29cdb366133ef828" + hash: "2547fbe956bab6566c2b9137c0edc841" } Key { type: 6 @@ -3662,19 +3662,19 @@ VisualTest { } Frame { msec: 8208 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8224 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8240 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8256 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Key { type: 7 @@ -3686,19 +3686,19 @@ VisualTest { } Frame { msec: 8272 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8288 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8304 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Frame { msec: 8320 - hash: "45feb9f7c516693224505726324e07f1" + hash: "c757d4e60d18ce16f87c66e42cc81a99" } Key { type: 6 @@ -3710,19 +3710,19 @@ VisualTest { } Frame { msec: 8336 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8352 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8368 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8384 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Key { type: 7 @@ -3734,23 +3734,23 @@ VisualTest { } Frame { msec: 8400 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8416 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8432 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8448 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Frame { msec: 8464 - hash: "592811b385809e02c02e5925191fbc0c" + hash: "2ef578193024153dc85a2a92d10dc6c0" } Key { type: 6 @@ -3762,19 +3762,19 @@ VisualTest { } Frame { msec: 8480 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8496 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8512 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8528 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Key { type: 7 @@ -3786,27 +3786,27 @@ VisualTest { } Frame { msec: 8544 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8560 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8576 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8592 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8608 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8624 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8640 @@ -3814,7 +3814,7 @@ VisualTest { } Frame { msec: 8656 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Key { type: 7 @@ -3826,139 +3826,139 @@ VisualTest { } Frame { msec: 8672 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8688 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8704 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8720 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8736 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8752 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8768 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8784 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8800 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8816 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8832 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8848 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8864 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8880 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8896 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8912 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8928 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8944 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8960 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8976 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 8992 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9008 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9024 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9040 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9056 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9072 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9088 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9104 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9120 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9136 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9152 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9168 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9184 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9200 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 2 @@ -3970,11 +3970,11 @@ VisualTest { } Frame { msec: 9216 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9232 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9248 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 5 @@ -4006,7 +4006,7 @@ VisualTest { } Frame { msec: 9264 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 5 @@ -4026,7 +4026,7 @@ VisualTest { } Frame { msec: 9280 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 3 @@ -4038,43 +4038,43 @@ VisualTest { } Frame { msec: 9296 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9312 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9328 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9344 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9360 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9376 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9392 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9408 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9424 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Frame { msec: 9440 - hash: "e9b5feff425d22a5dcecc57ebb3d5379" + hash: "47e926162c6d695d2bdb7ec9de05f0cc" } Mouse { type: 2 @@ -4086,27 +4086,27 @@ VisualTest { } Frame { msec: 9456 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9472 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9488 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9504 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9520 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9536 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Mouse { type: 3 @@ -4118,15 +4118,15 @@ VisualTest { } Frame { msec: 9552 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9568 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9584 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9600 @@ -4134,19 +4134,19 @@ VisualTest { } Frame { msec: 9616 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9632 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9648 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9664 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Key { type: 6 @@ -4158,111 +4158,111 @@ VisualTest { } Frame { msec: 9680 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9696 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9712 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9728 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9744 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9760 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9776 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9792 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9808 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9824 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9840 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9856 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9872 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9888 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9904 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9920 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9936 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9952 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9968 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 9984 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10000 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10016 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10032 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10048 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10064 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10080 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10096 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Key { type: 6 @@ -4274,35 +4274,35 @@ VisualTest { } Frame { msec: 10112 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10128 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10144 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10160 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10176 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10192 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10208 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10224 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Key { type: 7 @@ -4314,35 +4314,35 @@ VisualTest { } Frame { msec: 10240 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10256 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10272 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10288 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10304 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10320 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10336 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Frame { msec: 10352 - hash: "f3e8f8174b1c995d76e68fea7f21f285" + hash: "2ef5e7b2c0edc631765ea12d1f7abf33" } Key { type: 6 @@ -4354,27 +4354,27 @@ VisualTest { } Frame { msec: 10368 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10384 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10400 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10416 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10432 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10448 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Key { type: 7 @@ -4386,27 +4386,27 @@ VisualTest { } Frame { msec: 10464 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10480 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10496 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10512 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10528 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10544 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10560 @@ -4414,23 +4414,23 @@ VisualTest { } Frame { msec: 10576 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10592 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10608 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10624 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10640 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Key { type: 7 @@ -4442,219 +4442,219 @@ VisualTest { } Frame { msec: 10656 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10672 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10688 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10704 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10720 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10736 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10752 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10768 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10784 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10800 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10816 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10832 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10848 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10864 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10880 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10896 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10912 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10928 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10944 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10960 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10976 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 10992 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11008 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11024 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11040 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11056 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11072 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11088 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11104 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11120 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11136 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11152 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11168 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11184 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11200 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11216 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11232 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11248 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11264 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11280 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11296 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11312 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11328 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11344 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11360 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11376 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11392 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11408 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11424 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11440 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11456 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11472 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11488 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11504 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11520 @@ -4662,26 +4662,26 @@ VisualTest { } Frame { msec: 11536 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11552 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11568 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11584 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11600 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } Frame { msec: 11616 - hash: "94c707f2778a4f327f0c49265a42dfb4" + hash: "c3914ed0d035a39423a1f2cf9ac6c165" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png index 0d1fa54..61606b2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png index bedf721..a4b28fc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png index f17abe2..5be6bbb 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png index a98e8ef..a220f65 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png index 36801d8..6946707 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png index 35c39e7..4eeb8ec 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png index 35c39e7..4eeb8ec 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml index 3e36073..f1bb5a9 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "2bfc2ce5462c1b2e8177159590e8bf9d" + hash: "b6611676a7d38162d5c0210ea9d0e291" } Key { type: 6 @@ -18,7 +18,7 @@ VisualTest { } Frame { msec: 32 - hash: "2aebd6f552933d74ad64e953728c44a6" + hash: "b7fc43d4344c8d39f4240dadead86b1e" } Key { type: 7 @@ -30,11 +30,11 @@ VisualTest { } Frame { msec: 48 - hash: "2aebd6f552933d74ad64e953728c44a6" + hash: "b7fc43d4344c8d39f4240dadead86b1e" } Frame { msec: 64 - hash: "2aebd6f552933d74ad64e953728c44a6" + hash: "b7fc43d4344c8d39f4240dadead86b1e" } Key { type: 7 @@ -46,11 +46,11 @@ VisualTest { } Frame { msec: 80 - hash: "2aebd6f552933d74ad64e953728c44a6" + hash: "b7fc43d4344c8d39f4240dadead86b1e" } Frame { msec: 96 - hash: "2aebd6f552933d74ad64e953728c44a6" + hash: "b7fc43d4344c8d39f4240dadead86b1e" } Key { type: 6 @@ -62,15 +62,15 @@ VisualTest { } Frame { msec: 112 - hash: "96f0f1c8ddc760ddb454c374faa75239" + hash: "23006a07263b8b3240c4080fb1d587e9" } Frame { msec: 128 - hash: "96f0f1c8ddc760ddb454c374faa75239" + hash: "23006a07263b8b3240c4080fb1d587e9" } Frame { msec: 144 - hash: "96f0f1c8ddc760ddb454c374faa75239" + hash: "23006a07263b8b3240c4080fb1d587e9" } Key { type: 6 @@ -82,15 +82,15 @@ VisualTest { } Frame { msec: 160 - hash: "5660942e66cdc499a067b1209b46a593" + hash: "8a60fd38fb9c171a15bf7e6e51bee664" } Frame { msec: 176 - hash: "5660942e66cdc499a067b1209b46a593" + hash: "8a60fd38fb9c171a15bf7e6e51bee664" } Frame { msec: 192 - hash: "5660942e66cdc499a067b1209b46a593" + hash: "8a60fd38fb9c171a15bf7e6e51bee664" } Key { type: 7 @@ -102,11 +102,11 @@ VisualTest { } Frame { msec: 208 - hash: "5660942e66cdc499a067b1209b46a593" + hash: "8a60fd38fb9c171a15bf7e6e51bee664" } Frame { msec: 224 - hash: "5660942e66cdc499a067b1209b46a593" + hash: "8a60fd38fb9c171a15bf7e6e51bee664" } Key { type: 6 @@ -118,7 +118,7 @@ VisualTest { } Frame { msec: 240 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Key { type: 7 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 256 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Frame { msec: 272 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Frame { msec: 288 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Frame { msec: 304 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Key { type: 7 @@ -154,11 +154,11 @@ VisualTest { } Frame { msec: 320 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Frame { msec: 336 - hash: "dd3b01d6a2a829e6ba7404d5318f7d15" + hash: "33cdfa214f071848ed374407b4601c5a" } Key { type: 6 @@ -170,19 +170,19 @@ VisualTest { } Frame { msec: 352 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 368 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 384 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 400 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Key { type: 7 @@ -194,19 +194,19 @@ VisualTest { } Frame { msec: 416 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 432 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 448 - hash: "1cf8dbc4358e3aa51c260a3a40143318" + hash: "80794c72fe7dda72997122a89f33e6e4" } Frame { msec: 464 - hash: "c9f5b9e45b0bb040e669daccf8bb1eb0" + hash: "80794c72fe7dda72997122a89f33e6e4" } Key { type: 6 @@ -218,19 +218,19 @@ VisualTest { } Frame { msec: 480 - hash: "fc2972eca4ca510d23c92f712fd1ceb3" + hash: "bfcd901aee3d9db796597834bec1f173" } Frame { msec: 496 - hash: "fc2972eca4ca510d23c92f712fd1ceb3" + hash: "bfcd901aee3d9db796597834bec1f173" } Frame { msec: 512 - hash: "fc2972eca4ca510d23c92f712fd1ceb3" + hash: "bfcd901aee3d9db796597834bec1f173" } Frame { msec: 528 - hash: "fc2972eca4ca510d23c92f712fd1ceb3" + hash: "bfcd901aee3d9db796597834bec1f173" } Key { type: 6 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 544 - hash: "15313caf999d43a079e51c69323682f3" + hash: "965102cb74dcf695b950616ce5c42875" } Frame { msec: 560 - hash: "15313caf999d43a079e51c69323682f3" + hash: "965102cb74dcf695b950616ce5c42875" } Frame { msec: 576 - hash: "15313caf999d43a079e51c69323682f3" + hash: "965102cb74dcf695b950616ce5c42875" } Frame { msec: 592 - hash: "15313caf999d43a079e51c69323682f3" + hash: "965102cb74dcf695b950616ce5c42875" } Frame { msec: 608 - hash: "15313caf999d43a079e51c69323682f3" + hash: "965102cb74dcf695b950616ce5c42875" } Key { type: 7 @@ -286,19 +286,19 @@ VisualTest { } Frame { msec: 624 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Frame { msec: 640 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Frame { msec: 656 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Frame { msec: 672 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Key { type: 7 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 688 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Frame { msec: 704 - hash: "80cbbe525c033083248e4a5d636f875c" + hash: "73556f0cf2c8d77881a7d3881025e343" } Key { type: 6 @@ -326,23 +326,23 @@ VisualTest { } Frame { msec: 720 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Frame { msec: 736 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Frame { msec: 752 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Frame { msec: 768 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Frame { msec: 784 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Key { type: 7 @@ -354,7 +354,7 @@ VisualTest { } Frame { msec: 800 - hash: "ccc8cfb1c79d043ec68b2174f3fb5b27" + hash: "a75bdb09a48b90936d2d4de647e7323d" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 816 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Frame { msec: 832 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Frame { msec: 848 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Key { type: 7 @@ -386,15 +386,15 @@ VisualTest { } Frame { msec: 864 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Frame { msec: 880 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Frame { msec: 896 - hash: "d13548c95a838350f2b3011e643e0182" + hash: "f37ab5f03e7cf86e3589fc0711b23a53" } Key { type: 6 @@ -406,15 +406,15 @@ VisualTest { } Frame { msec: 912 - hash: "1c61611fc6386736782b7d61619ae9af" + hash: "219e5edd5f138cd113f0b929460cf074" } Frame { msec: 928 - hash: "1c61611fc6386736782b7d61619ae9af" + hash: "219e5edd5f138cd113f0b929460cf074" } Frame { msec: 944 - hash: "1c61611fc6386736782b7d61619ae9af" + hash: "219e5edd5f138cd113f0b929460cf074" } Frame { msec: 960 @@ -422,11 +422,11 @@ VisualTest { } Frame { msec: 976 - hash: "224079eaeb708f8cd27326a06857f6aa" + hash: "219e5edd5f138cd113f0b929460cf074" } Frame { msec: 992 - hash: "224079eaeb708f8cd27326a06857f6aa" + hash: "219e5edd5f138cd113f0b929460cf074" } Key { type: 6 @@ -446,23 +446,23 @@ VisualTest { } Frame { msec: 1008 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1024 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1040 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1056 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1072 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Key { type: 7 @@ -474,31 +474,31 @@ VisualTest { } Frame { msec: 1088 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1104 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1120 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1136 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1152 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1168 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Frame { msec: 1184 - hash: "07681c5879322e7ac093c9324b45520d" + hash: "79cf23a46fbbeddbef10ef2a62533342" } Key { type: 6 @@ -510,23 +510,23 @@ VisualTest { } Frame { msec: 1200 - hash: "9dda4b5fa581a01608d9c3e2ce0bc33b" + hash: "ccb17209d85c7e49fbb0b5f9134fc39c" } Frame { msec: 1216 - hash: "9dda4b5fa581a01608d9c3e2ce0bc33b" + hash: "ccb17209d85c7e49fbb0b5f9134fc39c" } Frame { msec: 1232 - hash: "9dda4b5fa581a01608d9c3e2ce0bc33b" + hash: "ccb17209d85c7e49fbb0b5f9134fc39c" } Frame { msec: 1248 - hash: "9dda4b5fa581a01608d9c3e2ce0bc33b" + hash: "ccb17209d85c7e49fbb0b5f9134fc39c" } Frame { msec: 1264 - hash: "9dda4b5fa581a01608d9c3e2ce0bc33b" + hash: "ccb17209d85c7e49fbb0b5f9134fc39c" } Key { type: 7 @@ -546,11 +546,11 @@ VisualTest { } Frame { msec: 1280 - hash: "95c62fa8d99d29999ce84b975d6858bc" + hash: "29aaa213e4b146199289b5383528bc88" } Frame { msec: 1296 - hash: "95c62fa8d99d29999ce84b975d6858bc" + hash: "29aaa213e4b146199289b5383528bc88" } Key { type: 6 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1312 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1328 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1344 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Key { type: 7 @@ -582,11 +582,11 @@ VisualTest { } Frame { msec: 1360 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1376 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1392 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1408 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1424 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Frame { msec: 1440 - hash: "c98dada1c82e867bd0d0ff56de86574f" + hash: "7f9da386497bca2dc19b1c3ab475f453" } Key { type: 6 @@ -622,23 +622,23 @@ VisualTest { } Frame { msec: 1456 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Frame { msec: 1472 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Frame { msec: 1488 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Frame { msec: 1504 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Frame { msec: 1520 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Key { type: 7 @@ -650,11 +650,11 @@ VisualTest { } Frame { msec: 1536 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Frame { msec: 1552 - hash: "30d8ac1ed88cce3df5e8e5ef209caf45" + hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" } Key { type: 6 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1568 - hash: "d0d0bd91c9ac756c43a0c0fe53797ee3" + hash: "c5c789ca287cf673be808f3e10e054a2" } Frame { msec: 1584 - hash: "d0d0bd91c9ac756c43a0c0fe53797ee3" + hash: "c5c789ca287cf673be808f3e10e054a2" } Frame { msec: 1600 - hash: "d0d0bd91c9ac756c43a0c0fe53797ee3" + hash: "c5c789ca287cf673be808f3e10e054a2" } Frame { msec: 1616 - hash: "d0d0bd91c9ac756c43a0c0fe53797ee3" + hash: "c5c789ca287cf673be808f3e10e054a2" } Frame { msec: 1632 - hash: "d0d0bd91c9ac756c43a0c0fe53797ee3" + hash: "c5c789ca287cf673be808f3e10e054a2" } Key { type: 6 @@ -702,23 +702,23 @@ VisualTest { } Frame { msec: 1648 - hash: "8a2825dc4d2883fe491819ae34a2eff8" + hash: "5e39fc7058b64afa7036002a2dae8976" } Frame { msec: 1664 - hash: "8a2825dc4d2883fe491819ae34a2eff8" + hash: "5e39fc7058b64afa7036002a2dae8976" } Frame { msec: 1680 - hash: "8a2825dc4d2883fe491819ae34a2eff8" + hash: "5e39fc7058b64afa7036002a2dae8976" } Frame { msec: 1696 - hash: "8a2825dc4d2883fe491819ae34a2eff8" + hash: "5e39fc7058b64afa7036002a2dae8976" } Frame { msec: 1712 - hash: "8a2825dc4d2883fe491819ae34a2eff8" + hash: "5e39fc7058b64afa7036002a2dae8976" } Key { type: 6 @@ -730,15 +730,15 @@ VisualTest { } Frame { msec: 1728 - hash: "acf73c003e786ca1756f43a2e20962d3" + hash: "687e69083430812cd42eff708229a176" } Frame { msec: 1744 - hash: "acf73c003e786ca1756f43a2e20962d3" + hash: "687e69083430812cd42eff708229a176" } Frame { msec: 1760 - hash: "acf73c003e786ca1756f43a2e20962d3" + hash: "687e69083430812cd42eff708229a176" } Key { type: 7 @@ -750,7 +750,7 @@ VisualTest { } Frame { msec: 1776 - hash: "acf73c003e786ca1756f43a2e20962d3" + hash: "687e69083430812cd42eff708229a176" } Key { type: 6 @@ -762,11 +762,11 @@ VisualTest { } Frame { msec: 1792 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1808 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Key { type: 7 @@ -778,19 +778,19 @@ VisualTest { } Frame { msec: 1824 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1840 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1856 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1872 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Key { type: 7 @@ -802,11 +802,11 @@ VisualTest { } Frame { msec: 1888 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1904 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1920 @@ -814,11 +814,11 @@ VisualTest { } Frame { msec: 1936 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Frame { msec: 1952 - hash: "715cce5efb512e76e65b6dd53de988c6" + hash: "f33cd379acd2785298aa74f78e22bdfb" } Key { type: 6 @@ -830,27 +830,27 @@ VisualTest { } Frame { msec: 1968 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Frame { msec: 1984 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Frame { msec: 2000 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Frame { msec: 2016 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Frame { msec: 2032 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Frame { msec: 2048 - hash: "eb9217410ea88877b037c9f8d38413ab" + hash: "205e79eb4a7e515ffa5bd24677408e79" } Key { type: 6 @@ -862,7 +862,7 @@ VisualTest { } Frame { msec: 2064 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Key { type: 7 @@ -874,15 +874,15 @@ VisualTest { } Frame { msec: 2080 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2096 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2112 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Key { type: 7 @@ -894,27 +894,27 @@ VisualTest { } Frame { msec: 2128 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2144 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2160 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2176 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2192 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Frame { msec: 2208 - hash: "d4b86b88d417e168139671f762a129a9" + hash: "2c1570a63d3eff7346c58356610a2f44" } Key { type: 6 @@ -926,23 +926,23 @@ VisualTest { } Frame { msec: 2224 - hash: "bce77452be7f54a1f42685acb79ca5a3" + hash: "8202436b4e184adc69cdf7dd735afe33" } Frame { msec: 2240 - hash: "bce77452be7f54a1f42685acb79ca5a3" + hash: "8202436b4e184adc69cdf7dd735afe33" } Frame { msec: 2256 - hash: "bce77452be7f54a1f42685acb79ca5a3" + hash: "8202436b4e184adc69cdf7dd735afe33" } Frame { msec: 2272 - hash: "bce77452be7f54a1f42685acb79ca5a3" + hash: "8202436b4e184adc69cdf7dd735afe33" } Frame { msec: 2288 - hash: "bce77452be7f54a1f42685acb79ca5a3" + hash: "8202436b4e184adc69cdf7dd735afe33" } Key { type: 6 @@ -954,7 +954,7 @@ VisualTest { } Frame { msec: 2304 - hash: "c8040808e2d582a32d447eb885b6a72d" + hash: "855069b52f6714d54f4005751b8e2930" } Key { type: 7 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 2320 - hash: "c8040808e2d582a32d447eb885b6a72d" + hash: "855069b52f6714d54f4005751b8e2930" } Frame { msec: 2336 - hash: "c8040808e2d582a32d447eb885b6a72d" + hash: "855069b52f6714d54f4005751b8e2930" } Frame { msec: 2352 - hash: "c8040808e2d582a32d447eb885b6a72d" + hash: "855069b52f6714d54f4005751b8e2930" } Key { type: 6 @@ -986,11 +986,11 @@ VisualTest { } Frame { msec: 2368 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Frame { msec: 2384 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Key { type: 7 @@ -1002,15 +1002,15 @@ VisualTest { } Frame { msec: 2400 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Frame { msec: 2416 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Frame { msec: 2432 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Key { type: 7 @@ -1022,15 +1022,15 @@ VisualTest { } Frame { msec: 2448 - hash: "5beb32a23637b51f1c9b117e93b2c1d0" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Frame { msec: 2464 - hash: "e1020b6bb8ca2e9f0ce93f9047695f48" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Frame { msec: 2480 - hash: "e1020b6bb8ca2e9f0ce93f9047695f48" + hash: "6e1a97a3e491f24e34d4b24bf3091afc" } Key { type: 6 @@ -1042,19 +1042,19 @@ VisualTest { } Frame { msec: 2496 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2512 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2528 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2544 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 2560 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2576 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2592 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2608 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2624 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Frame { msec: 2640 - hash: "429296196c5ebf0094d5e76379f929c5" + hash: "12eb5152181e0bff993dc1be087969f9" } Key { type: 6 @@ -1098,19 +1098,19 @@ VisualTest { } Frame { msec: 2656 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Frame { msec: 2672 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Frame { msec: 2688 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Frame { msec: 2704 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Key { type: 7 @@ -1122,15 +1122,15 @@ VisualTest { } Frame { msec: 2720 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Frame { msec: 2736 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Frame { msec: 2752 - hash: "83a910a91a9c1ca60e8f021b7a96509e" + hash: "8a77655cae6c04453e6dc8a2321d1a32" } Key { type: 6 @@ -1142,23 +1142,23 @@ VisualTest { } Frame { msec: 2768 - hash: "4a2af150d069abfff098673375469b08" + hash: "c42349fe4b75e5d56a04ec6462cb0780" } Frame { msec: 2784 - hash: "4a2af150d069abfff098673375469b08" + hash: "c42349fe4b75e5d56a04ec6462cb0780" } Frame { msec: 2800 - hash: "4a2af150d069abfff098673375469b08" + hash: "c42349fe4b75e5d56a04ec6462cb0780" } Frame { msec: 2816 - hash: "4a2af150d069abfff098673375469b08" + hash: "c42349fe4b75e5d56a04ec6462cb0780" } Frame { msec: 2832 - hash: "4a2af150d069abfff098673375469b08" + hash: "c42349fe4b75e5d56a04ec6462cb0780" } Key { type: 6 @@ -1178,11 +1178,11 @@ VisualTest { } Frame { msec: 2848 - hash: "f1909371c6f44fb7547916340d043ac7" + hash: "973c163b1ea4e6189e788b7f37013185" } Frame { msec: 2864 - hash: "f1909371c6f44fb7547916340d043ac7" + hash: "973c163b1ea4e6189e788b7f37013185" } Frame { msec: 2880 @@ -1190,7 +1190,7 @@ VisualTest { } Frame { msec: 2896 - hash: "f1909371c6f44fb7547916340d043ac7" + hash: "973c163b1ea4e6189e788b7f37013185" } Key { type: 6 @@ -1202,11 +1202,11 @@ VisualTest { } Frame { msec: 2912 - hash: "35fecf3c5feda6afbd4eac5935dca7af" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 2928 - hash: "35fecf3c5feda6afbd4eac5935dca7af" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Key { type: 7 @@ -1218,11 +1218,11 @@ VisualTest { } Frame { msec: 2944 - hash: "35fecf3c5feda6afbd4eac5935dca7af" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 2960 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Key { type: 7 @@ -1234,35 +1234,35 @@ VisualTest { } Frame { msec: 2976 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 2992 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3008 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3024 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3040 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3056 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3072 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Frame { msec: 3088 - hash: "d8e23c87332aed5105cb6d488efd4a63" + hash: "a847abc1ef9a41a741f8dce6bc68e6a1" } Key { type: 6 @@ -1274,23 +1274,23 @@ VisualTest { } Frame { msec: 3104 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3120 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3136 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3152 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3168 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Key { type: 7 @@ -1302,23 +1302,23 @@ VisualTest { } Frame { msec: 3184 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3200 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3216 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3232 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Frame { msec: 3248 - hash: "6c3f38c1180f392082e3879e35a23c5e" + hash: "93d3b56a5070a84164169ab1869d6ed0" } Key { type: 6 @@ -1330,15 +1330,15 @@ VisualTest { } Frame { msec: 3264 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Frame { msec: 3280 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Frame { msec: 3296 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Key { type: 7 @@ -1350,15 +1350,15 @@ VisualTest { } Frame { msec: 3312 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Frame { msec: 3328 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Frame { msec: 3344 - hash: "54bbf6e8fbfc6e2a3e4f0886f1feade3" + hash: "60480b61f29a34c790da8fe1bfd98755" } Key { type: 6 @@ -1370,23 +1370,23 @@ VisualTest { } Frame { msec: 3360 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3376 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3392 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3408 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3424 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Key { type: 7 @@ -1398,15 +1398,15 @@ VisualTest { } Frame { msec: 3440 - hash: "0e7fcbbe36c374e9436e5ecccd8663ee" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3456 - hash: "4928b737a83471181066d043b51e939f" + hash: "c6f235590c03170581dfabc07bf9c20b" } Frame { msec: 3472 - hash: "4928b737a83471181066d043b51e939f" + hash: "c6f235590c03170581dfabc07bf9c20b" } Key { type: 6 @@ -1418,19 +1418,19 @@ VisualTest { } Frame { msec: 3488 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Frame { msec: 3504 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Frame { msec: 3520 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Frame { msec: 3536 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Key { type: 7 @@ -1442,11 +1442,11 @@ VisualTest { } Frame { msec: 3552 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Frame { msec: 3568 - hash: "541901e223b7129edcbd2264da7e13cd" + hash: "10a29af771a5c17b1443b10abd45c9aa" } Key { type: 6 @@ -1458,27 +1458,27 @@ VisualTest { } Frame { msec: 3584 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Frame { msec: 3600 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Frame { msec: 3616 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Frame { msec: 3632 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Frame { msec: 3648 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Frame { msec: 3664 - hash: "86aa5d4fdc4f92c2810ccb3d5e990e22" + hash: "68449dbef331f4bdf4c4bc443ec98e89" } Key { type: 6 @@ -1490,7 +1490,7 @@ VisualTest { } Frame { msec: 3680 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Key { type: 7 @@ -1502,23 +1502,23 @@ VisualTest { } Frame { msec: 3696 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3712 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3728 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3744 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3760 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Key { type: 7 @@ -1530,19 +1530,19 @@ VisualTest { } Frame { msec: 3776 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3792 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3808 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3824 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3840 @@ -1550,19 +1550,19 @@ VisualTest { } Frame { msec: 3856 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3872 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3888 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Frame { msec: 3904 - hash: "af1a78eca66ce7523306aaf324a59af6" + hash: "5c773045e3ccab933749a3f6a74dc25a" } Key { type: 6 @@ -1574,23 +1574,23 @@ VisualTest { } Frame { msec: 3920 - hash: "c72ed9cecd1144b7e937c2c3c33ab0b8" + hash: "f1ef12790a0548cfaa4176680566680d" } Frame { msec: 3936 - hash: "c72ed9cecd1144b7e937c2c3c33ab0b8" + hash: "f1ef12790a0548cfaa4176680566680d" } Frame { msec: 3952 - hash: "c72ed9cecd1144b7e937c2c3c33ab0b8" + hash: "f1ef12790a0548cfaa4176680566680d" } Frame { msec: 3968 - hash: "e00d1a6f1ceb15493e87151071d8ad3f" + hash: "f1ef12790a0548cfaa4176680566680d" } Frame { msec: 3984 - hash: "e00d1a6f1ceb15493e87151071d8ad3f" + hash: "f1ef12790a0548cfaa4176680566680d" } Key { type: 7 @@ -1602,11 +1602,11 @@ VisualTest { } Frame { msec: 4000 - hash: "e00d1a6f1ceb15493e87151071d8ad3f" + hash: "f1ef12790a0548cfaa4176680566680d" } Frame { msec: 4016 - hash: "e00d1a6f1ceb15493e87151071d8ad3f" + hash: "f1ef12790a0548cfaa4176680566680d" } Key { type: 6 @@ -1618,15 +1618,15 @@ VisualTest { } Frame { msec: 4032 - hash: "9b129865b81189be8c2e59178c009cd9" + hash: "22575a03b4c58e4391845d495c2ca48b" } Frame { msec: 4048 - hash: "9b129865b81189be8c2e59178c009cd9" + hash: "22575a03b4c58e4391845d495c2ca48b" } Frame { msec: 4064 - hash: "9b129865b81189be8c2e59178c009cd9" + hash: "22575a03b4c58e4391845d495c2ca48b" } Key { type: 7 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4080 - hash: "9b129865b81189be8c2e59178c009cd9" + hash: "22575a03b4c58e4391845d495c2ca48b" } Key { type: 6 @@ -1650,19 +1650,19 @@ VisualTest { } Frame { msec: 4096 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Frame { msec: 4112 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Frame { msec: 4128 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Frame { msec: 4144 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Key { type: 7 @@ -1674,15 +1674,15 @@ VisualTest { } Frame { msec: 4160 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Frame { msec: 4176 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Frame { msec: 4192 - hash: "ccbc7a847315311d9661b7c3fc6057d6" + hash: "3243dc4562f073136782415365b7b42d" } Key { type: 6 @@ -1694,23 +1694,23 @@ VisualTest { } Frame { msec: 4208 - hash: "3532604c4d8bb23fc8fd44a153708f23" + hash: "44cd04d2a2bf12654cb96ec9af92b9aa" } Frame { msec: 4224 - hash: "3532604c4d8bb23fc8fd44a153708f23" + hash: "44cd04d2a2bf12654cb96ec9af92b9aa" } Frame { msec: 4240 - hash: "3532604c4d8bb23fc8fd44a153708f23" + hash: "44cd04d2a2bf12654cb96ec9af92b9aa" } Frame { msec: 4256 - hash: "3532604c4d8bb23fc8fd44a153708f23" + hash: "44cd04d2a2bf12654cb96ec9af92b9aa" } Frame { msec: 4272 - hash: "3532604c4d8bb23fc8fd44a153708f23" + hash: "44cd04d2a2bf12654cb96ec9af92b9aa" } Key { type: 6 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 4288 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Key { type: 7 @@ -1734,15 +1734,15 @@ VisualTest { } Frame { msec: 4304 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4320 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4336 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Key { type: 7 @@ -1754,23 +1754,23 @@ VisualTest { } Frame { msec: 4352 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4368 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4384 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4400 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Frame { msec: 4416 - hash: "7a951d7233a41e872aa8f8784edc1bff" + hash: "cf1eb35cb9a793769303abee0a2fcad8" } Key { type: 6 @@ -1782,15 +1782,15 @@ VisualTest { } Frame { msec: 4432 - hash: "41683813bcdc1761003a9bece7752516" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4448 - hash: "41683813bcdc1761003a9bece7752516" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4464 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Key { type: 7 @@ -1802,23 +1802,23 @@ VisualTest { } Frame { msec: 4480 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4496 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4512 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4528 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Frame { msec: 4544 - hash: "be52b6b350696bb8e883bd24750cce06" + hash: "252838a495502ba5b836ffd1b20711f4" } Key { type: 6 @@ -1830,19 +1830,19 @@ VisualTest { } Frame { msec: 4560 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4576 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4592 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4608 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Key { type: 7 @@ -1854,19 +1854,19 @@ VisualTest { } Frame { msec: 4624 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4640 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4656 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Frame { msec: 4672 - hash: "f4845e51dfb18617fe31471b0cb3bf16" + hash: "4010bb0f50630f067974e6ddb3177693" } Key { type: 6 @@ -1878,19 +1878,19 @@ VisualTest { } Frame { msec: 4688 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Frame { msec: 4704 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Frame { msec: 4720 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Frame { msec: 4736 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Key { type: 7 @@ -1902,15 +1902,15 @@ VisualTest { } Frame { msec: 4752 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Frame { msec: 4768 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Frame { msec: 4784 - hash: "4e994f63cd763db43435fd39e864585c" + hash: "14dc6ee8cd3b4747650f2a458b42a6e3" } Key { type: 6 @@ -1926,7 +1926,7 @@ VisualTest { } Frame { msec: 4816 - hash: "2b5db83aff14077f625dbfc75830b2b0" + hash: "7d4a56854715772c92706522d2dcac56" } Key { type: 7 @@ -1938,19 +1938,19 @@ VisualTest { } Frame { msec: 4832 - hash: "2b5db83aff14077f625dbfc75830b2b0" + hash: "7d4a56854715772c92706522d2dcac56" } Frame { msec: 4848 - hash: "2b5db83aff14077f625dbfc75830b2b0" + hash: "7d4a56854715772c92706522d2dcac56" } Frame { msec: 4864 - hash: "2b5db83aff14077f625dbfc75830b2b0" + hash: "7d4a56854715772c92706522d2dcac56" } Frame { msec: 4880 - hash: "2b5db83aff14077f625dbfc75830b2b0" + hash: "7d4a56854715772c92706522d2dcac56" } Key { type: 6 @@ -1962,19 +1962,19 @@ VisualTest { } Frame { msec: 4896 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 4912 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 4928 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 4944 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Key { type: 7 @@ -1986,203 +1986,203 @@ VisualTest { } Frame { msec: 4960 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 4976 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 4992 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5008 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5024 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5040 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5056 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5072 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5088 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5104 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5120 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5136 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5152 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5168 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5184 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5200 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5216 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5232 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5248 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5264 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5280 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5296 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5312 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5328 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5344 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5360 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5376 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5392 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5408 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5424 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5440 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5456 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5472 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5488 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5504 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5520 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5536 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5552 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5568 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5584 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5600 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5616 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5632 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5648 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5664 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5680 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5696 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5712 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5728 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5744 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5760 @@ -2190,239 +2190,239 @@ VisualTest { } Frame { msec: 5776 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5792 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5808 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5824 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5840 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5856 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5872 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5888 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5904 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5920 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5936 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5952 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5968 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 5984 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6000 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6016 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6032 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6048 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6064 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6080 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6096 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6112 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6128 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6144 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6160 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6176 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6192 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6208 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6224 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6240 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6256 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6272 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6288 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6304 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6320 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6336 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6352 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6368 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6384 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6400 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6416 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6432 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6448 - hash: "f902766808596ea423cbc0b7e9bdd87a" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6464 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6480 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6496 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6512 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6528 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6544 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6560 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6576 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6592 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6608 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6624 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6640 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6656 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6672 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6688 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6704 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6720 @@ -2430,38 +2430,38 @@ VisualTest { } Frame { msec: 6736 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6752 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6768 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6784 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6800 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6816 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6832 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6848 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } Frame { msec: 6864 - hash: "566cba616a99c92c228a4c312466b96b" + hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png index d889eef..1d96795 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png index 0c8c250..a3a9bfa 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png index 76b7fce..b50028c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png index ecc8568..1c4876e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png index 766abaf..9d110cb 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml index 37f5e46..bd4af6a 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml @@ -6,115 +6,115 @@ VisualTest { } Frame { msec: 16 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 32 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 48 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 64 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 80 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 96 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 112 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 128 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 144 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 160 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 176 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 192 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 208 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 224 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 240 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 256 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 272 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 288 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 304 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 320 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 336 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 352 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 368 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 384 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 400 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 416 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 432 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Frame { msec: 448 - hash: "79b388ca7d46e1efb38672c6bf8837f8" + hash: "c0ffaa97d1be341fafafc18762f5cb67" } Key { type: 6 @@ -126,23 +126,23 @@ VisualTest { } Frame { msec: 464 - hash: "52c03d5681cadb1df400a0974261e05d" + hash: "eadbfc95de35a0d1880809b2bbaec562" } Frame { msec: 480 - hash: "52c03d5681cadb1df400a0974261e05d" + hash: "eadbfc95de35a0d1880809b2bbaec562" } Frame { msec: 496 - hash: "52c03d5681cadb1df400a0974261e05d" + hash: "eadbfc95de35a0d1880809b2bbaec562" } Frame { msec: 512 - hash: "52c03d5681cadb1df400a0974261e05d" + hash: "eadbfc95de35a0d1880809b2bbaec562" } Frame { msec: 528 - hash: "9c280c469d12fc0bf1ff42883ffd5155" + hash: "227cbfe5fc07906060951e19ebb3ad30" } Key { type: 7 @@ -154,19 +154,19 @@ VisualTest { } Frame { msec: 544 - hash: "655716f3544c6ae649cbda487ed1916f" + hash: "066256a59ad290b3725193955e3c48a6" } Frame { msec: 560 - hash: "e9e6a20040bedf4afb670310a7e5c2f0" + hash: "6709f77cbcde82886d1c5a07f06b55a5" } Frame { msec: 576 - hash: "842641682f22e370402857b9cb875192" + hash: "da0028083048837b4756a2d3ff468378" } Frame { msec: 592 - hash: "4d8258cd2fea9b4bee647b9480a743e3" + hash: "5f265351bed34357d603794d868dbcbc" } Key { type: 6 @@ -178,19 +178,19 @@ VisualTest { } Frame { msec: 608 - hash: "eb7d48cbf4cad403eb7d3fa2d10e0f88" + hash: "3b8030849229e90b69842219e8b2d3f1" } Frame { msec: 624 - hash: "c6387240c7075e8321fda5348de9b752" + hash: "0b08356d9b00313b2d892175dd93095a" } Frame { msec: 640 - hash: "98fb4f03db3a574cf96e88ca940fcd07" + hash: "4780555b277d65e3e4c0c60817b63eb4" } Frame { msec: 656 - hash: "19d450ee21b0c525aba2c38e62c5b117" + hash: "6b31c8f0569d01d97a371423a0f379c0" } Key { type: 7 @@ -202,19 +202,19 @@ VisualTest { } Frame { msec: 672 - hash: "9943426dd31b393c4831dcfcdb266f76" + hash: "e9a5695636f7957d33f1c902a37a605d" } Frame { msec: 688 - hash: "318bd0909d6ab32fc15ee385b69e1dc2" + hash: "27a783cd4ef5caab382721a98f7966da" } Frame { msec: 704 - hash: "ca5f62f289b5f86e6d86afdcb0bc05f5" + hash: "c50598c0a5f8d501fd3ac9cddecee506" } Frame { msec: 720 - hash: "2158851f276862dd1e2a7d3fee9af938" + hash: "2a2d0e202bc3bf7991409391a2ce2934" } Key { type: 6 @@ -226,19 +226,19 @@ VisualTest { } Frame { msec: 736 - hash: "746e28cf8df1bcfd5a07383e4f9e1420" + hash: "2d97b8503c739b210615971ad08c2714" } Frame { msec: 752 - hash: "8ae15b54e47c6ba43b6ddad234a65499" + hash: "f27fd7f1d8c6dfb7393ab0d39ed5cd02" } Frame { msec: 768 - hash: "8fcb22bd16dafb62a2fdcd40feda5178" + hash: "32d256543e3e1ba722860e5143af9f09" } Frame { msec: 784 - hash: "1ef6e14540615967e7c059fb3299c38a" + hash: "9123b724613ef4d3d8431afde6e9eb6b" } Key { type: 7 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 800 - hash: "cd260f4aa6e9772668b13f1f5e4ab3db" + hash: "be5249a7effc94ec2be3d6053eba7b45" } Frame { msec: 816 - hash: "44aaa31fe7183e0088eb9ec12cfef69f" + hash: "57f2c119c9eca3d1e4acd2f775af5207" } Frame { msec: 832 - hash: "575b1fbc9fa6587ce9811b5074a47a84" + hash: "23b79a2630448e99f27a657fd9789354" } Frame { msec: 848 - hash: "83b1fe02fdbe16418231c8acbbbebcac" + hash: "c8faab137cbc014aef5e3212889d00b8" } Frame { msec: 864 - hash: "7bfb6f545fd55e7e336431e6882c9974" + hash: "c9616f6fde5d6a8ecf346ece9952f09b" } Key { type: 6 @@ -278,15 +278,15 @@ VisualTest { } Frame { msec: 880 - hash: "bf3a6677b5f815e1b66f6489032f8e1d" + hash: "11a861ca71d789e3d97d599608a793be" } Frame { msec: 896 - hash: "cfcd90f1e97e92b0fbe2595275a64a48" + hash: "5a6c57df0c33b83985aeb194f291ad6c" } Frame { msec: 912 - hash: "397ad28f60e1f5245b59380968ececd2" + hash: "2c047359db6946cb740462b0d6c695be" } Key { type: 7 @@ -298,11 +298,11 @@ VisualTest { } Frame { msec: 928 - hash: "c6ea797bc327a7e31316f44e93d6beb9" + hash: "d0bb54caf661be021be8fe2691de24e8" } Frame { msec: 944 - hash: "0e3c15c5328c85a54826b65ec82007f5" + hash: "80f0a60239f4d81b18b9cb3e80faf346" } Frame { msec: 960 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 976 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 992 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Key { type: 6 @@ -326,15 +326,15 @@ VisualTest { } Frame { msec: 1008 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 1024 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 1040 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Key { type: 7 @@ -346,23 +346,23 @@ VisualTest { } Frame { msec: 1056 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 1072 - hash: "676e251f10800c2a8860b43c2546524d" + hash: "5f6cc0c97e4748aeeaa4a00c8a8c8928" } Frame { msec: 1088 - hash: "db99874ab3656663316931ea0ac4c7c3" + hash: "b1d71160d9a8a8edeb4cf7e00df36cfc" } Frame { msec: 1104 - hash: "2c4b2205df96e09a9cd91d5efb86d820" + hash: "5bfd4269145cc0962e0fa9c294e8f5aa" } Frame { msec: 1120 - hash: "25e6e81e4769751e9639ee4a3c4ae839" + hash: "4e22c95802d83f0099017c6be9d93214" } Key { type: 6 @@ -374,23 +374,23 @@ VisualTest { } Frame { msec: 1136 - hash: "9eaa29386d3ad22b9032b8b345739342" + hash: "0f31d8f4867af7c2f4fb8e86aa077afd" } Frame { msec: 1152 - hash: "21ebb054c5df6104bb01e0a8abe9b40c" + hash: "21a552133320008a4d4f77752a3cfb55" } Frame { msec: 1168 - hash: "3ab8cdbe65ea34868c1a917e42d31c14" + hash: "3a30a4a785de21da0ff939e303202a81" } Frame { msec: 1184 - hash: "05badd00be618fc4395e80936284613f" + hash: "b0e3ed2468538aacec354cb96d90c362" } Frame { msec: 1200 - hash: "8a373ed9798a8dd33aab5191db06f190" + hash: "56bf6e3fe47e52046b443481fc17a3ec" } Key { type: 7 @@ -402,27 +402,27 @@ VisualTest { } Frame { msec: 1216 - hash: "2a8c6a7cd20fcf7b5c8b75c59f50276b" + hash: "ce80807cde9b902ebf33281fce50d9fb" } Frame { msec: 1232 - hash: "2e874a6b741d1cbfde5544fb831bdf84" + hash: "ed67b18b5f7b90d3bcd9f662e70dc7b8" } Frame { msec: 1248 - hash: "36e3d3a9a4e7163a1c052f30a97697dc" + hash: "930950ce5c6b12da47eea1b92d5176eb" } Frame { msec: 1264 - hash: "fb18565ab22f6b397aef65a992c0dff8" + hash: "5a2eeca0f1533d323cc4d7ffbb7ad6aa" } Frame { msec: 1280 - hash: "13763364dd631556988fe18afce23e84" + hash: "3f7f3ef2d4c1353dfe7027930505f4fd" } Frame { msec: 1296 - hash: "2ea2995a7c022a4959eb1128d69907cc" + hash: "1a3a781ac5a1e90a4415944e0c54ea4e" } Key { type: 6 @@ -434,7 +434,7 @@ VisualTest { } Frame { msec: 1312 - hash: "88485c98b946476b52094c85702939d4" + hash: "d11dae0dd461fc82a73bf319905320d4" } Key { type: 6 @@ -446,19 +446,19 @@ VisualTest { } Frame { msec: 1328 - hash: "532586645946f17a274a3f7d1077e55b" + hash: "00957049ea51866138cfc33451f12e17" } Frame { msec: 1344 - hash: "1702f1badb65f4039536c7255220a4b9" + hash: "386847af9b173db7ef1554d2c85c748e" } Frame { msec: 1360 - hash: "7cd23a8548d9d2d7da78fa541d1ff9ba" + hash: "4b715060d29d6228a40217bc769fc140" } Frame { msec: 1376 - hash: "42a4e0f3511d45f56e445737cbda49b5" + hash: "e58a9a3623afa08819351c22435ba03f" } Key { type: 6 @@ -470,31 +470,31 @@ VisualTest { } Frame { msec: 1392 - hash: "e326fff480404a41735b1567a784ba80" + hash: "6378e3faf5578818fc282de2a077da59" } Frame { msec: 1408 - hash: "4d972a5cfa88e86c72dc1fa7430090e4" + hash: "07efb3687d29e65680e1cc831762348f" } Frame { msec: 1424 - hash: "691c28e265d5cd253c06f6feff7ee536" + hash: "5292e7c95b3c5b11e4088b5010984257" } Frame { msec: 1440 - hash: "3ebb2496ec085b92a8f130e4f54c26c9" + hash: "ffe95603f5fe9d63abb3b77c399c3b11" } Frame { msec: 1456 - hash: "2447e98313dc850f58333c7aa630ef28" + hash: "ad7cb73893c27b69704c5b821738a3c1" } Frame { msec: 1472 - hash: "9d8bc16d365e534e4e1feee7185db44f" + hash: "e25971a61888ded93b651891ec9661b0" } Frame { msec: 1488 - hash: "9a4b9cb5396857f79eac3a0a4e1dc1b3" + hash: "80f90b3623bf34544438dd00abee7037" } Key { type: 7 @@ -506,51 +506,51 @@ VisualTest { } Frame { msec: 1504 - hash: "2d25e8fc011ec795e1596806a81be60d" + hash: "797dd70572e532d4acb374230b2c8efe" } Frame { msec: 1520 - hash: "2fce48cf607cc3809ee1a9f59323e23a" + hash: "0673db1283d874a5711520f272572cf8" } Frame { msec: 1536 - hash: "0fa177b9aa230dbcd5032a6ecddf604a" + hash: "fbc8434912f08a93b5f884258bc754b7" } Frame { msec: 1552 - hash: "2dd53f15e0787337ce0590223e5ce788" + hash: "e41ebaf8f2114a6e8f38f731ea164e8a" } Frame { msec: 1568 - hash: "385d08fa990f40a7a1d5fd61fa9fe7ae" + hash: "d14bdb5bf1b4756166ecf6f3255bf3cc" } Frame { msec: 1584 - hash: "481401635bd419b8a30435135f61223f" + hash: "5fb04569aa0e530b898a3c11725b947e" } Frame { msec: 1600 - hash: "d6600e6fcfd477100b7aab3509888512" + hash: "03d24457fae160864fec985765f6d8d1" } Frame { msec: 1616 - hash: "4ede7ec537b56352dec575bbb7dbd482" + hash: "56dad740bb9032d113a0dacbe986c9c0" } Frame { msec: 1632 - hash: "d4ff15c0dcf76dd7c97a0bf1901d688e" + hash: "70d9acda83aa7db59780cf56f03e38ec" } Frame { msec: 1648 - hash: "d15c7df693dfb0ef48c30d5f73b34126" + hash: "a272e39bc1af0f4d1bab9c3f64e746e2" } Frame { msec: 1664 - hash: "6dee0c6a00fb378692277914d22607e6" + hash: "cf0379de604b9bb33b4456cb89e09afd" } Frame { msec: 1680 - hash: "8d74e52fca14ec36b266ace5113cac2b" + hash: "332e7a10d75c0d21a24fc8be34269629" } Key { type: 6 @@ -562,31 +562,31 @@ VisualTest { } Frame { msec: 1696 - hash: "a33b648bc08e2b0db4e04a28dc7f64a2" + hash: "c07eb71d90e74393205338bc946c1e43" } Frame { msec: 1712 - hash: "04af2732e95351448a3a4e5a12eb2c0d" + hash: "984477de7c103ff3aebc2634785dce09" } Frame { msec: 1728 - hash: "72795cad18792504420251987d814cc5" + hash: "958f79dd7c57387042746df2ca01779e" } Frame { msec: 1744 - hash: "46e3c02ca6ea9c831b276c6f0ef954db" + hash: "53bb3f0718d6333ca40dc279b6300b85" } Frame { msec: 1760 - hash: "42173174a90d470901cd543e2bd57225" + hash: "c16877cb99997cc47f1fff5af1d22bd7" } Frame { msec: 1776 - hash: "57e7d302246a27430b1e60fdbdfc368a" + hash: "dea3e1eb6c72f0d37398e3e301a23c19" } Frame { msec: 1792 - hash: "896b150b47d87ec3d279ab149195758e" + hash: "6bb7918f0794e6a7cbdb8847cdcf6e35" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1808 - hash: "041240041c62b4cef6f329328eee2c6f" + hash: "6858cd874abb1ed2fec34862f76044fa" } Frame { msec: 1824 - hash: "46e38ca8d4d827dc71719d662d433983" + hash: "47b546ea0d5b1d4573991d4738c37f4d" } Frame { msec: 1840 - hash: "7d6ea4d357f0e916eaae3edd662bec9e" + hash: "6c9e636dee2bb5f2a72a2c08ab9fb970" } Frame { msec: 1856 - hash: "b1214158b7f01fde56ec436baf88b98f" + hash: "42c2b2a7f41c88ae7bb19403e2460a17" } Key { type: 7 @@ -622,7 +622,7 @@ VisualTest { } Frame { msec: 1872 - hash: "22b59737bb8ef5ffc78f1ef4a707d328" + hash: "80b7986af693b89dc4d4f9533dae85cb" } Key { type: 6 @@ -634,11 +634,11 @@ VisualTest { } Frame { msec: 1888 - hash: "70b47f9af5373d4d5e0777eb169cbfe3" + hash: "631bea21dde9b7647f5843bc3513f3ba" } Frame { msec: 1904 - hash: "d02ddd6f4b7169dcd114c519843eb855" + hash: "cc40335abbea0d589180096f7d8f5426" } Frame { msec: 1920 @@ -646,31 +646,31 @@ VisualTest { } Frame { msec: 1936 - hash: "5af4a21ba6e3b5e994557831d7063e92" + hash: "1c03b5384a889fe233eb1c6d14a55f36" } Frame { msec: 1952 - hash: "97ef4122641ac4c49b9ef9a9dc1e5a0a" + hash: "7762cc4e6cf681311f5296de698c950b" } Frame { msec: 1968 - hash: "7794188761d3efa4b47d4ab4c07208a3" + hash: "678eed1d1fec30b02156d690777397c1" } Frame { msec: 1984 - hash: "4ca45c199693e767448016c4ccf1daaf" + hash: "96f51fee5c7baf78a3465420d63a9e5f" } Frame { msec: 2000 - hash: "4ca45c199693e767448016c4ccf1daaf" + hash: "96f51fee5c7baf78a3465420d63a9e5f" } Frame { msec: 2016 - hash: "4ca45c199693e767448016c4ccf1daaf" + hash: "96f51fee5c7baf78a3465420d63a9e5f" } Frame { msec: 2032 - hash: "4ca45c199693e767448016c4ccf1daaf" + hash: "96f51fee5c7baf78a3465420d63a9e5f" } Key { type: 7 @@ -682,7 +682,7 @@ VisualTest { } Frame { msec: 2048 - hash: "4ca45c199693e767448016c4ccf1daaf" + hash: "96f51fee5c7baf78a3465420d63a9e5f" } Key { type: 7 @@ -694,27 +694,27 @@ VisualTest { } Frame { msec: 2064 - hash: "7794188761d3efa4b47d4ab4c07208a3" + hash: "678eed1d1fec30b02156d690777397c1" } Frame { msec: 2080 - hash: "97ef4122641ac4c49b9ef9a9dc1e5a0a" + hash: "7762cc4e6cf681311f5296de698c950b" } Frame { msec: 2096 - hash: "5af4a21ba6e3b5e994557831d7063e92" + hash: "1c03b5384a889fe233eb1c6d14a55f36" } Frame { msec: 2112 - hash: "6f0f9bfa49f50ffd18ffe695cdc56d73" + hash: "2cd264339edc0338fc610e0d766425cc" } Frame { msec: 2128 - hash: "d02ddd6f4b7169dcd114c519843eb855" + hash: "cc40335abbea0d589180096f7d8f5426" } Frame { msec: 2144 - hash: "70b47f9af5373d4d5e0777eb169cbfe3" + hash: "631bea21dde9b7647f5843bc3513f3ba" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "9e770dcd2f33ad157e86d08752458daf" + hash: "c5199c908df1f550d7c4f133eb926134" } Frame { msec: 2176 - hash: "b6c660ffd14bb756f87adb5cf836e97f" + hash: "483eca22c50750e7591785ed60813d1f" } Frame { msec: 2192 - hash: "c498c154fcf2d66fc0981150e575033c" + hash: "4091de379d8f6ccc7f19ea39f6c7993a" } Frame { msec: 2208 - hash: "29277da2d1d6251e18ab89331d5df61d" + hash: "cd58c0d4f7248315a787542b0edcb4fb" } Frame { msec: 2224 - hash: "3c7588de81cbfbba8735da74de220128" + hash: "458895f9ede4d56e0b851c6ed124405d" } Frame { msec: 2240 - hash: "4fa61e0644ce0942a30f05ad8d3f13f6" + hash: "29a28a97fc78a1b01252b852fb0446e2" } Key { type: 7 @@ -758,31 +758,31 @@ VisualTest { } Frame { msec: 2256 - hash: "3a90bb8b912d0be07e0e8b78407c54ff" + hash: "4fd9f22ad06e02b68319c298c2286e36" } Frame { msec: 2272 - hash: "3d89454f0af4ab88ea67a075cb4e39b7" + hash: "a588e9dbeabd7519cd0cf2d26a123529" } Frame { msec: 2288 - hash: "abdd589312402caea0b1c4f26ff6a1bf" + hash: "bb74f706477e277284fad50752f078b5" } Frame { msec: 2304 - hash: "e6ab11dfb1965e94f5a42f2642ca0b30" + hash: "38f16a7deeaea6828edd15b00024fc19" } Frame { msec: 2320 - hash: "c9fbfb63e19d1281b0c3a59504cd695c" + hash: "30c4aa33a6672f4df24186ad1e28bcf9" } Frame { msec: 2336 - hash: "bc250ab3f5da66ecb0792a796b197149" + hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" } Frame { msec: 2352 - hash: "c5d26cd3ac3f87c77d716b912875b9de" + hash: "e1c083d0235ff5a2e002ce78f43009b0" } Key { type: 6 @@ -802,23 +802,23 @@ VisualTest { } Frame { msec: 2368 - hash: "bbe9837039b7ea1dfab8ed30c8a15724" + hash: "eaee6483a2a4a0b09a8e40bb1785a498" } Frame { msec: 2384 - hash: "836f9f207d8197f8e6e8e9c49f83aa4e" + hash: "26530bded6311640c4d3f6d1485fa7d3" } Frame { msec: 2400 - hash: "235d20a347a0f7b331e707ad7de93f95" + hash: "e54102edbf6cc0c9a32b09858f760ee5" } Frame { msec: 2416 - hash: "7f422b624488525aede06c69996fc583" + hash: "27434828de3ba8f6a3b83f042b70eb8b" } Frame { msec: 2432 - hash: "664bef152c87b3eb6729d9b46bad750c" + hash: "fdf68e988b988d068ea78a5a09ef349e" } Key { type: 6 @@ -830,23 +830,23 @@ VisualTest { } Frame { msec: 2448 - hash: "d32716cb4cb9fc8145029efb3fd1a32a" + hash: "0e1e9a2cf891cf65f30ead539becf408" } Frame { msec: 2464 - hash: "17670e9d61ef2f9a0ec079b413ab546a" + hash: "46602c03632f6a47c9d523e1ea61baaf" } Frame { msec: 2480 - hash: "6a3cbc70476d4e145a0e187ad7a73c52" + hash: "5c758ee2aa3f92b6506533f6d615bc20" } Frame { msec: 2496 - hash: "aa0f4cf316026154c940261b4df848e3" + hash: "25edbdaae72e03426c9dfa75c08c33e6" } Frame { msec: 2512 - hash: "2650d86c6aa82e4cc5e7ec4e2889f028" + hash: "a4bd11f15594932b996a069f3098c596" } Key { type: 7 @@ -858,23 +858,23 @@ VisualTest { } Frame { msec: 2528 - hash: "ab392121c99d4f8f5a3622c26761a57e" + hash: "e4090b920ce2456149155f61fb586a6f" } Frame { msec: 2544 - hash: "4f1c4006a84d794a7eaf9932a6f7d3ea" + hash: "ce71f4dc76f90fa300d715ed77e8a5a8" } Frame { msec: 2560 - hash: "f6387eb0678a78894f607a7ff186bd19" + hash: "59414694d42a3942c4832fd7a3e93145" } Frame { msec: 2576 - hash: "b14cb2545cb2cc055b914618d5086425" + hash: "1213fc9d9c1d58ceefc213a59f970679" } Frame { msec: 2592 - hash: "e31ebced4421e9d5092950d373f9a4e9" + hash: "bbfa8471ab3fa5fc146946a6c8e0ce86" } Key { type: 6 @@ -886,15 +886,15 @@ VisualTest { } Frame { msec: 2608 - hash: "b2177f1eed72624c4f6e4bd59902db16" + hash: "22a49c3b5234b4b7a2b935d58027f834" } Frame { msec: 2624 - hash: "9ade9a8b436bb9481e8135b7342070ff" + hash: "7b81c14d5350fb55775c1cb0f3945c46" } Frame { msec: 2640 - hash: "4bdbc37f8ecac1a8aae182cb3e6bf1fa" + hash: "8ebf266de0df228e47cc6e5a8758a6ea" } Key { type: 7 @@ -906,23 +906,23 @@ VisualTest { } Frame { msec: 2656 - hash: "3bf69edaa0eec73246c52f310079a15d" + hash: "6344eb333dc28672f863bcb7ca5d6cfe" } Frame { msec: 2672 - hash: "add80b7fde2865bb23ccb46a03b5604c" + hash: "8efc9b4a6c27b8918cba629a5a1c0f24" } Frame { msec: 2688 - hash: "6259b8d763f468054f35c87f4ba47d30" + hash: "b586c24ce0c04391a9095c0ac4b7a05a" } Frame { msec: 2704 - hash: "1dd94dcd8c7f651811f1b962a75962be" + hash: "191413fe51a6887ae92c135252fdeeae" } Frame { msec: 2720 - hash: "f813c62008a3880d079cb1c0be9a03e1" + hash: "fc0b37abf12827af41e7037eab8ba5c8" } Key { type: 6 @@ -934,19 +934,19 @@ VisualTest { } Frame { msec: 2736 - hash: "4e776b52bce5b0e0ee46f9feff684a90" + hash: "5efe28d02b93e094192d7fd6fe753acd" } Frame { msec: 2752 - hash: "cd2c2b6e9d05b521214eeab29e89d7c4" + hash: "dadc1f7b14fbf9f8a174821c4197da46" } Frame { msec: 2768 - hash: "8605360fcf3f24372463827a1d3f93c6" + hash: "124deac57a3eeaef4cb3c0c802bacc05" } Frame { msec: 2784 - hash: "03b734ffb679f8718999c4e060a2febb" + hash: "e022a6d66a7b37d72885a7a7f6919433" } Key { type: 7 @@ -958,23 +958,23 @@ VisualTest { } Frame { msec: 2800 - hash: "43e2020cd127ce541b54ba7814c9ba74" + hash: "5faa6543469753948b1636351d044329" } Frame { msec: 2816 - hash: "9c1774f8ae01e37aac05d27567d3cec6" + hash: "a7dcf5a0b9bb00105eed173b498cb95c" } Frame { msec: 2832 - hash: "6c4a7a200eba8b6c5c0b5b75d8a88811" + hash: "29ac83d169af2c74ffd134d771c88718" } Frame { msec: 2848 - hash: "21d88afb0f05ace0710da47af275d827" + hash: "0a04648fdc90ec86fb55ad3a165573c4" } Frame { msec: 2864 - hash: "42b56667390aa2db6d593b7af9a5021a" + hash: "d699c713ba939612f1e552e48db19b18" } Frame { msec: 2880 @@ -982,51 +982,51 @@ VisualTest { } Frame { msec: 2896 - hash: "5897cafae19f8842f53a54b75e36f22d" + hash: "adf564652cfae394869755ff2fe5b534" } Frame { msec: 2912 - hash: "11cacddae5d5361b7e87696808ac2905" + hash: "d1453f663217ee45a8462b7d077d7f6a" } Frame { msec: 2928 - hash: "2cc3dcb900ab2bffd52fb61fff108043" + hash: "9f1461d63ccc49f83e58245ba75685e1" } Frame { msec: 2944 - hash: "8938b8c7254873197e409206c1c20ad4" + hash: "8cece1543e7e9190eefaa92c2024cbd1" } Frame { msec: 2960 - hash: "e343d647f236969530d0b076c3375f1a" + hash: "555abf8bc3fdb1eef85b1e4bd54932a3" } Frame { msec: 2976 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 2992 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 3008 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 3024 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 3040 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 3056 - hash: "5e39a0f9bdc45a7a288f59b7cbbf749d" + hash: "7fc65284b99fc548de0985d94a145fa7" } Frame { msec: 3072 - hash: "e343d647f236969530d0b076c3375f1a" + hash: "555abf8bc3fdb1eef85b1e4bd54932a3" } Key { type: 6 @@ -1038,23 +1038,23 @@ VisualTest { } Frame { msec: 3088 - hash: "ac4898002fdc5ea7894d741cac863c8d" + hash: "996da2eff9302908a55308dbcc8fb3c2" } Frame { msec: 3104 - hash: "eda67cb2d32f3f605a74a01148f04c99" + hash: "6ccc70f6120acb53152b71bcf95514ca" } Frame { msec: 3120 - hash: "13e84656ef70bf07e2a444d60ac933e1" + hash: "51a1b8e79d209643d55d4cecc6a70ed0" } Frame { msec: 3136 - hash: "9d624eebe5824fc5d4a89a04f2d776a3" + hash: "944dc7026c6487838ede9ef94003ec90" } Frame { msec: 3152 - hash: "2c7d542f60c68e16377d3c5afea0f4e3" + hash: "4abbd51b620ac4ea91af95bc2d0881d7" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 3168 - hash: "7db8d678bd1890010b2a1b9bb732c17c" + hash: "ba721988a1708b8c0762d706820c48fc" } Frame { msec: 3184 - hash: "6d6f4cc1193b73c65db893c3f983d9f0" + hash: "5dba56a5bb5f8a6539a0066af35c73b8" } Frame { msec: 3200 - hash: "d4e8985ad4d14436a87db45585fca946" + hash: "bc3efeeebe7075cd09a6e57eef43d610" } Frame { msec: 3216 - hash: "495b67926e9002a43e2d251b8c96564f" + hash: "0bd9f7de32b01d8144280bf252d9a18f" } Frame { msec: 3232 - hash: "3b2dd937cfb6cd57884f3b813f3d4129" + hash: "29db710e47b13f26e2bf92568d52bf52" } Frame { msec: 3248 - hash: "02a5902af43990021465a7df9d479982" + hash: "a27c65c0a49deb18b0766bba41a32e54" } Key { type: 6 @@ -1098,31 +1098,31 @@ VisualTest { } Frame { msec: 3264 - hash: "5b14b471fffa401affc954871662e6a8" + hash: "484ee552e1a9c5eafcfe1ac583fcdffd" } Frame { msec: 3280 - hash: "bbe03a2ea1e5b788c79d9551bd317a2d" + hash: "40b336a0e337b66d813089a82a88c712" } Frame { msec: 3296 - hash: "10b49692f820311b8bfbc0f87c05e993" + hash: "b7a8d4b8bb2b83e4c886aa51c1a73895" } Frame { msec: 3312 - hash: "928ee5d4ca3c31a879f82b5b4f6d1912" + hash: "43b3bf8425e7a6b7115d8e6a0bcfd677" } Frame { msec: 3328 - hash: "9f3ea4149963d467be28fcf26a43e6d6" + hash: "e2ce168241b043db74867fe7ed6de956" } Frame { msec: 3344 - hash: "f2ec87d7c4f6bbecc771270062e25d14" + hash: "0c713bbd7bb694d87f0fe14f87098b9b" } Frame { msec: 3360 - hash: "f181b9aeccdecd486550c2a69e57a63f" + hash: "316f6bd365ca4b4f2e6fbf34a047e307" } Key { type: 7 @@ -1134,39 +1134,39 @@ VisualTest { } Frame { msec: 3376 - hash: "ce871b1784464b56728eeb0140ad689c" + hash: "421fb8881fe7b300dcec0f44ff1743e3" } Frame { msec: 3392 - hash: "8d1b19921c7ee633f423b3f8c1f07e6a" + hash: "e8376079434393467b47a56ff00efb2b" } Frame { msec: 3408 - hash: "451973c72f86fc3425c31da3311d625c" + hash: "63259de84a6e07d42c9df94ec2a25920" } Frame { msec: 3424 - hash: "64301801af58f7a9c5ea32c33eb988e2" + hash: "f9194d82b81f5ac58862c382caf5cf59" } Frame { msec: 3440 - hash: "3406ff52f3829c56ff3b29558d6fd11c" + hash: "e185f2594f038532a37b351384dc97ea" } Frame { msec: 3456 - hash: "0952802094d7d7f105d7f50f36c02530" + hash: "91edc3ca1e6c532bd92006a761073da2" } Frame { msec: 3472 - hash: "daddc3aa8ae9970cc111e981adcdd9bb" + hash: "b47390495539756048ccc71047ebef7b" } Frame { msec: 3488 - hash: "491e3241705cdc2917c6560cece6188e" + hash: "7c83d3bdb9abf8ab2cfe7f9464673a49" } Frame { msec: 3504 - hash: "cefbdc87c704e72145e878fc944c621f" + hash: "b686f4013f45885ab794aba9ff491286" } Key { type: 7 @@ -1178,11 +1178,11 @@ VisualTest { } Frame { msec: 3520 - hash: "3427e88f200a1ac2d4596cb2fec0ae66" + hash: "0c55d6ea330b7365825864d4bdacafcb" } Frame { msec: 3536 - hash: "62eef650b45f3c2fa425d1bff88a01a7" + hash: "2bb72f191201572308e461021872fb4c" } Key { type: 7 @@ -1194,75 +1194,75 @@ VisualTest { } Frame { msec: 3552 - hash: "9945cda3cf5c22d8c83b19b0f69e4e09" + hash: "81b04a84982698ee80d13d392742edd3" } Frame { msec: 3568 - hash: "80fcd1194d1bc3e010ddc6ba224f3d40" + hash: "63f582dc2a9f707c1ec99f4285d13a84" } Frame { msec: 3584 - hash: "59da897870a7e235a67defaff1f8f4e4" + hash: "f91cb29101f80f5dcb1e9e8c82e823b7" } Frame { msec: 3600 - hash: "664bef152c87b3eb6729d9b46bad750c" + hash: "fdf68e988b988d068ea78a5a09ef349e" } Frame { msec: 3616 - hash: "7f422b624488525aede06c69996fc583" + hash: "27434828de3ba8f6a3b83f042b70eb8b" } Frame { msec: 3632 - hash: "235d20a347a0f7b331e707ad7de93f95" + hash: "e54102edbf6cc0c9a32b09858f760ee5" } Frame { msec: 3648 - hash: "836f9f207d8197f8e6e8e9c49f83aa4e" + hash: "26530bded6311640c4d3f6d1485fa7d3" } Frame { msec: 3664 - hash: "bbe9837039b7ea1dfab8ed30c8a15724" + hash: "eaee6483a2a4a0b09a8e40bb1785a498" } Frame { msec: 3680 - hash: "c5d26cd3ac3f87c77d716b912875b9de" + hash: "e1c083d0235ff5a2e002ce78f43009b0" } Frame { msec: 3696 - hash: "bc250ab3f5da66ecb0792a796b197149" + hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" } Frame { msec: 3712 - hash: "c9fbfb63e19d1281b0c3a59504cd695c" + hash: "30c4aa33a6672f4df24186ad1e28bcf9" } Frame { msec: 3728 - hash: "e6ab11dfb1965e94f5a42f2642ca0b30" + hash: "38f16a7deeaea6828edd15b00024fc19" } Frame { msec: 3744 - hash: "abdd589312402caea0b1c4f26ff6a1bf" + hash: "bb74f706477e277284fad50752f078b5" } Frame { msec: 3760 - hash: "3d89454f0af4ab88ea67a075cb4e39b7" + hash: "a588e9dbeabd7519cd0cf2d26a123529" } Frame { msec: 3776 - hash: "3a90bb8b912d0be07e0e8b78407c54ff" + hash: "4fd9f22ad06e02b68319c298c2286e36" } Frame { msec: 3792 - hash: "4fa61e0644ce0942a30f05ad8d3f13f6" + hash: "29a28a97fc78a1b01252b852fb0446e2" } Frame { msec: 3808 - hash: "3c7588de81cbfbba8735da74de220128" + hash: "458895f9ede4d56e0b851c6ed124405d" } Frame { msec: 3824 - hash: "29277da2d1d6251e18ab89331d5df61d" + hash: "cd58c0d4f7248315a787542b0edcb4fb" } Frame { msec: 3840 @@ -1270,239 +1270,239 @@ VisualTest { } Frame { msec: 3856 - hash: "b6c660ffd14bb756f87adb5cf836e97f" + hash: "483eca22c50750e7591785ed60813d1f" } Frame { msec: 3872 - hash: "9e770dcd2f33ad157e86d08752458daf" + hash: "c5199c908df1f550d7c4f133eb926134" } Frame { msec: 3888 - hash: "4c9421ff4dc80e555ac5ba4a02d0c5be" + hash: "efaa5e4483ed9cfec792e8f270b5079e" } Frame { msec: 3904 - hash: "dcbfc9f6300363d03aa869ce3d58e6fe" + hash: "7ffcff87e27dcb0be0047eb6fbcc9549" } Frame { msec: 3920 - hash: "491f07f2498598cf57b368ff880f85f5" + hash: "04339417259ddee10134e1479729ae1b" } Frame { msec: 3936 - hash: "ea356dc3ef6aa6ca67e58b7b2f6912e4" + hash: "0f1e6a0d9db7b6b8b874333682866ffa" } Frame { msec: 3952 - hash: "8575a99b28bb5b8c2d01a5ed91f25d47" + hash: "66500c2cc3d69b9fb48dc46e384aca6d" } Frame { msec: 3968 - hash: "7f83ba29fd27aa4817b7b84afbc8d6d7" + hash: "70d6b73499c36138bee63e07afb0b186" } Frame { msec: 3984 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4000 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4016 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4032 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4048 - hash: "0173dd60a64da4c06fa9a398d2c98206" + hash: "c526315dd5eec117266c68a7b6b64a3f" } Frame { msec: 4064 - hash: "7f83ba29fd27aa4817b7b84afbc8d6d7" + hash: "70d6b73499c36138bee63e07afb0b186" } Frame { msec: 4080 - hash: "8575a99b28bb5b8c2d01a5ed91f25d47" + hash: "66500c2cc3d69b9fb48dc46e384aca6d" } Frame { msec: 4096 - hash: "ea356dc3ef6aa6ca67e58b7b2f6912e4" + hash: "0f1e6a0d9db7b6b8b874333682866ffa" } Frame { msec: 4112 - hash: "491f07f2498598cf57b368ff880f85f5" + hash: "04339417259ddee10134e1479729ae1b" } Frame { msec: 4128 - hash: "dcbfc9f6300363d03aa869ce3d58e6fe" + hash: "7ffcff87e27dcb0be0047eb6fbcc9549" } Frame { msec: 4144 - hash: "4c9421ff4dc80e555ac5ba4a02d0c5be" + hash: "efaa5e4483ed9cfec792e8f270b5079e" } Frame { msec: 4160 - hash: "9e770dcd2f33ad157e86d08752458daf" + hash: "c5199c908df1f550d7c4f133eb926134" } Frame { msec: 4176 - hash: "b6c660ffd14bb756f87adb5cf836e97f" + hash: "483eca22c50750e7591785ed60813d1f" } Frame { msec: 4192 - hash: "c498c154fcf2d66fc0981150e575033c" + hash: "4091de379d8f6ccc7f19ea39f6c7993a" } Frame { msec: 4208 - hash: "29277da2d1d6251e18ab89331d5df61d" + hash: "cd58c0d4f7248315a787542b0edcb4fb" } Frame { msec: 4224 - hash: "3c7588de81cbfbba8735da74de220128" + hash: "458895f9ede4d56e0b851c6ed124405d" } Frame { msec: 4240 - hash: "4fa61e0644ce0942a30f05ad8d3f13f6" + hash: "29a28a97fc78a1b01252b852fb0446e2" } Frame { msec: 4256 - hash: "3a90bb8b912d0be07e0e8b78407c54ff" + hash: "4fd9f22ad06e02b68319c298c2286e36" } Frame { msec: 4272 - hash: "3d89454f0af4ab88ea67a075cb4e39b7" + hash: "a588e9dbeabd7519cd0cf2d26a123529" } Frame { msec: 4288 - hash: "abdd589312402caea0b1c4f26ff6a1bf" + hash: "bb74f706477e277284fad50752f078b5" } Frame { msec: 4304 - hash: "e6ab11dfb1965e94f5a42f2642ca0b30" + hash: "38f16a7deeaea6828edd15b00024fc19" } Frame { msec: 4320 - hash: "c9fbfb63e19d1281b0c3a59504cd695c" + hash: "30c4aa33a6672f4df24186ad1e28bcf9" } Frame { msec: 4336 - hash: "bc250ab3f5da66ecb0792a796b197149" + hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" } Frame { msec: 4352 - hash: "c5d26cd3ac3f87c77d716b912875b9de" + hash: "e1c083d0235ff5a2e002ce78f43009b0" } Frame { msec: 4368 - hash: "bbe9837039b7ea1dfab8ed30c8a15724" + hash: "eaee6483a2a4a0b09a8e40bb1785a498" } Frame { msec: 4384 - hash: "836f9f207d8197f8e6e8e9c49f83aa4e" + hash: "26530bded6311640c4d3f6d1485fa7d3" } Frame { msec: 4400 - hash: "235d20a347a0f7b331e707ad7de93f95" + hash: "e54102edbf6cc0c9a32b09858f760ee5" } Frame { msec: 4416 - hash: "7f422b624488525aede06c69996fc583" + hash: "27434828de3ba8f6a3b83f042b70eb8b" } Frame { msec: 4432 - hash: "664bef152c87b3eb6729d9b46bad750c" + hash: "fdf68e988b988d068ea78a5a09ef349e" } Frame { msec: 4448 - hash: "59da897870a7e235a67defaff1f8f4e4" + hash: "f91cb29101f80f5dcb1e9e8c82e823b7" } Frame { msec: 4464 - hash: "80fcd1194d1bc3e010ddc6ba224f3d40" + hash: "63f582dc2a9f707c1ec99f4285d13a84" } Frame { msec: 4480 - hash: "9945cda3cf5c22d8c83b19b0f69e4e09" + hash: "81b04a84982698ee80d13d392742edd3" } Frame { msec: 4496 - hash: "62eef650b45f3c2fa425d1bff88a01a7" + hash: "2bb72f191201572308e461021872fb4c" } Frame { msec: 4512 - hash: "3427e88f200a1ac2d4596cb2fec0ae66" + hash: "0c55d6ea330b7365825864d4bdacafcb" } Frame { msec: 4528 - hash: "cefbdc87c704e72145e878fc944c621f" + hash: "b686f4013f45885ab794aba9ff491286" } Frame { msec: 4544 - hash: "491e3241705cdc2917c6560cece6188e" + hash: "7c83d3bdb9abf8ab2cfe7f9464673a49" } Frame { msec: 4560 - hash: "daddc3aa8ae9970cc111e981adcdd9bb" + hash: "b47390495539756048ccc71047ebef7b" } Frame { msec: 4576 - hash: "0952802094d7d7f105d7f50f36c02530" + hash: "91edc3ca1e6c532bd92006a761073da2" } Frame { msec: 4592 - hash: "3406ff52f3829c56ff3b29558d6fd11c" + hash: "e185f2594f038532a37b351384dc97ea" } Frame { msec: 4608 - hash: "64301801af58f7a9c5ea32c33eb988e2" + hash: "f9194d82b81f5ac58862c382caf5cf59" } Frame { msec: 4624 - hash: "451973c72f86fc3425c31da3311d625c" + hash: "63259de84a6e07d42c9df94ec2a25920" } Frame { msec: 4640 - hash: "8d1b19921c7ee633f423b3f8c1f07e6a" + hash: "e8376079434393467b47a56ff00efb2b" } Frame { msec: 4656 - hash: "ce871b1784464b56728eeb0140ad689c" + hash: "421fb8881fe7b300dcec0f44ff1743e3" } Frame { msec: 4672 - hash: "f181b9aeccdecd486550c2a69e57a63f" + hash: "316f6bd365ca4b4f2e6fbf34a047e307" } Frame { msec: 4688 - hash: "f2ec87d7c4f6bbecc771270062e25d14" + hash: "0c713bbd7bb694d87f0fe14f87098b9b" } Frame { msec: 4704 - hash: "9f3ea4149963d467be28fcf26a43e6d6" + hash: "e2ce168241b043db74867fe7ed6de956" } Frame { msec: 4720 - hash: "928ee5d4ca3c31a879f82b5b4f6d1912" + hash: "43b3bf8425e7a6b7115d8e6a0bcfd677" } Frame { msec: 4736 - hash: "10b49692f820311b8bfbc0f87c05e993" + hash: "b7a8d4b8bb2b83e4c886aa51c1a73895" } Frame { msec: 4752 - hash: "bbe03a2ea1e5b788c79d9551bd317a2d" + hash: "40b336a0e337b66d813089a82a88c712" } Frame { msec: 4768 - hash: "5b14b471fffa401affc954871662e6a8" + hash: "484ee552e1a9c5eafcfe1ac583fcdffd" } Frame { msec: 4784 - hash: "02a5902af43990021465a7df9d479982" + hash: "a27c65c0a49deb18b0766bba41a32e54" } Frame { msec: 4800 @@ -1510,42 +1510,42 @@ VisualTest { } Frame { msec: 4816 - hash: "495b67926e9002a43e2d251b8c96564f" + hash: "0bd9f7de32b01d8144280bf252d9a18f" } Frame { msec: 4832 - hash: "d4e8985ad4d14436a87db45585fca946" + hash: "bc3efeeebe7075cd09a6e57eef43d610" } Frame { msec: 4848 - hash: "6d6f4cc1193b73c65db893c3f983d9f0" + hash: "5dba56a5bb5f8a6539a0066af35c73b8" } Frame { msec: 4864 - hash: "7db8d678bd1890010b2a1b9bb732c17c" + hash: "ba721988a1708b8c0762d706820c48fc" } Frame { msec: 4880 - hash: "2c7d542f60c68e16377d3c5afea0f4e3" + hash: "4abbd51b620ac4ea91af95bc2d0881d7" } Frame { msec: 4896 - hash: "9d624eebe5824fc5d4a89a04f2d776a3" + hash: "944dc7026c6487838ede9ef94003ec90" } Frame { msec: 4912 - hash: "13e84656ef70bf07e2a444d60ac933e1" + hash: "51a1b8e79d209643d55d4cecc6a70ed0" } Frame { msec: 4928 - hash: "eda67cb2d32f3f605a74a01148f04c99" + hash: "6ccc70f6120acb53152b71bcf95514ca" } Frame { msec: 4944 - hash: "ac4898002fdc5ea7894d741cac863c8d" + hash: "996da2eff9302908a55308dbcc8fb3c2" } Frame { msec: 4960 - hash: "2e95c1966c94acccd2a44a6c2942d36d" + hash: "264f34128dfe563126b9f187c65df61e" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png index a4d7bef..57a1599 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png index a8aee18..d327d5b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png index 799f422..c1e3dce 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml index bbeb532..9a26f57 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml @@ -6,11 +6,11 @@ VisualTest { } Frame { msec: 16 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 32 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Key { type: 6 @@ -22,83 +22,83 @@ VisualTest { } Frame { msec: 48 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 64 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 80 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 96 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 112 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 128 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 144 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 160 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 176 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 192 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 208 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 224 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 240 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 256 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 272 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 288 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 304 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 320 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 336 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Frame { msec: 352 - hash: "3ea9888b1213bb799bdb01ed0eff2a78" + hash: "0e7c7dc19aab217751411568b58830ef" } Key { type: 6 @@ -110,23 +110,23 @@ VisualTest { } Frame { msec: 368 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 384 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 400 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 416 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 432 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Key { type: 7 @@ -138,27 +138,27 @@ VisualTest { } Frame { msec: 448 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 464 - hash: "d070b6581fd109ce278cf4a8c41a6549" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 480 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 496 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 512 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 528 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Key { type: 7 @@ -170,43 +170,43 @@ VisualTest { } Frame { msec: 544 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 560 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 576 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 592 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 608 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 624 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 640 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 656 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 672 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Frame { msec: 688 - hash: "6a80a729e85f8dab98155e115a4193cc" + hash: "d3151ba24f0011bf1add83377f32ec85" } Key { type: 6 @@ -218,23 +218,23 @@ VisualTest { } Frame { msec: 704 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 720 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 736 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 752 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 768 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Key { type: 7 @@ -246,23 +246,23 @@ VisualTest { } Frame { msec: 784 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 800 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 816 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 832 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Frame { msec: 848 - hash: "fd47d9eaea89d6a731bdd70b39b2bc54" + hash: "6b7c333ce19fede43aee84cc66c4c1bc" } Key { type: 6 @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Frame { msec: 880 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Frame { msec: 896 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Key { type: 7 @@ -294,15 +294,15 @@ VisualTest { } Frame { msec: 912 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Frame { msec: 928 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Frame { msec: 944 - hash: "b643c026fe7570505e72971d3b3f0ea2" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Frame { msec: 960 @@ -310,7 +310,7 @@ VisualTest { } Frame { msec: 976 - hash: "cba83dfcd44e4ba3ea44dd8d84bde745" + hash: "a5386e9b39daa0a5aad8a8cd5191909b" } Key { type: 6 @@ -322,19 +322,19 @@ VisualTest { } Frame { msec: 992 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1008 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1024 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1040 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Key { type: 7 @@ -346,51 +346,51 @@ VisualTest { } Frame { msec: 1056 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1072 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1088 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1104 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1120 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1136 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1152 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1168 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1184 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1200 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1216 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Frame { msec: 1232 - hash: "bca450bd2b1a46da72e0ba99a70c18ab" + hash: "f9149723166015ed066b794cf86b27d0" } Key { type: 6 @@ -402,15 +402,15 @@ VisualTest { } Frame { msec: 1248 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Frame { msec: 1264 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Frame { msec: 1280 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Key { type: 7 @@ -422,15 +422,15 @@ VisualTest { } Frame { msec: 1296 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Frame { msec: 1312 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Frame { msec: 1328 - hash: "55c33f786e6dc14b038dba96cc154859" + hash: "56dd8557435509e5a96c2f2907d474eb" } Key { type: 6 @@ -442,39 +442,39 @@ VisualTest { } Frame { msec: 1344 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1360 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1376 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1392 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1408 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1424 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1440 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1456 - hash: "693d9e7579752a748d4c8d7fcbd3c022" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Frame { msec: 1472 - hash: "9be278fc6ebef108857a414ecb292b46" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1488 - hash: "9be278fc6ebef108857a414ecb292b46" + hash: "b311772a9bf92f4222b1c1c7ddbe96c4" } Key { type: 6 @@ -498,19 +498,19 @@ VisualTest { } Frame { msec: 1504 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1520 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1536 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1552 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1584 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1600 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1616 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1632 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Frame { msec: 1648 - hash: "b1c799fd9f4ebf097ec79448eb9b4a2c" + hash: "8feb240ad13e1e9d8392bfeb484261db" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "46e977b7614ae6316a64106f6e5326c1" + hash: "cd240ccffd4b4a6304b47cfd1e55cf49" } Frame { msec: 1680 - hash: "46e977b7614ae6316a64106f6e5326c1" + hash: "cd240ccffd4b4a6304b47cfd1e55cf49" } Frame { msec: 1696 - hash: "46e977b7614ae6316a64106f6e5326c1" + hash: "cd240ccffd4b4a6304b47cfd1e55cf49" } Frame { msec: 1712 - hash: "46e977b7614ae6316a64106f6e5326c1" + hash: "cd240ccffd4b4a6304b47cfd1e55cf49" } Frame { msec: 1728 - hash: "46e977b7614ae6316a64106f6e5326c1" + hash: "cd240ccffd4b4a6304b47cfd1e55cf49" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Frame { msec: 1776 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Frame { msec: 1792 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Frame { msec: 1824 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Frame { msec: 1840 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Frame { msec: 1856 - hash: "2d7771008d9ec265f70d089bb8436e18" + hash: "437370a412fccbeee3d1f095e32c3584" } Key { type: 6 @@ -638,15 +638,15 @@ VisualTest { } Frame { msec: 1872 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1888 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1904 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1920 @@ -662,27 +662,27 @@ VisualTest { } Frame { msec: 1936 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1952 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1968 - hash: "7d85b2d311514db5988e335110fb8352" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 1984 - hash: "9f4258905e76a6523e015701c3278cae" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 2000 - hash: "9f4258905e76a6523e015701c3278cae" + hash: "eb4a45722e365b103ff5423117236fd3" } Frame { msec: 2016 - hash: "9f4258905e76a6523e015701c3278cae" + hash: "eb4a45722e365b103ff5423117236fd3" } Key { type: 6 @@ -694,11 +694,11 @@ VisualTest { } Frame { msec: 2032 - hash: "8a2cf6f27a40da75be9d9bcf88b4c022" + hash: "b53d0651627d008545e54063ceb8d689" } Frame { msec: 2048 - hash: "8a2cf6f27a40da75be9d9bcf88b4c022" + hash: "b53d0651627d008545e54063ceb8d689" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2064 - hash: "8a2cf6f27a40da75be9d9bcf88b4c022" + hash: "b53d0651627d008545e54063ceb8d689" } Frame { msec: 2080 - hash: "8a2cf6f27a40da75be9d9bcf88b4c022" + hash: "b53d0651627d008545e54063ceb8d689" } Key { type: 6 @@ -726,19 +726,19 @@ VisualTest { } Frame { msec: 2096 - hash: "6c679da9b822fefef626c4308fdc9080" + hash: "173b36137940b37001750e02d434b8e8" } Frame { msec: 2112 - hash: "6c679da9b822fefef626c4308fdc9080" + hash: "173b36137940b37001750e02d434b8e8" } Frame { msec: 2128 - hash: "6c679da9b822fefef626c4308fdc9080" + hash: "173b36137940b37001750e02d434b8e8" } Frame { msec: 2144 - hash: "6c679da9b822fefef626c4308fdc9080" + hash: "173b36137940b37001750e02d434b8e8" } Key { type: 6 @@ -758,19 +758,19 @@ VisualTest { } Frame { msec: 2160 - hash: "81399b2d1ffa0a097f9d0eea0ccf26a5" + hash: "2e636a964b4a1ab74ad3e23399c2ae8c" } Frame { msec: 2176 - hash: "81399b2d1ffa0a097f9d0eea0ccf26a5" + hash: "2e636a964b4a1ab74ad3e23399c2ae8c" } Frame { msec: 2192 - hash: "81399b2d1ffa0a097f9d0eea0ccf26a5" + hash: "2e636a964b4a1ab74ad3e23399c2ae8c" } Frame { msec: 2208 - hash: "81399b2d1ffa0a097f9d0eea0ccf26a5" + hash: "2e636a964b4a1ab74ad3e23399c2ae8c" } Key { type: 6 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2224 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Key { type: 7 @@ -794,23 +794,23 @@ VisualTest { } Frame { msec: 2240 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Frame { msec: 2256 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Frame { msec: 2272 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Frame { msec: 2288 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Frame { msec: 2304 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Key { type: 7 @@ -822,11 +822,11 @@ VisualTest { } Frame { msec: 2320 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Frame { msec: 2336 - hash: "aebfaf936f9c4e0f856a2a2d1b2014ee" + hash: "631c6034372c2e7675ebce0ec415f230" } Key { type: 6 @@ -838,27 +838,27 @@ VisualTest { } Frame { msec: 2352 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2368 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2384 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2400 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2416 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2432 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Key { type: 7 @@ -870,19 +870,19 @@ VisualTest { } Frame { msec: 2448 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2464 - hash: "1e9d2117d8392ea494d28f95ddb57213" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2480 - hash: "a016e70b0f98846694ef3ae906faa346" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Frame { msec: 2496 - hash: "a016e70b0f98846694ef3ae906faa346" + hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" } Key { type: 6 @@ -894,15 +894,15 @@ VisualTest { } Frame { msec: 2512 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2528 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2544 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Key { type: 7 @@ -914,83 +914,83 @@ VisualTest { } Frame { msec: 2560 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2576 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2592 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2608 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2624 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2640 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2656 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2672 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2688 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2704 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2720 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2736 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2752 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2768 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2784 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2800 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2816 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2832 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2848 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2864 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2880 @@ -998,46 +998,46 @@ VisualTest { } Frame { msec: 2896 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2912 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2928 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2944 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2960 - hash: "818ad2e56a73599ae69ce5000d5b278f" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2976 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 2992 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 3008 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 3024 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 3040 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } Frame { msec: 3056 - hash: "147568112e60545f440f2109f918a59e" + hash: "91ef7f08d8fec2e0d353b1bf5da99c41" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml index fb56da6..4c402ea 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml @@ -6,102 +6,102 @@ VisualTest { } Frame { msec: 16 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 32 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 48 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 64 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 80 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 96 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 112 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 128 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 144 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 160 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 176 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 192 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 208 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 224 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 240 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 256 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 272 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 288 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 304 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 320 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 336 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 352 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 368 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 384 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } Frame { msec: 400 - hash: "15c91702a80de73ac1abc3db9fa8ca09" + hash: "840c5f54c105f90c7b0c2254fee2e434" } } -- cgit v0.12 From 7f8250ddb43275d59c6f9947eebc8e66642ea5f9 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 5 Nov 2010 09:32:19 +1000 Subject: Whitespace fixes Supposed to be in the last commit - not really helpful if the filter says something is wrong but pushes it anyways. --- .../qmlvisual/qdeclarativetextinput/hAlign.qml | 24 +++++++++++----------- .../declarative/qmlvisual/shared/TestTextEdit.qml | 2 +- .../declarative/qmlvisual/shared/TestTextInput.qml | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml index ad8db33..f36a752 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml @@ -6,35 +6,35 @@ Item{ height:300; Column { //Because they have auto width, these three should look the same - TestTextInput { - text: "Jackdaws love my big sphinx of quartz"; + TestTextInput { + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignLeft; } - TestTextInput { - text: "Jackdaws love my big sphinx of quartz"; + TestTextInput { + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignHCenter; } - TestTextInput { - text: "Jackdaws love my big sphinx of quartz"; + TestTextInput { + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignRight; } Rectangle{ width: 600; height: 10; color: "pink" } - TestTextInput { + TestTextInput { height: 30; width: 600; - text: "Jackdaws love my big sphinx of quartz"; + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignLeft; } - TestTextInput { + TestTextInput { height: 30; width: 600; - text: "Jackdaws love my big sphinx of quartz"; + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignHCenter; } - TestTextInput { + TestTextInput { height: 30; width: 600; - text: "Jackdaws love my big sphinx of quartz"; + text: "Jackdaws love my big sphinx of quartz"; horizontalAlignment: TextInput.AlignRight; } } diff --git a/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml b/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml index fb35ae3..e19e418 100644 --- a/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml +++ b/tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml @@ -7,7 +7,7 @@ TextEdit { font.family: fixedFont.name font.pixelSize: 12 cursorDelegate: Rectangle { - width: 1; + width: 1; color: "black"; visible: edit.cursorVisible } diff --git a/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml index 8593218..e01c2c2 100644 --- a/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml +++ b/tests/auto/declarative/qmlvisual/shared/TestTextInput.qml @@ -7,7 +7,7 @@ TextInput { font.family: fixedFont.name font.pixelSize: 12 cursorDelegate: Rectangle { - width: 1; + width: 1; color: "black"; visible: parent.cursorVisible//bug that 'inp' doesn't seem to work? } -- cgit v0.12 From f49aa13a1bb59eaebdb958305f479dc6e7c8e857 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 5 Nov 2010 11:19:05 +1000 Subject: Fix samegame text input focus The real problem is QTBUG-15047, but by implementing SameGame in a different way it gets worked around very nicely. Task-number: QTBUG-14716 --- demos/declarative/samegame/samegame.qml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index b66c5a6..ab49c04 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -92,9 +92,7 @@ Rectangle { enabled: nameInputDialog.initialWidth != 0 } - onOpened: nameInputText.focus = true; onClosed: { - nameInputText.focus = false; if (nameInputText.text != "") Logic.saveHighScore(nameInputText.text); } @@ -116,7 +114,7 @@ Rectangle { TextInput { id: nameInputText anchors { verticalCenter: parent.verticalCenter; left: dialogText.right } - focus: false + focus: visible autoScroll: false maximumLength: 24 onTextChanged: { -- cgit v0.12 From ecd81dcc33e2a7ccff851e9437f73d4d54ef3dab Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 5 Nov 2010 11:38:18 +1000 Subject: Remove Snake demo from QtDemo Snake now uses the runtime property, which we don't have in QtDemo. Task-number: QTBUG-15048 --- demos/qtdemo/xml/examples.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml index 27f72bb..b94d2b8 100644 --- a/demos/qtdemo/xml/examples.xml +++ b/demos/qtdemo/xml/examples.xml @@ -19,7 +19,6 @@ - -- cgit v0.12 From 3e30165c350b877bda74955446b0790d516c0490 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 5 Nov 2010 13:34:34 +1000 Subject: Don't allow flagging of flipped tiles in Minehunt Task-number: QTBUG-4249 --- demos/declarative/minehunt/minehunt.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/declarative/minehunt/minehunt.cpp b/demos/declarative/minehunt/minehunt.cpp index 709d945..aaaaaac 100644 --- a/demos/declarative/minehunt/minehunt.cpp +++ b/demos/declarative/minehunt/minehunt.cpp @@ -211,7 +211,7 @@ bool MinehuntGame::flip(int row, int col) bool MinehuntGame::flag(int row, int col) { TileData *t = tile(row, col); - if(!t || !playing) + if(!t || !playing || t->flipped()) return false; t->setHasFlag(!t->hasFlag()); -- cgit v0.12 From b74024c0d80b7bb3adf0ceca4b307695bc6db6a1 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Fri, 5 Nov 2010 13:47:01 +1000 Subject: Fix minehunt.pro (minehunt is no longer a plugin) Task-number: QTBUG-15011 Reviewed-by: Martin Jones --- demos/declarative/minehunt/minehunt.pro | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro index 753ca4e..8a7fdc5 100644 --- a/demos/declarative/minehunt/minehunt.pro +++ b/demos/declarative/minehunt/minehunt.pro @@ -1,7 +1,6 @@ TEMPLATE = app TARGET = minehunt QT += declarative -CONFIG += qt plugin # Input HEADERS += minehunt.h @@ -21,4 +20,4 @@ symbian:{ qmlminehuntfiles.sources = MinehuntCore minehunt.qml DEPLOYMENT = qmlminehuntfiles } - \ No newline at end of file + -- cgit v0.12 From c32ec4e928895a85aa10ce47a73c2bd439e7fc89 Mon Sep 17 00:00:00 2001 From: Charles Yin Date: Thu, 4 Nov 2010 12:30:46 +1000 Subject: More fix for QTBUG-14640:oci performance problem with qlonglong 1. OCINumber must be declared & initialized seperately, and the bound OCINumber values must be hold until the QOCIResultPrivate object is deleted. 2. More auto tests for this bug. 3. Add qulonglong support as well 4. Make the execBatch() works with longlong and ulonglong Task-number:QTBUG-14640 Reviewed-by: Michael Goddard Change-Id: I7d8bf1c44ce3aaa15ee85be325a5c98dc3ed3ce1 --- src/sql/drivers/oci/qsql_oci.cpp | 133 ++++++++++++++++++++++++++++++-- tests/auto/qsqldatabase/tst_databases.h | 2 +- tests/auto/qsqlquery/tst_qsqlquery.cpp | 121 ++++++++++++++++++++++++----- 3 files changed, 227 insertions(+), 29 deletions(-) diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index 2392a17..1bf59bf 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -112,7 +112,15 @@ typedef QVarLengthArray SizeArray; static QByteArray qMakeOraDate(const QDateTime& dt); static QDateTime qMakeDate(const char* oraDate); + +static QByteArray qMakeOCINumber(const qlonglong &ll, OCIError *err); +static QByteArray qMakeOCINumber(const qulonglong& ull, OCIError* err); + +static qlonglong qMakeLongLong(const char* ociNumber, OCIError* err); +static qulonglong qMakeULongLong(const char* ociNumber, OCIError* err); + static QString qOraWarn(OCIError *err, int *errorCode = 0); + #ifndef Q_CC_SUN static // for some reason, Sun CC can't use qOraWarning when it's declared static #endif @@ -292,13 +300,27 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in SQLT_UIN, indPtr, 0, 0, 0, 0, OCI_DEFAULT); break; case QVariant::LongLong: + { + QByteArray ba = qMakeOCINumber(val.toLongLong(), err); r = OCIBindByPos(sql, hbnd, err, pos + 1, - // if it's an out value, the data is already detached - // so the const cast is safe. - const_cast(data), - sizeof(OCINumber), + ba.data(), + ba.size(), SQLT_VNU, indPtr, 0, 0, 0, 0, OCI_DEFAULT); + tmpStorage.append(ba); + break; + } + case QVariant::ULongLong: + { + QByteArray ba = qMakeOCINumber(val.toULongLong(), err); + r = OCIBindByPos(sql, hbnd, err, + pos + 1, + ba.data(), + ba.size(), + SQLT_VNU, indPtr, 0, 0, 0, 0, OCI_DEFAULT); + tmpStorage.append(ba); + break; + } case QVariant::Double: r = OCIBindByPos(sql, hbnd, err, pos + 1, @@ -394,7 +416,7 @@ int QOCIResultPrivate::bindValues(QVector &values, IndicatorArray &ind } // will assign out value and remove its temp storage. -static void qOraOutValue(QVariant &value, QList &storage) +static void qOraOutValue(QVariant &value, QList &storage, OCIError* err) { switch (value.type()) { case QVariant::Time: @@ -406,6 +428,12 @@ static void qOraOutValue(QVariant &value, QList &storage) case QVariant::DateTime: value = qMakeDate(storage.takeFirst()); break; + case QVariant::LongLong: + value = qMakeLongLong(storage.takeFirst(), err); + break; + case QVariant::ULongLong: + value = qMakeULongLong(storage.takeFirst(), err); + break; case QVariant::String: value = QString( reinterpret_cast(storage.takeFirst().constData())); @@ -423,7 +451,7 @@ void QOCIResultPrivate::outValues(QVector &values, IndicatorArray &ind if (!isOutValue(i)) continue; - qOraOutValue(values[i], tmpStorage); + qOraOutValue(values[i], tmpStorage, err); QVariant::Type typ = values.at(i).type(); if (indicators[i] == -1) // NULL @@ -683,6 +711,56 @@ QByteArray qMakeOraDate(const QDateTime& dt) return ba; } +/*! + \internal + + Convert qlonglong to the internal Oracle OCINumber format. + */ +QByteArray qMakeOCINumber(const qlonglong& ll, OCIError* err) +{ + QByteArray ba(sizeof(OCINumber), 0); + + OCINumberFromInt(err, + &ll, + sizeof(qlonglong), + OCI_NUMBER_SIGNED, + reinterpret_cast(ba.data())); + return ba; +} + +/*! + \internal + + Convert qulonglong to the internal Oracle OCINumber format. + */ +QByteArray qMakeOCINumber(const qulonglong& ull, OCIError* err) +{ + QByteArray ba(sizeof(OCINumber), 0); + + OCINumberFromInt(err, + &ull, + sizeof(qlonglong), + OCI_NUMBER_UNSIGNED, + reinterpret_cast(ba.data())); + return ba; +} + +qlonglong qMakeLongLong(const char* ociNumber, OCIError* err) +{ + qlonglong qll = 0; + OCINumberToInt(err, reinterpret_cast(ociNumber), sizeof(qlonglong), + OCI_NUMBER_SIGNED, &qll); + return qll; +} + +qulonglong qMakeULongLong(const char* ociNumber, OCIError* err) +{ + qulonglong qull = 0; + OCINumberToInt(err, reinterpret_cast(ociNumber), sizeof(qulonglong), + OCI_NUMBER_UNSIGNED, &qull); + return qull; +} + QDateTime qMakeDate(const char* oraDate) { int century = uchar(oraDate[0]); @@ -1267,6 +1345,16 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b col.maxLen = sizeof(uint); break; + case QVariant::LongLong: + col.bindAs = SQLT_VNU; + col.maxLen = sizeof(OCINumber); + break; + + case QVariant::ULongLong: + col.bindAs = SQLT_VNU; + col.maxLen = sizeof(OCINumber); + break; + case QVariant::Double: col.bindAs = SQLT_FLT; col.maxLen = sizeof(double); @@ -1338,6 +1426,22 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b *reinterpret_cast(dataPtr) = val.toUInt(); break; + case QVariant::LongLong: + { + columns[i].lengths[row] = columns[i].maxLen; + const QByteArray ba = qMakeOCINumber(val.toLongLong(), d->err); + Q_ASSERT(ba.size() == int(columns[i].maxLen)); + memcpy(dataPtr, ba.constData(), columns[i].maxLen); + break; + } + case QVariant::ULongLong: + { + columns[i].lengths[row] = columns[i].maxLen; + const QByteArray ba = qMakeOCINumber(val.toULongLong(), d->err); + Q_ASSERT(ba.size() == int(columns[i].maxLen)); + memcpy(dataPtr, ba.constData(), columns[i].maxLen); + break; + } case QVariant::Double: columns[i].lengths[row] = columns[i].maxLen; *reinterpret_cast(dataPtr) = val.toDouble(); @@ -1445,7 +1549,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b QVariant::Type tp = boundValues.at(i).type(); if (tp != QVariant::List) { - qOraOutValue(boundValues[i], tmpStorage); + qOraOutValue(boundValues[i], tmpStorage, d->err); if (*columns[i].indicators == -1) boundValues[i] = QVariant(tp); continue; @@ -1475,6 +1579,21 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b (*list)[r] = *reinterpret_cast(data + r * columns[i].maxLen); break; + case SQLT_VNU: + { + switch (boundValues.at(i).type()) { + case QVariant::LongLong: + (*list)[r] = qMakeLongLong(data + r * columns[i].maxLen, d->err); + break; + case QVariant::ULongLong: + (*list)[r] = qMakeULongLong(data + r * columns[i].maxLen, d->err); + break; + default: + break; + } + break; + } + case SQLT_FLT: (*list)[r] = *reinterpret_cast(data + r * columns[i].maxLen); break; diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h index 5837719..80535df 100644 --- a/tests/auto/qsqldatabase/tst_databases.h +++ b/tests/auto/qsqldatabase/tst_databases.h @@ -208,7 +208,7 @@ public: // addDb( "QOCI8", "//horsehead.nokia.troll.no:1521/ustest.troll.no", "scott", "tiger", "" ); // Oracle 9i on horsehead // addDb( "QOCI8", "//iceblink.nokia.troll.no:1521/ice.troll.no", "scott", "tiger", "" ); // Oracle 8 on iceblink (not currently working) // addDb( "QOCI", "//silence.nokia.troll.no:1521/testdb", "scott", "tiger" ); // Oracle 10g on silence -// addDb( "QOCI", "//oracle10g-nokia.trolltech.com.au:1521/XE", "scott", "tiger" ); // Oracle 10gexpress on xen +// addDb( "QOCI", "//bq-oracle10g.apac.nokia.com:1521/XE", "scott", "tiger" ); // Oracle 10gexpress // This requires a local ODBC data source to be configured( pointing to a MySql database ) // addDb( "QODBC", "mysqlodbc", "troll", "trond" ); diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index 5367bd6..b4a3e08 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -139,6 +139,8 @@ private slots: void oraClob(); void oraLong_data() { generic_data("QOCI"); } void oraLong(); + void oraOCINumber_data() { generic_data("QOCI"); } + void oraOCINumber(); void outValuesDB2_data() { generic_data("QDB2"); } void outValuesDB2(); void storedProceduresIBase_data() {generic_data("QIBASE"); } @@ -211,8 +213,7 @@ private slots: void QTBUG_5765(); void QTBUG_14132_data() { generic_data("QOCI"); } void QTBUG_14132(); - void QTBUG_14640_data() { generic_data("QOCI"); } - void QTBUG_14640(); + void sqlite_constraint_data() { generic_data("QSQLITE"); } void sqlite_constraint(); @@ -332,7 +333,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) << qTableName( "task_250026", __FILE__ ) << qTableName( "task_234422", __FILE__ ) << qTableName("test141895", __FILE__) - << qTableName("qtest_QTBUG14640", __FILE__); + << qTableName("qtest_oraOCINumber", __FILE__); if ( db.driverName().startsWith("QPSQL") ) tablenames << qTableName("task_233829", __FILE__); @@ -2950,11 +2951,11 @@ void tst_QSqlQuery::QTBUG_14132() begin \n\ outStr := 'OUTSTRING'; \n\ end;")); - QString outValue = "XXXXXXXXX"; - q.prepare("CALL "+procedureName+"(?)"); - q.addBindValue(outValue, QSql::Out); + QString placeholder = "XXXXXXXXX"; + QVERIFY(q.prepare("CALL "+procedureName+"(?)")); + q.addBindValue(placeholder, QSql::Out); QVERIFY_SQL(q, exec()); - QCOMPARE(outValue, QLatin1String("OUTSTRING")); + QCOMPARE(q.boundValue(0).toString(), QLatin1String("OUTSTRING")); } void tst_QSqlQuery::QTBUG_5251() @@ -3104,30 +3105,108 @@ void tst_QSqlQuery::QTBUG_5765() QCOMPARE(q.value(0).toInt(), 123); } -void tst_QSqlQuery::QTBUG_14640() +void tst_QSqlQuery::oraOCINumber() { QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_QTBUG14640(qTableName("qtest_QTBUG14640", __FILE__)); + const QString qtest_oraOCINumber(qTableName("qtest_oraOCINumber", __FILE__)); QSqlQuery q( db ); q.setForwardOnly( true ); - QVERIFY_SQL( q, exec( "create table " + qtest_QTBUG14640 + - " (col1 number, col2 number)" ) ); - QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (1, 1111)" ) ); - QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (2, 2222)" ) ); - QVERIFY_SQL( q, exec( "insert into " + qtest_QTBUG14640 + " values (3, 3333)" ) ); - - QString sqlStr = "select * from " + qtest_QTBUG14640 + " where col1 == :bindValue0 AND col2 == :bindValue1"; - q.prepare(sqlStr); - q.bindValue(":bindValue0", qlonglong(1), QSql::In); - q.bindValue(":bindValue1", qlonglong(1111), QSql::In); + QVERIFY_SQL( q, exec( "create table " + qtest_oraOCINumber + + " (col1 number(20), col2 number(20))" ) ); + QVERIFY(q.prepare("insert into " + qtest_oraOCINumber + " values (?, ?)")); + QVariantList col1Values; + QVariantList col2Values; + col1Values << (qulonglong)(1) + << (qulonglong)(0) + << (qulonglong)(INT_MAX) + << (qulonglong)(UINT_MAX) + << (qulonglong)(LONG_MAX) + << (qulonglong)(ULONG_MAX) + << (qulonglong)(LLONG_MAX) + << (qulonglong)(ULLONG_MAX); + + col2Values << (qlonglong)(1) + << (qlonglong)(0) + << (qlonglong)(-1) + << (qlonglong)(LONG_MAX) + << (qlonglong)(LONG_MIN) + << (qlonglong)(ULONG_MAX) + << (qlonglong)(LLONG_MAX) + << (qlonglong)(LLONG_MIN); + + q.addBindValue(col1Values); + q.addBindValue(col2Values); + QVERIFY(q.execBatch()); + QString sqlStr = "select * from " + qtest_oraOCINumber + " where col1 = :bindValue0 AND col2 = :bindValue1"; + QVERIFY(q.prepare(sqlStr)); + + q.bindValue(":bindValue0", (qulonglong)(1), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(1), QSql::InOut); + + QVERIFY_SQL( q, exec() ); + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), qulonglong(1)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(1)); + + q.bindValue(":bindValue0", (qulonglong)(0), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(0), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(0)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(0)); + + q.bindValue(":bindValue0", (qulonglong)(INT_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(-1), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(INT_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(-1)); + + q.bindValue(":bindValue0", (qulonglong)(UINT_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(LONG_MAX), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(UINT_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(LONG_MAX)); + + q.bindValue(":bindValue0", (qulonglong)(LONG_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(LONG_MIN), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(LONG_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(LONG_MIN)); + + q.bindValue(":bindValue0", (qulonglong)(ULONG_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(ULONG_MAX), QSql::InOut); QVERIFY_SQL( q, exec() ); QVERIFY( q.next() ); - QCOMPARE(q.boundValue( 0 ).toLongLong(), qlonglong(1)); - QCOMPARE(q.boundValue( 1 ).toLongLong(), qlonglong(1111)); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(ULONG_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(ULONG_MAX)); + + q.bindValue(":bindValue0", (qulonglong)(LLONG_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(LLONG_MAX), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(LLONG_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(LLONG_MAX)); + + q.bindValue(":bindValue0", (qulonglong)(ULLONG_MAX), QSql::InOut); + q.bindValue(":bindValue1", (qlonglong)(LLONG_MIN), QSql::InOut); + QVERIFY_SQL( q, exec() ); + + QVERIFY( q.next() ); + QCOMPARE(q.boundValue( 0 ).toULongLong(), (qulonglong)(ULLONG_MAX)); + QCOMPARE(q.boundValue( 1 ).toLongLong(), (qlonglong)(LLONG_MIN)); + } void tst_QSqlQuery::sqlite_constraint() -- cgit v0.12 From d2c204a93f30238c705209e65e2e8bce148825cd Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 4 Nov 2010 18:07:44 +1000 Subject: Image bounding rect should always include the area being painted This didn't always happend with fillMode PreserveAspectCrop, resulting in drawing artifacts. Task-number: QT-3933 Reviewed-by: Martin Jones --- .../graphicsitems/qdeclarativeimage.cpp | 27 +++++++- .../graphicsitems/qdeclarativeimage_p.h | 1 + .../declarative/qdeclarativeimage/data/rect.png | Bin 0 -> 171 bytes .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 74 +++++++++++++++++++++ 4 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativeimage/data/rect.png diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp index 1f1e93d..3b08a9b 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp @@ -259,8 +259,10 @@ void QDeclarativeImage::setFillMode(FillMode mode) \qmlproperty real Image::paintedHeight These properties hold the size of the image that is actually painted. - In most cases it is the same as \c width and \c height, but when using a \c fillMode like - \c PreserveAspectFit \c paintedWidth or \c paintedHeight can be smaller than \c width and \c height. + In most cases it is the same as \c width and \c height, but when using a + \c fillMode \c PreserveAspectFit or \c fillMode \c PreserveAspectCrop + \c paintedWidth or \c paintedHeight can be smaller or larger than + \c width and \c height of the Image element. */ qreal QDeclarativeImage::paintedWidth() const { @@ -399,6 +401,19 @@ void QDeclarativeImage::updatePaintedGeometry() if (heightValid() && !widthValid()) { setImplicitWidth(d->paintedWidth); } + } else if (d->fillMode == PreserveAspectCrop) { + if (!d->pix.width() || !d->pix.height()) + return; + qreal widthScale = width() / qreal(d->pix.width()); + qreal heightScale = height() / qreal(d->pix.height()); + if (widthScale < heightScale) { + widthScale = heightScale; + } else if(heightScale < widthScale) { + heightScale = widthScale; + } + + d->paintedHeight = heightScale * qreal(d->pix.height()); + d->paintedWidth = widthScale * qreal(d->pix.width()); } else { d->paintedWidth = width(); d->paintedHeight = height(); @@ -412,6 +427,12 @@ void QDeclarativeImage::geometryChanged(const QRectF &newGeometry, const QRectF updatePaintedGeometry(); } +QRectF QDeclarativeImage::boundingRect() const +{ + Q_D(const QDeclarativeImage); + return QRectF(0, 0, qMax(d->mWidth, d->paintedWidth), qMax(d->mHeight, d->paintedHeight)); +} + /*! \qmlproperty url Image::source @@ -496,7 +517,7 @@ void QDeclarativeImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWi } if (clip()) { p->save(); - p->setClipRect(boundingRect(), Qt::IntersectClip); + p->setClipRect(QRectF(0, 0, d->mWidth, d->mHeight), Qt::IntersectClip); } scale.scale(widthScale, heightScale); QTransform old = p->transform(); diff --git a/src/declarative/graphicsitems/qdeclarativeimage_p.h b/src/declarative/graphicsitems/qdeclarativeimage_p.h index c8bb30b..0e8034e 100644 --- a/src/declarative/graphicsitems/qdeclarativeimage_p.h +++ b/src/declarative/graphicsitems/qdeclarativeimage_p.h @@ -76,6 +76,7 @@ public: qreal paintedHeight() const; void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + QRectF boundingRect() const; Q_SIGNALS: void fillModeChanged(); diff --git a/tests/auto/declarative/qdeclarativeimage/data/rect.png b/tests/auto/declarative/qdeclarativeimage/data/rect.png new file mode 100644 index 0000000..d564a2d Binary files /dev/null and b/tests/auto/declarative/qdeclarativeimage/data/rect.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp index f1e026f..bf779ad 100644 --- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp +++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp @@ -80,6 +80,8 @@ private slots: void preserveAspectRatio(); void smooth(); void svg(); + void geometry(); + void geometry_data(); void big(); void tiling_QTBUG_6716(); void noLoading(); @@ -288,6 +290,78 @@ void tst_qdeclarativeimage::svg() delete obj; } +void tst_qdeclarativeimage::geometry_data() +{ + QTest::addColumn("fillMode"); + QTest::addColumn("explicitWidth"); + QTest::addColumn("explicitHeight"); + QTest::addColumn("itemWidth"); + QTest::addColumn("paintedWidth"); + QTest::addColumn("boundingWidth"); + QTest::addColumn("itemHeight"); + QTest::addColumn("paintedHeight"); + QTest::addColumn("boundingHeight"); + + // tested image has width 200, height 100 + + // bounding rect and item rect are equal with fillMode PreserveAspectFit, painted rect may be smaller if the aspect ratio doesn't match + QTest::newRow("PreserveAspectFit") << "PreserveAspectFit" << false << false << 200.0 << 200.0 << 200.0 << 100.0 << 100.0 << 100.0; + QTest::newRow("PreserveAspectFit explicit width 300") << "PreserveAspectFit" << true << false << 300.0 << 200.0 << 300.0 << 100.0 << 100.0 << 100.0; + QTest::newRow("PreserveAspectFit explicit height 400") << "PreserveAspectFit" << false << true << 200.0 << 200.0 << 200.0 << 400.0 << 100.0 << 400.0; + QTest::newRow("PreserveAspectFit explicit width 300, height 400") << "PreserveAspectFit" << true << true << 300.0 << 300.0 << 300.0 << 400.0 << 150.0 << 400.0; + + // bounding rect and painted rect are equal with fillMode PreserveAspectCrop, item rect may be smaller if the aspect ratio doesn't match + QTest::newRow("PreserveAspectCrop") << "PreserveAspectCrop" << false << false << 200.0 << 200.0 << 200.0 << 100.0 << 100.0 << 100.0; + QTest::newRow("PreserveAspectCrop explicit width 300") << "PreserveAspectCrop" << true << false << 300.0 << 300.0 << 300.0 << 100.0 << 150.0 << 150.0; + QTest::newRow("PreserveAspectCrop explicit height 400") << "PreserveAspectCrop" << false << true << 200.0 << 800.0 << 800.0 << 400.0 << 400.0 << 400.0; + QTest::newRow("PreserveAspectCrop explicit width 300, height 400") << "PreserveAspectCrop" << true << true << 300.0 << 800.0 << 800.0 << 400.0 << 400.0 << 400.0; + + // bounding rect, painted rect and item rect are equal in stretching and tiling images + QStringList fillModes; + fillModes << "Stretch" << "Tile" << "TileVertically" << "TileHorizontally"; + foreach (QString fillMode, fillModes) { + QTest::newRow(fillMode.toLatin1()) << fillMode << false << false << 200.0 << 200.0 << 200.0 << 100.0 << 100.0 << 100.0; + QTest::newRow(QString(fillMode + " explicit width 300").toLatin1()) << fillMode << true << false << 300.0 << 300.0 << 300.0 << 100.0 << 100.0 << 100.0; + QTest::newRow(QString(fillMode + " explicit height 400").toLatin1()) << fillMode << false << true << 200.0 << 200.0 << 200.0 << 400.0 << 400.0 << 400.0; + QTest::newRow(QString(fillMode + " explicit width 300, height 400").toLatin1()) << fillMode << true << true << 300.0 << 300.0 << 300.0 << 400.0 << 400.0 << 400.0; + } +} + +void tst_qdeclarativeimage::geometry() +{ + QFETCH(QString, fillMode); + QFETCH(bool, explicitWidth); + QFETCH(bool, explicitHeight); + QFETCH(double, itemWidth); + QFETCH(double, itemHeight); + QFETCH(double, paintedWidth); + QFETCH(double, paintedHeight); + QFETCH(double, boundingWidth); + QFETCH(double, boundingHeight); + + QString src = QUrl::fromLocalFile(SRCDIR "/data/rect.png").toString(); + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + src + "\"; fillMode: Image." + fillMode + "; "; + + if (explicitWidth) + componentStr.append("width: 300; "); + if (explicitHeight) + componentStr.append("height: 400; "); + componentStr.append("}"); + QDeclarativeComponent component(&engine); + component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); + QDeclarativeImage *obj = qobject_cast(component.create()); + QVERIFY(obj != 0); + + QCOMPARE(obj->width(), itemWidth); + QCOMPARE(obj->paintedWidth(), paintedWidth); + QCOMPARE(obj->boundingRect().width(), boundingWidth); + + QCOMPARE(obj->height(), itemHeight); + QCOMPARE(obj->paintedHeight(), paintedHeight); + QCOMPARE(obj->boundingRect().height(), boundingHeight); + delete obj; +} + void tst_qdeclarativeimage::big() { // If the JPEG loader does not implement scaling efficiently, it would -- cgit v0.12 From afa9d82702cbce1a23f951ed045d038f1d16b417 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Mon, 8 Nov 2010 10:12:10 +1000 Subject: Update QtOpenVg def files for bug QT-3589 --- src/s60installs/bwins/QtOpenVGu.def | 1 + src/s60installs/eabi/QtOpenVGu.def | 1 + 2 files changed, 2 insertions(+) diff --git a/src/s60installs/bwins/QtOpenVGu.def b/src/s60installs/bwins/QtOpenVGu.def index a67725e..87b9c7f 100644 --- a/src/s60installs/bwins/QtOpenVGu.def +++ b/src/s60installs/bwins/QtOpenVGu.def @@ -175,4 +175,5 @@ EXPORTS ?createPixmapForImage@QVGPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 174 NONAME ; void QVGPixmapData::createPixmapForImage(class QImage &, class QFlags, bool) ?fromData@QVGPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 175 NONAME ; bool QVGPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags) ?fromImageReader@QVGPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 176 NONAME ; void QVGPixmapData::fromImageReader(class QImageReader *, class QFlags) + ?canVgWritePixels@QVGPaintEngine@@ABE_NABVQImage@@@Z @ 177 NONAME ; bool QVGPaintEngine::canVgWritePixels(class QImage const &) const diff --git a/src/s60installs/eabi/QtOpenVGu.def b/src/s60installs/eabi/QtOpenVGu.def index 99942b8..e1828c1 100644 --- a/src/s60installs/eabi/QtOpenVGu.def +++ b/src/s60installs/eabi/QtOpenVGu.def @@ -205,4 +205,5 @@ EXPORTS _ZN13QVGPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 204 NONAME _ZN13QVGPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 205 NONAME _ZN13QVGPixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 206 NONAME + _ZNK14QVGPaintEngine16canVgWritePixelsERK6QImage @ 207 NONAME -- cgit v0.12 From 0f1599edcc8624682efb9514bb9b4ac0519c7017 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Mon, 8 Nov 2010 13:34:05 +1000 Subject: Text alignment is broken with multi-line text and implicit size. Also add some visual tests for multi-line text elememts. Task-number: QTBUG-15018 --- src/declarative/graphicsitems/qdeclarativetext.cpp | 58 +++++++++++++++---- .../qmlvisual/qdeclarativetext/font/TestText.qml | 13 +++++ .../font/data-MAC/plaintext3.0.png | Bin 0 -> 53503 bytes .../qdeclarativetext/font/data-MAC/plaintext3.qml | 11 ++++ .../qdeclarativetext/font/data/plaintext3.0.png | Bin 0 -> 53503 bytes .../qdeclarativetext/font/data/plaintext3.qml | 11 ++++ .../qmlvisual/qdeclarativetext/font/plaintext3.qml | 62 +++++++++++++++++++++ 7 files changed, 143 insertions(+), 12 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 84f276e..615c619 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -285,35 +285,56 @@ QSize QDeclarativeTextPrivate::setupTextLayout() { // ### text layout handling should be profiled and optimized as needed // what about QStackTextEngine engine(tmp, d->font.font()); QTextLayout textLayout(&engine); - Q_Q(QDeclarativeText); layout.setCacheEnabled(true); qreal height = 0; + qreal widthUsed = 0; qreal lineWidth = 0; - QTextOption textOption = layout.textOption(); - textOption.setWrapMode(QTextOption::NoWrap); - textOption.setAlignment(Qt::Alignment(hAlign)); - - // if the item has an explicit width, we set the line width and enable wrapping - if (q->widthValid()) { + //set manual width + if ((wrapMode != QDeclarativeText::NoWrap || elideMode != QDeclarativeText::ElideNone) && q->widthValid()) lineWidth = q->width(); - textOption.setWrapMode(QTextOption::WrapMode(wrapMode)); - } + QTextOption textOption = layout.textOption(); + textOption.setWrapMode(QTextOption::WrapMode(wrapMode)); layout.setTextOption(textOption); + layout.beginLayout(); - while (1) { + forever { QTextLine line = layout.createLine(); if (!line.isValid()) break; - line.setLineWidth(lineWidth); + if (lineWidth) + line.setLineWidth(lineWidth); + } + layout.endLayout(); + + for (int i = 0; i < layout.lineCount(); ++i) { + QTextLine line = layout.lineAt(i); + widthUsed = qMax(widthUsed, line.naturalTextWidth()); + } + + qreal layoutWidth = q->widthValid() ? q->width() : widthUsed; + + qreal x = 0; + for (int i = 0; i < layout.lineCount(); ++i) { + QTextLine line = layout.lineAt(i); line.setPosition(QPointF(0, height)); height += line.height(); + + if (!cacheAllTextAsImage) { + if (hAlign == QDeclarativeText::AlignLeft) { + x = 0; + } else if (hAlign == QDeclarativeText::AlignRight) { + x = layoutWidth - line.naturalTextWidth(); + } else if (hAlign == QDeclarativeText::AlignHCenter) { + x = (layoutWidth - line.naturalTextWidth()) / 2; + } + line.setPosition(QPointF(x, line.y())); + } } - layout.endLayout(); return layout.boundingRect().toAlignedRect().size(); } @@ -327,6 +348,19 @@ QPixmap QDeclarativeTextPrivate::textLayoutImage(bool drawStyle) //do layout QSize size = layedOutTextSize; + qreal x = 0; + for (int i = 0; i < layout.lineCount(); ++i) { + QTextLine line = layout.lineAt(i); + if (hAlign == QDeclarativeText::AlignLeft) { + x = 0; + } else if (hAlign == QDeclarativeText::AlignRight) { + x = size.width() - line.naturalTextWidth(); + } else if (hAlign == QDeclarativeText::AlignHCenter) { + x = (size.width() - line.naturalTextWidth()) / 2; + } + line.setPosition(QPointF(x, line.y())); + } + //paint text QPixmap img(size); if (!size.isEmpty()) { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml new file mode 100644 index 0000000..690cb15 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/TestText.qml @@ -0,0 +1,13 @@ +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-MAC/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png new file mode 100644 index 0000000..0d3c672 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.qml new file mode 100644 index 0000000..13f413a --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/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/data/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.0.png new file mode 100644 index 0000000..0d3c672 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.qml new file mode 100644 index 0000000..13f413a --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/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 new file mode 100644 index 0000000..087dfbe --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml @@ -0,0 +1,62 @@ +import QtQuick 1.0 + +Rectangle { + id: main + width: 800; height: 600 + + + Grid { + x: 4; y: 4 + spacing: 8 + columns: 4 + + Column { + spacing: 4 + TestText { } + TestText { horizontalAlignment: Text.AlignHCenter } + TestText { horizontalAlignment: Text.AlignRight } + } + + Column { + spacing: 4 + TestText { wrapMode: Text.Wrap } + TestText { horizontalAlignment: Text.AlignHCenter; wrapMode: Text.Wrap } + TestText { 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 } + } + + 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 } + } + + 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 } + } + + 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 } + } + + Column { + spacing: 4 + TestText { width: 120 } + TestText { width: 120; horizontalAlignment: Text.AlignHCenter } + TestText { width: 120; horizontalAlignment: Text.AlignRight } + } + } +} -- cgit v0.12 From 16316f170fde30b91ed884a95d5910bd4de63782 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 8 Nov 2010 14:12:57 +1000 Subject: Don't use stdint.h in our headers since it is a C99 header. This caused problems in user applications depending upon the order of inlcusion and/or defining __STDC_LIMIT_MACROS. stdint.h is also not present in msvc, but is present in mingw. Switch to using quintptr. Task-number: QTBUG-14691 Task-number: QTBUG-13953 Reviewed-by: Bea Lam --- src/declarative/qml/qdeclarativeprivate.h | 5 +---- src/declarative/qml/qmetaobjectbuilder.cpp | 12 ++++-------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/declarative/qml/qdeclarativeprivate.h b/src/declarative/qml/qdeclarativeprivate.h index d45ddbc..388c92e 100644 --- a/src/declarative/qml/qdeclarativeprivate.h +++ b/src/declarative/qml/qdeclarativeprivate.h @@ -55,9 +55,6 @@ #include #include -#ifndef Q_OS_WIN -#include -#endif QT_BEGIN_HEADER @@ -105,7 +102,7 @@ namespace QDeclarativePrivate template struct StaticCastSelectorClass { - static inline int cast() { return int(reinterpret_cast(static_cast(reinterpret_cast(0x10000000)))) - 0x10000000; } + static inline int cast() { return int(reinterpret_cast(static_cast(reinterpret_cast(0x10000000)))) - 0x10000000; } }; template diff --git a/src/declarative/qml/qmetaobjectbuilder.cpp b/src/declarative/qml/qmetaobjectbuilder.cpp index 58f8811..dfe89f8 100644 --- a/src/declarative/qml/qmetaobjectbuilder.cpp +++ b/src/declarative/qml/qmetaobjectbuilder.cpp @@ -41,10 +41,6 @@ #include "private/qmetaobjectbuilder_p.h" -#ifndef Q_OS_WIN -#include -#endif - QT_BEGIN_NAMESPACE /*! @@ -1264,8 +1260,8 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf, char *str = reinterpret_cast(buf + size); if (buf) { if (relocatable) { - meta->d.stringdata = reinterpret_cast((intptr_t)size); - meta->d.data = reinterpret_cast((intptr_t)pmetaSize); + meta->d.stringdata = reinterpret_cast((quintptr)size); + meta->d.data = reinterpret_cast((quintptr)pmetaSize); } else { meta->d.stringdata = str; meta->d.data = reinterpret_cast(data); @@ -1502,8 +1498,8 @@ void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output, const char *buf = data.constData(); const QMetaObject *dataMo = reinterpret_cast(buf); - intptr_t stringdataOffset = (intptr_t)dataMo->d.stringdata; - intptr_t dataOffset = (intptr_t)dataMo->d.data; + quintptr stringdataOffset = (quintptr)dataMo->d.stringdata; + quintptr dataOffset = (quintptr)dataMo->d.data; output->d.superdata = superclass; output->d.stringdata = buf + stringdataOffset; -- cgit v0.12 From c9860f3336536bfb11c685dd25f6333409fda508 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Mon, 8 Nov 2010 15:22:12 +1000 Subject: Export QDeclarativeDebugHelper on Symbian for QTBUG-13762 Reviewed-by: Martin Jones Task-number: QTBUG-13762 --- src/declarative/debugger/qdeclarativedebughelper_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/debugger/qdeclarativedebughelper_p.h b/src/declarative/debugger/qdeclarativedebughelper_p.h index a1ac23d..fcd7115 100644 --- a/src/declarative/debugger/qdeclarativedebughelper_p.h +++ b/src/declarative/debugger/qdeclarativedebughelper_p.h @@ -55,7 +55,7 @@ class QDeclarativeEngine; // Helper methods to access private API through a stable interface // This is used in the qmljsdebugger library of QtCreator. -class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeDebugHelper +class Q_DECLARATIVE_EXPORT QDeclarativeDebugHelper { public: static QScriptEngine *getScriptEngine(QDeclarativeEngine *engine); -- cgit v0.12 From b78ec7dcd8b13a76703baefff1731d3f345392cc Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Mon, 8 Nov 2010 11:10:53 +0100 Subject: fix memleak in test --- tests/auto/qtextdocument/tst_qtextdocument.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index 808299b..23f6a6c 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -2054,6 +2054,7 @@ void tst_QTextDocument::clonePreservesIndentWidth() doc->setIndentWidth(42); QTextDocument *clone = doc->clone(); QCOMPARE(clone->indentWidth(), qreal(42)); + delete clone; } void tst_QTextDocument::blockCount() -- cgit v0.12 From ee958e086847e2131f9b746e5c6de4491ae1f44b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 8 Nov 2010 10:05:28 +0100 Subject: Prevented race condition on texture destruction. When texture destruction was triggered from a different thread, we posted a signal to the QGLSignalProxy. However, before the signal is delivered the corresponding QGLContext might be destroyed in the main thread. We need to post a signal to a QObject which is destroyed when the QGLContext is destroyed instead, to prevent trying to access an invalid QGLContext pointer. Task-number: QT-4238 Reviewed-by: Gunnar Sletta --- src/opengl/qgl.cpp | 11 +++++++++++ src/opengl/qgl.h | 1 + src/opengl/qgl_p.h | 30 ++++++++++++++++++++---------- tests/auto/qgl/tst_qgl.cpp | 8 ++++++-- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 84cfa97..ed9753e 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1642,12 +1642,23 @@ const QGLContext *qt_gl_transfer_context(const QGLContext *ctx) return 0; } +QGLContextPrivate::QGLContextPrivate(QGLContext *context) + : internal_context(false) + , q_ptr(context) +{ + group = new QGLContextGroup(context); + texture_destroyer = new QGLTextureDestroyer; + texture_destroyer->moveToThread(qApp->thread()); +} + QGLContextPrivate::~QGLContextPrivate() { if (!group->m_refs.deref()) { Q_ASSERT(group->context() == q_ptr); delete group; } + + delete texture_destroyer; } void QGLContextPrivate::init(QPaintDevice *dev, const QGLFormat &format) diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h index f85cad5..9ae619d 100644 --- a/src/opengl/qgl.h +++ b/src/opengl/qgl.h @@ -428,6 +428,7 @@ private: friend class QGLSharedResourceGuard; friend class QGLPixmapBlurFilter; friend class QGLExtensions; + friend class QGLTexture; friend QGLFormat::OpenGLVersionFlags QGLFormat::openGLVersionFlags(); #ifdef Q_WS_MAC public: diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index 18b2765..4742bdb 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -317,6 +317,7 @@ private: }; class QGLTexture; +class QGLTextureDestroyer; // This probably needs to grow to GL_MAX_VERTEX_ATTRIBS, but 3 is ok for now as that's // all the GL2 engine uses: @@ -326,7 +327,7 @@ class QGLContextPrivate { Q_DECLARE_PUBLIC(QGLContext) public: - explicit QGLContextPrivate(QGLContext *context) : internal_context(false), q_ptr(context) {group = new QGLContextGroup(context);} + explicit QGLContextPrivate(QGLContext *context); ~QGLContextPrivate(); QGLTexture *bindTexture(const QImage &image, GLenum target, GLint format, QGLContext::BindOptions options); @@ -417,6 +418,7 @@ public: GLuint current_fbo; GLuint default_fbo; QPaintEngine *active_engine; + QGLTextureDestroyer *texture_destroyer; bool vertexAttributeArraysEnabledState[QT_GL_VERTEX_ARRAY_TRACKED_COUNT]; @@ -476,25 +478,20 @@ private: QGLContext *m_ctx; }; -// ### make QGLContext a QObject in 5.0 and remove the proxy stuff -class Q_OPENGL_EXPORT QGLSignalProxy : public QObject +class QGLTextureDestroyer : public QObject { Q_OBJECT public: - QGLSignalProxy() : QObject() { + QGLTextureDestroyer() : QObject() { qRegisterMetaType("GLuint"); connect(this, SIGNAL(freeTexture(QGLContext *, QPixmapData *, GLuint)), this, SLOT(freeTexture_slot(QGLContext *, QPixmapData *, GLuint))); } - void emitAboutToDestroyContext(const QGLContext *context) { - emit aboutToDestroyContext(context); - } void emitFreeTexture(QGLContext *context, QPixmapData *boundPixmap, GLuint id) { emit freeTexture(context, boundPixmap, id); } - static QGLSignalProxy *instance(); + Q_SIGNALS: - void aboutToDestroyContext(const QGLContext *context); void freeTexture(QGLContext *context, QPixmapData *boundPixmap, GLuint id); private slots: @@ -518,6 +515,19 @@ private slots: } }; +// ### make QGLContext a QObject in 5.0 and remove the proxy stuff +class Q_OPENGL_EXPORT QGLSignalProxy : public QObject +{ + Q_OBJECT +public: + void emitAboutToDestroyContext(const QGLContext *context) { + emit aboutToDestroyContext(context); + } + static QGLSignalProxy *instance(); +Q_SIGNALS: + void aboutToDestroyContext(const QGLContext *context); +}; + class QGLTexture { public: QGLTexture(QGLContext *ctx = 0, GLuint tx_id = 0, GLenum tx_target = GL_TEXTURE_2D, @@ -537,7 +547,7 @@ public: #if !defined(Q_WS_X11) QPixmapData *boundPixmap = 0; #endif - QGLSignalProxy::instance()->emitFreeTexture(context, boundPixmap, id); + context->d_ptr->texture_destroyer->emitFreeTexture(context, boundPixmap, id); } } diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index 4220b45..e38bf42 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -2335,8 +2335,10 @@ public: Widget() : iterations(0) , display(0) + , producer(new Producer) { startTimer(400); + connect(this, SIGNAL(destroyed()), producer, SLOT(deleteLater())); } int iterations; @@ -2348,15 +2350,15 @@ protected: delete display; display = new DisplayWidget(this); - connect(&producer, SIGNAL(imageReady(const QImage &)), display, SLOT(setImage(const QImage &))); + connect(producer, SIGNAL(imageReady(const QImage &)), display, SLOT(setImage(const QImage &))); display->setGeometry(rect()); display->show(); } private: - Producer producer; DisplayWidget *display; + Producer *producer; }; } @@ -2369,6 +2371,8 @@ void tst_QGL::threadImages() while (widget->iterations <= 5) { qApp->processEvents(); } + + delete widget; } class tst_QGLDummy : public QObject -- cgit v0.12 From 2da8d40ac2c7de25d811bac0befaef577a696065 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 8 Nov 2010 14:02:28 +0100 Subject: QNAM: Remove dead waitForDownstreamReadyRead() code Reviewed-by: Thiago Macieira --- src/network/access/qnetworkaccessbackend_p.h | 1 - src/network/access/qnetworkaccesscachebackend.cpp | 6 ------ src/network/access/qnetworkaccesscachebackend_p.h | 1 - .../access/qnetworkaccessdebugpipebackend.cpp | 6 ------ .../access/qnetworkaccessdebugpipebackend_p.h | 1 - src/network/access/qnetworkaccessfilebackend.cpp | 6 ------ src/network/access/qnetworkaccessfilebackend_p.h | 1 - src/network/access/qnetworkaccessftpbackend.cpp | 17 ----------------- src/network/access/qnetworkaccessftpbackend_p.h | 1 - src/network/access/qnetworkaccesshttpbackend.cpp | 20 -------------------- src/network/access/qnetworkaccesshttpbackend_p.h | 1 - 11 files changed, 61 deletions(-) diff --git a/src/network/access/qnetworkaccessbackend_p.h b/src/network/access/qnetworkaccessbackend_p.h index 4fe6de6..7faa5cb 100644 --- a/src/network/access/qnetworkaccessbackend_p.h +++ b/src/network/access/qnetworkaccessbackend_p.h @@ -115,7 +115,6 @@ public: virtual bool start(); #endif virtual void closeDownstreamChannel() = 0; - virtual bool waitForDownstreamReadyRead(int msecs) = 0; // slot-like: virtual void downstreamReadyWrite(); diff --git a/src/network/access/qnetworkaccesscachebackend.cpp b/src/network/access/qnetworkaccesscachebackend.cpp index 73491a9..597cbef 100644 --- a/src/network/access/qnetworkaccesscachebackend.cpp +++ b/src/network/access/qnetworkaccesscachebackend.cpp @@ -132,12 +132,6 @@ void QNetworkAccessCacheBackend::closeUpstreamChannel() Q_ASSERT_X(false, Q_FUNC_INFO, "This function show not have been called!"); } -bool QNetworkAccessCacheBackend::waitForDownstreamReadyRead(int) -{ - Q_ASSERT_X(false, Q_FUNC_INFO , "This function show not have been called!"); - return false; -} - bool QNetworkAccessCacheBackend::waitForUpstreamBytesWritten(int) { Q_ASSERT_X(false, Q_FUNC_INFO, "This function show not have been called!"); diff --git a/src/network/access/qnetworkaccesscachebackend_p.h b/src/network/access/qnetworkaccesscachebackend_p.h index df001ab..995c875 100644 --- a/src/network/access/qnetworkaccesscachebackend_p.h +++ b/src/network/access/qnetworkaccesscachebackend_p.h @@ -69,7 +69,6 @@ public: void open(); void closeDownstreamChannel(); void closeUpstreamChannel(); - bool waitForDownstreamReadyRead(int msecs); bool waitForUpstreamBytesWritten(int msecs); void upstreamReadyRead(); diff --git a/src/network/access/qnetworkaccessdebugpipebackend.cpp b/src/network/access/qnetworkaccessdebugpipebackend.cpp index cd077e7..5f99f84 100644 --- a/src/network/access/qnetworkaccessdebugpipebackend.cpp +++ b/src/network/access/qnetworkaccessdebugpipebackend.cpp @@ -278,12 +278,6 @@ void QNetworkAccessDebugPipeBackend::socketConnected() { } -bool QNetworkAccessDebugPipeBackend::waitForDownstreamReadyRead(int ms) -{ - Q_UNUSED(ms); - qCritical("QNetworkAccess: Debug pipe backend does not support waitForReadyRead()"); - return false; -} #endif diff --git a/src/network/access/qnetworkaccessdebugpipebackend_p.h b/src/network/access/qnetworkaccessdebugpipebackend_p.h index 58a4fd0..918a813 100644 --- a/src/network/access/qnetworkaccessdebugpipebackend_p.h +++ b/src/network/access/qnetworkaccessdebugpipebackend_p.h @@ -71,7 +71,6 @@ public: virtual void open(); virtual void closeDownstreamChannel(); - virtual bool waitForDownstreamReadyRead(int msecs); virtual void downstreamReadyWrite(); diff --git a/src/network/access/qnetworkaccessfilebackend.cpp b/src/network/access/qnetworkaccessfilebackend.cpp index 4560153..65f19ca 100644 --- a/src/network/access/qnetworkaccessfilebackend.cpp +++ b/src/network/access/qnetworkaccessfilebackend.cpp @@ -203,12 +203,6 @@ void QNetworkAccessFileBackend::closeDownstreamChannel() } } -bool QNetworkAccessFileBackend::waitForDownstreamReadyRead(int) -{ - Q_ASSERT(operation() == QNetworkAccessManager::GetOperation); - return readMoreFromFile(); -} - void QNetworkAccessFileBackend::downstreamReadyWrite() { Q_ASSERT_X(operation() == QNetworkAccessManager::GetOperation, "QNetworkAccessFileBackend", diff --git a/src/network/access/qnetworkaccessfilebackend_p.h b/src/network/access/qnetworkaccessfilebackend_p.h index 6df8710..d1dbe8d 100644 --- a/src/network/access/qnetworkaccessfilebackend_p.h +++ b/src/network/access/qnetworkaccessfilebackend_p.h @@ -69,7 +69,6 @@ public: virtual void open(); virtual void closeDownstreamChannel(); - virtual bool waitForDownstreamReadyRead(int msecs); virtual void downstreamReadyWrite(); diff --git a/src/network/access/qnetworkaccessftpbackend.cpp b/src/network/access/qnetworkaccessftpbackend.cpp index 1a59011..d1a18d3 100644 --- a/src/network/access/qnetworkaccessftpbackend.cpp +++ b/src/network/access/qnetworkaccessftpbackend.cpp @@ -182,23 +182,6 @@ void QNetworkAccessFtpBackend::closeDownstreamChannel() #endif } -bool QNetworkAccessFtpBackend::waitForDownstreamReadyRead(int ms) -{ - if (!ftp) - return false; - - if (ftp->bytesAvailable()) { - ftpReadyRead(); - return true; - } - - if (ms == 0) - return false; - - qCritical("QNetworkAccess: FTP backend does not support waitForReadyRead()"); - return false; -} - void QNetworkAccessFtpBackend::downstreamReadyWrite() { if (state == Transferring && ftp && ftp->bytesAvailable()) diff --git a/src/network/access/qnetworkaccessftpbackend_p.h b/src/network/access/qnetworkaccessftpbackend_p.h index 737fa72..8a2bfc3 100644 --- a/src/network/access/qnetworkaccessftpbackend_p.h +++ b/src/network/access/qnetworkaccessftpbackend_p.h @@ -87,7 +87,6 @@ public: virtual void open(); virtual void closeDownstreamChannel(); - virtual bool waitForDownstreamReadyRead(int msecs); virtual void downstreamReadyWrite(); diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp index 2a0daf8..80b05a4 100644 --- a/src/network/access/qnetworkaccesshttpbackend.cpp +++ b/src/network/access/qnetworkaccesshttpbackend.cpp @@ -674,26 +674,6 @@ void QNetworkAccessHttpBackend::closeDownstreamChannel() // this indicates that the user closed the stream while the reply isn't finished yet } -bool QNetworkAccessHttpBackend::waitForDownstreamReadyRead(int msecs) -{ - Q_ASSERT(http); - - if (httpReply->bytesAvailable()) { - readFromHttp(); - return true; - } - - if (msecs == 0) { - // no bytes available in the socket and no waiting - return false; - } - - // ### FIXME - qCritical("QNetworkAccess: HTTP backend does not support waitForReadyRead()"); - return false; -} - - void QNetworkAccessHttpBackend::downstreamReadyWrite() { readFromHttp(); diff --git a/src/network/access/qnetworkaccesshttpbackend_p.h b/src/network/access/qnetworkaccesshttpbackend_p.h index 568b2ee..5de3429 100644 --- a/src/network/access/qnetworkaccesshttpbackend_p.h +++ b/src/network/access/qnetworkaccesshttpbackend_p.h @@ -79,7 +79,6 @@ public: virtual void open(); virtual void closeDownstreamChannel(); - virtual bool waitForDownstreamReadyRead(int msecs); virtual void downstreamReadyWrite(); virtual void setDownstreamLimited(bool b); -- cgit v0.12 From a3a84a872bb731d375a431626ccfcde5a660dd72 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 8 Nov 2010 14:08:13 +0100 Subject: QNAM: Remove dead waitForUpstreamBytesWritten() code --- src/network/access/qnetworkaccesscachebackend.cpp | 6 ------ src/network/access/qnetworkaccesscachebackend_p.h | 1 - 2 files changed, 7 deletions(-) diff --git a/src/network/access/qnetworkaccesscachebackend.cpp b/src/network/access/qnetworkaccesscachebackend.cpp index 597cbef..e78694e 100644 --- a/src/network/access/qnetworkaccesscachebackend.cpp +++ b/src/network/access/qnetworkaccesscachebackend.cpp @@ -132,12 +132,6 @@ void QNetworkAccessCacheBackend::closeUpstreamChannel() Q_ASSERT_X(false, Q_FUNC_INFO, "This function show not have been called!"); } -bool QNetworkAccessCacheBackend::waitForUpstreamBytesWritten(int) -{ - Q_ASSERT_X(false, Q_FUNC_INFO, "This function show not have been called!"); - return false; -} - void QNetworkAccessCacheBackend::upstreamReadyRead() { Q_ASSERT_X(false, Q_FUNC_INFO, "This function show not have been called!"); diff --git a/src/network/access/qnetworkaccesscachebackend_p.h b/src/network/access/qnetworkaccesscachebackend_p.h index 995c875..32581d5 100644 --- a/src/network/access/qnetworkaccesscachebackend_p.h +++ b/src/network/access/qnetworkaccesscachebackend_p.h @@ -69,7 +69,6 @@ public: void open(); void closeDownstreamChannel(); void closeUpstreamChannel(); - bool waitForUpstreamBytesWritten(int msecs); void upstreamReadyRead(); void downstreamReadyWrite(); -- cgit v0.12 From 626f13421baf258407f03e3bf21ed67138d55ea4 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Mon, 8 Nov 2010 15:03:05 +0100 Subject: Don't crash if QScriptClass property getter returns an invalid value It's possible that a class claims to have a property of a given name (i.e. queryProperty() returns true), but returns an invalid value for that property. In that case we should silently convert the value to undefined, otherwise the value may wreak havoc in JS. This is a regression from Qt 4.5 (pre-JavaScriptCore-based), which had this check. Task-number: QTBUG-15079 Reviewed-by: Jedrzej Nowacki --- src/script/bridge/qscriptclassobject.cpp | 12 ++++++++++++ tests/auto/qscriptclass/tst_qscriptclass.cpp | 21 +++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/script/bridge/qscriptclassobject.cpp b/src/script/bridge/qscriptclassobject.cpp index dd229f1..228e755 100644 --- a/src/script/bridge/qscriptclassobject.cpp +++ b/src/script/bridge/qscriptclassobject.cpp @@ -78,6 +78,12 @@ bool ClassObjectDelegate::getOwnPropertySlot(QScriptObject* object, scriptObject, scriptName, QScriptClass::HandlesReadAccess, &id); if (flags & QScriptClass::HandlesReadAccess) { QScriptValue value = m_scriptClass->property(scriptObject, scriptName, id); + if (!value.isValid()) { + // The class claims to have the property, but returned an invalid + // value. Silently convert to undefined to avoid the invalid value + // "escaping" into JS. + value = QScriptValue(QScriptValue::UndefinedValue); + } slot.setValue(engine->scriptValueToJSCValue(value)); return true; } @@ -119,6 +125,12 @@ bool ClassObjectDelegate::getOwnPropertyDescriptor(QScriptObject *object, attribs |= pflags & QScriptValue::UserRange; // Rather than calling the getter, we could return an access descriptor here. QScriptValue value = m_scriptClass->property(scriptObject, scriptName, id); + if (!value.isValid()) { + // The class claims to have the property, but returned an invalid + // value. Silently convert to undefined to avoid the invalid value + // "escaping" into JS. + value = QScriptValue(QScriptValue::UndefinedValue); + } descriptor.setDescriptor(engine->scriptValueToJSCValue(value), attribs); return true; } diff --git a/tests/auto/qscriptclass/tst_qscriptclass.cpp b/tests/auto/qscriptclass/tst_qscriptclass.cpp index b4dbe73..da6c76f 100644 --- a/tests/auto/qscriptclass/tst_qscriptclass.cpp +++ b/tests/auto/qscriptclass/tst_qscriptclass.cpp @@ -66,6 +66,7 @@ public: private slots: void newInstance(); void getAndSetProperty(); + void getProperty_invalidValue(); void enumerate(); void extension(); }; @@ -741,6 +742,26 @@ void tst_QScriptClass::getAndSetProperty() QVERIFY(!obj1.property(bar).isValid()); } +void tst_QScriptClass::getProperty_invalidValue() +{ + QScriptEngine eng; + TestClass cls(&eng); + cls.addCustomProperty(eng.toStringHandle("foo"), QScriptClass::HandlesReadAccess, + /*id=*/0, QScriptValue::ReadOnly, QScriptValue()); + QScriptValue obj = eng.newObject(&cls); + + QVERIFY(obj.property("foo").isUndefined()); + + eng.globalObject().setProperty("obj", obj); + QVERIFY(eng.evaluate("obj.hasOwnProperty('foo'))").toBool()); + // The JS environment expects that a valid value is returned, + // otherwise we could crash. + QVERIFY(eng.evaluate("obj.foo").isUndefined()); + QVERIFY(eng.evaluate("obj.foo + ''").isString()); + QVERIFY(eng.evaluate("Object.getOwnPropertyDescriptor(obj, 'foo').value").isUndefined()); + QVERIFY(eng.evaluate("Object.getOwnPropertyDescriptor(obj, 'foo').value +''").isString()); +} + void tst_QScriptClass::enumerate() { QScriptEngine eng; -- cgit v0.12 From a98b9daa4cd1341ee0ce6d2cf859666db9ebda59 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 8 Nov 2010 17:23:27 +0100 Subject: QNAM: Do not need QNetworkSession in AlwaysCache load mode Move the creation code to the top of QNAM::createRequest() to avoid setting up a QNetworkSession when it is not needed. Reviewed-by: ogoffart --- src/network/access/qnetworkaccessbackend.cpp | 12 ------------ src/network/access/qnetworkaccessmanager.cpp | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp index 0a0987a..05eb6cb 100644 --- a/src/network/access/qnetworkaccessbackend.cpp +++ b/src/network/access/qnetworkaccessbackend.cpp @@ -88,18 +88,6 @@ QNetworkAccessBackendFactory::~QNetworkAccessBackendFactory() QNetworkAccessBackend *QNetworkAccessManagerPrivate::findBackend(QNetworkAccessManager::Operation op, const QNetworkRequest &request) { - QNetworkRequest::CacheLoadControl mode = - static_cast( - request.attribute(QNetworkRequest::CacheLoadControlAttribute, - QNetworkRequest::PreferNetwork).toInt()); - if (mode == QNetworkRequest::AlwaysCache - && (op == QNetworkAccessManager::GetOperation - || op == QNetworkAccessManager::HeadOperation)) { - QNetworkAccessBackend *backend = new QNetworkAccessCacheBackend; - backend->manager = this; - return backend; - } - if (!factoryDataShutdown) { QMutexLocker locker(&factoryData()->mutex); QNetworkAccessBackendFactoryData::ConstIterator it = factoryData()->constBegin(), diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index e5f4d5a..effd79e 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -54,6 +54,7 @@ #include "qnetworkaccessfilebackend_p.h" #include "qnetworkaccessdatabackend_p.h" #include "qnetworkaccessdebugpipebackend_p.h" +#include "qnetworkaccesscachebackend_p.h" #include "qfilenetworkreply_p.h" #include "QtCore/qbuffer.h" @@ -970,6 +971,26 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera return new QFileNetworkReply(this, req, op); } + // A request with QNetworkRequest::AlwaysCache does not need any bearer management + QNetworkRequest::CacheLoadControl mode = + static_cast( + req.attribute(QNetworkRequest::CacheLoadControlAttribute, + QNetworkRequest::PreferNetwork).toInt()); + if (mode == QNetworkRequest::AlwaysCache + && (op == QNetworkAccessManager::GetOperation + || op == QNetworkAccessManager::HeadOperation)) { + // FIXME Implement a QNetworkReplyCacheImpl instead, see QTBUG-15106 + QNetworkReplyImpl *reply = new QNetworkReplyImpl(this); + QNetworkReplyImplPrivate *priv = reply->d_func(); + priv->manager = this; + priv->backend = new QNetworkAccessCacheBackend(); + priv->backend->manager = this->d_func(); + priv->backend->setParent(reply); + priv->backend->reply = priv; + priv->setup(op, req, outgoingData); + return reply; + } + #ifndef QT_NO_BEARERMANAGEMENT // Return a disabled network reply if network access is disabled. // Except if the scheme is empty or file://. -- cgit v0.12 From 285855b8fbbdc7ad428a0c66f6c4469d97e55769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 8 Nov 2010 17:33:49 +0100 Subject: Fixed text rendering bug in raster engine when opacity != 1.0. If opacity is updated independently from the pen properties sometimes the raster engine's fast_text flag would not be updated correctly, causing it to use a rendering path which doesn't support alpha. Reviewed-by: Robin Burchell Reviewed-by: Andreas Kling --- src/gui/painting/qpaintengine_raster.cpp | 4 +++- tests/auto/qpainter/tst_qpainter.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 161ced5..89202ac 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -875,9 +875,10 @@ void QRasterPaintEngine::updateState() if (s->dirty & DirtyTransform) updateMatrix(s->matrix); - if (s->dirty & (DirtyPen|DirtyCompositionMode)) { + if (s->dirty & (DirtyPen|DirtyCompositionMode|DirtyOpacity)) { const QPainter::CompositionMode mode = s->composition_mode; s->flags.fast_text = (s->penData.type == QSpanData::Solid) + && s->intOpacity == 256 && (mode == QPainter::CompositionMode_Source || (mode == QPainter::CompositionMode_SourceOver && qAlpha(s->penData.solid.color) == 255)); @@ -901,6 +902,7 @@ void QRasterPaintEngine::opacityChanged() s->fillFlags |= DirtyOpacity; s->strokeFlags |= DirtyOpacity; s->pixmapFlags |= DirtyOpacity; + s->dirty |= DirtyOpacity; s->intOpacity = (int) (s->opacity * 256); } diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp index ff9bf1c..83ff9a9 100644 --- a/tests/auto/qpainter/tst_qpainter.cpp +++ b/tests/auto/qpainter/tst_qpainter.cpp @@ -256,6 +256,7 @@ private slots: void drawPointScaled(); void QTBUG14614_gradientCacheRaceCondition(); + void drawTextOpacity(); private: void fillData(); @@ -4576,6 +4577,30 @@ void tst_QPainter::QTBUG14614_gradientCacheRaceCondition() producers[i].wait(); } +void tst_QPainter::drawTextOpacity() +{ + QImage image(32, 32, QImage::Format_RGB32); + image.fill(0xffffffff); + + QPainter p(&image); + p.setPen(QColor("#6F6F6F")); + p.setOpacity(0.5); + p.drawText(5, 30, QLatin1String("Qt")); + p.end(); + + QImage copy = image; + image.fill(0xffffffff); + + p.begin(&image); + p.setPen(QColor("#6F6F6F")); + p.drawLine(-10, -10, -1, -1); + p.setOpacity(0.5); + p.drawText(5, 30, QLatin1String("Qt")); + p.end(); + + QCOMPARE(image, copy); +} + QTEST_MAIN(tst_QPainter) #include "tst_qpainter.moc" -- cgit v0.12 From 38f7873d8f3104ede6f7e70392f2e1ba2970b508 Mon Sep 17 00:00:00 2001 From: Anders Bakken Date: Mon, 8 Nov 2010 16:56:39 +0000 Subject: Fix some painting issues in QDirectFBPaintEngine Inspired/rewrite of Denis Oliver Kropp's merge request (http://qt.gitorious.org/qt/qt/merge_requests/874) When blitting premultiplied source surfaces one has to set DSBLIT_SRC_PREMULTIPLY. This also reverts the erroneous 6acbf6dce98903310023284e27a65c19f9a829bc Merge-request: 903 Reviewed-by: Donald Carr --- .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 24 ++++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index 4869eba..d5697e0 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -55,6 +55,7 @@ #include #include + QT_BEGIN_NAMESPACE class SurfaceCache; @@ -112,7 +113,7 @@ public: static inline int cacheCost(const QImage &img) { return img.width() * img.height() * img.depth() / 8; } #endif - void prepareForBlit(bool alpha); + void prepareForBlit(IDirectFBSurface *surface); IDirectFBSurface *surface; @@ -616,7 +617,7 @@ void QDirectFBPaintEngine::drawImage(const QRectF &r, const QImage &image, #if !defined QT_NO_DIRECTFB_PREALLOCATED || defined QT_DIRECTFB_IMAGECACHE bool release; IDirectFBSurface *imgSurface = d->getSurface(image, &release); - d->prepareForBlit(QDirectFBScreen::hasAlphaChannel(imgSurface)); + d->prepareForBlit(imgSurface); CLIPPED_PAINT(d->blit(r, imgSurface, sr)); if (release) { #if (Q_DIRECTFB_VERSION >= 0x010000) @@ -655,8 +656,8 @@ void QDirectFBPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pixmap, QRasterPaintEngine::drawImage(r, *img, sr); } else { QDirectFBPaintEnginePrivate::unlock(dfbData); - d->prepareForBlit(pixmap.hasAlphaChannel()); IDirectFBSurface *s = dfbData->directFBSurface(); + d->prepareForBlit(s); CLIPPED_PAINT(d->blit(r, s, sr)); } } @@ -978,7 +979,7 @@ void QDirectFBPaintEnginePrivate::setCompositionMode(QPainter::CompositionMode m break; case QPainter::CompositionMode_SourceOver: compositionModeStatus &= ~PorterDuff_AlwaysBlend; - surface->SetPorterDuff(surface, DSPD_NONE); + surface->SetPorterDuff(surface, DSPD_SRC_OVER); break; case QPainter::CompositionMode_DestinationOver: surface->SetPorterDuff(surface, DSPD_DST_OVER); @@ -1031,13 +1032,18 @@ void QDirectFBPaintEnginePrivate::setRenderHints(QPainter::RenderHints hints) } } -void QDirectFBPaintEnginePrivate::prepareForBlit(bool alpha) +void QDirectFBPaintEnginePrivate::prepareForBlit(IDirectFBSurface *s) { - DFBSurfaceBlittingFlags blittingFlags = alpha ? DSBLIT_BLEND_ALPHACHANNEL : DSBLIT_NOFX; + DFBSurfaceBlittingFlags blittingFlags = DSBLIT_NOFX; + if (QDirectFBScreen::isPremultiplied(QDirectFBScreen::getImageFormat(s))) + blittingFlags |= DSBLIT_SRC_PREMULTIPLY; + if (QDirectFBScreen::hasAlphaChannel(s)) + blittingFlags |= DSBLIT_BLEND_ALPHACHANNEL; if (opacity != 255) { blittingFlags |= DSBLIT_BLEND_COLORALPHA; + surface->SetColor(surface, 0xff, 0xff, 0xff, opacity); } - surface->SetColor(surface, 0xff, 0xff, 0xff, opacity); + surface->SetBlittingFlags(surface, blittingFlags); } @@ -1154,13 +1160,13 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix QPointF offset = off; Q_ASSERT(transform.type() <= QTransform::TxScale); - prepareForBlit(pixmap.hasAlphaChannel()); QPixmapData *data = pixmap.pixmapData(); Q_ASSERT(data->classId() == QPixmapData::DirectFBClass); QDirectFBPixmapData *dfbData = static_cast(data); + IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); + prepareForBlit(sourceSurface); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); - IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); if (transform.isScaling()) { Q_ASSERT(supportsStretchBlit()); Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); -- cgit v0.12 From 551a8648b93055afa92c2938af5cede7495fd7f5 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Mon, 8 Nov 2010 19:26:13 +0300 Subject: fix build on mingw > data.cpp:2: error: 'ushort' does not name a type > data.cpp:1133: error: 'ushort' does not name a type and lot of > data.cpp:1276: error: too many initializers for 'StringCollection' when the issue with ushort is fixed (by including qglobal.h, for example) a bunch of some new build errors occurs: > data.cpp:4: error: 'stringCollectionData' was declared 'extern' and later 'static' > data.h:54: error: previous declaration of 'stringCollectionData' > data.cpp:1131: error: redefinition of 'struct StringCollection' > data.h:48: error: previous definition of 'struct StringCollection' > data.cpp:1136: error: invalid type in declaration before '=' token > data.cpp:1136: error: conflicting declaration 'int stringCollection []' > data.h:55: error: 'stringCollection' has a previous declaration as 'StringCollection stringCollection [] > data.cpp:1279: error: 'stringCollectionCount' was declared 'extern' and later 'static' > data.h:56: error: previous declaration of 'stringCollectionCount' Merge-request: 910 Reviewed-By: Thiago Macieira --- tests/benchmarks/corelib/tools/qstring/data.cpp | 18 +++++++----------- tests/benchmarks/corelib/tools/qstring/data.h | 7 ++++++- tests/benchmarks/corelib/tools/qstring/generatelist.pl | 5 ++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/benchmarks/corelib/tools/qstring/data.cpp b/tests/benchmarks/corelib/tools/qstring/data.cpp index 6d1a069..a674336 100644 --- a/tests/benchmarks/corelib/tools/qstring/data.cpp +++ b/tests/benchmarks/corelib/tools/qstring/data.cpp @@ -1,5 +1,7 @@ +#include "data.h" + // This is a generated file - DO NOT EDIT -static const ushort stringCollectionData[] __attribute__((aligned(16))) = { +const ushort stringCollectionData[] __attribute__((aligned(16))) = { // #0 65535, 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47, @@ -1123,15 +1125,9 @@ static const ushort stringCollectionData[] __attribute__((aligned(16))) = { 65535, 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61, 65535,65534,65533, // 5216 - - }; -static struct StringCollection -{ - int len; - int offset1, offset2; - ushort align1, align2; -} stringCollection[] = { + +const struct StringCollection stringCollection[] = { {18, 1, 29, 3666, 106}, // #0 {18, 53, 77, 106, 1978}, // #1 {20, 97, 125, 2850, 3210}, // #2 @@ -1274,8 +1270,8 @@ static struct StringCollection {12, 5153, 5169, 130, 2930}, // #139 {12, 5185, 5201, 242, 2930}, // #140 }; -static const int stringCollectionCount = 141; -static const int stringCollectionMaxLen = 51; +const int stringCollectionCount = 141; +const int stringCollectionMaxLen = 51; // average comparison length: 12.0922 // cache-line crosses: 6 (2.1%) // alignment histogram: diff --git a/tests/benchmarks/corelib/tools/qstring/data.h b/tests/benchmarks/corelib/tools/qstring/data.h index c7a7467..ce733fb 100644 --- a/tests/benchmarks/corelib/tools/qstring/data.h +++ b/tests/benchmarks/corelib/tools/qstring/data.h @@ -39,6 +39,9 @@ ** ****************************************************************************/ +#ifndef DATA_H +#define DATA_H + #include struct StringCollection @@ -49,5 +52,7 @@ struct StringCollection }; extern const ushort stringCollectionData[]; -extern StringCollection stringCollection[]; +extern const StringCollection stringCollection[]; extern const int stringCollectionCount; + +#endif // DATA_H diff --git a/tests/benchmarks/corelib/tools/qstring/generatelist.pl b/tests/benchmarks/corelib/tools/qstring/generatelist.pl index d027adb..8c8eb20 100644 --- a/tests/benchmarks/corelib/tools/qstring/generatelist.pl +++ b/tests/benchmarks/corelib/tools/qstring/generatelist.pl @@ -160,11 +160,10 @@ while (1) { $totalsize += $len; $maxlen = $len if $len > $maxlen; } -print "\n};\n"; +print "};\n"; close IN; -print "struct StringCollection stringCollection[] = {\n"; - +print "const struct StringCollection stringCollection[] = {\n"; for $i (0..$count-1) { print " {", $data[$i]->{len}, ", ", -- cgit v0.12 From e00af84cc9230df411981d2f3b9296b61d5d1c50 Mon Sep 17 00:00:00 2001 From: Anders Bakken Date: Mon, 8 Nov 2010 14:12:25 -0800 Subject: DFB: Make sure QPixmap::hasAlpha is respected An IDirectFBSurface can have an alpha channel for an opaque QPixmap. This change will make sure we don't blend unless QPixmap::hasAlpha returns true. Merge-request: 913 Reviewed-by: Donald Carr --- .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 34 +++++++++++++++++----- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp index d5697e0..c16a242 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp @@ -113,7 +113,11 @@ public: static inline int cacheCost(const QImage &img) { return img.width() * img.height() * img.depth() / 8; } #endif - void prepareForBlit(IDirectFBSurface *surface); + enum BlitFlag { + HasAlpha = 0x1, + Premultiplied = 0x2 + }; + void prepareForBlit(uint blitFlags); IDirectFBSurface *surface; @@ -617,7 +621,12 @@ void QDirectFBPaintEngine::drawImage(const QRectF &r, const QImage &image, #if !defined QT_NO_DIRECTFB_PREALLOCATED || defined QT_DIRECTFB_IMAGECACHE bool release; IDirectFBSurface *imgSurface = d->getSurface(image, &release); - d->prepareForBlit(imgSurface); + uint blitFlags = 0; + if (image.hasAlphaChannel()) + blitFlags |= QDirectFBPaintEnginePrivate::HasAlpha; + if (QDirectFBScreen::isPremultiplied(image.format())) + blitFlags |= QDirectFBPaintEnginePrivate::Premultiplied; + d->prepareForBlit(blitFlags); CLIPPED_PAINT(d->blit(r, imgSurface, sr)); if (release) { #if (Q_DIRECTFB_VERSION >= 0x010000) @@ -657,7 +666,13 @@ void QDirectFBPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pixmap, } else { QDirectFBPaintEnginePrivate::unlock(dfbData); IDirectFBSurface *s = dfbData->directFBSurface(); - d->prepareForBlit(s); + uint blitFlags = 0; + if (pixmap.hasAlphaChannel()) + blitFlags |= QDirectFBPaintEnginePrivate::HasAlpha; + if (QDirectFBScreen::isPremultiplied(dfbData->pixelFormat())) + blitFlags |= QDirectFBPaintEnginePrivate::Premultiplied; + + d->prepareForBlit(blitFlags); CLIPPED_PAINT(d->blit(r, s, sr)); } } @@ -1032,12 +1047,12 @@ void QDirectFBPaintEnginePrivate::setRenderHints(QPainter::RenderHints hints) } } -void QDirectFBPaintEnginePrivate::prepareForBlit(IDirectFBSurface *s) +void QDirectFBPaintEnginePrivate::prepareForBlit(uint flags) { DFBSurfaceBlittingFlags blittingFlags = DSBLIT_NOFX; - if (QDirectFBScreen::isPremultiplied(QDirectFBScreen::getImageFormat(s))) + if (flags & Premultiplied) blittingFlags |= DSBLIT_SRC_PREMULTIPLY; - if (QDirectFBScreen::hasAlphaChannel(s)) + if (flags & HasAlpha) blittingFlags |= DSBLIT_BLEND_ALPHACHANNEL; if (opacity != 255) { blittingFlags |= DSBLIT_BLEND_COLORALPHA; @@ -1164,7 +1179,12 @@ void QDirectFBPaintEnginePrivate::drawTiledPixmap(const QRectF &dest, const QPix Q_ASSERT(data->classId() == QPixmapData::DirectFBClass); QDirectFBPixmapData *dfbData = static_cast(data); IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); - prepareForBlit(sourceSurface); + uint blitFlags = 0; + if (dfbData->hasAlphaChannel()) + blitFlags |= HasAlpha; + if (QDirectFBScreen::isPremultiplied(dfbData->pixelFormat())) + blitFlags |= Premultiplied; + prepareForBlit(blitFlags); QDirectFBPaintEnginePrivate::unlock(dfbData); const QSize pixmapSize = dfbData->size(); if (transform.isScaling()) { -- cgit v0.12 From 82c6a18bf017bb705ac5950d3ade86a492d64a0e Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Tue, 9 Nov 2010 09:00:13 +1000 Subject: Fix QtQuick import. --- tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml b/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml index 5eccdda..7f9ddbf 100644 --- a/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml +++ b/tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 1024 -- cgit v0.12 From 6330e20da815890a5282dbe7ce9c2363e4b4c3b4 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Tue, 9 Nov 2010 09:16:29 +1000 Subject: Fix QML ecmascript autotest. --- .../qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml b/tests/auto/declarative/qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml index 0a933e8..090c948 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml @@ -1,13 +1,14 @@ import Qt.test 1.0 MyQmlObject { + id: obj property alias c1: myConstants.c1 property alias c2: myConstants.c2 property int c3: 0 objectProperty: ConstantsOverrideBindings { id: myConstants - c2: c3 + c2: obj.c3 } } -- cgit v0.12 From a55c13c52822f337cc4ad708881fd54d3a1bbb1d Mon Sep 17 00:00:00 2001 From: juhvu Date: Tue, 9 Nov 2010 10:45:18 +1000 Subject: Removed implicity QtGui linking from icd.pro as it is not needed. Task-number: QTBUG-15059 --- src/plugins/bearer/icd/icd.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/bearer/icd/icd.pro b/src/plugins/bearer/icd/icd.pro index 464cc1c..6700cda 100644 --- a/src/plugins/bearer/icd/icd.pro +++ b/src/plugins/bearer/icd/icd.pro @@ -1,7 +1,7 @@ TARGET = qicdbearer include(../../qpluginbase.pri) -QT += network dbus +QT = core network dbus QMAKE_CXXFLAGS *= $$QT_CFLAGS_DBUS $$QT_CFLAGS_CONNSETTINGS LIBS += $$QT_LIBS_CONNSETTINGS -- cgit v0.12 From bb8f085611f4cb91b7bde7220d407948edcc572c Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Tue, 9 Nov 2010 11:19:01 +1000 Subject: get rid of dependency on QtGui Task-number: QTBUG-15059 Reviewed-by: trustme --- src/plugins/bearer/corewlan/corewlan.pro | 2 +- src/plugins/bearer/corewlan/qcorewlanengine.mm | 85 +++++++++++++++----------- 2 files changed, 51 insertions(+), 36 deletions(-) diff --git a/src/plugins/bearer/corewlan/corewlan.pro b/src/plugins/bearer/corewlan/corewlan.pro index 922a501..9cb3955 100644 --- a/src/plugins/bearer/corewlan/corewlan.pro +++ b/src/plugins/bearer/corewlan/corewlan.pro @@ -1,7 +1,7 @@ TARGET = qcorewlanbearer include(../../qpluginbase.pri) -QT = core gui network +QT = core network LIBS += -framework Foundation -framework SystemConfiguration contains(QT_CONFIG, corewlan) { diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 844e38b..9946b17 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -64,12 +64,17 @@ #include #include -#include #include "private/qcore_mac_p.h" #include #include +inline QString qt_NSStringToQString(const NSString *nsstr) +{ return QCFString::toQString(reinterpret_cast(nsstr)); } + +inline NSString *qt_QStringToNSString(const QString &qstr) +{ return [reinterpret_cast(QCFString::toCFStringRef(qstr)) autorelease]; } + @interface QT_MANGLE_NAMESPACE(QNSListener) : NSObject { @@ -93,11 +98,12 @@ - (id) init { [locker lock]; - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; notificationCenter = [NSNotificationCenter defaultCenter]; currentInterface = [CWInterface interfaceWithName:nil]; [notificationCenter addObserver:self selector:@selector(notificationHandler:) name:kCWPowerDidChangeNotification object:nil]; [locker unlock]; + [autoreleasepool release]; return self; } @@ -161,10 +167,10 @@ void QScanThread::quit() void QScanThread::run() { - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; QStringList found; mutex.lock(); - CWInterface *currentInterface = [CWInterface interfaceWithName:qt_mac_QStringToNSString(interfaceName)]; + CWInterface *currentInterface = [CWInterface interfaceWithName:qt_QStringToNSString(interfaceName)]; mutex.unlock(); if([currentInterface power]) { @@ -182,14 +188,14 @@ void QScanThread::run() for(uint row=0; row < [apArray count]; row++ ) { apNetwork = [apArray objectAtIndex:row]; - const QString networkSsid = qt_mac_NSStringToQString([apNetwork ssid]); + const QString networkSsid = qt_NSStringToQString([apNetwork ssid]); const QString id = QString::number(qHash(QLatin1String("corewlan:") + networkSsid)); found.append(id); QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Undefined; bool known = isKnownSsid(networkSsid); if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { - if( networkSsid == qt_mac_NSStringToQString( [currentInterface ssid])) { + if( networkSsid == qt_NSStringToQString( [currentInterface ssid])) { state = QNetworkConfiguration::Active; } } @@ -232,7 +238,7 @@ void QScanThread::run() } if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { - if( networkSsid == qt_mac_NSStringToQString([currentInterface ssid])) { + if( networkSsid == qt_NSStringToQString([currentInterface ssid])) { state = QNetworkConfiguration::Active; } } @@ -251,6 +257,7 @@ void QScanThread::run() } } emit networksChanged(); + [autoreleasepool release]; } QStringList QScanThread::foundNetwork(const QString &id, const QString &name, const QNetworkConfiguration::StateFlags state, const QString &interfaceName, const QNetworkConfiguration::Purpose purpose) @@ -290,7 +297,7 @@ void QScanThread::getUserConfigurations() { QMutexLocker locker(&mutex); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; userProfiles.clear(); NSArray *wifiInterfaces = [CWInterface supportedInterfaces]; @@ -310,10 +317,10 @@ void QScanThread::getUserConfigurations() NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"]; for(NSString *ssidkey in thisSsidarray) { - QString thisSsid = qt_mac_NSStringToQString(ssidkey); + QString thisSsid = qt_NSStringToQString(ssidkey); if(!userProfiles.contains(thisSsid)) { QMap map; - map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName)); + map.insert(thisSsid, qt_NSStringToQString(nsInterfaceName)); userProfiles.insert(thisSsid, map); } } @@ -322,7 +329,7 @@ void QScanThread::getUserConfigurations() // 802.1X user profiles QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist"; - NSDictionary* eapDict = [[[NSDictionary alloc] initWithContentsOfFile:qt_mac_QStringToNSString(userProfilePath)] autorelease]; + NSDictionary* eapDict = [[[NSDictionary alloc] initWithContentsOfFile:qt_QStringToNSString(userProfilePath)] autorelease]; if(eapDict != nil) { NSString *profileStr= @"Profiles"; NSString *nameStr = @"UserDefinedName"; @@ -341,15 +348,15 @@ void QScanThread::getUserConfigurations() QString ssid; for(int i = 0; i < dictSize; i++) { if([nameStr isEqualToString:keys[i]]) { - networkName = qt_mac_NSStringToQString(objects[i]); + networkName = qt_NSStringToQString(objects[i]); } if([networkSsidStr isEqualToString:keys[i]]) { - ssid = qt_mac_NSStringToQString(objects[i]); + ssid = qt_NSStringToQString(objects[i]); } if(!userProfiles.contains(networkName) && !ssid.isEmpty()) { QMap map; - map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName)); + map.insert(ssid, qt_NSStringToQString(nsInterfaceName)); userProfiles.insert(networkName, map); } } @@ -358,6 +365,7 @@ void QScanThread::getUserConfigurations() } } } + [autoreleasepool release]; } QString QScanThread::getSsidFromNetworkName(const QString &name) @@ -434,7 +442,7 @@ QCoreWlanEngine::~QCoreWlanEngine() void QCoreWlanEngine::initialize() { QMutexLocker locker(&mutex); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; if([[CWInterface supportedInterfaces] count] > 0 && !listener) { listener = [[QT_MANGLE_NAMESPACE(QNSListener) alloc] init]; @@ -446,6 +454,7 @@ void QCoreWlanEngine::initialize() storeSession = NULL; startNetworkChangeLoop(); + [autoreleasepool release]; } @@ -466,11 +475,11 @@ bool QCoreWlanEngine::hasIdentifier(const QString &id) void QCoreWlanEngine::connectToId(const QString &id) { QMutexLocker locker(&mutex); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; QString interfaceString = getInterfaceFromId(id); CWInterface *wifiInterface = - [CWInterface interfaceWithName: qt_mac_QStringToNSString(interfaceString)]; + [CWInterface interfaceWithName: qt_QStringToNSString(interfaceString)]; if ([wifiInterface power]) { NSError *err = nil; @@ -488,9 +497,9 @@ void QCoreWlanEngine::connectToId(const QString &id) NSArray *array = [CW8021XProfile allUser8021XProfiles]; for (NSUInteger i = 0; i < [array count]; ++i) { - const QString networkNameHashCheck = QString::number(qHash(QLatin1String("corewlan:") + qt_mac_NSStringToQString([[array objectAtIndex:i] userDefinedName]))); + const QString networkNameHashCheck = QString::number(qHash(QLatin1String("corewlan:") + qt_NSStringToQString([[array objectAtIndex:i] userDefinedName]))); - const QString ssidHash = QString::number(qHash(QLatin1String("corewlan:") + qt_mac_NSStringToQString([[array objectAtIndex:i] ssid]))); + const QString ssidHash = QString::number(qHash(QLatin1String("corewlan:") + qt_NSStringToQString([[array objectAtIndex:i] ssid]))); if (id == networkNameHashCheck || id == ssidHash) { const QString thisName = scanThread->getSsidFromNetworkName(id); @@ -523,7 +532,7 @@ void QCoreWlanEngine::connectToId(const QString &id) [NSNumber numberWithBool:YES], kCWScanKeyMerge, [NSNumber numberWithInt:kCWScanTypeFast], kCWScanKeyScanType, [NSNumber numberWithInteger:100], kCWScanKeyRestTime, - qt_mac_QStringToNSString(wantedSsid), kCWScanKeySSID, + qt_QStringToNSString(wantedSsid), kCWScanKeySSID, nil]; NSArray *scanArray = [wifiInterface scanForNetworksWithParameters:scanParameters error:&err]; @@ -532,7 +541,7 @@ void QCoreWlanEngine::connectToId(const QString &id) for(uint row=0; row < [scanArray count]; row++ ) { CWNetwork *apNetwork = [scanArray objectAtIndex:row]; - if(wantedSsid == qt_mac_NSStringToQString([apNetwork ssid])) { + if(wantedSsid == qt_NSStringToQString([apNetwork ssid])) { if(!using8021X) { SecKeychainAttribute attributes[3]; @@ -599,18 +608,19 @@ void QCoreWlanEngine::connectToId(const QString &id) return; } } else { - qDebug() <<"associate ERROR"<< qt_mac_NSStringToQString([err localizedDescription ]); + qDebug() <<"associate ERROR"<< qt_NSStringToQString([err localizedDescription ]); } } } //end scan network } else { - qDebug() <<"scan ERROR"<< qt_mac_NSStringToQString([err localizedDescription ]); + qDebug() <<"scan ERROR"<< qt_NSStringToQString([err localizedDescription ]); } emit connectionError(id, InterfaceLookupError); } locker.unlock(); emit connectionError(id, InterfaceLookupError); + [autoreleasepool release]; } void QCoreWlanEngine::disconnectFromId(const QString &id) @@ -618,10 +628,10 @@ void QCoreWlanEngine::disconnectFromId(const QString &id) QMutexLocker locker(&mutex); QString interfaceString = getInterfaceFromId(id); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; CWInterface *wifiInterface = - [CWInterface interfaceWithName: qt_mac_QStringToNSString(interfaceString)]; + [CWInterface interfaceWithName: qt_QStringToNSString(interfaceString)]; [wifiInterface disassociate]; if ([[wifiInterface interfaceState]intValue] != kCWInterfaceStateInactive) { @@ -629,6 +639,7 @@ void QCoreWlanEngine::disconnectFromId(const QString &id) emit connectionError(id, DisconnectionError); locker.relock(); } + [autoreleasepool release]; } void QCoreWlanEngine::requestUpdate() @@ -641,27 +652,30 @@ void QCoreWlanEngine::doRequestUpdate() { QMutexLocker locker(&mutex); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; NSArray *wifiInterfaces = [CWInterface supportedInterfaces]; for (uint row = 0; row < [wifiInterfaces count]; ++row) { - scanThread->interfaceName = qt_mac_NSStringToQString([wifiInterfaces objectAtIndex:row]); + scanThread->interfaceName = qt_NSStringToQString([wifiInterfaces objectAtIndex:row]); scanThread->start(); } locker.unlock(); + [autoreleasepool release]; } bool QCoreWlanEngine::isWifiReady(const QString &wifiDeviceName) { QMutexLocker locker(&mutex); - + bool haswifi = false; if(hasWifi) { - QMacCocoaAutoReleasePool pool; - CWInterface *defaultInterface = [CWInterface interfaceWithName: qt_mac_QStringToNSString(wifiDeviceName)]; - if([defaultInterface power]) - return true; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; + CWInterface *defaultInterface = [CWInterface interfaceWithName: qt_QStringToNSString(wifiDeviceName)]; + if([defaultInterface power]) { + haswifi = true; + } + [autoreleasepool release]; } - return false; + return haswifi; } @@ -853,7 +867,7 @@ quint64 QCoreWlanEngine::bytesReceived(const QString &id) quint64 QCoreWlanEngine::startTime(const QString &id) { QMutexLocker locker(&mutex); - QMacCocoaAutoReleasePool pool; + NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; quint64 timestamp = 0; NSString *filePath = @"/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist"; @@ -884,7 +898,7 @@ quint64 QCoreWlanEngine::startTime(const QString &id) bool ok = false; for(int i = 0; i < dictSize; i++) { if([ssidStr isEqualToString:keys[i]]) { - const QString ident = QString::number(qHash(QLatin1String("corewlan:") + qt_mac_NSStringToQString(objects[i]))); + const QString ident = QString::number(qHash(QLatin1String("corewlan:") + qt_NSStringToQString(objects[i]))); if(ident == id) { ok = true; } @@ -900,6 +914,7 @@ quint64 QCoreWlanEngine::startTime(const QString &id) } } } + [autoreleasepool release]; return timestamp; } -- cgit v0.12 From 9b24932eba2b204852c4f2b35e05bd7d9d47ccea Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 9 Nov 2010 12:40:48 +1000 Subject: Fix Rectangle painting at small sizes. We require a minimum size of 5x5 for the border image caching to work. Task-number: QTBUG-15135 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativerectangle.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp index 1ffd3bd..fc3954f 100644 --- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp +++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp @@ -477,7 +477,8 @@ void QDeclarativeRectangle::drawRect(QPainter &p) { Q_D(QDeclarativeRectangle); if ((d->gradient && d->gradient->gradient()) - || d->radius > width()/2 || d->radius > height()/2) { + || d->radius > width()/2 || d->radius > height()/2 + || width() < 3 || height() < 3) { // XXX This path is still slower than the image path // Image path won't work for gradients or invalid radius though bool oldAA = p.testRenderHint(QPainter::Antialiasing); -- cgit v0.12 From 736a73ac2d05bcc811ee8eaeb6aa7a026d6b018a Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 9 Nov 2010 14:33:16 +1000 Subject: Fix Text::elide docs. Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativetext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 615c619..82c444e 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -1063,7 +1063,7 @@ void QDeclarativeText::setTextFormat(TextFormat format) Set this property to elide parts of the text fit to the Text item's width. The text will only elide if an explicit width has been set. - This property cannot be used with wrapping enabled or with rich text. + This property cannot be used with multi-line text or with rich text. Eliding can be: \list -- cgit v0.12 From 58f8196fceaf375d8a5736e0505330be24bcebfa Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Tue, 9 Nov 2010 17:48:29 +1000 Subject: doc --- examples/declarative/cppextensions/plugins/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/declarative/cppextensions/plugins/README b/examples/declarative/cppextensions/plugins/README index fe519f8..95e0eea 100644 --- a/examples/declarative/cppextensions/plugins/README +++ b/examples/declarative/cppextensions/plugins/README @@ -5,5 +5,5 @@ by a C++ plugin (providing the "Time" type), and by QML files (providing the To run: make install - qml -I . plugins.qml + qmlviewer -I . plugins.qml -- cgit v0.12 From 8aee86b8ce4700f48b8a30752cb2293860957bb7 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 9 Nov 2010 09:20:36 +0100 Subject: Fix GC-related crash in QScriptValue::setData() Yet another missing API shim. When converting the QScriptValue to JSC, a JSCell may be allocated, which can cause the GC to trigger. If an identifier (JSC::Identifier) is then garbage collected, the destructor will try to remove itself from the currentIdentifierTable(). Because the API shim was missing, the identifier table was 0. It's difficult to create a bulletproof test for this case, but the attached test is a best effort (it crashes on my machine without the fix). Task-number: QTBUG-15144 Reviewed-by: Jedrzej Nowacki --- src/script/api/qscriptvalue.cpp | 1 + tests/auto/qscriptvalue/tst_qscriptvalue.cpp | 13 +++++++++++++ tests/auto/qscriptvalue/tst_qscriptvalue.h | 1 + 3 files changed, 15 insertions(+) diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp index f494106..e40458b 100644 --- a/src/script/api/qscriptvalue.cpp +++ b/src/script/api/qscriptvalue.cpp @@ -2036,6 +2036,7 @@ void QScriptValue::setData(const QScriptValue &data) Q_D(QScriptValue); if (!d || !d->isObject()) return; + QScript::APIShim shim(d->engine); JSC::JSValue other = d->engine->scriptValueToJSCValue(data); if (d->jscValue.inherits(&QScriptObject::info)) { QScriptObject *scriptObject = static_cast(JSC::asObject(d->jscValue)); diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp index 639df36..53e2699 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp @@ -2253,6 +2253,19 @@ void tst_QScriptValue::getSetData() QVERIFY(!object.data().isValid()); } +void tst_QScriptValue::setData_QTBUG15144() +{ + QScriptEngine eng; + QScriptValue obj = eng.newObject(); + for (int i = 0; i < 10000; ++i) { + // Create an object with property 'fooN' on it, and immediately kill + // the reference to the object so it and the property name become garbage. + eng.evaluate(QString::fromLatin1("o = {}; o.foo%0 = 10; o = null;").arg(i)); + // Setting the data will cause a JS string to be allocated, which could + // trigger a GC. This should not cause a crash. + obj.setData("foodfight"); + } +} class TestScriptClass : public QScriptClass { public: diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.h b/tests/auto/qscriptvalue/tst_qscriptvalue.h index 462749a..aa6bc6c 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.h +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.h @@ -216,6 +216,7 @@ private slots: void getSetProperty(); void arrayElementGetterSetter(); void getSetData(); + void setData_QTBUG15144(); void getSetScriptClass(); void call(); void construct(); -- cgit v0.12 From 55911952c7b195e36614372d084c473202ab1c44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 9 Nov 2010 10:53:43 +0100 Subject: Fixed tst_qwidget::testContentsPropagation auto-test failure. Some auto-tests render into a QPixmap and check the result against QPixmap::grabWidget(). Change acc1a2bd5520369c made grabWidget() render into a QImage to be able to preserve background transparency. Instead, to avoid breaking various auto-tests, we can use a QPixmap and fill it with transparent if the widget's isOpaque flag is not set. Task-number: QTBUG-14945 Reviewed-by: Kim --- src/gui/image/qpixmap.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index 290c0f0..c5d9a7e 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -1101,11 +1101,13 @@ QPixmap QPixmap::grabWidget(QWidget * widget, const QRect &rect) if (!r.intersects(widget->rect())) return QPixmap(); - QImage res(r.size(), QImage::Format_ARGB32_Premultiplied); - res.fill(0); + QPixmap res(r.size()); + if (!qt_widget_private(widget)->isOpaque) + res.fill(Qt::transparent); + widget->d_func()->render(&res, QPoint(), r, QWidget::DrawWindowBackground | QWidget::DrawChildren | QWidget::IgnoreMask, true); - return QPixmap::fromImage(res); + return res; } /*! -- cgit v0.12 From d50fb14395e8ea35d09bdfc8bb420f051b6c140a Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Tue, 9 Nov 2010 12:50:09 +0200 Subject: QS60Style: Color calculation should be optimized Currently, QS60Style calculates some palette colors (tooltip base and button). Since native side does not have a color for these, but a nine-part theme graphic, the style tries to estimate the color of the bitmap by taking a small sample of the QPixmap and calculate the RGB colors of 32*32 pixels. This is rather slow, it takes around 110 msecs for each QApplication, when the application is started. Note that color is cached to member variable of style, but it is very rarely asked again (as the color is polished to all widgets/apps) and the cache is not shared across processes. As a fix, style now calculates the button color (tooltip color is no longer calculated, as no other QStyle does that, and tooltips do not anyway work in the Qt/Symbian) and stores the calculated value to Global QSettings together with active theme ID. Now, when a second Qt application is launched, the stored theme ID value is matched with currently active theme. If it matches, then the stored Button color is used. Otherwise, color is again calculated and stored. If theme is unchanged, the application launch is ~95msecs faster. Task-number: QTBUG-14860 Reviewed-by: Jani Hautakangas --- src/gui/styles/qs60style.cpp | 107 ++++++++++++++++++--------------------- src/gui/styles/qs60style_p.h | 7 ++- src/gui/styles/qs60style_s60.cpp | 75 +++++++++++++++++++++++++++ 3 files changed, 130 insertions(+), 59 deletions(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index f3fb2f5..5e5adab 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -405,13 +405,14 @@ void QS60StylePrivate::clearCaches(CacheClearReason reason) QPixmapCache::clear(); break; case CC_ThemeChange: - m_colorCache.clear(); QPixmapCache::clear(); +#ifdef Q_WS_S60 + deleteStoredSettings(); +#endif deleteBackground(); break; case CC_UndefinedChange: default: - m_colorCache.clear(); m_mappedFontsCache.clear(); QPixmapCache::clear(); deleteBackground(); @@ -419,64 +420,53 @@ void QS60StylePrivate::clearCaches(CacheClearReason reason) } } -// Since S60Style has 'button' and 'tooltip' as a graphic, we don't have any native color which to use -// for QPalette::Button and QPalette::ToolTipBase. Therefore S60Style needs to guesstimate -// palette colors by calculating average rgb values for button pixels. -// Returns Qt::black if there is an issue with the graphics (image is NULL, or no bits() found). -QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const +QColor QS60StylePrivate::calculatedColor(SkinFrameElements frame) const { - const bool cachedColorExists = m_colorCache.contains(frame); - if (!cachedColorExists) { - const int frameCornerWidth = pixelMetric(PM_FrameCornerWidth); - const int frameCornerHeight = pixelMetric(PM_FrameCornerHeight); - Q_ASSERT(2 * frameCornerWidth < 32); - Q_ASSERT(2 * frameCornerHeight < 32); - - const QImage frameImage = QS60StylePrivate::frame(frame, QSize(32, 32)).toImage(); - Q_ASSERT(frameImage.bytesPerLine() > 0); - if (frameImage.isNull()) - return Qt::black; - - const QRgb *pixelRgb = (const QRgb*)frameImage.bits(); - const int pixels = frameImage.byteCount()/sizeof(QRgb); - - int estimatedRed = 0; - int estimatedGreen = 0; - int estimatedBlue = 0; - - int skips = 0; - int estimations = 0; - - const int topBorderLastPixel = frameCornerHeight*frameImage.width() - 1; - const int bottomBorderFirstPixel = frameImage.width() * frameImage.height() - frameCornerHeight*frameImage.width() - 1; - const int rightBorderFirstPixel = frameImage.width() - frameCornerWidth; - const int leftBorderLastPixel = frameCornerWidth; - - while ((skips + estimations) < pixels) { - if ((skips + estimations) > topBorderLastPixel && - (skips + estimations) < bottomBorderFirstPixel) { - for (int rowIndex = 0; rowIndex < frameImage.width(); rowIndex++) { - if (rowIndex > leftBorderLastPixel && - rowIndex < rightBorderFirstPixel) { - estimatedRed += qRed(*pixelRgb); - estimatedGreen += qGreen(*pixelRgb); - estimatedBlue += qBlue(*pixelRgb); - } - pixelRgb++; - estimations++; + const int frameCornerWidth = pixelMetric(PM_FrameCornerWidth); + const int frameCornerHeight = pixelMetric(PM_FrameCornerHeight); + Q_ASSERT(2 * frameCornerWidth < 32); + Q_ASSERT(2 * frameCornerHeight < 32); + + const QImage frameImage = QS60StylePrivate::frame(frame, QSize(32, 32)).toImage(); + Q_ASSERT(frameImage.bytesPerLine() > 0); + if (frameImage.isNull()) + return Qt::black; + + const QRgb *pixelRgb = (const QRgb*)frameImage.constBits(); + const int pixels = frameImage.byteCount() / sizeof(QRgb); + + int estimatedRed = 0; + int estimatedGreen = 0; + int estimatedBlue = 0; + + int skips = 0; + int estimations = 0; + + const int topBorderLastPixel = frameCornerHeight * frameImage.width() - 1; + const int bottomBorderFirstPixel = frameImage.width() * frameImage.height() - topBorderLastPixel; + const int rightBorderFirstPixel = frameImage.width() - frameCornerWidth; + const int leftBorderLastPixel = frameCornerWidth; + + while ((skips + estimations) < pixels) { + if ((skips + estimations) > topBorderLastPixel && + (skips + estimations) < bottomBorderFirstPixel) { + for (int rowIndex = 0; rowIndex < frameImage.width(); rowIndex++) { + if (rowIndex > leftBorderLastPixel && + rowIndex < rightBorderFirstPixel) { + estimatedRed += qRed(*pixelRgb); + estimatedGreen += qGreen(*pixelRgb); + estimatedBlue += qBlue(*pixelRgb); } - } else { pixelRgb++; - skips++; + estimations++; } + } else { + pixelRgb++; + skips++; } - QColor frameColor(estimatedRed/estimations, estimatedGreen/estimations, estimatedBlue/estimations); - m_colorCache.insert(frame, frameColor); - return !estimations ? Qt::black : frameColor; - } else { - return m_colorCache.value(frame); } - + QColor frameColor(estimatedRed/estimations, estimatedGreen/estimations, estimatedBlue/estimations); + return !estimations ? Qt::black : frameColor; } void QS60StylePrivate::setThemePalette(QApplication *app) const @@ -731,11 +721,14 @@ void QS60StylePrivate::setThemePalette(QPalette *palette) const palette->setBrush(QPalette::Window, backgroundTexture()); // set as transparent so that styled full screen theme background is visible palette->setBrush(QPalette::Base, Qt::transparent); - // set button and tooltipbase based on pixel colors + // set button color based on pixel colors +#ifndef Q_WS_S60 + //For emulated style, just calculate the color everytime + const QColor buttonColor = calculatedColor(SF_ButtonNormal); +#else const QColor buttonColor = colorFromFrameGraphics(SF_ButtonNormal); +#endif palette->setColor(QPalette::Button, buttonColor); - const QColor toolTipColor = colorFromFrameGraphics(SF_ToolTip); - palette->setColor(QPalette::ToolTipBase, toolTipColor); palette->setColor(QPalette::Light, palette->color(QPalette::Button).lighter()); palette->setColor(QPalette::Dark, palette->color(QPalette::Button).darker()); palette->setColor(QPalette::Midlight, palette->color(QPalette::Button).lighter(125)); diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index b46f75e..7a7991a 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -523,8 +523,12 @@ public: static bool isSingleClickUi(); static bool isWidgetPressed(const QWidget *widget); - // calculates average color based on button skin graphics (minus borders). +#ifdef Q_WS_S60 + static void deleteStoredSettings(); + // calculates average color based on theme graphics (minus borders). QColor colorFromFrameGraphics(SkinFrameElements frame) const; +#endif + QColor calculatedColor(SkinFrameElements frame) const; //set theme palette for application void setThemePalette(QApplication *application) const; @@ -542,7 +546,6 @@ public: static const int m_numberOfLayouts; mutable QHash, QFont> m_mappedFontsCache; - mutable QHash m_colorCache; // Has one entry per SkinFrameElements static const struct frameElementCenter { diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index a1ea308..204699d 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -48,6 +48,7 @@ #include "private/qpixmap_s60_p.h" #include "private/qcore_symbian_p.h" #include "qapplication.h" +#include "qsettings.h" #include "qpluginloader.h" #include "qlibraryinfo.h" @@ -69,6 +70,8 @@ #include #include +#include + #if !defined(QT_NO_STYLE_S60) || defined(QT_PLUGIN) QT_BEGIN_NAMESPACE @@ -81,6 +84,8 @@ enum TDrawType { ENoDraw }; +const TUid personalisationUID = { 0x101F876F }; + enum TSupportRelease { ES60_None = 0x0000, //indicates that the commonstyle should draw the graphics ES60_3_1 = 0x0001, @@ -689,6 +694,76 @@ bool QS60StylePrivate::isSingleClickUi() return (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0); } +void QS60StylePrivate::deleteStoredSettings() +{ + QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); + settings.beginGroup(QLatin1String("QS60Style")); + settings.remove(""); + settings.endGroup(); +} + +// Since S60Style has 'button' as a graphic, we don't have any native color which to use +// for QPalette::Button. Therefore S60Style needs to guesstimate palette color by calculating +// average rgb values for button pixels. +// Returns Qt::black if there is an issue with the graphics (image is NULL, or no constBits() found). +QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const +{ +#ifndef QT_NO_SETTINGS + TInt themeID = 0; + //First we need to fetch active theme ID. We need to store the themeID at the same time + //as color, so that we can later check if the stored color is still from the same theme. + //Native side stores active theme UID/Timestamp into central repository. + int error = 0; + QT_TRAP_THROWING( + CRepository *themeRepository = CRepository::NewLC(personalisationUID); + if (themeRepository) { + static const TInt KThemePkgIDDesSize = 23; //size of the stored theme package ID + TBuf<32> value; //themeID is currently max of 8 + 1 + 8 characters, but lets have some extra space + const TUint32 key = 0x00000002; //active theme key in the repository + error = themeRepository->Get(key, value); + if (error == KErrNone) { + TLex lex(value); + TPtrC numberToken(lex.NextToken()); + if(numberToken.Length()) + error = TLex(numberToken).Val(themeID); + else + error = KErrArgument; + } + } + CleanupStack::PopAndDestroy(themeRepository); + ); + + QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); + settings.beginGroup(QLatin1String("QS60Style")); + if (themeID != 0) { + QVariant buttonColor = settings.value(QLatin1String("ButtonColor")); + if (!buttonColor.isNull()) { + //there is a stored color value, lets see if the theme ID matches + if (error == KErrNone) { + QVariant themeUID = settings.value(QLatin1String("ThemeUID")); + if (!themeUID.isNull() && themeUID.toInt() == themeID) { + QColor storedColor(buttonColor.value()); + if (storedColor.isValid()) + return storedColor; + } + } + settings.remove(""); //if color was invalid, or theme has been changed, just delete all stored settings + } + } +#endif + + QColor color = calculatedColor(frame); + +#ifndef QT_NO_SETTINGS + settings.setValue(QLatin1String("ThemeUID"), QVariant(themeID)); + if (frame == SF_ButtonNormal) //other colors are not currently calculated from graphics + settings.setValue(QLatin1String("ButtonColor"), QVariant(color)); + settings.endGroup(); +#endif + + return color; +} + QPoint qt_s60_fill_background_offset(const QWidget *targetWidget) { CCoeControl *control = targetWidget->effectiveWinId(); -- cgit v0.12 From 0870d766b9e302081ba31a9c8f6dfa3a1e8c1e52 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Tue, 9 Nov 2010 12:53:07 +0200 Subject: QS60Style: Color calculation should be optimized Addendum to the previous fix. Remove trailing white space as well. Task-number: QTBUG-14860 Reviewed-by: Jani Hautakangas --- src/gui/styles/qs60style_p.h | 2 +- src/gui/styles/qs60style_s60.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index 7a7991a..db4285d 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -527,7 +527,7 @@ public: static void deleteStoredSettings(); // calculates average color based on theme graphics (minus borders). QColor colorFromFrameGraphics(SkinFrameElements frame) const; -#endif +#endif QColor calculatedColor(SkinFrameElements frame) const; //set theme palette for application diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 204699d..7b75d40 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -709,7 +709,7 @@ void QS60StylePrivate::deleteStoredSettings() QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const { #ifndef QT_NO_SETTINGS - TInt themeID = 0; + TInt themeID = 0; //First we need to fetch active theme ID. We need to store the themeID at the same time //as color, so that we can later check if the stored color is still from the same theme. //Native side stores active theme UID/Timestamp into central repository. @@ -718,13 +718,13 @@ QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const CRepository *themeRepository = CRepository::NewLC(personalisationUID); if (themeRepository) { static const TInt KThemePkgIDDesSize = 23; //size of the stored theme package ID - TBuf<32> value; //themeID is currently max of 8 + 1 + 8 characters, but lets have some extra space + TBuf<32> value; //themeID is currently max of 8 + 1 + 8 characters, but lets have some extra space const TUint32 key = 0x00000002; //active theme key in the repository error = themeRepository->Get(key, value); if (error == KErrNone) { - TLex lex(value); + TLex lex(value); TPtrC numberToken(lex.NextToken()); - if(numberToken.Length()) + if (numberToken.Length()) error = TLex(numberToken).Val(themeID); else error = KErrArgument; -- cgit v0.12 From 0a56b91991a4cce23634173eda4c5bafcd53230b Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Tue, 9 Nov 2010 12:39:14 +0100 Subject: Make operator QRectF const MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows us to convert a QGLRect to a QRectF also in const functions. Function is inline and private, no ABI break. Reviewed-by: Samuel Rødal --- src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h b/src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h index 46029b9..b8c1018 100644 --- a/src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h +++ b/src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h @@ -93,7 +93,7 @@ struct QGLRect GLfloat right; GLfloat bottom; - operator QRectF() {return QRectF(left, top, right-left, bottom-top);} + operator QRectF() const {return QRectF(left, top, right-left, bottom-top);} }; class QGL2PEXVertexArray -- cgit v0.12 From 3df77bed668febf207591b88bebd73e4a17c8f23 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Tue, 9 Nov 2010 12:59:11 +0100 Subject: Doc: Fixing typo --- src/multimedia/audio/qaudiooutput_win32_p.cpp | 2 +- src/opengl/gl2paintengineex/qglengineshadermanager_p.h | 2 +- src/opengl/qgl_egl.cpp | 2 +- src/opengl/qgl_x11egl.cpp | 2 +- src/opengl/qpixmapdata_x11gl_egl.cpp | 4 ++-- src/plugins/bearer/symbian/qnetworksession_impl.cpp | 2 +- src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 4 ++-- src/qt3support/canvas/q3canvas.cpp | 2 +- src/qt3support/text/q3richtext.cpp | 2 +- src/scripttools/debugging/qscriptdebuggeragent.cpp | 6 +++--- src/xmlpatterns/data/qabstractfloat.cpp | 2 +- src/xmlpatterns/data/qatomicvalue.cpp | 2 +- src/xmlpatterns/data/qschematime_p.h | 2 +- src/xmlpatterns/schema/qxsdschemaparser.cpp | 8 ++++---- src/xmlpatterns/schema/qxsdschemaparser_setup.cpp | 2 +- src/xmlpatterns/schema/qxsdstatemachine_p.h | 4 ++-- src/xmlpatterns/type/qtypechecker.cpp | 2 +- tools/linguist/linguist/mainwindow.cpp | 4 ++-- tools/linguist/linguist/printout.cpp | 2 +- tools/qdoc3/tokenizer.h | 2 +- 20 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/multimedia/audio/qaudiooutput_win32_p.cpp b/src/multimedia/audio/qaudiooutput_win32_p.cpp index 1f304e3..1b054e5 100644 --- a/src/multimedia/audio/qaudiooutput_win32_p.cpp +++ b/src/multimedia/audio/qaudiooutput_win32_p.cpp @@ -586,7 +586,7 @@ bool QAudioOutputPrivate::deviceReady() } } if ( out < l) { - // Didnt write all data + // Didn't write all data audioSource->seek(audioSource->pos()-(l-out)); } if(startup) diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h index 92cf108..536b44a 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h @@ -72,7 +72,7 @@ The position shaders for brushes look scary. This is because many of the calculations which logically belong in the fragment shader have been moved into the vertex shader to improve performance. This is why the position - calculation is in a seperate shader. Not only does it calculate the + calculation is in a separate shader. Not only does it calculate the position, but it also calculates some data to be passed to the fragment shader as a varying. It is optimal to move as much of the calculation as possible into the vertex shader as this is executed less often. diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index 27f7ad9..8902099 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -88,7 +88,7 @@ void qt_eglproperties_set_glformat(QEglProperties& eglProperties, const QGLForma // put in the list before 32-bit configs. So, to make sure 16-bit is preffered over 32-bit, // we must set the red/green/blue sizes to zero. This has an unfortunate consequence that // if the application sets the red/green/blue size to 5/6/5 on the QGLFormat, they will - // probably get a 32-bit config, even when there's an RGB565 config avaliable. Oh well. + // probably get a 32-bit config, even when there's an RGB565 config available. Oh well. // Now normalize the values so -1 becomes 0 redSize = redSize > 0 ? redSize : 0; diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index 9d28de0..d33ea56 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -377,7 +377,7 @@ QGLTexture *QGLContextPrivate::bindTextureFromNativePixmap(QPixmap *pixmap, cons checkedForEglImageTFP = true; // We need to be able to create an EGLImage from a native pixmap, which was split - // into a seperate EGL extension, EGL_KHR_image_pixmap. It is possible to have + // into a separate EGL extension, EGL_KHR_image_pixmap. It is possible to have // eglCreateImageKHR & eglDestroyImageKHR without support for pixmaps, so we must // check we have the EGLImage from pixmap functionality. if (QEgl::hasExtension("EGL_KHR_image") || QEgl::hasExtension("EGL_KHR_image_pixmap")) { diff --git a/src/opengl/qpixmapdata_x11gl_egl.cpp b/src/opengl/qpixmapdata_x11gl_egl.cpp index 2c11a0b..5cbc836 100644 --- a/src/opengl/qpixmapdata_x11gl_egl.cpp +++ b/src/opengl/qpixmapdata_x11gl_egl.cpp @@ -93,7 +93,7 @@ public: if (rgbConfig == argbConfig) argbContext = rgbContext; - // Otherwise, create a seperate context to be used for ARGB pixmaps: + // Otherwise, create a separate context to be used for ARGB pixmaps: if (!argbContext) { argbContext = new QEglContext; argbContext->setConfig(argbConfig); @@ -314,7 +314,7 @@ QPaintEngine* QX11GLPixmapData::paintEngine() const Q_ASSERT(ctx->d_func()->eglContext == 0); ctx->d_func()->eglContext = hasAlphaChannel() ? sharedContexts()->argbContext : sharedContexts()->rgbContext; - // While we use a seperate QGLContext for each pixmap, the underlying QEglContext is + // While we use a separate QGLContext for each pixmap, the underlying QEglContext is // the same. So we must use a "fake" QGLContext and fool the texture cache into thinking // each pixmap's QGLContext is sharing with this central one. The only place this is // going to fail is where we the underlying EGL RGB and ARGB contexts aren't sharing. diff --git a/src/plugins/bearer/symbian/qnetworksession_impl.cpp b/src/plugins/bearer/symbian/qnetworksession_impl.cpp index 85723ce..c5a39e1 100644 --- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp +++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp @@ -1078,7 +1078,7 @@ void QNetworkSessionPrivateImpl::RunL() TInt error = KErrNone; QNetworkConfiguration newActiveConfig = activeConfiguration(); if (!newActiveConfig.isValid()) { - // RConnection startup was successfull but no configuration + // RConnection startup was successful but no configuration // was found. That indicates that user has chosen to create a // new WLAN configuration (from scan results), but that new // configuration does not have access to Internet (Internet diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index a633e2f..073d722 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -83,7 +83,7 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { // Long story short: without this it's possible to hit an - // unitialized paintDevice due to a Qt bug too complex to even + // uninitialized paintDevice due to a Qt bug too complex to even // explain here... not to mention fix without going crazy. // MDK QGLShareContextScope ctx(qt_gl_share_widget()->context()); @@ -301,4 +301,4 @@ bool qt_meego_live_texture_release(QPixmap *pixmap, QImage *image) Qt::HANDLE qt_meego_live_texture_get_handle(QPixmap *pixmap) { return QMeeGoGraphicsSystem::getLiveTextureHandle(pixmap); -} \ No newline at end of file +} diff --git a/src/qt3support/canvas/q3canvas.cpp b/src/qt3support/canvas/q3canvas.cpp index 959c435..1b4706d 100644 --- a/src/qt3support/canvas/q3canvas.cpp +++ b/src/qt3support/canvas/q3canvas.cpp @@ -1030,7 +1030,7 @@ void Q3Canvas::setUpdatePeriod(int ms) The advance takes place in two phases. In phase 0, the Q3CanvasItem::advance() function of each Q3CanvasItem::animated() - canvas item is called with paramater 0. Then all these canvas + canvas item is called with parameter 0. Then all these canvas items are called again, with parameter 1. In phase 0, the canvas items should not change position, merely examine other items on the canvas for which special processing is required, such as diff --git a/src/qt3support/text/q3richtext.cpp b/src/qt3support/text/q3richtext.cpp index d82d0f0..e24eeb5 100644 --- a/src/qt3support/text/q3richtext.cpp +++ b/src/qt3support/text/q3richtext.cpp @@ -2914,7 +2914,7 @@ QString Q3TextDocument::selectedText(int id, bool asRichText) const } } // ### workaround for plain text export until we get proper - // mime types: turn unicode line seperators into the more + // mime types: turn unicode line separators into the more // widely understood \n. Makes copy and pasting code snipplets // from within Assistent possible QChar* uc = (QChar*) s.unicode(); diff --git a/src/scripttools/debugging/qscriptdebuggeragent.cpp b/src/scripttools/debugging/qscriptdebuggeragent.cpp index 551f6c3..9362639 100644 --- a/src/scripttools/debugging/qscriptdebuggeragent.cpp +++ b/src/scripttools/debugging/qscriptdebuggeragent.cpp @@ -116,7 +116,7 @@ QScriptDebuggerAgent::~QScriptDebuggerAgent() /*! Instructs the agent to perform a "step into" operation. This function returns immediately. The agent will report step completion - at a later time, i.e. when script statements are evaluted. + at a later time, i.e. when script statements are evaluated. */ void QScriptDebuggerAgent::enterStepIntoMode(int count) { @@ -129,7 +129,7 @@ void QScriptDebuggerAgent::enterStepIntoMode(int count) /*! Instructs the agent to perform a "step over" operation. This function returns immediately. The agent will report step completion - at a later time, i.e. when script statements are evaluted. + at a later time, i.e. when script statements are evaluated. */ void QScriptDebuggerAgent::enterStepOverMode(int count) { @@ -146,7 +146,7 @@ void QScriptDebuggerAgent::enterStepOverMode(int count) /*! Instructs the agent to perform a "step out" operation. This function returns immediately. The agent will report step completion - at a later time, i.e. when script statements are evaluted. + at a later time, i.e. when script statements are evaluated. */ void QScriptDebuggerAgent::enterStepOutMode() { diff --git a/src/xmlpatterns/data/qabstractfloat.cpp b/src/xmlpatterns/data/qabstractfloat.cpp index d3384fe..9f0e4e0 100644 --- a/src/xmlpatterns/data/qabstractfloat.cpp +++ b/src/xmlpatterns/data/qabstractfloat.cpp @@ -118,7 +118,7 @@ bool AbstractFloat::isEqual(const xsDouble a, const xsDouble b) return qIsInf(a) && internalSignbit(a) == internalSignbit(b); else { - /* Preferrably, we would use std::numeric_limits::espilon(), but + /* Preferably, we would use std::numeric_limits::espilon(), but * we cannot since we cannot depend on the STL. The small xs:double value below, * was extracted by printing the std::numeric_limits::epsilon() using * gdb. */ diff --git a/src/xmlpatterns/data/qatomicvalue.cpp b/src/xmlpatterns/data/qatomicvalue.cpp index c4f3578..ecc78bf 100644 --- a/src/xmlpatterns/data/qatomicvalue.cpp +++ b/src/xmlpatterns/data/qatomicvalue.cpp @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE /** * @file - * @short Contains the implementation for AtomicValue. The defintion is in qitem_p.h. + * @short Contains the implementation for AtomicValue. The definition is in qitem_p.h. */ using namespace QPatternist; diff --git a/src/xmlpatterns/data/qschematime_p.h b/src/xmlpatterns/data/qschematime_p.h index bd63714..bff065b 100644 --- a/src/xmlpatterns/data/qschematime_p.h +++ b/src/xmlpatterns/data/qschematime_p.h @@ -63,7 +63,7 @@ namespace QPatternist /** * @short Implements the value instance of the @c xs:time type. * - * The header file for this class was orignally called Time.h, but this + * The header file for this class was originally called Time.h, but this * clashed with a system header on MinGW. * * @author Frans Englich diff --git a/src/xmlpatterns/schema/qxsdschemaparser.cpp b/src/xmlpatterns/schema/qxsdschemaparser.cpp index fd0b95c..585cf12 100644 --- a/src/xmlpatterns/schema/qxsdschemaparser.cpp +++ b/src/xmlpatterns/schema/qxsdschemaparser.cpp @@ -914,7 +914,7 @@ void XsdSchemaParser::parseRedefine() redefinedType->setWxsSuperType(contextType); // 3) remove the base type resolving job from the resolver as - // we have set the base type here explicitely + // we have set the base type here explicitly m_parserContext->resolver()->removeSimpleRestrictionBase(redefinedType); // 4) add the redefined type to the schema @@ -963,7 +963,7 @@ void XsdSchemaParser::parseRedefine() redefinedType->setWxsSuperType(contextType); // 3) remove the base type resolving job from the resolver as - // we have set the base type here explicitely + // we have set the base type here explicitly m_parserContext->resolver()->removeComplexBaseType(redefinedType); // 4) add the redefined type to the schema @@ -5781,7 +5781,7 @@ QString XsdSchemaParser::readNamespaceAttribute(const QString &attributeName, co SchemaType::DerivationConstraints XsdSchemaParser::readDerivationConstraintAttribute(const SchemaType::DerivationConstraints &allowedConstraints, const char *elementName) { - // first convert the flags into strings for easier comparision + // first convert the flags into strings for easier comparison QSet allowedContent; if (allowedConstraints & SchemaType::RestrictionConstraint) allowedContent.insert(QString::fromLatin1("restriction")); @@ -5844,7 +5844,7 @@ SchemaType::DerivationConstraints XsdSchemaParser::readDerivationConstraintAttri NamedSchemaComponent::BlockingConstraints XsdSchemaParser::readBlockingConstraintAttribute(const NamedSchemaComponent::BlockingConstraints &allowedConstraints, const char *elementName) { - // first convert the flags into strings for easier comparision + // first convert the flags into strings for easier comparison QSet allowedContent; if (allowedConstraints & NamedSchemaComponent::RestrictionConstraint) allowedContent.insert(QString::fromLatin1("restriction")); diff --git a/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp b/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp index 88e5f93..dc4730e 100644 --- a/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp +++ b/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp @@ -53,7 +53,7 @@ using namespace QPatternist; * This page describes how to use DFAs for validating that the XML child tags of an * XML parent tag occur in the right order. * - * To validate the occurence of XML tags one need a regular expression that describes + * To validate the occurrence of XML tags one need a regular expression that describes * which tags can appear how often in what context. For example the regular expression * of the global attribute tag in XML Schema is (annotation?, simpleType?). * That means the attribute tag can contain an annotation tag followed diff --git a/src/xmlpatterns/schema/qxsdstatemachine_p.h b/src/xmlpatterns/schema/qxsdstatemachine_p.h index 294eb50..62c6ab0 100644 --- a/src/xmlpatterns/schema/qxsdstatemachine_p.h +++ b/src/xmlpatterns/schema/qxsdstatemachine_p.h @@ -138,7 +138,7 @@ namespace QPatternist /** * Continues execution of the machine with the given input @p transition. * - * @return @c true if the transition was successfull, @c false otherwise. + * @return @c true if the transition was successful, @c false otherwise. */ bool proceed(TransitionType transition); @@ -154,7 +154,7 @@ namespace QPatternist * @note To use this method, inputEqualsTransition must be implemented * to find the right transition to use. * - * @return @c true if the transition was successfull, @c false otherwise. + * @return @c true if the transition was successful, @c false otherwise. */ template bool proceed(InputType input); diff --git a/src/xmlpatterns/type/qtypechecker.cpp b/src/xmlpatterns/type/qtypechecker.cpp index 879fe0e..73f83b7 100644 --- a/src/xmlpatterns/type/qtypechecker.cpp +++ b/src/xmlpatterns/type/qtypechecker.cpp @@ -168,7 +168,7 @@ Expression::Ptr TypeChecker::verifyType(const Expression::Ptr &operand, /* Since we haven't exited yet, it means that the operandType is a super type * of reqType, and that there hence is a path down to it through the - * type hierachy -- but that doesn't neccessarily mean that a up-cast(down the + * type hierachy -- but that doesn't necessarily mean that a up-cast(down the * hierarchy) would succeed. */ Expression::Ptr result(operand); diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp index 18baa24..1189b99 100644 --- a/tools/linguist/linguist/mainwindow.cpp +++ b/tools/linguist/linguist/mainwindow.cpp @@ -2498,8 +2498,8 @@ void MainWindow::updateDanger(const MultiDataIndex &index, bool verbose) } if (m_ui.actionPlaceMarkerMatches->isChecked()) { - // Stores the occurence count of the place markers in the map placeMarkerIndexes. - // i.e. the occurence count of %1 is stored at placeMarkerIndexes[1], + // Stores the occurrence count of the place markers in the map placeMarkerIndexes. + // i.e. the occurrence count of %1 is stored at placeMarkerIndexes[1], // count of %2 is stored at placeMarkerIndexes[2] etc. // In the first pass, it counts all place markers in the sourcetext. // In the second pass it (de)counts all place markers in the translation. diff --git a/tools/linguist/linguist/printout.cpp b/tools/linguist/linguist/printout.cpp index 581dc00..7ec6875 100644 --- a/tools/linguist/linguist/printout.cpp +++ b/tools/linguist/linguist/printout.cpp @@ -130,7 +130,7 @@ void PrintOut::addBox(int percent, const QString &text, Style style, Qt::Alignme cp.rect.setSize(QSize(cp.rect.width() + wd, qMax(cp.rect.height(), ht))); } -// use init if inital vsize should be calculated (first breakPage call) +// use init if initial vsize should be calculated (first breakPage call) void PrintOut::breakPage(bool init) { static const int LeftAlign = Qt::AlignLeft | Qt::AlignTop; diff --git a/tools/qdoc3/tokenizer.h b/tools/qdoc3/tokenizer.h index af617f1..1b33f6f 100644 --- a/tools/qdoc3/tokenizer.h +++ b/tools/qdoc3/tokenizer.h @@ -145,7 +145,7 @@ class Tokenizer int ch = getch(); if (ch == EOF) return EOF; - // cast explicitily to make sure the value of ch + // cast explicitly to make sure the value of ch // is in range [0..255] to avoid assert messages // when using debug CRT that checks its input. return int(uint(uchar(ch))); -- cgit v0.12 From 83fb9c38d3f176b132138675be64ab477e72fe88 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Tue, 9 Nov 2010 13:00:25 +0100 Subject: Doc: Fixing typo --- src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 073d722..67d760c 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -83,7 +83,7 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { // Long story short: without this it's possible to hit an - // uninitialized paintDevice due to a Qt bug too complex to even + // uninitialized paintDevice due to a Qt bug too complex to even // explain here... not to mention fix without going crazy. // MDK QGLShareContextScope ctx(qt_gl_share_widget()->context()); -- cgit v0.12 From e48f03a052eaa5c175b373091a65238fa7755ed4 Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 9 Nov 2010 12:25:36 +0100 Subject: Fixed wrong include path in multimedia. RevBy: Miikka Heikkinen --- src/multimedia/audio/audio.pri | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/multimedia/audio/audio.pri b/src/multimedia/audio/audio.pri index ae28a26..7b2f9ad 100644 --- a/src/multimedia/audio/audio.pri +++ b/src/multimedia/audio/audio.pri @@ -42,8 +42,8 @@ mac { wince*:LIBS += -lcoredll } else:symbian { - INCLUDEPATH += /epoc32/include/mmf/common - INCLUDEPATH += /epoc32/include/mmf/server + INCLUDEPATH += $${EPOCROOT}epoc32/include/mmf/common + INCLUDEPATH += $${EPOCROOT}epoc32/include/mmf/server HEADERS += $$PWD/qaudio_symbian_p.h \ $$PWD/qaudiodeviceinfo_symbian_p.h \ -- cgit v0.12 From 7c59ffa73a569cb18acb05a1ee6c566f4878a1e2 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Tue, 9 Nov 2010 14:21:38 +0100 Subject: Fixed random crash in QGestureManager. When the cachedGestures are cleaned, the Gestures should be removed in all QSets first, before the Delete. Task: QT-4013 Reviewed By: Frederik Gladhorn --- src/gui/kernel/qgesturemanager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 6dd8127..5e9a0cb 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -171,6 +171,10 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ foreach (QGesture *g, gestures) { m_deletedRecognizers.remove(g); m_gestureToRecognizer.remove(g); + m_maybeGestures.remove(g); + m_activeGestures.remove(g); + m_gestureOwners.remove(g); + m_gestureTargets.remove(g); } qDeleteAll(gestures); -- cgit v0.12 From 594420567e7bfbf4f7bce0845eaf4f7d7a1e9380 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Tue, 9 Nov 2010 15:57:24 +0100 Subject: Doc: Fixing typo --- qmake/generators/symbian/symbiancommon.cpp | 4 ++-- src/declarative/qml/qdeclarativeparser_p.h | 2 +- src/gui/egl/qegl.cpp | 4 ++-- src/gui/graphicsview/qgraphicsproxywidget.cpp | 2 +- src/gui/graphicsview/qgraphicssceneevent.cpp | 2 +- src/gui/graphicsview/qgraphicswidget.cpp | 2 +- src/gui/image/qimage_ssse3.cpp | 2 +- src/gui/image/qxpmhandler.cpp | 2 +- src/gui/itemviews/qabstractitemview.cpp | 6 +++--- src/gui/itemviews/qtableview.cpp | 4 ++-- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp index 6fea8fd..6cc9fe4 100644 --- a/qmake/generators/symbian/symbiancommon.cpp +++ b/qmake/generators/symbian/symbiancommon.cpp @@ -742,7 +742,7 @@ void SymbianCommonGenerator::readRssRules(QString &numberOfIcons, newValues << itemList.join("\n"); } } - // Verify thet there is exactly one value in RSS_TAG_NBROFICONS + // Verify that there is exactly one value in RSS_TAG_NBROFICONS if (newKey == RSS_TAG_NBROFICONS) { if (newValues.count() == 1) { numberOfIcons = newValues[0]; @@ -751,7 +751,7 @@ void SymbianCommonGenerator::readRssRules(QString &numberOfIcons, RSS_RULES_BASE, RSS_TAG_NBROFICONS); continue; } - // Verify thet there is exactly one value in RSS_TAG_ICONFILE + // Verify that there is exactly one value in RSS_TAG_ICONFILE } else if (newKey == RSS_TAG_ICONFILE) { if (newValues.count() == 1) { iconFile = newValues[0]; diff --git a/src/declarative/qml/qdeclarativeparser_p.h b/src/declarative/qml/qdeclarativeparser_p.h index b4753df..77184c2 100644 --- a/src/declarative/qml/qdeclarativeparser_p.h +++ b/src/declarative/qml/qdeclarativeparser_p.h @@ -356,7 +356,7 @@ namespace QDeclarativeParser // True if the setting of this property will be deferred. Set by the // QDeclarativeCompiler bool isDeferred; - // True if this property is a value-type psuedo-property + // True if this property is a value-type pseudo-property bool isValueTypeSubProperty; LocationSpan location; diff --git a/src/gui/egl/qegl.cpp b/src/gui/egl/qegl.cpp index af3b79a..9b41909 100644 --- a/src/gui/egl/qegl.cpp +++ b/src/gui/egl/qegl.cpp @@ -210,7 +210,7 @@ EGLConfig QEgl::defaultConfig(int devType, API api, ConfigOptions options) else configId = qgetenv("QT_GL_EGL_CONFIG"); if (!configId.isEmpty()) { - // Overriden, so get the EGLConfig for the specified config ID: + // Overridden, so get the EGLConfig for the specified config ID: EGLint properties[] = { EGL_CONFIG_ID, (EGLint)configId.toInt(), EGL_NONE @@ -267,7 +267,7 @@ EGLConfig QEgl::defaultConfig(int devType, API api, ConfigOptions options) configAttribs.setValue(EGL_STENCIL_SIZE, 1); configAttribs.setValue(EGL_SAMPLE_BUFFERS, 1); #ifndef QT_OPENGL_ES_2 - // Aditionally, the GL1 engine likes to have a depth buffer for clipping + // Additionally, the GL1 engine likes to have a depth buffer for clipping configAttribs.setValue(EGL_DEPTH_SIZE, 1); #endif } diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp index 320395e..e0eb3bb 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget.cpp +++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp @@ -1508,7 +1508,7 @@ int QGraphicsProxyWidget::type() const Creates a proxy widget for the given \a child of the widget contained in this proxy. - This function makes it possible to aquire proxies for + This function makes it possible to acquire proxies for non top-level widgets. For instance, you can embed a dialog, and then transform only one of its widgets. diff --git a/src/gui/graphicsview/qgraphicssceneevent.cpp b/src/gui/graphicsview/qgraphicssceneevent.cpp index a0ecd4c..d9ff655 100644 --- a/src/gui/graphicsview/qgraphicssceneevent.cpp +++ b/src/gui/graphicsview/qgraphicssceneevent.cpp @@ -1629,7 +1629,7 @@ QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent() } /*! - Returns the old position (i.e., the position immediatly before the widget + Returns the old position (i.e., the position immediately before the widget was moved). \sa newPos(), QGraphicsItem::setPos() diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp index 4a733be..e48f9a7 100644 --- a/src/gui/graphicsview/qgraphicswidget.cpp +++ b/src/gui/graphicsview/qgraphicswidget.cpp @@ -450,7 +450,7 @@ void QGraphicsWidget::setGeometry(const QRectF &rect) bottom. Contents margins are used by the assigned layout to define the placement - of subwidgets and layouts. Margins are particularily useful for widgets + of subwidgets and layouts. Margins are particularly useful for widgets that constrain subwidgets to only a section of its own geometry. For example, a group box with a layout will place subwidgets inside its frame, but below the title. diff --git a/src/gui/image/qimage_ssse3.cpp b/src/gui/image/qimage_ssse3.cpp index 9aed011..836d7b0 100644 --- a/src/gui/image/qimage_ssse3.cpp +++ b/src/gui/image/qimage_ssse3.cpp @@ -54,7 +54,7 @@ Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, con { quint32 *const end = dst + len; - // Prologue, align dst to 16 bytes. The alignement is done on dst because it has 4 store() + // Prologue, align dst to 16 bytes. The alignment is done on dst because it has 4 store() // for each 3 load() of src. const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast(dst) >> 2) & 0x3)) & 0x3; const int prologLength = qMin(len, offsetToAlignOn16Bytes); diff --git a/src/gui/image/qxpmhandler.cpp b/src/gui/image/qxpmhandler.cpp index b97afd3..453100c 100644 --- a/src/gui/image/qxpmhandler.cpp +++ b/src/gui/image/qxpmhandler.cpp @@ -766,7 +766,7 @@ static bool qt_get_named_xpm_rgb(const char *name_no_space, QRgb *rgb) { XPMRGBData x; x.name = name_no_space; - // Funtion bsearch() is supposed to be + // Function bsearch() is supposed to be // void *bsearch(const void *key, const void *base, ... // So why (char*)? Are there broken bsearch() declarations out there? XPMRGBData *r = (XPMRGBData *)bsearch((char *)&x, (char *)xpmRgbTbl, xpmRgbTblSize, diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 95e92c9..7b81761 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -1166,7 +1166,7 @@ QAbstractItemView::EditTriggers QAbstractItemView::editTriggers() const \property QAbstractItemView::verticalScrollMode \brief how the view scrolls its contents in the vertical direction - This property controlls how the view scroll its contents vertically. + This property controls how the view scroll its contents vertically. Scrolling can be done either per pixel or per item. */ @@ -1192,7 +1192,7 @@ QAbstractItemView::ScrollMode QAbstractItemView::verticalScrollMode() const \property QAbstractItemView::horizontalScrollMode \brief how the view scrolls its contents in the horizontal direction - This property controlls how the view scroll its contents horizontally. + This property controls how the view scroll its contents horizontally. Scrolling can be done either per pixel or per item. */ @@ -1275,7 +1275,7 @@ bool QAbstractItemView::hasAutoScroll() const \property QAbstractItemView::autoScrollMargin \brief the size of the area when auto scrolling is triggered - This property controlls the size of the area at the edge of the viewport that + This property controls the size of the area at the edge of the viewport that triggers autoscrolling. The default value is 16 pixels. */ void QAbstractItemView::setAutoScrollMargin(int margin) diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 4492e53..dc45854 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -114,7 +114,7 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height) } } else if (old_height > span->height()) { //remove the span from all the subspans lists that intersect the columns not covered anymore - Index::iterator it_y = index.lowerBound(-qMax(span->bottom(), span->top())); //qMax usefull if height is 0 + Index::iterator it_y = index.lowerBound(-qMax(span->bottom(), span->top())); //qMax useful if height is 0 Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list while (-it_y.key() <= span->top() + old_height -1) { if (-it_y.key() > span->bottom()) { @@ -1411,7 +1411,7 @@ void QTableView::paintEvent(QPaintEvent *event) } if (showGrid) { - // Find the bottom right (the last rows/coloumns might be hidden) + // Find the bottom right (the last rows/columns might be hidden) while (verticalHeader->isSectionHidden(verticalHeader->logicalIndex(bottom))) --bottom; QPen old = painter.pen(); painter.setPen(gridPen); -- cgit v0.12 From 2ec60d5a71a560460c884be36de8fbad467fb69d Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Tue, 9 Nov 2010 17:32:15 +0100 Subject: Clear X11 structure before use This squelches valgrind warnings about uninitialized reads Task-number: QT-3973 Reviewed-by: Robert Griebl --- src/gui/kernel/qmotifdnd_x11.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qmotifdnd_x11.cpp b/src/gui/kernel/qmotifdnd_x11.cpp index 3334455..3b79129 100644 --- a/src/gui/kernel/qmotifdnd_x11.cpp +++ b/src/gui/kernel/qmotifdnd_x11.cpp @@ -385,7 +385,10 @@ static void DndReadSourceProperty(Display * dpy, static void DndWriteReceiverProperty(Display * dpy, Window window, unsigned char protocol_style) { - DndReceiverProp receiver_prop ; + DndReceiverProp receiver_prop; + + // squelch potential valgrind errors about uninitialized reads + memset(&receiver_prop, 0, sizeof(receiver_prop)); receiver_prop.byte_order = DndByteOrder() ; receiver_prop.protocol_version = DND_PROTOCOL_VERSION; -- cgit v0.12 From 11ac612190b7bd637ede068d2fe8063021a2a0eb Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 10 Nov 2010 09:30:06 +1000 Subject: Document TextInput::select(start,end) Task-number: QTBUG-15162 --- .../graphicsitems/qdeclarativetextinput.cpp | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 2348478..0deacf8 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -460,10 +460,9 @@ QRect QDeclarativeTextInput::cursorRectangle() const text edit. Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionStart to a value outside of - the current text, selectionStart will not be changed. + selection. - \sa selectionEnd, cursorPosition, selectedText + \sa selectionEnd, cursorPosition, selectedText, select() */ int QDeclarativeTextInput::selectionStart() const { @@ -479,10 +478,9 @@ int QDeclarativeTextInput::selectionStart() const text edit. Note that if selectionStart == selectionEnd then there is no current - selection. If you attempt to set selectionEnd to a value outside of - the current text, selectionEnd will not be changed. + selection. - \sa selectionStart, cursorPosition, selectedText + \sa selectionStart, cursorPosition, selectedText, select() */ int QDeclarativeTextInput::selectionEnd() const { @@ -490,6 +488,19 @@ int QDeclarativeTextInput::selectionEnd() const return d->lastSelectionEnd; } +/*! + \qmlmethod void TextInput::select(int start, int end) + + Causes the text from \a start to \a end to be selected. + + If either start or end is out of range, the selection is not changed. + + After calling this, selectionStart will become the lesser + and selectionEnd will become the greater (regardless of the order passed + to this method). + + \sa selectionStart, selectionEnd +*/ void QDeclarativeTextInput::select(int start, int end) { Q_D(QDeclarativeTextInput); -- cgit v0.12 From bfd87980bdc3d835723f429a3e4dbe2d884bca27 Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Tue, 9 Nov 2010 16:42:10 +1000 Subject: Fix potential buffer overrun in QAudioInput windows implementation. Don't write more than len bytes to the output buffer. Task-number: QTBUG-14549 QTBUG-8578 Reviewed-by: Derick Hawcroft --- src/multimedia/audio/qaudioinput_win32_p.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/multimedia/audio/qaudioinput_win32_p.cpp b/src/multimedia/audio/qaudioinput_win32_p.cpp index 1cde159..0ec2492 100644 --- a/src/multimedia/audio/qaudioinput_win32_p.cpp +++ b/src/multimedia/audio/qaudioinput_win32_p.cpp @@ -400,9 +400,12 @@ qint64 QAudioInputPrivate::read(char* data, qint64 len) resuming = false; } } else { + l = qMin(len, waveBlocks[header].dwBytesRecorded); // push mode - memcpy(p,waveBlocks[header].lpData,waveBlocks[header].dwBytesRecorded); - l = waveBlocks[header].dwBytesRecorded; + memcpy(p, waveBlocks[header].lpData, l); + + len -= l; + #ifdef DEBUG_AUDIO qDebug()<<"IN: "< len && waveFreeBlockCount == buffer_size/period_size) + if(len < period_size || waveFreeBlockCount == buffer_size/period_size) done = true; } else { if(waveFreeBlockCount == buffer_size/period_size) @@ -568,7 +571,7 @@ bool QAudioInputPrivate::deviceReady() if(pullMode) { // reads some audio data and writes it to QIODevice - read(0,0); + read(0, buffer_size); } else { // emits readyRead() so user will call read() on QIODevice to get some audio data InputPrivate* a = qobject_cast(audioSource); -- cgit v0.12 From e3f1268e63064a54215051cf91d5f6b8c8bd4f0f Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Tue, 9 Nov 2010 16:30:32 +1000 Subject: Fix potential buffer overrun in ALSA QAudioInput implementation. Don't write more than the supplied max buffer size to the output buffer. Task-number: QTBUG-14549 QTBUG-8578 Reviewed-by: Derick Hawcroft --- src/multimedia/audio/qaudioinput_alsa_p.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/multimedia/audio/qaudioinput_alsa_p.cpp b/src/multimedia/audio/qaudioinput_alsa_p.cpp index ddafa3d..5265915 100644 --- a/src/multimedia/audio/qaudioinput_alsa_p.cpp +++ b/src/multimedia/audio/qaudioinput_alsa_p.cpp @@ -482,19 +482,18 @@ int QAudioInputPrivate::bytesReady() const qint64 QAudioInputPrivate::read(char* data, qint64 len) { - Q_UNUSED(len) - // Read in some audio data and write it to QIODevice, pull mode if ( !handle ) return 0; - bytesAvailable = checkBytesReady(); + // bytesAvaiable is saved as a side effect of checkBytesReady(). + int bytesToRead = checkBytesReady(); - if (bytesAvailable < 0) { + if (bytesToRead < 0) { // bytesAvailable as negative is error code, try to recover from it. - xrun_recovery(bytesAvailable); - bytesAvailable = checkBytesReady(); - if (bytesAvailable < 0) { + xrun_recovery(bytesToRead); + bytesToRead = checkBytesReady(); + if (bytesToRead < 0) { // recovery failed must stop and set error. close(); errorState = QAudio::IOError; @@ -504,9 +503,11 @@ qint64 QAudioInputPrivate::read(char* data, qint64 len) } } + bytesToRead = qMin(len, bytesToRead); + bytesToRead -= bytesToRead % period_size; int count=0, err = 0; while(count < 5) { - int chunks = bytesAvailable/period_size; + int chunks = bytesToRead/period_size; int frames = chunks*period_frames; if(frames > (int)buffer_frames) frames = buffer_frames; @@ -554,6 +555,7 @@ qint64 QAudioInputPrivate::read(char* data, qint64 len) emit stateChanged(deviceState); } } else { + bytesAvailable -= err; totalTimeValue += err; resuming = false; if (deviceState != QAudio::ActiveState) { @@ -566,6 +568,7 @@ qint64 QAudioInputPrivate::read(char* data, qint64 len) } else { memcpy(data,audioBuffer,err); + bytesAvailable -= err; totalTimeValue += err; resuming = false; if (deviceState != QAudio::ActiveState) { @@ -661,7 +664,7 @@ bool QAudioInputPrivate::deviceReady() { if(pullMode) { // reads some audio data and writes it to QIODevice - read(0,0); + read(0, buffer_size); } else { // emits readyRead() so user will call read() on QIODevice to get some audio data InputPrivate* a = qobject_cast(audioSource); -- cgit v0.12 From cb1f6d24e0c834d633720102c7e8edc9801196fb Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 10 Nov 2010 10:17:34 +1000 Subject: Document that Transitions are exclusive. Task-number: QTBUG-15183 --- src/declarative/util/qdeclarativetransition.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp index 478c7f4..c8bc7b3 100644 --- a/src/declarative/util/qdeclarativetransition.cpp +++ b/src/declarative/util/qdeclarativetransition.cpp @@ -86,12 +86,16 @@ QT_BEGIN_NAMESPACE Item { ... transitions: [ - Transition { ... }, + Transition { to: "state1" ... }, Transition { ... } ] } \endqml + If multiple Transitions are specified, only a single (best-matching) Transition will be applied for any particular + state change. In the example above, when changing to \c state1, the first transition will be used, rather + than the more generic second transition. + If a state change has a Transition that matches the same property as a \l Behavior, the Transition animation overrides the \l Behavior for that state change. -- cgit v0.12 From cd1a69ec3e27a4b6c0df692ec5bdbc9b789c74b4 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 10 Nov 2010 14:26:08 +1000 Subject: Flickable does not reposition its content when it is resized. Call fixup() after Flickable resize to ensure contents are within bounds. Task-number: QTBUG-15173 Reviewed-by: Bea Lam --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 01a8585..90cf9ed 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -1029,6 +1029,13 @@ void QDeclarativeFlickable::geometryChanged(const QRectF &newGeometry, d->contentItem->setWidth(width()); emit contentWidthChanged(); } + // Make sure that we're entirely in view. + if (!d->pressed && !d->movingHorizontally && !d->movingVertically) { + int oldDuration = d->fixupDuration; + d->fixupDuration = 0; + d->fixupX(); + d->fixupDuration = oldDuration; + } } if (newGeometry.height() != oldGeometry.height()) { if (yflick()) @@ -1037,6 +1044,13 @@ void QDeclarativeFlickable::geometryChanged(const QRectF &newGeometry, d->contentItem->setHeight(height()); emit contentHeightChanged(); } + // Make sure that we're entirely in view. + if (!d->pressed && !d->movingHorizontally && !d->movingVertically) { + int oldDuration = d->fixupDuration; + d->fixupDuration = 0; + d->fixupY(); + d->fixupDuration = oldDuration; + } } if (changed) -- cgit v0.12 From 339f3d9ca43987dc2dba022ec964fa43c702cb12 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 10 Nov 2010 10:50:50 +0100 Subject: Fixed a shell syntax error in configure When you have EPOCROOT environment variable, but compiling for desktop Linux, the configure script showed a shell syntax error and failed to set the install prefix, making "install" target to install to the build directory. Task-number: QTBUG-15008 Reviewed-by: axis Reviewed-by: Oswald Buddenhagen --- configure | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 1b2abf4..a238300 100755 --- a/configure +++ b/configure @@ -3314,12 +3314,9 @@ if [ -z "$QT_INSTALL_PREFIX" ]; then if [ "$PLATFORM" != "$XPLATFORM" ]; then QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}" fi - elif [ -d "$EPOCROOT" ]; then - case "$XPLATFORM" in *symbian*) - QT_INSTALL_PREFIX="$EPOCROOT/epoc32/" - QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/" - ;; - esac + elif [ -d "$EPOCROOT" ] && echo $XPLATFORM | grep symbian > /dev/null; then + QT_INSTALL_PREFIX="$EPOCROOT/epoc32/" + QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/" else QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION fi -- cgit v0.12 From 7e1a598296e89e498fd0c27fc0951f059d1e6ffe Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Wed, 10 Nov 2010 11:10:00 +0100 Subject: fix tst_headers Fix the generator and the generated file to ensure that the string "generated" appears in the first line. --- tests/benchmarks/corelib/tools/qstring/data.cpp | 3 ++- tests/benchmarks/corelib/tools/qstring/generatelist.pl | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/benchmarks/corelib/tools/qstring/data.cpp b/tests/benchmarks/corelib/tools/qstring/data.cpp index a674336..d44a796 100644 --- a/tests/benchmarks/corelib/tools/qstring/data.cpp +++ b/tests/benchmarks/corelib/tools/qstring/data.cpp @@ -1,6 +1,7 @@ +// This is a generated file - DO NOT EDIT + #include "data.h" -// This is a generated file - DO NOT EDIT const ushort stringCollectionData[] __attribute__((aligned(16))) = { // #0 65535, diff --git a/tests/benchmarks/corelib/tools/qstring/generatelist.pl b/tests/benchmarks/corelib/tools/qstring/generatelist.pl index 8c8eb20..48a8518 100644 --- a/tests/benchmarks/corelib/tools/qstring/generatelist.pl +++ b/tests/benchmarks/corelib/tools/qstring/generatelist.pl @@ -103,9 +103,10 @@ sub printUshortArray($$$) { return ($offset + $headpadding, $offset + $headpadding + $len + $tailpadding); } +print "// This is a generated file - DO NOT EDIT\n\n"; + print "#include \"data.h\"\n\n"; -print "// This is a generated file - DO NOT EDIT\n"; print "const ushort stringCollectionData[] __attribute__((aligned(64))) = {\n"; $count = 0; $offset = 0; -- cgit v0.12 From 722d25d7a4fb0bc64d5bceae40019c7a8f3a9251 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Tue, 9 Nov 2010 16:44:55 +0000 Subject: Use $${EPOCROOT} variable rather than absolute paths in .pro files Task-number: QTBUG-15156 Reviewed-by: Miikka Heikkinen --- src/plugins/phonon/mmf/mmf.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/phonon/mmf/mmf.pro b/src/plugins/phonon/mmf/mmf.pro index ac11188..691fc80 100644 --- a/src/plugins/phonon/mmf/mmf.pro +++ b/src/plugins/phonon/mmf/mmf.pro @@ -18,7 +18,7 @@ symbian { # This is necessary because both epoc32/include and Phonon contain videoplayer.h. # By making /epoc32/include the first SYSTEMINCLUDE, we ensure that # '#include ' picks up the Symbian header, as intended. - PREPEND_INCLUDEPATH = /epoc32/include + PREPEND_INCLUDEPATH = $${EPOCROOT}epoc32/include PREPEND_INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty -- cgit v0.12 From 8d88491d44fdbad7e9d6ea618f14b5230e03d6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 10 Nov 2010 11:05:04 +0100 Subject: Fixed tst_qpixmap::grabWidget autotest failure on QWS. We need to use the same rendering to compute the expected pixmap as used in QPixmap::grabWidget(), or the results will look different on a 16-bit display, as QPixmap::fromImage(ARGB32_Premultiplied_image) will get a different internal image format compared to QPixmap pixmap(size); pixmap.fill(Qt::transparent); Reviewed-by: Kim --- tests/auto/qpixmap/tst_qpixmap.cpp | 54 ++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index a733d56..51e6cf5 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -812,33 +812,43 @@ void tst_QPixmap::drawBitmap() void tst_QPixmap::grabWidget() { - QWidget widget; - QImage image(128, 128, QImage::Format_ARGB32_Premultiplied); - for (int row = 0; row < image.height(); ++row) { - QRgb *line = reinterpret_cast(image.scanLine(row)); - for (int col = 0; col < image.width(); ++col) - line[col] = qRgba(rand() & 255, row, col, 127); - } + for (int opaque = 0; opaque < 2; ++opaque) { + QWidget widget; + QImage image(128, 128, opaque ? QImage::Format_RGB32 : QImage::Format_ARGB32_Premultiplied); + for (int row = 0; row < image.height(); ++row) { + QRgb *line = reinterpret_cast(image.scanLine(row)); + for (int col = 0; col < image.width(); ++col) + line[col] = qRgba(rand() & 255, row, col, opaque ? 255 : 127); + } - QPalette pal = widget.palette(); - pal.setBrush(QPalette::Window, QBrush(image)); - widget.setPalette(pal); - widget.resize(128, 128); + QPalette pal = widget.palette(); + pal.setBrush(QPalette::Window, QBrush(image)); + widget.setPalette(pal); + widget.resize(128, 128); - QPixmap expected = QPixmap::fromImage(QImage(image.scanLine(64) + 64 * 4, 64, 64, image.bytesPerLine(), image.format())); - QPixmap actual = QPixmap::grabWidget(&widget, QRect(64, 64, 64, 64)); - QVERIFY(lenientCompare(actual, expected)); + QPixmap expected(64, 64); + if (!opaque) + expected.fill(Qt::transparent); - actual = QPixmap::grabWidget(&widget, 64, 64); - QVERIFY(lenientCompare(actual, expected)); + QPainter p(&expected); + p.translate(-64, -64); + p.drawTiledPixmap(0, 0, 128, 128, pal.brush(QPalette::Window).texture(), 0, 0); + p.end(); - // Make sure a widget that is not yet shown is grabbed correctly. - QTreeWidget widget2; - actual = QPixmap::grabWidget(&widget2); - widget2.show(); - expected = QPixmap::grabWidget(&widget2); + QPixmap actual = QPixmap::grabWidget(&widget, QRect(64, 64, 64, 64)); + QVERIFY(lenientCompare(actual, expected)); - QVERIFY(lenientCompare(actual, expected)); + actual = QPixmap::grabWidget(&widget, 64, 64); + QVERIFY(lenientCompare(actual, expected)); + + // Make sure a widget that is not yet shown is grabbed correctly. + QTreeWidget widget2; + actual = QPixmap::grabWidget(&widget2); + widget2.show(); + expected = QPixmap::grabWidget(&widget2); + + QVERIFY(lenientCompare(actual, expected)); + } } void tst_QPixmap::grabWindow() -- cgit v0.12 From b7d91c0d798bc10dd4f8a750723285076fb96935 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Wed, 10 Nov 2010 13:21:02 +0100 Subject: Fix auto-test regression in tst_QDoubleValidator The locale from a previous test was not cleared. Another issue has been detected, though, and reported as QTBUG-15210. Reviewed-by: Thierry --- tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp b/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp index 3470456..98c4740 100644 --- a/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp +++ b/tests/auto/qdoublevalidator/tst_qdoublevalidator.cpp @@ -218,6 +218,9 @@ void tst_QDoubleValidator::validate_data() QTest::newRow("data_QTBUG_14935-1") << "de" << 0.0 << 1.0 << 5 << QString("0.31") << ACC << ACC; QTest::newRow("data_QTBUG_14935-2") << "de" << 0.0 << 1000000.0 << 5 << QString("3.123") << ACC << ACC; QTest::newRow("data_QTBUG_14935-3") << "de" << 0.0 << 1000000.0 << 5 << QString("123,345.678") << ACC << ACC; + + QTest::newRow("data_de_problem-1") << "de" << 0.0 << 10.0 << 0 << QString("1.0") << ITM << ITM; + QTest::newRow("data_de_problem-2") << "de" << 0.0 << 10.0 << 0 << QString("0.1") << INV << INV; } void tst_QDoubleValidator::validate() @@ -230,6 +233,9 @@ void tst_QDoubleValidator::validate() QFETCH(QValidator::State, scientific_state); QFETCH(QValidator::State, standard_state); + QEXPECT_FAIL("data_de_problem-1", "To be fixed. See QTBUG-15210.", Abort); + QEXPECT_FAIL("data_de_problem-2", "To be fixed. See QTBUG-15210.", Abort); + QLocale::setDefault(QLocale(localeName)); QDoubleValidator dv(minimum, maximum, decimals, 0); @@ -312,6 +318,8 @@ void tst_QDoubleValidator::validateIntEquiv() QFETCH(QString, input); QFETCH(QValidator::State, state); + QLocale::setDefault(QLocale("C")); + QDoubleValidator dv(minimum, maximum, 0, 0); dv.setNotation(QDoubleValidator::StandardNotation); int dummy; -- cgit v0.12 From 7cc777265b5d6c5e87c86283b4061f2632952a8c Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Wed, 10 Nov 2010 14:42:24 +0100 Subject: QDeclarativeDebug: Keep source information when changing an expression Copy over the source code location of an expression when it is changed throu the debugging facilities. This enables JavaScript breakpoints to be hit even after the source code of the function has changed. Task-number: QTCREATORBUG-2824 Reviewed-by: Kai Koehne --- src/declarative/qml/qdeclarativeenginedebug.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/declarative/qml/qdeclarativeenginedebug.cpp b/src/declarative/qml/qdeclarativeenginedebug.cpp index ed28185..bffe681 100644 --- a/src/declarative/qml/qdeclarativeenginedebug.cpp +++ b/src/declarative/qml/qdeclarativeenginedebug.cpp @@ -502,7 +502,8 @@ void QDeclarativeEngineDebugServer::setBinding(int objectId, property.write(expression); } else if (hasValidSignal(object, propertyName)) { QDeclarativeExpression *declarativeExpression = new QDeclarativeExpression(context, object, expression.toString()); - QDeclarativePropertyPrivate::setSignalExpression(property, declarativeExpression); + QDeclarativeExpression *oldExpression = QDeclarativePropertyPrivate::setSignalExpression(property, declarativeExpression); + declarativeExpression->setSourceLocation(oldExpression->sourceFile(), oldExpression->lineNumber()); } else if (property.isProperty()) { QDeclarativeBinding *binding = new QDeclarativeBinding(expression.toString(), object, context); binding->setTarget(property); -- cgit v0.12 From d3a6103783b161d6d35a00cb50fef50e73b6a4b6 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 10 Nov 2010 22:35:50 +0100 Subject: remove pointless assignment of deprecated variable --- tools/qconfig/qconfig.pro | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/qconfig/qconfig.pro b/tools/qconfig/qconfig.pro index efbfcf2..171924f 100644 --- a/tools/qconfig/qconfig.pro +++ b/tools/qconfig/qconfig.pro @@ -6,5 +6,4 @@ build_all:!build_pass { } HEADERS = feature.h featuretreemodel.h graphics.h SOURCES = main.cpp feature.cpp featuretreemodel.cpp -INTERFACES = TARGET = qconfig -- cgit v0.12 From 9637cb4f7c88594d5018c97072f77a19d737a302 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:08 +0100 Subject: Trailing whitespace fixes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/qmeegoextensions.cpp | 12 ++++++------ src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 12 ++++++------ src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp index 611c962..44c1eee 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp @@ -78,7 +78,7 @@ EGLNativeSharedImageTypeNOK QMeeGoExtensions::eglCreateSharedImageNOK(EGLDisplay { if (! hasImageShared) qFatal("EGL_NOK_image_shared not found but trying to use capability!"); - + return _eglCreateSharedImageNOK(dpy, image, props); } @@ -128,7 +128,7 @@ void QMeeGoExtensions::initialize() { QGLContext *ctx = (QGLContext *) QGLContext::currentContext(); qt_resolve_eglimage_gl_extensions(ctx); - + if (QEgl::hasExtension("EGL_NOK_image_shared")) { qDebug("MeegoGraphics: found EGL_NOK_image_shared"); _eglQueryImageNOK = (eglQueryImageNOKFunc) eglGetProcAddress("eglQueryImageNOK"); @@ -136,15 +136,15 @@ void QMeeGoExtensions::initialize() _eglDestroySharedImageNOK = (eglDestroySharedImageNOKFunc) eglGetProcAddress("eglDestroySharedImageNOK"); _eglLockSurfaceKHR = (eglLockSurfaceKHRFunc) eglGetProcAddress("eglLockSurfaceKHR"); _eglUnlockSurfaceKHR = (eglUnlockSurfaceKHRFunc) eglGetProcAddress("eglUnlockSurfaceKHR"); - + Q_ASSERT(_eglQueryImageNOK && _eglCreateSharedImageNOK && _eglDestroySharedImageNOK); hasImageShared = true; } - + if (QEgl::hasExtension("EGL_NOK_surface_scaling")) { qDebug("MeegoGraphics: found EGL_NOK_surface_scaling"); _eglSetSurfaceScalingNOK = (eglSetSurfaceScalingNOKFunc) eglGetProcAddress("eglSetSurfaceScalingNOK"); - + Q_ASSERT(_eglSetSurfaceScalingNOK); hasSurfaceScaling = true; } @@ -153,7 +153,7 @@ void QMeeGoExtensions::initialize() qDebug("MeegoGraphics: found EGL_KHR_lock_surface2"); _eglLockSurfaceKHR = (eglLockSurfaceKHRFunc) eglGetProcAddress("eglLockSurfaceKHR"); _eglUnlockSurfaceKHR = (eglUnlockSurfaceKHRFunc) eglGetProcAddress("eglUnlockSurfaceKHR"); - + Q_ASSERT(_eglLockSurfaceKHR && _eglUnlockSurfaceKHR); hasLockSurface = true; } diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 67d760c..02e1143 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -87,7 +87,7 @@ QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) // explain here... not to mention fix without going crazy. // MDK QGLShareContextScope ctx(qt_gl_share_widget()->context()); - + return new QRasterPixmapData(type); } @@ -103,8 +103,8 @@ QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData *origin) if (QMeeGoPixmapData::sharedImagesMap.contains(rawResource)) return new QMeeGoPixmapData(); - } - + } + return new QRasterPixmapData(origin->pixelType()); } @@ -155,7 +155,7 @@ QPixmapData *QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(Qt::HANDLE handl qFatal("For egl shared images, the soft image has to be ARGB32_Premultiplied or RGB32"); return NULL; } - + if (QMeeGoGraphicsSystem::meeGoRunning()) { QMeeGoPixmapData *pmd = new QMeeGoPixmapData; pmd->fromEGLSharedImage(handle, softImage); @@ -177,9 +177,9 @@ QPixmapData *QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(Qt::HANDLE handl void QMeeGoGraphicsSystem::updateEGLSharedImagePixmap(QPixmap *pixmap) { QMeeGoPixmapData *pmd = (QMeeGoPixmapData *) pixmap->pixmapData(); - + // Basic sanity check to make sure this is really a QMeeGoPixmapData... - if (pmd->classId() != QPixmapData::OpenGLClass) + if (pmd->classId() != QPixmapData::OpenGLClass) qFatal("Trying to updated EGLSharedImage pixmap but it's not really a shared image pixmap!"); pmd->updateFromSoftImage(); diff --git a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h index 1d647f0..cb123da 100644 --- a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h +++ b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h @@ -50,16 +50,16 @@ public: QMeeGoLivePixmapData(int w, int h, QImage::Format format); QMeeGoLivePixmapData(Qt::HANDLE h); ~QMeeGoLivePixmapData(); - + QPixmapData *createCompatiblePixmapData() const; bool scroll(int dx, int dy, const QRect &rect); void initializeThroughEGLImage(); - + QImage* lock(); bool release(QImage *img); Qt::HANDLE handle(); - + EGLSurface getSurfaceForBackingPixmap(); void destroySurfaceForPixmapData(QPixmapData* pmd); -- cgit v0.12 From d964fa923394ba50fa26d36c2c39bf4ac1fda78f Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:09 +0100 Subject: Added MeeGo graphicssystem entry points for KHR_fence_sync. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- .../graphicssystems/meego/qmeegoextensions.cpp | 56 +++++++++++++++++++++- .../graphicssystems/meego/qmeegoextensions.h | 22 +++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp index 44c1eee..fd17d491d 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp @@ -47,6 +47,7 @@ bool QMeeGoExtensions::initialized = false; bool QMeeGoExtensions::hasImageShared = false; bool QMeeGoExtensions::hasSurfaceScaling = false; bool QMeeGoExtensions::hasLockSurface = false; +bool QMeeGoExtensions::hasFenceSync = false; /* Extension funcs */ @@ -54,8 +55,12 @@ typedef EGLBoolean (EGLAPIENTRY *eglQueryImageNOKFunc)(EGLDisplay, EGLImageKHR, typedef EGLNativeSharedImageTypeNOK (EGLAPIENTRY *eglCreateSharedImageNOKFunc)(EGLDisplay, EGLImageKHR, EGLint*); typedef EGLBoolean (EGLAPIENTRY *eglDestroySharedImageNOKFunc)(EGLDisplay, EGLNativeSharedImageTypeNOK); typedef EGLBoolean (EGLAPIENTRY *eglSetSurfaceScalingNOKFunc)(EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint); -typedef EGLBoolean (EGLAPIENTRY *eglLockSurfaceKHRFunc)(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRY *eglUnlockSurfaceKHRFunc)(EGLDisplay display, EGLSurface surface); +typedef EGLBoolean (EGLAPIENTRY *eglLockSurfaceKHRFunc)(EGLDisplay, EGLSurface, const EGLint*); +typedef EGLBoolean (EGLAPIENTRY *eglUnlockSurfaceKHRFunc)(EGLDisplay, EGLSurface); +typedef EGLSyncKHR (EGLAPIENTRY *eglCreateSyncKHRFunc)(EGLDisplay, EGLenum, const EGLint*); +typedef EGLBoolean (EGLAPIENTRY *eglDestroySyncKHRFunc)(EGLDisplay, EGLSyncKHR); +typedef EGLint (EGLAPIENTRY *eglClientWaitSyncKHRFunc)(EGLDisplay, EGLSyncKHR, EGLint, EGLTimeKHR); +typedef EGLBoolean (EGLAPIENTRY *eglGetSyncAttribKHRFunc)(EGLDisplay, EGLSyncKHR, EGLint, EGLint*); static eglQueryImageNOKFunc _eglQueryImageNOK = 0; static eglCreateSharedImageNOKFunc _eglCreateSharedImageNOK = 0; @@ -63,6 +68,10 @@ static eglDestroySharedImageNOKFunc _eglDestroySharedImageNOK = 0; static eglSetSurfaceScalingNOKFunc _eglSetSurfaceScalingNOK = 0; static eglLockSurfaceKHRFunc _eglLockSurfaceKHR = 0; static eglUnlockSurfaceKHRFunc _eglUnlockSurfaceKHR = 0; +static eglCreateSyncKHRFunc _eglCreateSyncKHR = 0; +static eglDestroySyncKHRFunc _eglDestroySyncKHR = 0; +static eglClientWaitSyncKHRFunc _eglClientWaitSyncKHR = 0; +static eglGetSyncAttribKHRFunc _eglGetSyncAttribKHR = 0; /* Public */ @@ -122,6 +131,38 @@ bool QMeeGoExtensions::eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surfac return _eglUnlockSurfaceKHR(display, surface); } +EGLSyncKHR QMeeGoExtensions::eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list) +{ + if (! hasFenceSync) + qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); + + return _eglCreateSyncKHR(dpy, type, attrib_list); +} + +bool QMeeGoExtensions::eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) +{ + if (! hasFenceSync) + qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); + + return _eglDestroySyncKHR(dpy, sync); +} + +EGLint QMeeGoExtensions::eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) +{ + if (! hasFenceSync) + qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); + + return _eglClientWaitSyncKHR(dpy, sync, flags, timeout); +} + +EGLBoolean QMeeGoExtensions::eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value) +{ + if (! hasFenceSync) + qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); + + return _eglGetSyncAttribKHR(dpy, sync, attribute, value); +} + /* Private */ void QMeeGoExtensions::initialize() @@ -157,5 +198,16 @@ void QMeeGoExtensions::initialize() Q_ASSERT(_eglLockSurfaceKHR && _eglUnlockSurfaceKHR); hasLockSurface = true; } + + if (QEgl::hasExtension("EGL_KHR_fence_sync")) { + qDebug("MeegoGraphics: found EGL_KHR_fence_sync"); + _eglCreateSyncKHR = (eglCreateSyncKHRFunc) eglGetProcAddress("eglCreateSyncKHR"); + _eglDestroySyncKHR = (eglDestroySyncKHRFunc) eglGetProcAddress("eglDestroySyncKHR"); + _eglClientWaitSyncKHR = (eglClientWaitSyncKHRFunc) eglGetProcAddress("eglClientWaitSyncKHR"); + _eglGetSyncAttribKHR = (eglGetSyncAttribKHRFunc) eglGetProcAddress("eglGetSyncAttribKHR"); + + Q_ASSERT(_eglCreateSyncKHR && _eglDestroySyncKHR && _eglClientWaitSyncKHR && _eglGetSyncAttribKHR); + hasFenceSync = true; + } } diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.h b/src/plugins/graphicssystems/meego/qmeegoextensions.h index 9e78caf..49a1e30 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.h +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.h @@ -77,6 +77,23 @@ typedef void* EGLNativeSharedImageTypeNOK; #define EGL_WRITE_SURFACE_BIT_KHR 0x0002 #endif +#ifndef EGL_SYNC_FENCE_KHR +#define EGL_SYNC_FENCE_KHR 0x30F9 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) +typedef void* EGLSyncKHR; +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +#endif + /* Class */ class QMeeGoExtensions @@ -90,6 +107,10 @@ public: static bool eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surface, int x, int y, int width, int height); static bool eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); static bool eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface); + static EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); + static bool eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync); + static EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); + static EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); private: static void initialize(); @@ -98,6 +119,7 @@ private: static bool hasImageShared; static bool hasSurfaceScaling; static bool hasLockSurface; + static bool hasFenceSync; }; #endif -- cgit v0.12 From 8d6c8e95f47e6be3f8db85adc2412d55a6915ac4 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:09 +0100 Subject: Plugin-side support for creating/destroying/waiting on fence sync. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- .../graphicssystems/meego/qmeegographicssystem.cpp | 38 ++++++++++++++++++---- .../graphicssystems/meego/qmeegographicssystem.h | 9 +++-- .../graphicssystems/meego/qmeegolivepixmapdata.cpp | 12 +++++-- .../graphicssystems/meego/qmeegolivepixmapdata.h | 3 +- 4 files changed, 49 insertions(+), 13 deletions(-) diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 02e1143..063af13 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -82,9 +82,9 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { - // Long story short: without this it's possible to hit an - // uninitialized paintDevice due to a Qt bug too complex to even - // explain here... not to mention fix without going crazy. + // Long story short: without this it's possible to hit an + // unitialized paintDevice due to a Qt bug too complex to even + // explain here... not to mention fix without going crazy. // MDK QGLShareContextScope ctx(qt_gl_share_widget()->context()); @@ -218,10 +218,10 @@ QPixmapData* QMeeGoGraphicsSystem::pixmapDataFromLiveTextureHandle(Qt::HANDLE ha return new QMeeGoLivePixmapData(handle); } -QImage* QMeeGoGraphicsSystem::lockLiveTexture(QPixmap* pixmap) +QImage* QMeeGoGraphicsSystem::lockLiveTexture(QPixmap* pixmap, void* fenceSync) { QMeeGoLivePixmapData *pixmapData = static_cast(pixmap->data_ptr().data()); - return pixmapData->lock(); + return pixmapData->lock(fenceSync); } bool QMeeGoGraphicsSystem::releaseLiveTexture(QPixmap *pixmap, QImage *image) @@ -236,6 +236,20 @@ Qt::HANDLE QMeeGoGraphicsSystem::getLiveTextureHandle(QPixmap *pixmap) return pixmapData->handle(); } +void* QMeeGoGraphicsSystem::createFenceSync() +{ + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + return QMeeGoExtensions::eglCreateSyncKHR(QEgl::display(), EGL_SYNC_FENCE_KHR, NULL); +} + +void QMeeGoGraphicsSystem::destroyFenceSync(void *fenceSync) +{ + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + QMeeGoExtensions::eglDestroySyncKHR(QEgl::display(), fenceSync); +} + /* C API */ int qt_meego_image_to_egl_shared_image(const QImage &image) @@ -288,9 +302,9 @@ QPixmapData* qt_meego_pixmapdata_from_live_texture_handle(Qt::HANDLE handle) return QMeeGoGraphicsSystem::pixmapDataFromLiveTextureHandle(handle); } -QImage* qt_meego_live_texture_lock(QPixmap *pixmap) +QImage* qt_meego_live_texture_lock(QPixmap *pixmap, void *fenceSync) { - return QMeeGoGraphicsSystem::lockLiveTexture(pixmap); + return QMeeGoGraphicsSystem::lockLiveTexture(pixmap, fenceSync); } bool qt_meego_live_texture_release(QPixmap *pixmap, QImage *image) @@ -302,3 +316,13 @@ Qt::HANDLE qt_meego_live_texture_get_handle(QPixmap *pixmap) { return QMeeGoGraphicsSystem::getLiveTextureHandle(pixmap); } + +void* qt_meego_create_fence_sync(void) +{ + return QMeeGoGraphicsSystem::createFenceSync(); +} + +void qt_meego_destroy_fence_sync(void* fs) +{ + return QMeeGoGraphicsSystem::destroyFenceSync(fs); +} diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.h b/src/plugins/graphicssystems/meego/qmeegographicssystem.h index 2697f0f..1e50f00 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.h +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.h @@ -69,10 +69,13 @@ public: static QPixmapData *pixmapDataWithNewLiveTexture(int w, int h, QImage::Format format); static QPixmapData *pixmapDataFromLiveTextureHandle(Qt::HANDLE handle); - static QImage *lockLiveTexture(QPixmap* pixmap); + static QImage *lockLiveTexture(QPixmap* pixmap, void* fenceSync); static bool releaseLiveTexture(QPixmap *pixmap, QImage *image); static Qt::HANDLE getLiveTextureHandle(QPixmap *pixmap); + static void* createFenceSync(); + static void destroyFenceSync(void* fenceSync); + private: static bool meeGoRunning(); static EGLSurface getSurfaceForLiveTexturePixmap(QPixmap *pixmap); @@ -95,9 +98,11 @@ extern "C" { Q_DECL_EXPORT void qt_meego_set_translucent(bool translucent); Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_with_new_live_texture(int w, int h, QImage::Format format); Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_from_live_texture_handle(Qt::HANDLE handle); - Q_DECL_EXPORT QImage* qt_meego_live_texture_lock(QPixmap *pixmap); + Q_DECL_EXPORT QImage* qt_meego_live_texture_lock(QPixmap *pixmap, void *fenceSync); Q_DECL_EXPORT bool qt_meego_live_texture_release(QPixmap *pixmap, QImage *image); Q_DECL_EXPORT Qt::HANDLE qt_meego_live_texture_get_handle(QPixmap *pixmap); + Q_DECL_EXPORT void* qt_meego_create_fence_sync(void); + Q_DECL_EXPORT void qt_meego_destroy_fence_sync(void* fs); } #endif diff --git a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp index 405b765..3ef35e1 100644 --- a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp +++ b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include "qmeegolivepixmapdata.h" -#include "qmeegoextensions.h" #include "qmeegorasterpixmapdata.h" #include #include @@ -171,11 +170,18 @@ QPixmapData *QMeeGoLivePixmapData::createCompatiblePixmapData() const return new QMeeGoRasterPixmapData(pixelType()); } -QImage* QMeeGoLivePixmapData::lock() +QImage* QMeeGoLivePixmapData::lock(EGLSyncKHR fenceSync) { QGLShareContextScope ctx(qt_gl_share_widget()->context()); QMeeGoExtensions::ensureInitialized(); + if (fenceSync) { + QMeeGoExtensions::eglClientWaitSyncKHR(QEgl::display(), + fenceSync, + EGL_SYNC_FLUSH_COMMANDS_BIT_KHR, + EGL_FOREVER_KHR); + } + void *data = 0; int pitch = 0; EGLSurface surface = 0; @@ -229,7 +235,7 @@ Qt::HANDLE QMeeGoLivePixmapData::handle() bool QMeeGoLivePixmapData::scroll(int dx, int dy, const QRect &rect) { - lock(); + lock(NULL); if (!lockedImage.isNull()) qt_scrollRectInImage(lockedImage, rect, QPoint(dx, dy)); diff --git a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h index cb123da..2c6854e 100644 --- a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h +++ b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h @@ -43,6 +43,7 @@ #define MLIVEPIXMAPDATA_H #include +#include "qmeegoextensions.h" class QMeeGoLivePixmapData : public QGLPixmapData { @@ -56,7 +57,7 @@ public: void initializeThroughEGLImage(); - QImage* lock(); + QImage* lock(EGLSyncKHR fenceSync); bool release(QImage *img); Qt::HANDLE handle(); -- cgit v0.12 From 4e7eb76cb231fc5a8b0deb67a87c45f6760e44bb Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:10 +0100 Subject: Helper-side support for QMeeGoFenceSync. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper/qmeegofencesync.cpp | 79 ++++++++++++++++ tools/qmeegographicssystemhelper/qmeegofencesync.h | 101 +++++++++++++++++++++ .../qmeegographicssystemhelper/qmeegofencesync_p.h | 60 ++++++++++++ .../qmeegographicssystemhelper.pro | 4 +- .../qmeegolivepixmap.cpp | 9 +- .../qmeegographicssystemhelper/qmeegolivepixmap.h | 7 +- tools/qmeegographicssystemhelper/qmeegoruntime.cpp | 29 +++++- tools/qmeegographicssystemhelper/qmeegoruntime.h | 4 +- 8 files changed, 282 insertions(+), 11 deletions(-) create mode 100644 tools/qmeegographicssystemhelper/qmeegofencesync.cpp create mode 100644 tools/qmeegographicssystemhelper/qmeegofencesync.h create mode 100644 tools/qmeegographicssystemhelper/qmeegofencesync_p.h diff --git a/tools/qmeegographicssystemhelper/qmeegofencesync.cpp b/tools/qmeegographicssystemhelper/qmeegofencesync.cpp new file mode 100644 index 0000000..499e102 --- /dev/null +++ b/tools/qmeegographicssystemhelper/qmeegofencesync.cpp @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** 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 plugins 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 "qmeegofencesync.h" +#include "qmeegofencesync_p.h" +#include "qmeegoruntime.h" + +/* QMeeGoFenceSyncPrivate */ + +QMeeGoFenceSyncPrivate::QMeeGoFenceSyncPrivate() : syncObject(NULL) +{ +} + +QMeeGoFenceSyncPrivate::~QMeeGoFenceSyncPrivate() +{ + if (syncObject) { + QMeeGoRuntime::destroyFenceSync(syncObject); + syncObject = NULL; + } +} + +/* QMeeGoFenceSync */ + +QMeeGoFenceSync::QMeeGoFenceSync(QWidget *parent) : QObject(parent), d_ptr(new QMeeGoFenceSyncPrivate()) +{ + Q_D(QMeeGoFenceSync); + d->q_ptr = this; +} + +QMeeGoFenceSync::~QMeeGoFenceSync() +{ +} + +void QMeeGoFenceSync::setSyncPoint() +{ + Q_D(QMeeGoFenceSync); + if (d->syncObject) + QMeeGoRuntime::destroyFenceSync(d->syncObject); + + d->syncObject = QMeeGoRuntime::createFenceSync(); +} diff --git a/tools/qmeegographicssystemhelper/qmeegofencesync.h b/tools/qmeegographicssystemhelper/qmeegofencesync.h new file mode 100644 index 0000000..2d3f5c5 --- /dev/null +++ b/tools/qmeegographicssystemhelper/qmeegofencesync.h @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** 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 plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMEEGOFENCESYNC_H +#define QMEEGOFENCESYNC_H + +#include + +class QMeeGoFenceSyncPrivate; + +//! A synchronization helper for GL pipeline. +/*! + Fence syncs provide a mechanism for synchronizing access to certain GL primitives + and make it possible for the application developer to be sure that a certain point + in the GL processing pipeline has been already executed before continuing operation. + + Currently fence syncs are only useful in conjunction with QMeeGoLivePixmaps. + \code + ... + // In your paint/expose event: + QImage *image = livePixmap->lock(&someGlobalFenceSync); + // Modify the image... + livePixmap->release(image); + + painter->drawPixmap(0, 0, *livePixmap); + someGlobalFenceSync.setSyncPoint(); + ... + \endcode + + Assuming the paint/expose events come repeatedly, the lock operation + will block till the previous event completed painting the livePixmap. +*/ + +class Q_DECL_EXPORT QMeeGoFenceSync : public QObject +{ +public: + //! Constructs a new fence sync. + /*! + The fence sync is created without a sync point. You need to set the sync point manually. + */ + QMeeGoFenceSync(QWidget *parent = 0); + + //! Destructor for the fence sync. + virtual ~QMeeGoFenceSync(); + + //! Sets the fence sync. + /*! + The fence sync synchronization point should be set after all drawing has been scheduled. + Setting a synchronization point always overrides the previous point -- whetver is was + used (waited upon) or not. + */ + void setSyncPoint(); + +private: + Q_DISABLE_COPY(QMeeGoFenceSync) + Q_DECLARE_PRIVATE(QMeeGoFenceSync) + +protected: + QScopedPointer d_ptr; //! Private bits. + friend class QMeeGoLivePixmap; +}; + +#endif diff --git a/tools/qmeegographicssystemhelper/qmeegofencesync_p.h b/tools/qmeegographicssystemhelper/qmeegofencesync_p.h new file mode 100644 index 0000000..8a5d26e --- /dev/null +++ b/tools/qmeegographicssystemhelper/qmeegofencesync_p.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** 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 plugins 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 "qmeegofencesync.h" + +#ifndef QMEEGOFENCESYNC_P_H +#define QMEEGOFENCESYNC_P_H + +class QMeeGoFenceSyncPrivate +{ +public: + Q_DECLARE_PUBLIC(QMeeGoFenceSync); + QMeeGoFenceSyncPrivate(); + + virtual ~QMeeGoFenceSyncPrivate(); + + void* syncObject; + + QMeeGoFenceSync *q_ptr; +}; + +#endif diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro index 7412fc3..161a31b 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro @@ -6,5 +6,5 @@ include(../../src/qbase.pri) QT += gui INCLUDEPATH += '../../src/plugins/graphicssystems/meego' -HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h -SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h +HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h +SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegofencesync.cpp diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp index d43efe2..9700581f 100644 --- a/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp +++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp @@ -41,6 +41,7 @@ #include "qmeegolivepixmap.h" #include "qmeegolivepixmap_p.h" +#include "qmeegofencesync_p.h" #include "qmeegoruntime.h" /* QMeeGoLivePixmapPrivate */ @@ -102,10 +103,12 @@ QMeeGoLivePixmap::~QMeeGoLivePixmap() { } -QImage* QMeeGoLivePixmap::lock() +QImage* QMeeGoLivePixmap::lock(QMeeGoFenceSync *fenceSync) { - return QMeeGoRuntime::lockLiveTexture(this); - + if (fenceSync) + return QMeeGoRuntime::lockLiveTexture(this, fenceSync->d_func()->syncObject); + else + return QMeeGoRuntime::lockLiveTexture(this, NULL); } void QMeeGoLivePixmap::release(QImage *img) diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.h b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h index 7be2c4b..51b5976 100644 --- a/tools/qmeegographicssystemhelper/qmeegolivepixmap.h +++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h @@ -43,6 +43,7 @@ #define QMEEGOLIVEPIXMAP_H #include +#include "qmeegofencesync.h" class QMeeGoLivePixmapPrivate; class QSharedMemory; @@ -82,8 +83,12 @@ public: //! Locks the access to the pixmap. /*! The returned image can be used for direct access. + You can optionally specify a fence sync to wait upon before unlocking. When + you specify a fence sync, you can be sure that this function will return only + when the previsouly set QMeeGoFenceSync synchronization point has been executed/passed + by the GL processing pipeline. */ - QImage* lock(); + QImage* lock(QMeeGoFenceSync *fenceSync = NULL); //! Unlocks the access to the pixmap. /*! diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.cpp b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp index ac627e5..2d3ee3c 100644 --- a/tools/qmeegographicssystemhelper/qmeegoruntime.cpp +++ b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp @@ -60,9 +60,11 @@ typedef void (*QMeeGoSetSurfaceScalingFunc) (int x, int y, int w, int h); typedef void (*QMeeGoSetTranslucentFunc) (bool translucent); typedef QPixmapData* (*QMeeGoPixmapDataWithNewLiveTextureFunc) (int w, int h, QImage::Format format); typedef QPixmapData* (*QMeeGoPixmapDataFromLiveTextureHandleFunc) (Qt::HANDLE h); -typedef QImage* (*QMeeGoLiveTextureLockFunc) (QPixmap*); +typedef QImage* (*QMeeGoLiveTextureLockFunc) (QPixmap*, void* fenceSync); typedef bool (*QMeeGoLiveTextureReleaseFunc) (QPixmap*, QImage *i); typedef Qt::HANDLE (*QMeeGoLiveTextureGetHandleFunc) (QPixmap*); +typedef void* (*QMeeGoCreateFenceSyncFunc) (void); +typedef void (*QMeeGoDestroyFenceSyncFunc) (void *fs); static QMeeGoImageToEglSharedImageFunc qt_meego_image_to_egl_shared_image = NULL; static QMeeGoPixmapDataFromEglSharedImageFunc qt_meego_pixmapdata_from_egl_shared_image = NULL; @@ -77,6 +79,8 @@ static QMeeGoPixmapDataFromLiveTextureHandleFunc qt_meego_pixmapdata_from_live_t static QMeeGoLiveTextureLockFunc qt_meego_live_texture_lock = NULL; static QMeeGoLiveTextureReleaseFunc qt_meego_live_texture_release = NULL; static QMeeGoLiveTextureGetHandleFunc qt_meego_live_texture_get_handle = NULL; +static QMeeGoCreateFenceSyncFunc qt_meego_create_fence_sync = NULL; +static QMeeGoDestroyFenceSyncFunc qt_meego_destroy_fence_sync = NULL; void QMeeGoRuntime::initialize() { @@ -103,12 +107,15 @@ void QMeeGoRuntime::initialize() qt_meego_live_texture_lock = (QMeeGoLiveTextureLockFunc) library.resolve("qt_meego_live_texture_lock"); qt_meego_live_texture_release = (QMeeGoLiveTextureReleaseFunc) library.resolve("qt_meego_live_texture_release"); qt_meego_live_texture_get_handle = (QMeeGoLiveTextureGetHandleFunc) library.resolve("qt_meego_live_texture_get_handle"); + qt_meego_create_fence_sync = (QMeeGoCreateFenceSyncFunc) library.resolve("qt_meego_create_fence_sync"); + qt_meego_destroy_fence_sync = (QMeeGoDestroyFenceSyncFunc) library.resolve("qt_meego_destroy_fence_sync"); if (qt_meego_image_to_egl_shared_image && qt_meego_pixmapdata_from_egl_shared_image && qt_meego_pixmapdata_with_gl_texture && qt_meego_destroy_egl_shared_image && qt_meego_update_egl_shared_image_pixmap && qt_meego_set_surface_fixed_size && qt_meego_set_surface_scaling && qt_meego_set_translucent && qt_meego_pixmapdata_with_new_live_texture && qt_meego_pixmapdata_from_live_texture_handle && - qt_meego_live_texture_lock && qt_meego_live_texture_release && qt_meego_live_texture_get_handle) + qt_meego_live_texture_lock && qt_meego_live_texture_release && qt_meego_live_texture_get_handle && + qt_meego_create_fence_sync && qt_meego_destroy_fence_sync) { qDebug("Successfully resolved MeeGo graphics system: %s %s\n", qPrintable(libraryPrivate->fileName), qPrintable(libraryPrivate->fullVersion)); } else { @@ -191,11 +198,11 @@ QPixmapData* QMeeGoRuntime::pixmapDataFromLiveTextureHandle(Qt::HANDLE h) return qt_meego_pixmapdata_from_live_texture_handle(h); } -QImage* QMeeGoRuntime::lockLiveTexture(QPixmap *p) +QImage* QMeeGoRuntime::lockLiveTexture(QPixmap *p, void* fenceSync) { ENSURE_INITIALIZED; Q_ASSERT(qt_meego_live_texture_lock); - return qt_meego_live_texture_lock(p); + return qt_meego_live_texture_lock(p, fenceSync); } bool QMeeGoRuntime::releaseLiveTexture(QPixmap *p, QImage *i) @@ -211,3 +218,17 @@ Qt::HANDLE QMeeGoRuntime::getLiveTextureHandle(QPixmap *pixmap) Q_ASSERT(qt_meego_live_texture_get_handle); return qt_meego_live_texture_get_handle(pixmap); } + +void* QMeeGoRuntime::createFenceSync() +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_create_fence_sync); + return qt_meego_create_fence_sync(); +} + +void QMeeGoRuntime::destroyFenceSync(void *fs) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_destroy_fence_sync); + qt_meego_destroy_fence_sync(fs); +} diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.h b/tools/qmeegographicssystemhelper/qmeegoruntime.h index 6b34836..be6ff6b 100644 --- a/tools/qmeegographicssystemhelper/qmeegoruntime.h +++ b/tools/qmeegographicssystemhelper/qmeegoruntime.h @@ -57,9 +57,11 @@ public: static void setTranslucent(bool translucent); static QPixmapData* pixmapDataWithNewLiveTexture(int w, int h, QImage::Format format); static QPixmapData* pixmapDataFromLiveTextureHandle(Qt::HANDLE h); - static QImage* lockLiveTexture(QPixmap *pixmap); + static QImage* lockLiveTexture(QPixmap *pixmap, void *fenceSync); static bool releaseLiveTexture(QPixmap *pixmap, QImage *image); static Qt::HANDLE getLiveTextureHandle(QPixmap *pixmap); + static void* createFenceSync(); + static void destroyFenceSync(void *fs); private: static bool initialized; -- cgit v0.12 From 86d39d4a6bfe1c7371b2a27a996db1c5ee601e91 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:11 +0100 Subject: Removed call to glFinish, obsoleted by fence syncs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp index 3ef35e1..16096c9 100644 --- a/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp +++ b/src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp @@ -220,7 +220,6 @@ bool QMeeGoLivePixmapData::release(QImage* /*img*/) if (QMeeGoExtensions::eglUnlockSurfaceKHR(QEgl::display(), getSurfaceForBackingPixmap())) { lockedImage = QImage(); - glFinish(); return true; } else { lockedImage = QImage(); -- cgit v0.12 From 6ff64751994001f90bc82cb7fd25a0c20e8966eb Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 11 Nov 2010 08:25:11 +0100 Subject: Coding style: bang cleanup. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2502 Reviewed-by: Samuel Rødal --- .../graphicssystems/meego/qmeegoextensions.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp index fd17d491d..dff80a4 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp @@ -85,7 +85,7 @@ void QMeeGoExtensions::ensureInitialized() EGLNativeSharedImageTypeNOK QMeeGoExtensions::eglCreateSharedImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint *props) { - if (! hasImageShared) + if (!hasImageShared) qFatal("EGL_NOK_image_shared not found but trying to use capability!"); return _eglCreateSharedImageNOK(dpy, image, props); @@ -93,7 +93,7 @@ EGLNativeSharedImageTypeNOK QMeeGoExtensions::eglCreateSharedImageNOK(EGLDisplay bool QMeeGoExtensions::eglQueryImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint prop, EGLint *v) { - if (! hasImageShared) + if (!hasImageShared) qFatal("EGL_NOK_image_shared not found but trying to use capability!"); return _eglQueryImageNOK(dpy, image, prop, v); @@ -101,7 +101,7 @@ bool QMeeGoExtensions::eglQueryImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLin bool QMeeGoExtensions::eglDestroySharedImageNOK(EGLDisplay dpy, EGLNativeSharedImageTypeNOK img) { - if (! hasImageShared) + if (!hasImageShared) qFatal("EGL_NOK_image_shared not found but trying to use capability!"); return _eglDestroySharedImageNOK(dpy, img); @@ -109,7 +109,7 @@ bool QMeeGoExtensions::eglDestroySharedImageNOK(EGLDisplay dpy, EGLNativeSharedI bool QMeeGoExtensions::eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surface, int x, int y, int width, int height) { - if (! hasSurfaceScaling) + if (!hasSurfaceScaling) qFatal("EGL_NOK_surface_scaling not found but trying to use capability!"); return _eglSetSurfaceScalingNOK(dpy, surface, x, y, width, height); @@ -117,7 +117,7 @@ bool QMeeGoExtensions::eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surfac bool QMeeGoExtensions::eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list) { - if (! hasLockSurface) + if (!hasLockSurface) qFatal("EGL_KHR_lock_surface2 not found but trying to use capability!"); return _eglLockSurfaceKHR(display, surface, attrib_list); @@ -125,7 +125,7 @@ bool QMeeGoExtensions::eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, bool QMeeGoExtensions::eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface) { - if (! hasLockSurface) + if (!hasLockSurface) qFatal("EGL_KHR_lock_surface2 not found but trying to use capability!"); return _eglUnlockSurfaceKHR(display, surface); @@ -133,7 +133,7 @@ bool QMeeGoExtensions::eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surfac EGLSyncKHR QMeeGoExtensions::eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list) { - if (! hasFenceSync) + if (!hasFenceSync) qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); return _eglCreateSyncKHR(dpy, type, attrib_list); @@ -141,7 +141,7 @@ EGLSyncKHR QMeeGoExtensions::eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, cons bool QMeeGoExtensions::eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) { - if (! hasFenceSync) + if (!hasFenceSync) qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); return _eglDestroySyncKHR(dpy, sync); @@ -149,7 +149,7 @@ bool QMeeGoExtensions::eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) EGLint QMeeGoExtensions::eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) { - if (! hasFenceSync) + if (!hasFenceSync) qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); return _eglClientWaitSyncKHR(dpy, sync, flags, timeout); @@ -157,7 +157,7 @@ EGLint QMeeGoExtensions::eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, E EGLBoolean QMeeGoExtensions::eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value) { - if (! hasFenceSync) + if (!hasFenceSync) qFatal("EGL_KHR_fence_sync not found but trying to use capability!"); return _eglGetSyncAttribKHR(dpy, sync, attribute, value); -- 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 285f49d680a824e788eb6cf107f70cd94d358dfe Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Thu, 11 Nov 2010 11:38:15 +0100 Subject: Doc: Fixing typo --- src/gui/styles/qs60style.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 5e5adab..5fe9050 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -723,7 +723,7 @@ void QS60StylePrivate::setThemePalette(QPalette *palette) const palette->setBrush(QPalette::Base, Qt::transparent); // set button color based on pixel colors #ifndef Q_WS_S60 - //For emulated style, just calculate the color everytime + //For emulated style, just calculate the color every time const QColor buttonColor = calculatedColor(SF_ButtonNormal); #else const QColor buttonColor = colorFromFrameGraphics(SF_ButtonNormal); -- 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 5feca34327eb661cc84e1d6f79052dcdbc1a09c4 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 10 Nov 2010 15:19:14 +0000 Subject: SSL: Fix crashes/hangs when retrieving CA certificates Added error handling to the certificate retrieval thread Made the certificate retrieval thread process critical (so if it crashes the process will crash instead of hang) Filter the certificate list to only fetch CA certificates which are in X.509 format (symbian also allows WAP formats, but Qt does not support these). Put the TPtr8 for asynch function parameter in the class data so it does not go out of scope while the function is in progress. Previously it was on the stack so it could be corrupted before the certificate server had finished using it. Task-number: QTBUG-15005 Task-number: QTBUG-15126 Reviewed-by: Markus Goetz --- src/network/ssl/qsslsocket_openssl.cpp | 75 ++++++++++++++++++++++++++-------- src/network/ssl/qsslsocket_openssl_p.h | 1 + 2 files changed, 60 insertions(+), 16 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 2910538..426b07a 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -574,7 +575,7 @@ void QSslSocketPrivate::resetDefaultCiphers() #if defined(Q_OS_SYMBIAN) CSymbianCertificateRetriever::CSymbianCertificateRetriever() : CActive(CActive::EPriorityStandard), - iSequenceError(KErrNone) + iCertificatePtr(0,0,0), iSequenceError(KErrNone) { } @@ -618,6 +619,11 @@ void CSymbianCertificateRetriever::doThreadEntryL() iCertStore = CUnifiedCertStore::NewLC(qt_s60GetRFs(), EFalse); iCertFilter = CCertAttributeFilter::NewLC(); + // only interested in CA certs + iCertFilter->SetOwnerType(ECACertificate); + // only interested in X.509 format (we don't support WAP formats) + iCertFilter->SetFormat(EX509Certificate); + // Kick off the sequence by initializing the cert store iState = Initializing; iCertStore->Initialize(iStatus); @@ -637,6 +643,7 @@ void CSymbianCertificateRetriever::doThreadEntryL() TInt CSymbianCertificateRetriever::ThreadEntryPoint(TAny* aParams) { + User::SetCritical(User::EProcessCritical); CTrapCleanup* cleanupStack = CTrapCleanup::New(); CSymbianCertificateRetriever* self = (CSymbianCertificateRetriever*) aParams; @@ -658,7 +665,17 @@ void CSymbianCertificateRetriever::ConstructL() void CSymbianCertificateRetriever::DoCancel() { - // We never cancel the sequence + switch(iState) { + case Initializing: + iCertStore->CancelInitialize(); + break; + case Listing: + iCertStore->CancelList(); + break; + case RetrievingCertificates: + iCertStore->CancelGetCert(); + break; + } } TInt CSymbianCertificateRetriever::RunError(TInt aError) @@ -671,37 +688,51 @@ TInt CSymbianCertificateRetriever::RunError(TInt aError) void CSymbianCertificateRetriever::GetCertificateL() { - CCTCertInfo* certInfo = iCertInfos[iCurrentCertIndex]; - iCertificateData.resize(certInfo->Size()); - TPtr8 des((TUint8*)iCertificateData.data(), 0, iCertificateData.size()); - iCertStore->Retrieve(*certInfo, des, iStatus); - iState = RetrievingCertificates; - SetActive(); + if (iCurrentCertIndex < iCertInfos.Count()) { + CCTCertInfo* certInfo = iCertInfos[iCurrentCertIndex++]; + iCertificateData = QByteArray(); + QT_TRYCATCH_LEAVING(iCertificateData.resize(certInfo->Size())); + iCertificatePtr.Set((TUint8*)iCertificateData.data(), 0, iCertificateData.size()); +#ifdef QSSLSOCKET_DEBUG + qDebug() << "getting " << qt_TDesC2QString(certInfo->Label()) << " size=" << certInfo->Size(); + qDebug() << "format=" << certInfo->CertificateFormat(); + qDebug() << "ownertype=" << certInfo->CertificateOwnerType(); + qDebug() << "type=" << hex << certInfo->Type().iUid; +#endif + iCertStore->Retrieve(*certInfo, iCertificatePtr, iStatus); + iState = RetrievingCertificates; + SetActive(); + } else { + //reached end of list + CActiveScheduler::Stop(); + } } void CSymbianCertificateRetriever::RunL() { +#ifdef QSSLSOCKET_DEBUG + qDebug() << "CSymbianCertificateRetriever::RunL status " << iStatus.Int() << " count " << iCertInfos.Count() << " index " << iCurrentCertIndex; +#endif switch (iState) { case Initializing: + User::LeaveIfError(iStatus.Int()); // initialise fail means pointless to continue iState = Listing; iCertStore->List(iCertInfos, *iCertFilter, iStatus); SetActive(); break; case Listing: + User::LeaveIfError(iStatus.Int()); // listing fail means pointless to continue iCurrentCertIndex = 0; GetCertificateL(); break; case RetrievingCertificates: - iCertificates->append(iCertificateData); - iCertificateData = QByteArray(); - iCurrentCertIndex++; - if (iCurrentCertIndex < iCertInfos.Count()) - GetCertificateL(); + if (iStatus.Int() == KErrNone) + iCertificates->append(iCertificateData); else - // Stop the scheduler to return to the thread entry function - CActiveScheduler::Stop(); + qWarning() << "CSymbianCertificateRetriever: failed to retreive a certificate, error " << iStatus.Int(); + GetCertificateL(); break; } } @@ -710,6 +741,10 @@ void CSymbianCertificateRetriever::RunL() QList QSslSocketPrivate::systemCaCertificates() { ensureInitialized(); +#ifdef QSSLSOCKET_DEBUG + QElapsedTimer timer; + timer.start(); +#endif QList systemCerts; #if defined(Q_OS_MAC) CFArrayRef cfCerts; @@ -808,10 +843,18 @@ QList QSslSocketPrivate::systemCaCertificates() retriever->GetCertificates(certs); foreach (const QByteArray &encodedCert, certs) { QSslCertificate cert(encodedCert, QSsl::Der); - if (!cert.isNull()) + if (!cert.isNull()) { +#ifdef QSSLSOCKET_DEBUG + qDebug() << "imported certificate: " << cert.issuerInfo(QSslCertificate::CommonName); +#endif systemCerts.append(cert); + } } #endif +#ifdef QSSLSOCKET_DEBUG + qDebug() << "systemCaCertificates retrieval time " << timer.elapsed() << "ms"; + qDebug() << "imported " << systemCerts.count() << " certificates"; +#endif return systemCerts; } diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h index dec98ae..b59a6c9 100644 --- a/src/network/ssl/qsslsocket_openssl_p.h +++ b/src/network/ssl/qsslsocket_openssl_p.h @@ -165,6 +165,7 @@ private: CCertAttributeFilter* iCertFilter; TInt iCurrentCertIndex; QByteArray iCertificateData; + TPtr8 iCertificatePtr; QList* iCertificates; TInt iSequenceError; }; -- cgit v0.12 From ea2caa8ce983f069eeeba0957b9db6b20baf82b2 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 10 Nov 2010 16:43:20 +0000 Subject: Doc: update symbian capabilities regarding SSL Testing shows some CA certs require ReadUserData depending which part of the database they are stored in. Updated docs to reflect this. Reviewed-by: Markus Goetz --- doc/src/platforms/platform-notes.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index dbedc1d..9c5f3c8 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -739,6 +739,9 @@ \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.} \row \o QtNetwork \o \c NetworkServices is basically always required for this module. + \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list + (for example those added by the user or stored in the SIM card), + without this capability only the CA certs built into the phone are used. \row \o QtMultiMedia \o \c UserEnvironment if QAudioInput is used. \endtable -- cgit v0.12 From 644df27056fcd697713fe2338e6743e0fd067011 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 10 Nov 2010 16:45:29 +0000 Subject: SSL: Fix for capabilities in QSslCertificate auto test They were in wrong section of the file due to editing error and therefore ignored. Reviewed-by: Markus Goetz --- tests/auto/qsslcertificate/qsslcertificate.pro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/auto/qsslcertificate/qsslcertificate.pro b/tests/auto/qsslcertificate/qsslcertificate.pro index d7671ea..b04dde3 100644 --- a/tests/auto/qsslcertificate/qsslcertificate.pro +++ b/tests/auto/qsslcertificate/qsslcertificate.pro @@ -24,5 +24,6 @@ wince*: { DEFINES += SRCDIR=\\\".\\\" } else:!symbian { DEFINES += SRCDIR=\\\"$$PWD/\\\" - TARGET.CAPABILITY = NetworkServices } + +symbian:TARGET.CAPABILITY = NetworkServices ReadUserData -- 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 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: "4724d0bfd63f248914f18117ba0c6119" + image: "gridview.9.png" } Frame { msec: 8672 @@ -2790,7 +2790,7 @@ VisualTest { } Frame { msec: 9616 - hash: "02c632713d0dc64bff9d8e58f745df95" + image: "gridview.10.png" } Frame { msec: 9632 @@ -2831,7 +2831,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/gridview2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png index baeb1a6..27e0783 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png index 2d0c731..b0348ab 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png index af9ed05..c3113e9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png index 0b0945d..725d4e9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png index 618ae0c..cc6d8d6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png index fc31262..ccf9f5f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png index 22291ac..2f7f475 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png index 3021d58..fff1b40 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png index 2f2f5b9..27e0783 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml index 8ac4cbf..2c43f7d 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "33d81c39d16c6a326012499796e50e03" + image: "gridview2.1.png" } Frame { msec: 992 @@ -518,7 +518,7 @@ VisualTest { } Frame { msec: 1936 - hash: "77d5193bc5f53fe5cb98a236c55f841e" + image: "gridview2.2.png" } Frame { msec: 1952 @@ -806,7 +806,7 @@ VisualTest { } Frame { msec: 2896 - hash: "c88c120d64171197e4050cb73b56a766" + image: "gridview2.3.png" } Frame { msec: 2912 @@ -1086,7 +1086,7 @@ VisualTest { } Frame { msec: 3856 - hash: "b78cfa8624a7f7b382bb628648f8a9df" + image: "gridview2.4.png" } Key { type: 7 @@ -1350,7 +1350,7 @@ VisualTest { } Frame { msec: 4816 - hash: "ac37c4abbbc11b8e2bf8e0e8dae6180f" + image: "gridview2.5.png" } Key { type: 6 @@ -1622,7 +1622,7 @@ VisualTest { } Frame { msec: 5776 - hash: "03714e1fe57c2a438b0c89374a0d51b4" + image: "gridview2.6.png" } Frame { msec: 5792 @@ -1878,7 +1878,7 @@ VisualTest { } Frame { msec: 6736 - hash: "8d36bc2f3ab614d19f3ec8821f3e81ed" + image: "gridview2.7.png" } Key { type: 6 @@ -2134,7 +2134,7 @@ VisualTest { } Frame { msec: 7696 - hash: "5b3d4cd60019fb3382534949342f63ce" + image: "gridview2.8.png" } Frame { msec: 7712 @@ -2374,7 +2374,7 @@ VisualTest { } Frame { msec: 8656 - hash: "33d81c39d16c6a326012499796e50e03" + image: "gridview2.9.png" } Frame { msec: 8672 @@ -2391,7 +2391,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png index 7c27310..dd992cc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png index cbfdb23..887d395 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png index 5b7b426..055258d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png index 5af705e..dd992cc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png index af4395e..d3d35af 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png index cd12bc9..2028c96 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png index 471c86b..a667cf9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png index 653905e..2f0967d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml index 907480e..001861d 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "668cc6d9d699b947a7c0f3ff4b26853f" + image: "drag.1.png" } Frame { msec: 992 @@ -566,7 +566,7 @@ VisualTest { } Frame { msec: 1936 - hash: "978543d8f9688605625f40b960d79c28" + image: "drag.2.png" } Mouse { type: 5 @@ -1446,7 +1446,7 @@ VisualTest { } Frame { msec: 2896 - hash: "9356ce797d12ae076af947cd0e658551" + image: "drag.3.png" } Mouse { type: 5 @@ -2302,7 +2302,7 @@ VisualTest { } Frame { msec: 3856 - hash: "668cc6d9d699b947a7c0f3ff4b26853f" + image: "drag.4.png" } Mouse { type: 5 @@ -2974,7 +2974,7 @@ VisualTest { } Frame { msec: 4816 - hash: "c0cadb7730838d553b146804c37506b0" + image: "drag.5.png" } Mouse { type: 5 @@ -3870,7 +3870,7 @@ VisualTest { } Frame { msec: 5776 - hash: "7af87eb80fa9d87fe8d8b5e4a2fff5e1" + image: "drag.6.png" } Mouse { type: 5 @@ -4742,7 +4742,7 @@ VisualTest { } Frame { msec: 6736 - hash: "5e951eb6017a060287e398fcaf4aeba9" + image: "drag.7.png" } Mouse { type: 5 @@ -5126,7 +5126,7 @@ VisualTest { } Frame { msec: 7696 - hash: "2c1ce07ab6ce0072f6cb205f1e5297e0" + image: "drag.8.png" } Frame { msec: 7712 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png index c9536dc..87305b3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png index 1d9a39c..87305b3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png index 8fd0a97..b268c5c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png index 2cc486c..3926b9b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png index c9536dc..6956195 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.14.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.14.png new file mode 100644 index 0000000..87305b3 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.14.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png index 903312b..87305b3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png index 903312b..1d12691 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png index 64d760a..1d12691 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png index a45da4f..7f76076 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png index 6cb4d6f..02c6af0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png index 6cb4d6f..15f0ec5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png index 97cb175..15f0ec5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png index c9536dc..71bf9cd 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.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 0371a26..c862678 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "cc1fd2f4c3be318052254a9b6be7a57b" + image: "mousearea-flickable.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "cc1fd2f4c3be318052254a9b6be7a57b" + image: "mousearea-flickable.2.png" } Frame { msec: 1952 @@ -734,7 +734,7 @@ VisualTest { } Frame { msec: 2896 - hash: "4a60ab820ca66548384b2257b21de8ec" + image: "mousearea-flickable.3.png" } Frame { msec: 2912 @@ -974,7 +974,7 @@ VisualTest { } Frame { msec: 3856 - hash: "4a60ab820ca66548384b2257b21de8ec" + image: "mousearea-flickable.4.png" } Frame { msec: 3872 @@ -1486,7 +1486,7 @@ VisualTest { } Frame { msec: 4816 - hash: "7fb0ed99b7d751d1f335afd7c0de2f2c" + image: "mousearea-flickable.5.png" } Mouse { type: 5 @@ -2094,7 +2094,7 @@ VisualTest { } Frame { msec: 5776 - hash: "d75a43305e2884759ca41d7b1cbadf52" + image: "mousearea-flickable.6.png" } Frame { msec: 5792 @@ -2342,7 +2342,7 @@ VisualTest { } Frame { msec: 6736 - hash: "037386eb30a5e8d53a20a11258ee0f60" + image: "mousearea-flickable.7.png" } Frame { msec: 6752 @@ -2582,7 +2582,7 @@ VisualTest { } Frame { msec: 7696 - hash: "037386eb30a5e8d53a20a11258ee0f60" + image: "mousearea-flickable.8.png" } Frame { msec: 7712 @@ -3190,7 +3190,7 @@ VisualTest { } Frame { msec: 8656 - hash: "da5c33ee9e9e1d9aaa7d5efa83b8bf69" + image: "mousearea-flickable.9.png" } Mouse { type: 5 @@ -3550,7 +3550,7 @@ VisualTest { } Frame { msec: 9616 - hash: "cc1fd2f4c3be318052254a9b6be7a57b" + image: "mousearea-flickable.10.png" } Frame { msec: 9632 @@ -3798,7 +3798,7 @@ VisualTest { } Frame { msec: 10576 - hash: "90cdfe8920f115fd55cde6fdbd95e867" + image: "mousearea-flickable.11.png" } Frame { msec: 10592 @@ -4366,7 +4366,7 @@ VisualTest { } Frame { msec: 11536 - hash: "05b3013c9e42ed9ced7009d2e2999357" + image: "mousearea-flickable.12.png" } Mouse { type: 5 @@ -4862,7 +4862,7 @@ VisualTest { } Frame { msec: 12496 - hash: "a569789b082296415321ba11c859abe5" + image: "mousearea-flickable.13.png" } Frame { msec: 12512 @@ -5083,7 +5083,7 @@ VisualTest { Key { type: 6 key: 16777251 - modifiers: 134217728 + modifiers: 0 text: "" autorep: false count: 1 @@ -5110,7 +5110,7 @@ VisualTest { } Frame { msec: 13456 - hash: "cc1fd2f4c3be318052254a9b6be7a57b" + image: "mousearea-flickable.14.png" } Frame { msec: 13472 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.1.png new file mode 100644 index 0000000..e2e90d2 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.10.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.10.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.11.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.11.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.12.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.12.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.12.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.13.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.13.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.13.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.14.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.14.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.14.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.15.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.15.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.15.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.2.png new file mode 100644 index 0000000..25facec Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.3.png new file mode 100644 index 0000000..25facec Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.4.png new file mode 100644 index 0000000..25facec Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.5.png new file mode 100644 index 0000000..630b14a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.6.png new file mode 100644 index 0000000..630b14a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.7.png new file mode 100644 index 0000000..630b14a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.8.png new file mode 100644 index 0000000..630b14a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.9.png new file mode 100644 index 0000000..93cf54c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.9.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 63c2012..2daeebc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + image: "mousearea-visual.1.png" } Frame { msec: 992 @@ -654,7 +654,7 @@ VisualTest { } Frame { msec: 1936 - hash: "73f1639b9e2164c7b974042934c0d151" + image: "mousearea-visual.2.png" } Mouse { type: 5 @@ -1006,7 +1006,7 @@ VisualTest { } Frame { msec: 2896 - hash: "73f1639b9e2164c7b974042934c0d151" + image: "mousearea-visual.3.png" } Mouse { type: 5 @@ -1390,7 +1390,7 @@ VisualTest { } Frame { msec: 3856 - hash: "73f1639b9e2164c7b974042934c0d151" + image: "mousearea-visual.4.png" } Frame { msec: 3872 @@ -1718,7 +1718,7 @@ VisualTest { } Frame { msec: 4816 - hash: "12edb0902e4d480c9052b00edc1a0a42" + image: "mousearea-visual.5.png" } Mouse { type: 5 @@ -2206,7 +2206,7 @@ VisualTest { } Frame { msec: 5776 - hash: "12edb0902e4d480c9052b00edc1a0a42" + image: "mousearea-visual.6.png" } Frame { msec: 5792 @@ -2478,7 +2478,7 @@ VisualTest { } Frame { msec: 6736 - hash: "12edb0902e4d480c9052b00edc1a0a42" + image: "mousearea-visual.7.png" } Mouse { type: 4 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 7696 - hash: "12edb0902e4d480c9052b00edc1a0a42" + image: "mousearea-visual.8.png" } Frame { msec: 7712 @@ -3102,7 +3102,7 @@ VisualTest { } Frame { msec: 8656 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.9.png" } Mouse { type: 5 @@ -3550,7 +3550,7 @@ VisualTest { } Frame { msec: 9616 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.10.png" } Mouse { type: 5 @@ -4438,7 +4438,7 @@ VisualTest { } Frame { msec: 10576 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.11.png" } Frame { msec: 10592 @@ -4694,7 +4694,7 @@ VisualTest { } Frame { msec: 11536 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.12.png" } Frame { msec: 11552 @@ -4982,7 +4982,7 @@ VisualTest { } Frame { msec: 12496 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.13.png" } Frame { msec: 12512 @@ -5318,7 +5318,7 @@ VisualTest { } Frame { msec: 13456 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.14.png" } Frame { msec: 13472 @@ -5734,7 +5734,7 @@ VisualTest { } Frame { msec: 14416 - hash: "194ebac4ae7d95bf427f8161885a13e1" + image: "mousearea-visual.15.png" } Frame { msec: 14432 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png index 578c9e9..024a17c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png index 24c6126..8860fc2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.3.png new file mode 100644 index 0000000..2ab8ee3 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml index b307141..2930e28 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "2b33354b9e53eae7ebd5996ae0350773" + image: "particles.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "00743f1dceb5d0351a67a237bcf1985b" + image: "particles.2.png" } Frame { msec: 1952 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 2896 - hash: "449168c60d6c9f04c94b3c48f27de7ff" + image: "particles.3.png" } Frame { msec: 2912 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png index 3e1a92d..699f83e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png index 8658d7d..a742a6a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png index f1a56d7..71abae2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png index e1eaebf..a6e6b3e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png index e1eaebf..9f125c4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png index 06e7d18..41d0cd5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png differ 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 bd480cc..b75d140 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml @@ -10,1237 +10,841 @@ VisualTest { } Frame { msec: 32 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 48 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 64 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 80 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 96 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 112 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 128 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 144 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 160 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 176 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 192 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 208 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 224 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 240 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 256 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 272 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 288 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 304 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 320 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 336 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 352 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 368 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 384 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 400 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 416 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 432 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 448 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 464 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 480 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 496 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 512 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 528 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 544 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 560 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 576 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 592 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 608 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 624 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 640 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 656 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 672 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 688 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 260; y: 189 + modifiers: 0 + sendToViewport: true } Frame { msec: 704 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" } Frame { msec: 720 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 261; y: 188 + modifiers: 0 + sendToViewport: true } Frame { msec: 736 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 262; y: 188 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 266; y: 186 + modifiers: 0 + sendToViewport: true } Frame { msec: 752 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "e21cac055208e47e267ac906c7c2ca9c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 283; y: 183 + modifiers: 0 + sendToViewport: true } Frame { msec: 768 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "131e094a79edbeea9a1b981592e55abf" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 302; y: 181 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 331; y: 181 + modifiers: 0 + sendToViewport: true } Frame { msec: 784 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "73faabf52bd2af8d8b9d28ce21e5e77b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 384; y: 179 + modifiers: 0 + sendToViewport: true } Frame { msec: 800 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "359554a95362db1734f606cf677001fc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 432; y: 175 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 432; y: 175 + modifiers: 0 + sendToViewport: true } Frame { msec: 816 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "8ef4ecc5c5ba578f0279dc57a6c17ccd" } Frame { msec: 832 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "69c3d9d2700dd395b656b0b09fa63511" } Frame { msec: 848 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "2bbcc36d72c3e9a4b672a46f2aae5076" } Frame { msec: 864 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "125a5f0c8efdf97676edbe379660dcce" } Frame { msec: 880 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "4347a02227207fbf870b6aed76131619" } Frame { msec: 896 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "e08b494c818669bfc48273598574d22e" } Frame { msec: 912 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "186cb5465f45c0df8082ec8cad6ee8b1" } Frame { msec: 928 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "91d04d4469492c3bb2a1ed415dcd904c" } Frame { msec: 944 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "8cc8ef251d68af926a8f300b8666ecfd" } Frame { msec: 960 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "42f64722245f8519386e75ce7e3c0cd9" } Frame { msec: 976 - hash: "cffe9de189a5c9bed3d98f8803b47212" + image: "test-pathview-2.1.png" } Frame { msec: 992 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "058311da9dcf73a4b4928038334b04b5" } Frame { msec: 1008 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "ea662934ee0c3c8d4dbde3ad49448922" } Frame { msec: 1024 - hash: "cffe9de189a5c9bed3d98f8803b47212" + hash: "01991a871819e7bdbf817580f720ead6" } Frame { msec: 1040 - hash: "cffe9de189a5c9bed3d98f8803b47212" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 562; y: 250 - modifiers: 0 - sendToViewport: true + hash: "69a7fe47ae589bcc2607cc42fcea7451" } Frame { msec: 1056 - hash: "cffe9de189a5c9bed3d98f8803b47212" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 557; y: 251 - modifiers: 0 - sendToViewport: true + hash: "8240d087b767311e00b7dd4b8726246c" } Frame { msec: 1072 - hash: "cffe9de189a5c9bed3d98f8803b47212" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 544; y: 254 - modifiers: 0 - sendToViewport: true + hash: "cc70c8e79d68f09e6db0dd43b99906b7" } Frame { msec: 1088 - hash: "e8c46deb6b5f5739e4b95d53619e9314" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 534; y: 258 - modifiers: 0 - sendToViewport: true + hash: "2bfabef74bc6e1dbf72111838a0e7557" } Frame { msec: 1104 - hash: "11d19a126669227211f399d262bfd8bd" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 511; y: 267 - modifiers: 0 - sendToViewport: true + hash: "66616f01553364c5bd589b781e22163a" } Frame { msec: 1120 - hash: "46d81424418241d7dd98c581491c08c7" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 499; y: 272 - modifiers: 0 - sendToViewport: true + hash: "58b9de84ebdaabee3917608f2af3bbdb" } Frame { msec: 1136 - hash: "8674dba6282cd9dd6ca31442f7f996e2" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 473; y: 281 - modifiers: 0 - sendToViewport: true + hash: "964d96b9b783efb1053501f8a6931248" } Frame { msec: 1152 - hash: "efc9e337337267c43b865f33c8912c4c" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 459; y: 285 - modifiers: 0 - sendToViewport: true + hash: "055b77b921a2bac71b6780ab3179f19f" } Frame { msec: 1168 - hash: "b3fd11ff8cf16bad9fd7e1329add6029" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 446; y: 288 - modifiers: 0 - sendToViewport: true + hash: "074904f31b4f7cf0679f0bf7bba30af2" } Frame { msec: 1184 - hash: "3be61bd51ca152965c0e789a7587fe98" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 433; y: 290 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 433; y: 290 - modifiers: 0 - sendToViewport: true + hash: "f020a490b6800d5b4402ecb9a8bcd436" } Frame { msec: 1200 - hash: "9b02fac96198b587d59b10ddc021dfca" + hash: "1615bdedf92f91f089e494d893840c4b" } Frame { msec: 1216 - hash: "505b19e66a416012cc10125381b3e012" + hash: "b6892f6a5db6d211f0d1bb2bbe5045bf" } Frame { msec: 1232 - hash: "eff92d7a9b0962067d5ef97e86a23c07" + hash: "5f0d903ba682923ac69454026a359ed9" } Frame { msec: 1248 - hash: "74f48d40be0dd93988d01aa18f26ae96" + hash: "da5bae496a9ad28585151f4c75ee0c9f" } Frame { msec: 1264 - hash: "1f8608199813f9c54c426f59290089fa" + hash: "68f553248f7ca116671782d1c357b552" } Frame { msec: 1280 - hash: "8b4e68ab41bf4e0e23d86c7f99ff11a5" + hash: "5503df04dd7f4c88314f9d309a5b36b4" } Frame { msec: 1296 - hash: "00180bb46496f5b10350071a7f0e1f85" + hash: "cc48c1f58b553adcb27d60f176e2b910" } Frame { msec: 1312 - hash: "d966232acbb1ecf2339a1df02642dd9e" + hash: "661f546199d8753a7b6f6ccea5928c12" } Frame { msec: 1328 - hash: "0235a7aa18d390099e6934971354f878" + hash: "0fd70052c100f77bddbad177d9e5573d" } Frame { msec: 1344 - hash: "136159dc7d4775e108c4738b7c1bcc86" + hash: "488e0652c0ed82a014de63a64145c34c" } Frame { msec: 1360 - hash: "e976f2c7ef3d61c2e200fcc849e9f4cd" + hash: "8b6bf2519080a6e4a61fe216f72dfa09" } Frame { msec: 1376 - hash: "09181b465a9d228006e827b56ec83c1d" + hash: "4dab1827f6ce9561297fce8e067df1bd" } Frame { msec: 1392 - hash: "8b3f884ac343f1272e3d3af6b2b4d875" + hash: "b3f4c5cd728eaf2b791612a7fea64e7b" } Frame { msec: 1408 - hash: "419ffc2f8685ea8d1e5232c4440b2d96" + hash: "3d01abd0b8a5a62d58a4c09546f212d8" } Frame { msec: 1424 - hash: "105b3cc7c5b8f07e90a3c3aaa9d78ce7" + hash: "e76796498cf595c60d4b60cc0e320601" } Frame { msec: 1440 - hash: "6005de2db98dfd9cb8e3cb42a668a6bd" + hash: "1b31e96f2823e78a0c4029e7bc45b9f2" } Frame { msec: 1456 - hash: "2bae12b6d577965a3cd24bb05c4f5e44" + hash: "f75c182dc24f4fabe1034ee494dba2ad" } Frame { msec: 1472 - hash: "e74db37aedd78bf1765d0a3b4ed89023" + hash: "646c12edadf350405709860381cfced6" } Frame { msec: 1488 - hash: "49511dcf43ce2dbbe4fbafb461189e72" + hash: "b6719406da9f2484fe55e3c69184f86c" } Frame { msec: 1504 - hash: "21183bde6a5cb1d9769e01630e1b593a" + hash: "5456857d6d48d064df1cb3f35d8447b5" } Frame { msec: 1520 - hash: "15bef0512513a0bdef002a4af5e1b3d3" + hash: "8d1809b568345e1532fb6d9428fc9729" } Frame { msec: 1536 - hash: "d46944a859d8be8c3371bf719ffe6251" + hash: "5cffa76fe09a771a9f62a9f0392f0431" } Frame { msec: 1552 - hash: "2a5249bc1e0eba408654d6500fe22e6f" + hash: "8de59915e874ce829c691a19ac930f28" } Frame { msec: 1568 - hash: "df860d60c47ea0eae7ed917ce1cd0578" + hash: "9027bbf8121f70d26530f70423ec05b7" } Frame { msec: 1584 - hash: "90bfd7e58c63e7e2ad647d37a597c084" + hash: "d3d1d8b9f7b4eb74a8b7ae5cf19a8e20" } Frame { msec: 1600 - hash: "a400250799ca74b0de5fa0b00ea54223" + hash: "81ffcc0147e3124a3015deb7c0dbfd90" } Frame { msec: 1616 - hash: "1943506235c641ee444394b2bf48f2ea" + hash: "ca0c96e908f05c4ee1af1f80d7b432aa" } Frame { msec: 1632 - hash: "ac9dd2d323a513f6cf729890b5b6dccc" + hash: "2bdb6fbf942623856a6963c335794dd2" } Frame { msec: 1648 - hash: "029cbaec81f7e1251d8de63b8011f06e" + hash: "18ac264d9ea9b592b0738f1cf732f678" } Frame { msec: 1664 - hash: "c0cf823c09a96cf8b6ac063a87f1e5ed" + hash: "1ee9adbbae7b97dc050c82b8ed7b0aad" } Frame { msec: 1680 - hash: "9ed0e1fef6937f5e05b6647b0fb9d534" + hash: "b502390c452883ade550d2761bb09d3d" } Frame { msec: 1696 - hash: "61b878c5c6db407032c6abb76e49e1b2" + hash: "31a6f573fbb3f545ee051e2290938004" } Frame { msec: 1712 - hash: "b842458ea2b17501f089c9b5cdd15cc4" + hash: "3be9788228d9e540313e75671319c5b7" } Frame { msec: 1728 - hash: "8a308f9048be4323eb82229b2bcdfbe2" + hash: "23cbd718154f939d8270674e8f7607f0" } Frame { msec: 1744 - hash: "5a4e29c2d768a3d0ca319ae7406920dd" + hash: "5f7f49b894b80ddd7cdc544a49ec24a2" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 275; y: 170 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 278; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 1760 - hash: "b96f98a169e700ccf5c77b42e1143d50" + hash: "2a1ddee3d3a0c2a4fffab3988e35e274" } Frame { msec: 1776 - hash: "570b2182f63d4eebc2c9d136636c5c7a" + hash: "2a1ddee3d3a0c2a4fffab3988e35e274" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 279; y: 171 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 282; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 1792 - hash: "df2bb468c032ce62cc23ac3600123649" + hash: "5594b9139480ba1c814509a049f9b6c5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 290; y: 172 + modifiers: 0 + sendToViewport: true } Frame { msec: 1808 - hash: "f6579e334ba34bae43c6fa9bae465e32" + hash: "d8729deb404f5b821264743943adb288" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 292; y: 172 + modifiers: 0 + sendToViewport: true } Frame { msec: 1824 - hash: "b6bba71527e894c0520eb840db66fc8a" + hash: "6de642baf7698ec65d48ccf0a1e8e7db" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 294; y: 171 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 297; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 1840 - hash: "510afb9fd3812786cfdfb82b7131a158" + hash: "f6732999861d1f638484a5aaa9cf0550" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 302; y: 170 + modifiers: 0 + sendToViewport: true } Frame { msec: 1856 - hash: "13da41ed3e0e071c1645e71a003a8a1d" + hash: "7cd7c1679838f35556bd4ee4565b7a86" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 305; y: 170 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 308; y: 169 + modifiers: 0 + sendToViewport: true } Frame { msec: 1872 - hash: "c09aabd8c11c6124d97793563b274c7a" + hash: "4276a4d9350503603b0c9c98552697b3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 313; y: 169 + modifiers: 0 + sendToViewport: true } Frame { msec: 1888 - hash: "34101fd20242b0b48d056f24f21c8939" + hash: "954a47627aee0a1128a78191bf32d984" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 331; y: 165 + modifiers: 0 + sendToViewport: true } Frame { msec: 1904 - hash: "34f064cb167b85e79a2f113eb430a675" + hash: "360a47795f7f9389f82f2f55fa1fe83f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 340; y: 164 + modifiers: 0 + sendToViewport: true } Frame { msec: 1920 - hash: "f5ba4db3c12a466791dc657e10d5d380" + hash: "19d4284791d0031342ba995bd17a7833" } - Frame { - msec: 1936 - hash: "d50eb3d7eaad3d2a825876dcf1f59d91" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 354; y: 163 + modifiers: 0 + sendToViewport: true } Frame { - msec: 1952 - hash: "c0c308b9eb3af4c1af3bc7e197696475" - } - Frame { - msec: 1968 - hash: "67e630b9f050a64645e276695f3d4932" - } - Frame { - msec: 1984 - hash: "5bb212885448a7506ee6de766ea80a8a" - } - Frame { - msec: 2000 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2016 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2032 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2048 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2064 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2080 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2096 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2112 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2128 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2144 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2160 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2176 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2192 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2208 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2224 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2240 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2256 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2272 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2288 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2304 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2320 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2336 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2352 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2368 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2384 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2400 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2416 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2432 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2448 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Frame { - msec: 2464 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 591; y: 245 - modifiers: 0 - sendToViewport: true + msec: 1936 + image: "test-pathview-2.2.png" } Mouse { type: 5 button: 0 buttons: 1 - x: 588; y: 245 + x: 361; y: 161 modifiers: 0 sendToViewport: true } - Frame { - msec: 2480 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 585; y: 245 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2496 - hash: "f9ec9b4de5244e58fbba2f6871e4a61b" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 582; y: 245 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2512 - hash: "a123e6b06abaa4dda4645bc174edc6ad" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 574; y: 245 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 565; y: 246 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2528 - hash: "a706a48bce5eec7a1d55fec0df8c4d81" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 553; y: 246 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2544 - hash: "297edbcda96e508dc9d0d977951c015a" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 538; y: 246 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2560 - hash: "7d334b1b7bfe3893473b02b49e2e1bda" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 523; y: 247 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 523; y: 247 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 2576 - hash: "45ba14d15a8fcac259a06dc85a935f18" - } - Frame { - msec: 2592 - hash: "0119f472e718a8e6bc59a998c18beb7f" - } - Frame { - msec: 2608 - hash: "fb08ca9960ec17a26dcf27de6474392f" - } - Frame { - msec: 2624 - hash: "b209bd311ce16fa9daf612786b7c5f53" - } - Frame { - msec: 2640 - hash: "d47eb1544d2c417e5b452df6715efe0e" - } - Frame { - msec: 2656 - hash: "caf3eeb521fbd0b5f97e99111d4a2416" - } - Frame { - msec: 2672 - hash: "5726e2e19aca222de3ce0125cf1def6c" - } - Frame { - msec: 2688 - hash: "7f2ca733f50390284d90e757788c6c64" - } - Frame { - msec: 2704 - hash: "72eb5d86be5e9b477abbfbfae78261fc" - } - Frame { - msec: 2720 - hash: "f0a1dda33df6856a02e5668c6bb45aa2" - } - Frame { - msec: 2736 - hash: "55863490cefc48da96a368b95055ac2b" - } - Frame { - msec: 2752 - hash: "e01c23ac71fd3906a47b4a969ee592d9" - } - Frame { - msec: 2768 - hash: "b45eb0154d405b49c9f7ea1452601b4e" - } - Frame { - msec: 2784 - hash: "b5bf040d5dbf4f7cf8c5a0dc3d6aaea1" - } - Frame { - msec: 2800 - hash: "c171c81a12d4971f33154e52f789967a" - } - Frame { - msec: 2816 - hash: "fac8265a6d744a11120a0d434821d8b4" - } - Frame { - msec: 2832 - hash: "2b6b1f9aa8aa32c9e48579d215e31268" - } - Frame { - msec: 2848 - hash: "8455997dc106cd5d386eb3cf3703828c" - } - Frame { - msec: 2864 - hash: "c6525e8ee9c7ac6fa4d0c8d6dd4e1745" - } - Frame { - msec: 2880 - hash: "51203c662d086a15cecc390f0aeeac0d" - } - Frame { - msec: 2896 - hash: "bc501c449f5d8b7de40b27204c5344a4" - } - Frame { - msec: 2912 - hash: "fe850b5232c819a9171d0b93aaf5e811" - } - Frame { - msec: 2928 - hash: "a54d819719aeb80392e5b6ffbc25dea0" - } - Frame { - msec: 2944 - hash: "8479d90984fd9f619b86529231b840fd" - } - Frame { - msec: 2960 - hash: "6bfa9782e64bfc0041175073aa2bbb80" - } - Frame { - msec: 2976 - hash: "8df19b6bd14c7e1f014dfdb4cc887263" - } - Frame { - msec: 2992 - hash: "02dd88bf2766c756b840bea3e6f7dd80" - } - Frame { - msec: 3008 - hash: "edf9f3ca4b85ffba5ca051d96b1b3b64" - } - Frame { - msec: 3024 - hash: "7da796da178c888018981d7dd39b3784" - } - Frame { - msec: 3040 - hash: "d4b850c173169ec184634bb2001e3f3d" - } - Frame { - msec: 3056 - hash: "37afe96e32df2ac6031d70fe9ded7d56" - } - Frame { - msec: 3072 - hash: "7a0f09bc5d91c4295000d39c97b31d76" - } - Frame { - msec: 3088 - hash: "afbbb94bc89ef4f9e321dd2c391d0af1" - } - Frame { - msec: 3104 - hash: "93c4ff33449244b76103f0d35cc7a9e1" - } - Frame { - msec: 3120 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3136 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3152 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3168 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3184 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3200 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3216 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3232 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3248 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3264 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3280 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3296 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3312 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3328 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3344 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3360 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3376 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3392 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3408 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3424 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3440 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3456 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3472 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3488 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3504 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3520 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3536 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3552 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3568 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3584 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3600 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3616 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3632 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3648 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3664 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3680 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3696 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3712 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3728 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3744 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3760 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3776 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3792 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3808 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3824 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" - } - Frame { - msec: 3840 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 367; y: 160 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3856 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 1952 + hash: "e9cd8fb810ecf39a90af039ead97aaf1" } - Frame { - msec: 3872 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 371; y: 160 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 3888 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 376; y: 158 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3904 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 1968 + hash: "42df1a0fbbe7cce5f2359d9e02696299" } - Frame { - msec: 3920 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 383; y: 157 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3936 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 1984 + hash: "cc71434d6bd162386b80cb3b7e387116" } - Frame { - msec: 3952 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 387; y: 157 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 3968 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 391; y: 157 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3984 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2000 + hash: "a130b471b3903f3f1d77f2306da2b92e" } - Frame { - msec: 4000 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 394; y: 156 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4016 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2016 + hash: "5bdb7472e325651e891c115953afdb39" } Mouse { - type: 2 - button: 1 + type: 5 + button: 0 buttons: 1 - x: 305; y: 280 + x: 395; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 4032 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2032 + hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" } Mouse { type: 5 button: 0 buttons: 1 - x: 305; y: 281 + x: 396; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 4048 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2048 + hash: "8eb1f2c8c02c2acf4262e05000045649" } Mouse { type: 5 button: 0 buttons: 1 - x: 306; y: 281 + x: 398; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 4064 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2064 + hash: "514220d357c4a26e4aaf9ed20d3f4f33" } Mouse { type: 5 button: 0 buttons: 1 - x: 308; y: 281 + x: 401; y: 155 modifiers: 0 sendToViewport: true } Frame { - msec: 4080 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2080 + hash: "e44526ef273048028d5989fc662eb7e6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 403; y: 155 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 310; y: 282 + x: 406; y: 155 modifiers: 0 sendToViewport: true } Frame { - msec: 4096 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2096 + hash: "29ac091428a89cfcb4c52c08e0e10327" } Mouse { type: 5 button: 0 buttons: 1 - x: 313; y: 283 + x: 408; y: 154 modifiers: 0 sendToViewport: true } @@ -1248,87 +852,119 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 317; y: 283 + x: 409; y: 154 modifiers: 0 sendToViewport: true } Frame { - msec: 4112 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2112 + hash: "82beb845af88fc9432dc104ff805a146" } Mouse { type: 5 button: 0 buttons: 1 - x: 321; y: 283 + x: 411; y: 153 modifiers: 0 sendToViewport: true } Frame { - msec: 4128 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2128 + hash: "371392f267b2c1f4e29963506180e246" } Mouse { type: 5 button: 0 buttons: 1 - x: 328; y: 283 + x: 413; y: 153 modifiers: 0 sendToViewport: true } Frame { - msec: 4144 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2144 + hash: "1da06d036cc0a2d2de34eee37b6981c0" + } + Frame { + msec: 2160 + hash: "1da06d036cc0a2d2de34eee37b6981c0" } Mouse { type: 5 button: 0 buttons: 1 - x: 341; y: 283 + x: 414; y: 153 modifiers: 0 sendToViewport: true } + Frame { + msec: 2176 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2192 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2208 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2224 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2240 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2256 + hash: "4980de22342d1085e205401090777d24" + } + Frame { + msec: 2272 + hash: "4980de22342d1085e205401090777d24" + } Mouse { type: 5 button: 0 buttons: 1 - x: 347; y: 282 + x: 412; y: 153 modifiers: 0 sendToViewport: true } Frame { - msec: 4160 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2288 + hash: "e0a52543b976dc998615704c63b1f3e9" } Mouse { type: 5 button: 0 buttons: 1 - x: 360; y: 281 + x: 409; y: 154 modifiers: 0 sendToViewport: true } Frame { - msec: 4176 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2304 + hash: "82beb845af88fc9432dc104ff805a146" } Mouse { type: 5 button: 0 buttons: 1 - x: 385; y: 282 + x: 401; y: 155 modifiers: 0 sendToViewport: true } Frame { - msec: 4192 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2320 + hash: "e44526ef273048028d5989fc662eb7e6" } Mouse { type: 5 button: 0 buttons: 1 - x: 433; y: 292 + x: 399; y: 155 modifiers: 0 sendToViewport: true } @@ -1336,43 +972,67 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 486; y: 307 + x: 396; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 4208 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2336 + hash: "8eb1f2c8c02c2acf4262e05000045649" } Mouse { type: 5 button: 0 buttons: 1 - x: 538; y: 322 + x: 393; y: 158 modifiers: 0 sendToViewport: true } Frame { - msec: 4224 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2352 + hash: "442958c3a705745204db96ff9902b7fc" } Mouse { type: 5 button: 0 buttons: 1 - x: 588; y: 336 + x: 392; y: 158 modifiers: 0 sendToViewport: true } Frame { - msec: 4240 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2368 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2384 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2400 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2416 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2432 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2448 + hash: "a130b471b3903f3f1d77f2306da2b92e" + } + Frame { + msec: 2464 + hash: "a130b471b3903f3f1d77f2306da2b92e" } Mouse { type: 5 button: 0 buttons: 1 - x: 620; y: 343 + x: 391; y: 159 modifiers: 0 sendToViewport: true } @@ -1380,43 +1040,43 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 677; y: 354 + x: 390; y: 159 modifiers: 0 sendToViewport: true } Frame { - msec: 4256 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2480 + hash: "374dc7c3ea0c93ac93a857a4620bc031" } Mouse { type: 5 button: 0 buttons: 1 - x: 733; y: 362 + x: 377; y: 159 modifiers: 0 sendToViewport: true } Frame { - msec: 4272 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2496 + hash: "0b943f48b39053bfc906a4a47a37d68a" } Mouse { type: 5 button: 0 buttons: 1 - x: 785; y: 365 + x: 331; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 4288 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2512 + hash: "099fbdf1560dd79b700914863406c904" } Mouse { type: 5 button: 0 buttons: 1 - x: 830; y: 365 + x: 294; y: 154 modifiers: 0 sendToViewport: true } @@ -1424,43 +1084,63 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 861; y: 357 + x: 249; y: 151 modifiers: 0 sendToViewport: true } Frame { - msec: 4304 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2528 + hash: "3aa1614cc49504d19e979ebf190f2970" } Mouse { type: 5 button: 0 buttons: 1 - x: 879; y: 346 + x: 129; y: 141 modifiers: 0 sendToViewport: true } Frame { - msec: 4320 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2544 + hash: "837420c71a5010f25cccd05e5e9b3eec" } Mouse { type: 5 button: 0 buttons: 1 - x: 888; y: 335 + x: 9; y: 133 modifiers: 0 sendToViewport: true } Frame { - msec: 4336 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2560 + hash: "871349fc09f418717231b8f8e20a7fff" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -48; y: 128 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -99; y: 126 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2576 + hash: "9b6022024aae22ec1f522fd00ed29e9b" } Mouse { type: 5 button: 0 buttons: 1 - x: 893; y: 326 + x: -173; y: 129 modifiers: 0 sendToViewport: true } @@ -1468,387 +1148,431 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 893; y: 326 + x: -173; y: 129 modifiers: 0 sendToViewport: true } Frame { - msec: 4352 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2592 + hash: "8d9410909ae259388fa94b3a60342608" } Frame { - msec: 4368 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2608 + hash: "0ceb355351ac99458ba75776c11b3039" } Frame { - msec: 4384 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2624 + hash: "61ca917ecc8ad4c35b7f2a3b828542bf" } Frame { - msec: 4400 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2640 + hash: "fd5db933d1d8684b15eb5239d19d8919" } Frame { - msec: 4416 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2656 + hash: "13f466a82ee22cabf5cbd2463f55b46a" } Frame { - msec: 4432 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2672 + hash: "3b7f7880f5b568a0e45cd0e268822f3a" } Frame { - msec: 4448 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2688 + hash: "cca22501c3b5a2ed4264ba060eeb1a6e" } Frame { - msec: 4464 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2704 + hash: "efe5258ac5962d1d2bfa4286c1621830" } Frame { - msec: 4480 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2720 + hash: "141998cff765a4e90836b871f229a1ca" } Frame { - msec: 4496 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2736 + hash: "9d684675fa883d5488194effcb1d8d0a" } Frame { - msec: 4512 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2752 + hash: "fa87f781048f264ddf447441a714ee50" } Frame { - msec: 4528 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2768 + hash: "61b4992b9c52222345c9ada3148d50f9" } Frame { - msec: 4544 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2784 + hash: "3e255a634d215746cb95f5d765335ea2" } Frame { - msec: 4560 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2800 + hash: "d64a755e47a502244e7f14f2091f0ca6" } Frame { - msec: 4576 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2816 + hash: "582562992b0652f995b439897182e0f8" } Frame { - msec: 4592 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 2832 + hash: "2d69b1a274c262faf5ce9ed3191c7d22" + } + Frame { + msec: 2848 + hash: "36c04a2bd58124877a332bb6a262a7e5" + } + Frame { + msec: 2864 + hash: "798711925da8f5034039dad86cc1fad1" + } + Frame { + msec: 2880 + hash: "31495157a10c3bb4dd70cfd857fd07e6" + } + Frame { + msec: 2896 + image: "test-pathview-2.3.png" + } + Frame { + msec: 2912 + hash: "b81330eb50dbd39f1abcdb8ff1553d08" + } + Frame { + msec: 2928 + hash: "ececcb86b76e9cd2f57585bd87e16bef" + } + Frame { + msec: 2944 + hash: "2c37e2c24cf22a334cfcc6f2691ad9fb" + } + Frame { + msec: 2960 + hash: "ad0572020d273dbca046357aa0f8bf3b" + } + Frame { + msec: 2976 + hash: "51a469e059a5e1a3675db731f55209d3" + } + Frame { + msec: 2992 + hash: "dca7d50a3faab1f049bece34bd16b8c4" + } + Frame { + msec: 3008 + hash: "86dc86bafb01fa086caa3b22f9d393d9" + } + Frame { + msec: 3024 + hash: "05754bd86070a6f01bf90ca2b964f695" + } + Frame { + msec: 3040 + hash: "911ec290ba303f0cac258cbb893bbf78" + } + Frame { + msec: 3056 + hash: "f27f29249426f46b8fb508372bcbb32d" + } + Frame { + msec: 3072 + hash: "2f452e2d519f33ee03db67ebd7f69e3b" + } + Frame { + msec: 3088 + hash: "35cf7747a75ea3f727c2fe1dae6136c5" } Frame { - msec: 4608 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3104 + hash: "6773187693f52a8f2c0e358e379b4d21" } Frame { - msec: 4624 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3120 + hash: "abca1f00f7ec60c8c80ba5345898e54b" } Frame { - msec: 4640 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3136 + hash: "9bee1da64534da97de349e1ee973cc9c" } Frame { - msec: 4656 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3152 + hash: "087df06ca720918482f2e29653c7fbac" } Frame { - msec: 4672 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3168 + hash: "5b08911bf0975bd6615bf29294e4b1f5" } Frame { - msec: 4688 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3184 + hash: "dead4bb3768b65418f68bae7dd0bf004" } Frame { - msec: 4704 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3200 + hash: "6bfe4c866936d8ae509650419ae12455" } Frame { - msec: 4720 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3216 + hash: "7428bdd9609a2594be08fdeac6ff1e17" } Frame { - msec: 4736 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3232 + hash: "d02f9f693e0ae8c7034bf727064ec28a" } Frame { - msec: 4752 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3248 + hash: "b6284efd849547bbfefc22ec77d61062" } Frame { - msec: 4768 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3264 + hash: "4b78b647be8e918e85edab0c23b6f882" } Frame { - msec: 4784 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3280 + hash: "c4a02c18ce3574d057e6a54b30efadb3" } Frame { - msec: 4800 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3296 + hash: "d1d190010239d0b02a697d1c63c748ab" } Frame { - msec: 4816 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3312 + hash: "b198689d11aa59d937297e6fcf675c93" } Frame { - msec: 4832 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3328 + hash: "218f3371beea895aefd28aa874012dcc" } Frame { - msec: 4848 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3344 + hash: "1135de1b9a4ebf1d2829546d3c3f3903" } Frame { - msec: 4864 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3360 + hash: "773a64cc7bb8e99a25078f348986e28f" } Frame { - msec: 4880 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3376 + hash: "e8ce58aeb18b3f56ebd3d6f61ac94657" } Frame { - msec: 4896 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3392 + hash: "6de92679c32c7f3e9d9b6ba3a47e65eb" } Frame { - msec: 4912 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3408 + hash: "339b37207af10ad986269e21ab37ff6d" } Frame { - msec: 4928 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3424 + hash: "ac01f0708800fdfdacec67ac9e80602f" } Frame { - msec: 4944 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3440 + hash: "9de89a748b1e18eb6ed94875af6f26de" } Frame { - msec: 4960 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3456 + hash: "d091e4a93c2beafb0ce4b6dff6d5b05f" } Frame { - msec: 4976 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3472 + hash: "9532271085864d2fde3aa6e572599588" } Frame { - msec: 4992 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3488 + hash: "d00804b42ab1c1f082a9f394ff4d666e" } Frame { - msec: 5008 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3504 + hash: "2c745f007353e6f8a7195470ba9492c2" } Frame { - msec: 5024 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3520 + hash: "b4e952acb734ab1a608297fcb44fbe46" } Frame { - msec: 5040 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3536 + hash: "75ceed3c2ddd557866145393fa50a12f" } Frame { - msec: 5056 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3552 + hash: "8b83b80554dd4a1266184092d380554c" } Frame { - msec: 5072 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3568 + hash: "973bddb1b2f9dbadd40c0de3ca7c3510" } Frame { - msec: 5088 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3584 + hash: "5691b5bf54b50d4ff0a717873e001c00" } Frame { - msec: 5104 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3600 + hash: "8b26b0aa8b06da031354c59d7fb41bf0" } Frame { - msec: 5120 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3616 + hash: "45786c39a10b8e1cf399df98f3fb7ffb" } Frame { - msec: 5136 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3632 + hash: "c6d0be03e167c16566372cc992604dfb" } Frame { - msec: 5152 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3648 + hash: "8d6e057550632d143faf996a62bbd1cd" } Frame { - msec: 5168 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3664 + hash: "7e3a321b95d5f62f0da2b10324b485b6" } Frame { - msec: 5184 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3680 + hash: "e842f18dfd36947b2fa086a4d0bb2ec5" } Frame { - msec: 5200 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3696 + hash: "a9359e143dae4113437a43cc00493479" } Frame { - msec: 5216 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3712 + hash: "2eca61c837cca9beb6d1834eafe8c538" } Frame { - msec: 5232 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3728 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5248 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3744 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5264 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3760 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5280 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3776 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5296 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3792 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5312 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3808 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5328 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3824 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5344 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3840 + hash: "bf2de49dc940043a955a075dcda1b52b" } Frame { - msec: 5360 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3856 + image: "test-pathview-2.4.png" } Frame { - msec: 5376 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3872 + hash: "bf2de49dc940043a955a075dcda1b52b" } Mouse { type: 2 button: 1 buttons: 1 - x: 242; y: 280 + x: 363; y: 156 modifiers: 0 sendToViewport: true } Frame { - msec: 5392 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3888 + hash: "cf72e9ae81dcf833f7a48ffa348b8966" } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 244; y: 280 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3904 + hash: "cf72e9ae81dcf833f7a48ffa348b8966" } Mouse { type: 5 button: 0 buttons: 1 - x: 246; y: 281 + x: 363; y: 157 modifiers: 0 sendToViewport: true } Frame { - msec: 5408 - hash: "5e21e09fa0ec2b1e9f29be60100c40f2" + msec: 3920 + hash: "cf72e9ae81dcf833f7a48ffa348b8966" } Mouse { type: 5 button: 0 buttons: 1 - x: 251; y: 282 + x: 361; y: 158 modifiers: 0 sendToViewport: true } - Frame { - msec: 5424 - hash: "d269b601f6c58e4349a5bc41ed8040cb" - } Mouse { type: 5 button: 0 buttons: 1 - x: 261; y: 282 + x: 358; y: 158 modifiers: 0 sendToViewport: true } Frame { - msec: 5440 - hash: "b5fb0c0e78b48380e5d9dd82be64554c" + msec: 3936 + hash: "1cea11ee435caa8515797ee5c4fb79cb" } Mouse { type: 5 button: 0 buttons: 1 - x: 300; y: 279 + x: 352; y: 159 modifiers: 0 sendToViewport: true } Frame { - msec: 5456 - hash: "86699ae4ad4491a39272704aa8d2be0a" + msec: 3952 + hash: "0da1743b066a73dd19aff6b60ef76830" } Mouse { type: 5 button: 0 buttons: 1 - x: 350; y: 282 + x: 349; y: 160 modifiers: 0 sendToViewport: true } - Frame { - msec: 5472 - hash: "f7ad9df8715594e9012d9e6ba61784ae" - } Mouse { type: 5 button: 0 buttons: 1 - x: 417; y: 290 + x: 342; y: 162 modifiers: 0 sendToViewport: true } Frame { - msec: 5488 - hash: "5d50347997afcdd437e8f5b1afd5fdb6" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 500; y: 300 - modifiers: 0 - sendToViewport: true + msec: 3968 + hash: "ddace1df123421675bc9153c4017cdd0" } Mouse { type: 5 button: 0 buttons: 1 - x: 585; y: 309 + x: 327; y: 166 modifiers: 0 sendToViewport: true } Frame { - msec: 5504 - hash: "40290cb6417848caf299aac419e78b3e" + msec: 3984 + hash: "0c57fe8eef4e41e326dbc82f7b6ae87b" } Mouse { type: 5 button: 0 buttons: 1 - x: 669; y: 315 + x: 320; y: 168 modifiers: 0 sendToViewport: true } @@ -1856,448 +1580,276 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 669; y: 315 + x: 320; y: 168 modifiers: 0 sendToViewport: true } Frame { - msec: 5520 - hash: "cdd32a53cd968afc378069fa7fc08fc1" - } - Frame { - msec: 5536 - hash: "2f0e8c2f895506b3d484da3024c0e823" - } - Frame { - msec: 5552 - hash: "e97ab47515d55760919b4319f7aa2f4a" - } - Frame { - msec: 5568 - hash: "e8698483768d3cf121985ffce93c89e0" - } - Frame { - msec: 5584 - hash: "75f23e628458b6abce65873777ec2226" - } - Frame { - msec: 5600 - hash: "5477a54c2c2fd9de2b76a82fb8c9c371" - } - Frame { - msec: 5616 - hash: "c20f1a85cf8166664b1dc44986fc7f1a" - } - Frame { - msec: 5632 - hash: "44f4b02055397a06c628564d9f2180f3" - } - Frame { - msec: 5648 - hash: "09d79da372ded40a24d1fdc0d5d97fa6" - } - Frame { - msec: 5664 - hash: "7fec934dac44b7365ef110fc9fa2ff0b" - } - Frame { - msec: 5680 - hash: "d9f6e4e21629626f9f3fbdf879173147" - } - Frame { - msec: 5696 - hash: "674967f6494a5aa45f4344142f54145f" - } - Frame { - msec: 5712 - hash: "59090ec0960776ae02deb8f2365848a8" - } - Frame { - msec: 5728 - hash: "6ced1eb439584cd55d7ea83b4c6ad89d" - } - Frame { - msec: 5744 - hash: "2f93341754e279408ebe9389987d6354" - } - Frame { - msec: 5760 - hash: "13588d644d17394ac4f8997046089071" - } - Frame { - msec: 5776 - hash: "6ecfb56d8e685d6e251938ecc740a0d3" - } - Frame { - msec: 5792 - hash: "eb3254187a72afde5091eb240f1ce043" - } - Frame { - msec: 5808 - hash: "cc367bfa5264fa7539d26ca7f2b81300" - } - Frame { - msec: 5824 - hash: "6a869340f179e768d271b28fd8983c1b" - } - Frame { - msec: 5840 - hash: "e22f23a5d5e55eed1e74414dfd4da00f" - } - Frame { - msec: 5856 - hash: "c6b0c88158ff5052bb3e8ff4c46fa0f3" - } - Frame { - msec: 5872 - hash: "8cebf630fa954c5a3be2b26b29597379" - } - Frame { - msec: 5888 - hash: "60bc980648f99ca37a80bff2e462f2f6" - } - Frame { - msec: 5904 - hash: "8c3db2a7a7314931a5553408f41551af" - } - Frame { - msec: 5920 - hash: "97323491971e95f6d09c83afbcadcbdc" - } - Frame { - msec: 5936 - hash: "9abecb040056c3d07614c1d0253d08c6" - } - Frame { - msec: 5952 - hash: "b3efc154d193cb69f074c511918f4976" - } - Frame { - msec: 5968 - hash: "e8fd8d8ebfb33d0f7c7717f89dec87b8" - } - Frame { - msec: 5984 - hash: "fe9eb2c5b292db6fedbdacb4e31b8d9c" - } - Frame { - msec: 6000 - hash: "6e86cbefdb523a7153019aa6c3bdee40" - } - Frame { - msec: 6016 - hash: "142b81c3de5c7140680f6c0ed77e7a55" - } - Frame { - msec: 6032 - hash: "cfef661007ee19ef6c39cc784f3e8369" - } - Frame { - msec: 6048 - hash: "1305eafc2ffd60605274e043829bce0c" - } - Frame { - msec: 6064 - hash: "3c6d2fc8364dd9e5e0409cc6f3d16e78" - } - Frame { - msec: 6080 - hash: "e1eb0c51700d3b5c56cf8555d9eb8cf6" - } - Frame { - msec: 6096 - hash: "9778e7a92f9223f4a8b01edab2627c94" - } - Frame { - msec: 6112 - hash: "7616da76832eace7846df67ff29524bd" - } - Frame { - msec: 6128 - hash: "f7bf509b2764a44227e1b6ebbb6bcabe" - } - Frame { - msec: 6144 - hash: "a2efece1011c7f90872154242db70d46" - } - Frame { - msec: 6160 - hash: "f77dbceb3f26533f2f795ea16116a880" - } - Frame { - msec: 6176 - hash: "8874effc7fa1455c658490f42aad0046" - } - Frame { - msec: 6192 - hash: "6d8e2a8c79eed4edbc7a1005fd7e85fd" - } - Frame { - msec: 6208 - hash: "7d0f33ce8f934f0d4bfd6ac5b50bc0a6" + msec: 4000 + hash: "53968b4b57c09fe0b47e720031c1eed7" } Frame { - msec: 6224 - hash: "1aefde7dbbd6ca7f57637147bfd7a664" + msec: 4016 + hash: "2ab593b498892bf8bacef875e524284f" } Frame { - msec: 6240 - hash: "524fa1fc729a033983817fd9591dff09" + msec: 4032 + hash: "da77708f525ab9d1d3f760595a1f9efa" } Frame { - msec: 6256 - hash: "c5559eb1e5bb5d2ab20888831a3924a0" + msec: 4048 + hash: "ce73ecb012139dda8e21cb0dce95582a" } Frame { - msec: 6272 - hash: "e5e78ff025bfa205f6ad243484122ec1" + msec: 4064 + hash: "086754b023addbbecf3b361382133279" } Frame { - msec: 6288 - hash: "b3a4e501838e7c44f9b0e21b263922a3" + msec: 4080 + hash: "adcb9881f246993ff35af24f8750ea2f" } Frame { - msec: 6304 - hash: "c35ddb641840b7d7a100e074aab82bb8" + msec: 4096 + hash: "974b423c99316c9a5b2e097bb3a42fcc" } Frame { - msec: 6320 - hash: "1121ff859d3a120efd8d3f6b307d2f5c" + msec: 4112 + hash: "e37263abe79b203cfc4306aa7e5c4853" } Frame { - msec: 6336 - hash: "2be325c442cfc17ae7b722add60170e1" + msec: 4128 + hash: "0136eaf2704a5af80f8ba26bbb7f51da" } Frame { - msec: 6352 - hash: "c3e86d4a73c739c159e71255ca08457e" + msec: 4144 + hash: "55fe0338e24aa91790f2cd466464acae" } Frame { - msec: 6368 - hash: "fc56984eb2c3c9db61a54edcfe67f36b" + msec: 4160 + hash: "9fa5eaebd34e2af136a2894f360301a5" } Frame { - msec: 6384 - hash: "477421a20f47af33b4272fd8f63718bb" + msec: 4176 + hash: "c48822e620b788947d8a5ec850d6313b" } Frame { - msec: 6400 - hash: "dee4659125ff750159c5b5ec0acd6a99" + msec: 4192 + hash: "ec763070f81e115a5e471923aa539683" } Frame { - msec: 6416 - hash: "31dce66ad26dbcee6f1515dd43a94354" + msec: 4208 + hash: "2aa84ad9ef88313a4c63e91bba959920" } Frame { - msec: 6432 - hash: "25c4478c27d808b85746cd65fbb1f93f" + msec: 4224 + hash: "14cf7ba825d704c4acc72670fd868d6c" } Frame { - msec: 6448 - hash: "f9094ea959b54b92a6d39db6cd9b5f10" + msec: 4240 + hash: "987bf945cd9c1cfe5bbb17442daa4f26" } Frame { - msec: 6464 - hash: "47f1d0f234073353ca233206c2872093" + msec: 4256 + hash: "5d4d80565bf4f522c79044d0df55a1fd" } Frame { - msec: 6480 - hash: "3a6cf2c77f1ae99977f2ed0b4683aecf" + msec: 4272 + hash: "d0a5ec7ff2c5b64c6691888412d0cc6d" } Frame { - msec: 6496 - hash: "df203035dbd68ffe2c9dc532061e7927" + msec: 4288 + hash: "93750528b6f27df22423eb957a07b55f" } Frame { - msec: 6512 - hash: "20f69f8e32fd217967feb9a955e27717" + msec: 4304 + hash: "65fd0474f918bac61b46fde8ed8e3b59" } Frame { - msec: 6528 - hash: "0bd932d1953ee28c38a359ddfb0c2075" + msec: 4320 + hash: "cd15f6499863ef84f0ad3b2ff48d6406" } Frame { - msec: 6544 - hash: "0c6c75cca96a1d04c9b60d9bd1543318" + msec: 4336 + hash: "65101124208b062de9718b34fb43425b" } Frame { - msec: 6560 - hash: "9b4c8f6cf066800c1f2bb07357fc2e0d" + msec: 4352 + hash: "cb42d683dc5e4020891601afb0a77947" } Frame { - msec: 6576 - hash: "eb861eb18ddb237cd11d24e101be83d1" + msec: 4368 + hash: "88fdddbf2f766ffff7e77c7612d9cfee" } Frame { - msec: 6592 - hash: "086db75c06bf1fb1f527f5c8e6255d02" + msec: 4384 + hash: "776c63f1bbc40624d7fedd6141fbdd97" } Frame { - msec: 6608 - hash: "e807b1166ca3f658c780b1fef8400b8d" + msec: 4400 + hash: "24f11b5abb33d8f180a56fca6f15ef45" } Frame { - msec: 6624 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4416 + hash: "71d9ab083d15b57336ee278793815713" } Frame { - msec: 6640 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4432 + hash: "b48e64cb1b8b39e7001af4e7c7d22098" } Frame { - msec: 6656 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4448 + hash: "587ef2440cd021038cc902a3b1839ff4" } Frame { - msec: 6672 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4464 + hash: "99e0485247c907c5b6e0f8d5dc7b8977" } Frame { - msec: 6688 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4480 + hash: "3b2496d61eefaa413f0688afed150749" } Frame { - msec: 6704 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4496 + hash: "0144d27095182c58e50ae1ccdbfaa05e" } Frame { - msec: 6720 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4512 + hash: "06237be375826d2434dc564dd2eaf165" } Frame { - msec: 6736 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4528 + hash: "7235d512503b134ac267b7128163eea2" } Frame { - msec: 6752 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4544 + hash: "5d5f7ff9bd0a4aa316b764bec8524fe0" } Frame { - msec: 6768 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4560 + hash: "9be01e649140f950cd882af2e8e1e27c" } Frame { - msec: 6784 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4576 + hash: "0773e5d219d6fc4f2d385fd1bcd17f93" } Frame { - msec: 6800 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4592 + hash: "32979d6f14c1aeca1f7ac0c5a330bbdc" } Frame { - msec: 6816 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4608 + hash: "6f87571a59aa358755d80e94894fe7a9" } Frame { - msec: 6832 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4624 + hash: "0e31c55386e8838f52024c49d4929710" } Frame { - msec: 6848 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4640 + hash: "7d6c89f5fae7990643687512f2294449" } Frame { - msec: 6864 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4656 + hash: "f8542ff33dbad93ed51a0801bd8af778" } Frame { - msec: 6880 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4672 + hash: "8bed907fe5b04eec118ac4e7759386ae" } Frame { - msec: 6896 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4688 + hash: "d84facac927215d8d83bd9e375fbace1" } Frame { - msec: 6912 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4704 + hash: "f1c8b7dc9897713487fcc62c697f41ff" } Frame { - msec: 6928 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4720 + hash: "611c45384b2abd883a4e3ec3bb30ebd3" } Frame { - msec: 6944 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4736 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 6960 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4752 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 6976 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4768 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 6992 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4784 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7008 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4800 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7024 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4816 + image: "test-pathview-2.5.png" } Frame { - msec: 7040 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4832 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7056 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4848 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7072 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4864 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7088 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4880 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7104 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4896 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7120 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4912 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7136 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4928 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7152 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4944 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7168 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4960 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7184 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4976 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7200 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 4992 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7216 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 5008 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7232 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 5024 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7248 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 5040 + hash: "63e075c2cac3770e657217989cc7d80f" } Frame { - msec: 7264 - hash: "a9c65a178a4b4598705bf736c0b1b595" + msec: 5056 + hash: "34967fb7248c860643bdc01e0135309f" } } 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 c6a9ca6..af0e781 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png index df940df..6f1878f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png index d10afe1..97f09f7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png index 8f99617..878875a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png index 18b1c09..cdbe606 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png index e15d688..7b78f7a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png new file mode 100644 index 0000000..d7b5943 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.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 625f839..bc900c6 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml @@ -10,377 +10,473 @@ VisualTest { } Frame { msec: 32 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 48 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 64 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 80 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 96 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 112 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 128 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 144 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 160 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 176 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 192 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 208 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 224 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 240 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 256 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 272 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 288 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 304 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 320 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 336 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 352 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 368 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 384 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 400 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 416 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 432 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 448 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 464 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 480 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 496 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 512 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 528 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" } Frame { msec: 544 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 363; y: 161 + modifiers: 0 + sendToViewport: true } Frame { msec: 560 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 362; y: 160 + modifiers: 0 + sendToViewport: true } Frame { msec: 576 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b9fed927475786f6f7aefc554cfc1afe" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 361; y: 159 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 357; y: 159 + modifiers: 0 + sendToViewport: true } Frame { msec: 592 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "731c8547a72c64ac86aec87c0a9a12cb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 348; y: 157 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 330; y: 157 + modifiers: 0 + sendToViewport: true } Frame { msec: 608 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "d9d7dd7ea05499f028964fdd11af0fe6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 286; y: 161 + modifiers: 0 + sendToViewport: true } Frame { msec: 624 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "361879f350c448a484b71a9e7a42b87f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 254; y: 163 + modifiers: 0 + sendToViewport: true } Frame { msec: 640 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "998da4b3e36ee3e17deb2b5a097661da" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 240; y: 165 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 225; y: 167 + modifiers: 0 + sendToViewport: true } Frame { msec: 656 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "1b3f9758bd9842cc9545b494499f87c4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 191; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 672 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "7e87f7c233dad50549e4bdafe10bb48e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 174; y: 171 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 153; y: 171 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 153; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 688 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "01ceb2fea81f2192ab11d7d6e1df879a" } Frame { msec: 704 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "9afa862248bd527e07374a5c2f2036a1" } Frame { msec: 720 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "e06439495148bfbf059cfe2b5df22840" } Frame { msec: 736 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b206a28d6f3be8cba9595849328b27b8" } Frame { msec: 752 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "646e4529bf554dceee0140ec56a02d1c" } Frame { msec: 768 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "31bdcf1f178d65e033e23dfbdcb9dc5f" } Frame { msec: 784 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b4e897356814ca2dddbc3644b1782f36" } Frame { msec: 800 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "669e5d682aae8727640e0e0f4e855a60" } Frame { msec: 816 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "892007b1a379c617412502499df92d01" } Frame { msec: 832 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "f4d66daa2d428aa712a73ded2de7a361" } Frame { msec: 848 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "0c21e69bed6dc2d6b7c23c20714aca67" } Frame { msec: 864 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "189909bdbfeb1f02ad527fbc438d567d" } Frame { msec: 880 - hash: "01b9c877f51b878ed262943aedcf89b4" + hash: "b2fcbc0657474e1b6d27e1f2f93be35b" } Frame { msec: 896 - hash: "01b9c877f51b878ed262943aedcf89b4" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 623; y: 222 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 621; y: 222 - modifiers: 0 - sendToViewport: true + hash: "4407d7ad1b6a40b2355145aee136ff15" } Frame { msec: 912 - hash: "01b9c877f51b878ed262943aedcf89b4" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 609; y: 230 - modifiers: 0 - sendToViewport: true + hash: "347ada687af0a97f0a862a1f3a1132be" } Frame { msec: 928 - hash: "d69c0678ce2025a8921b089311d219ea" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 583; y: 248 - modifiers: 0 - sendToViewport: true + hash: "db6217ff0194c5a3f9ca9ea7e3b3dfd8" } Frame { msec: 944 - hash: "55a852b268151d660e4945da88b04022" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 559; y: 258 - modifiers: 0 - sendToViewport: true + hash: "8a94ca0ee93daaa1bdcdbfc8a80713c1" } Frame { msec: 960 - hash: "be9817e44df33d4018a174ce350c7244" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 547; y: 264 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 547; y: 264 - modifiers: 0 - sendToViewport: true + hash: "ab24d0c8545518cbaff876976247be2c" } Frame { msec: 976 - hash: "55ab61911405e762b39b38d1371ef845" + image: "test-pathview.1.png" } Frame { msec: 992 - hash: "be3de45165f2f0916f734fecf3f48c47" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1008 - hash: "0a523daec6b591a2b5030c6c0b95cb24" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1024 - hash: "22da168e523fa385cce1f2e6a05e1332" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1040 - hash: "464cb37780cf126df6dad4169445c7bc" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1056 - hash: "666b06a0fbe2d10fbf3e15883a166c60" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1072 - hash: "223732cd526e09155ca99c80780bc3fa" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1088 - hash: "c74cc48188b05c5426a6b955ed9f09a3" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1104 - hash: "8d09a95ab09f87277fcc727e9c5da0fb" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1120 - hash: "71b7d4ec45270158ba4ca96817d8f231" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1136 - hash: "4847a1e7d792ed58e3476112b02c6fab" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1152 - hash: "ef444a3a960bdc176e004b949e5c89ce" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 1168 - hash: "1ebf4badb7f4ef3938868a74740fcbce" + hash: "1535dea92038cf87395a616841fd9bf6" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 378; y: 161 + modifiers: 0 + sendToViewport: true } Frame { msec: 1184 - hash: "022918cd4b54750b0ad28bcb00108f51" + hash: "1535dea92038cf87395a616841fd9bf6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 376; y: 161 + modifiers: 0 + sendToViewport: true } Frame { msec: 1200 - hash: "1ea398b2b7c52b35981c98b60d5d7a02" + hash: "1535dea92038cf87395a616841fd9bf6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 374; y: 161 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 373; y: 161 + modifiers: 0 + sendToViewport: true } Frame { msec: 1216 - hash: "05d7619ed0154fa414686522a7ca86c4" + hash: "c612bb9906f18786ef7cc6f4e56de218" } - Frame { - msec: 1232 - hash: "03274e26ea57d1264f21d306533476ef" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 367; y: 160 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 1248 - hash: "5109372d6c62225aaf971aa53c708bee" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 353; y: 160 + modifiers: 0 + sendToViewport: true } Frame { - msec: 1264 - hash: "71f10446437963eccb87dd40c172118f" + msec: 1232 + hash: "ffec210dd863ed32a780506f61b06056" } Mouse { - type: 2 - button: 1 + type: 5 + button: 0 buttons: 1 - x: 708; y: 240 + x: 328; y: 157 modifiers: 0 sendToViewport: true } @@ -388,55 +484,59 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 707; y: 240 + x: 303; y: 155 modifiers: 0 sendToViewport: true } Frame { - msec: 1280 - hash: "e47426491548162622f9a281c3d062ec" + msec: 1248 + hash: "9613c658f267d19b84d6e7ef2a676fed" } Mouse { type: 5 button: 0 buttons: 1 - x: 685; y: 252 + x: 280; y: 153 modifiers: 0 sendToViewport: true } - Frame { - msec: 1296 - hash: "e889fba64d9f94fe18c3750dd6ad9d00" - } Mouse { type: 5 button: 0 buttons: 1 - x: 635; y: 264 + x: 253; y: 151 modifiers: 0 sendToViewport: true } Frame { - msec: 1312 - hash: "7fe200757a6bf752906d195fe341be14" + msec: 1264 + hash: "8c5dd8d0f9f434530b20e14a84af9f46" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 230; y: 151 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 569; y: 280 + x: 211; y: 151 modifiers: 0 sendToViewport: true } Frame { - msec: 1328 - hash: "aa1f4147dc3fd66f6d9e2605d0759951" + msec: 1280 + hash: "a956e8e9ca8958c387f8f5ce374cdec9" } Mouse { type: 5 button: 0 buttons: 1 - x: 533; y: 294 + x: 193; y: 153 modifiers: 0 sendToViewport: true } @@ -444,83 +544,119 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 533; y: 294 + x: 193; y: 153 modifiers: 0 sendToViewport: true } Frame { + msec: 1296 + hash: "712e865d894f179cfd9d86b08e60811a" + } + Frame { + msec: 1312 + hash: "db5c1f2af2e72ff4edce83cb342b5263" + } + Frame { + msec: 1328 + hash: "834f0aa26c66234491468c1b27a2d329" + } + Frame { msec: 1344 - hash: "2b7163ea45860cf81f208c2b68c418b5" + hash: "78a2a4b60db730a7367bc77e1dfc1a1b" } Frame { msec: 1360 - hash: "a89bd1204fb17d9d8ce7b7f4279e9b1f" + hash: "a8ff2277b5f7d515bc5a9af1f0e77197" } Frame { msec: 1376 - hash: "683e52637fd5d96ded35f5ade9679822" + hash: "e05d730624025000b831860f5b99e8ac" } Frame { msec: 1392 - hash: "2aa16f06e8bed201746558b1003f7d63" + hash: "54aa124492ea742e4327f1d2b45ab620" } Frame { msec: 1408 - hash: "f2e40e75ddb8004917ae5b8cf144a322" + hash: "bc700bee41ac384a2555723b010e9041" } Frame { msec: 1424 - hash: "0f7f64373b065a454c02c32c52a5ef79" + hash: "26f66098c505cea4715a89b6a2232759" } Frame { msec: 1440 - hash: "fb4fbd2b3696bfb6135797b1f0158b5c" + hash: "00f3255a3ead315410d8c0d338779689" } Frame { msec: 1456 - hash: "7a8eafad65ff191a97dcf910393ba4e4" + hash: "154e7d86d7602ebba38a0d63b211894d" } Frame { msec: 1472 - hash: "3362deae62ba96853d85827f21cec589" + hash: "87cf2bff69ebd75af69d0a7c7f668b07" } Frame { msec: 1488 - hash: "0653838fa3fb5b32e561adc20becc9d2" + hash: "f221b870ecccb1669b6223e5431c31d1" } Frame { msec: 1504 - hash: "482e78e6b54cabe007f7e7f4f27a07ee" + hash: "40a9d4c522d9fd831be2ca698ac10670" } Frame { msec: 1520 - hash: "b51f60864896808c6e41d8a0a990676d" + hash: "7ad47479d99fd4d9fde96fef242bdc20" } Frame { msec: 1536 - hash: "d77e59d69b7c21c82bce9a25d548358c" + hash: "b91912801c790d849399306c693a4d33" } Frame { msec: 1552 - hash: "b3dddbb1eee0e2f222434511073c4620" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 1568 - hash: "d5e0d191582291b269b9e93241d9ac03" + hash: "3f2f82c925e93d4593581cdba16f361f" + } + Frame { + msec: 1584 + hash: "7007fd0595c188a9a5b3ff31b0514aa5" + } + Frame { + msec: 1600 + hash: "118661091df765ae35c152c7fe818029" + } + Frame { + msec: 1616 + hash: "0a8edd2a35f7921ced6e3aa7e571bc4b" } Mouse { type: 2 button: 1 buttons: 1 - x: 637; y: 218 + x: 339; y: 152 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 334; y: 152 modifiers: 0 sendToViewport: true } + Frame { + msec: 1632 + hash: "ef734ce4d7e1aee19a78b743c9923f90" + } Mouse { type: 5 button: 0 buttons: 1 - x: 621; y: 240 + x: 245; y: 152 modifiers: 0 sendToViewport: true } @@ -528,19 +664,19 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 613; y: 248 + x: 161; y: 148 modifiers: 0 sendToViewport: true } Frame { - msec: 1584 - hash: "8c12000da88abb70cbc370d2a2ca21d7" + msec: 1648 + hash: "09a9925d5ec2fd03cfbf469bc22bf201" } Mouse { type: 5 button: 0 buttons: 1 - x: 551; y: 288 + x: 139; y: 150 modifiers: 0 sendToViewport: true } @@ -548,379 +684,335 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 551; y: 288 + x: 139; y: 150 modifiers: 0 sendToViewport: true } Frame { - msec: 1600 - hash: "2854533fd50f5ebb8fc43cf0041883e4" - } - Frame { - msec: 1616 - hash: "64c0ba48b59addcbd9dc2a36c24b3070" - } - Frame { - msec: 1632 - hash: "5ce463d514a776055897052defbae117" - } - Frame { - msec: 1648 - hash: "16b25853ec30feee97c3f11a0ea5767e" - } - Frame { msec: 1664 - hash: "55cfc9179923c935a44de0fee69d74ce" + hash: "6babcbf5582d5ed8f0cf52e233867055" } Frame { msec: 1680 - hash: "47641fd7ec919b3c041c5acc04b0d083" + hash: "94dae9d52f3523e17f3f0e59ca24a069" } Frame { msec: 1696 - hash: "466eedb320beed99d7eba5a71095438a" + hash: "0d417d25893a0454a729f5c23a2a6c28" } Frame { msec: 1712 - hash: "a7520215940ca21acd148ca88c0fec62" + hash: "afd1bbca1dcfea8d1f0a340d86b07fa8" } Frame { msec: 1728 - hash: "f5c8bff5c3305064dbaa777707994de3" + hash: "97e98982742b94dba8b6cb59397bcb66" } Frame { msec: 1744 - hash: "95b37e22bb68634029e18bcef7e9502c" + hash: "a0ad8cbbd0daa0afd3831e8a071b9a0e" } Frame { msec: 1760 - hash: "f60cccf793bd6d356d69b1394638a201" + hash: "f71826bcd6ea91d2f64d627a390c379d" } Frame { msec: 1776 - hash: "d77a5c2553e9391c14a49dba951ae236" + hash: "7699da01cf1ee9a7f404ab053241b530" } Frame { msec: 1792 - hash: "0bfa2f6e5fa25a9847c2515de8ad53bd" + hash: "6aba727ecc562d7b5555eae427e6978b" } Frame { msec: 1808 - hash: "202c077b20213814545ab594987b3c46" + hash: "ef9c6daa5b04b0be9159594e04524fba" } Frame { msec: 1824 - hash: "32c5d1644c4f6a3386b4300b1dadae2e" + hash: "6293ede5de83f3b01a3b4d8d87648089" } Frame { msec: 1840 - hash: "c914c500507b9c7180dcf25e985135e9" + hash: "c3b34d8592f88622cad0f9353d08e739" } Frame { msec: 1856 - hash: "62095b2214425007cb19a6218819ed21" + hash: "880f3cb9d5dbe06cdf17e3a953d4562d" } Frame { msec: 1872 - hash: "06d25e03eca85906c93d60b7c80b353c" + hash: "ed381ce920863a5a6627f383a88ea2fe" } Frame { msec: 1888 - hash: "605992eb3f636b705b4b6dd7dfbe1a5f" + hash: "b5bc40b8c4abb6458aeb67eda73507b6" } Frame { msec: 1904 - hash: "3241ccb6da86acc69bb07c044ba5bade" + hash: "482cb61b7fac4b1654483f846b8b6717" } Frame { msec: 1920 - hash: "79ad4a90ab449e3232db993b30786d89" + hash: "e1a4a16d2cf5132a9fbb0869ed6082d9" } Frame { msec: 1936 - hash: "f09fe53cd6698a94d1626df1a1e4079b" + image: "test-pathview.2.png" } Frame { msec: 1952 - hash: "aff96cfa2f88f1f2ce6af5e6a838fb79" + hash: "f8874aaab1e65cf9b86d6b5174c3d2c8" } Frame { msec: 1968 - hash: "dddc255c053608f6b199cebb40e164bc" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 595; y: 236 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 565; y: 256 - modifiers: 0 - sendToViewport: true + hash: "d8490adeaa793352b812e832f4cb079a" } Frame { msec: 1984 - hash: "345864eccf0b48f94097c9e0f037d71d" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 507; y: 286 - modifiers: 0 - sendToViewport: true + hash: "85fdb99926ba34a25fa964df11af9a5a" } Frame { msec: 2000 - hash: "05e9776009f78d5466473c67a900e74d" - } - Mouse { - type: 5 - button: 0 - buttons: 1 - x: 461; y: 288 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 461; y: 288 - modifiers: 0 - sendToViewport: true + hash: "ad137a75981c181838d97cbe313063ac" } Frame { msec: 2016 - hash: "3a2bca372b5e492d71c73c945851a616" + hash: "bfa5cecfc0058b56ca66aa816ea098dc" } Frame { msec: 2032 - hash: "f7957d18f0fc7421f7109dfc5debba3a" + hash: "53fe3960c2f332eb099fedd8421fcc94" } Frame { msec: 2048 - hash: "cdd2a73b65b60991f1a3671cc668fa0e" + hash: "61b99ff526560c1589d2fc8737af2af2" } Frame { msec: 2064 - hash: "d1646d66d0726f163cd32d4e985da46b" + hash: "f9dd63709bed985f5d691d27c0d32484" } Frame { msec: 2080 - hash: "1d2ea750a691ba78943c8e6e1a950017" + hash: "964c20ada9ad9e83edd9b429bf681b83" } Frame { msec: 2096 - hash: "c372a639a59e7cb1f5573de540dd0dcf" + hash: "997bc44a319c8ce8212387f7564c4005" } Frame { msec: 2112 - hash: "964fc74c67a84cb84516389c57468ada" + hash: "892eda6e7446321483ffb1dbf44a0432" } Frame { msec: 2128 - hash: "7310eb82821b9c209dd9e54d7b8d2e61" + hash: "62068dca6da7227882b6c3bc147c6f24" } Frame { msec: 2144 - hash: "55b62e5afa61e8acb4faf97f7c2b1aa5" + hash: "2cd0c351c53234d4bbf4d2c74d313f59" } Frame { msec: 2160 - hash: "4a9994d898380369eb705efb52839402" + hash: "cf812f971bb4f8ab3116cf2b14c325df" } Frame { msec: 2176 - hash: "340811fac74949d8561c825547801ab0" + hash: "be296bd9ab4c38d95e6d7d445d8c7f68" } Frame { msec: 2192 - hash: "4ab688cb3f157dff07a652a84d1ed1da" + hash: "536d0214c8c3f69ce8d4e1585128b2b8" } Frame { msec: 2208 - hash: "a249bd338776e1f0d11ad70aebcb91b3" + hash: "f71452a0a6ef80758800d67e601a162b" } Frame { msec: 2224 - hash: "6db4a1fd4f2597a180705b7d927ef512" + hash: "e57c099beb70d0a4ca2cbc94a2c3887e" } Frame { msec: 2240 - hash: "7a47ac68a2a433d6edce92b772c3c608" + hash: "84cea22f64ff8b8838a7db0b19af1a4e" } Frame { msec: 2256 - hash: "10f23e9e7729a6525549b71143ae539c" + hash: "04aa0d5d089779977f569d0f849b97dd" } Frame { msec: 2272 - hash: "c977e2525e1fb7406414862fbd23fcf8" + hash: "85b52e125142d52d531132939930dd93" } Frame { msec: 2288 - hash: "66251028e13fbd8f4f4d6836eb9615f9" + hash: "19bc7b318c21a6ce2be8ebde2e624fc3" } Frame { msec: 2304 - hash: "925b50a4f9fe33d83463914c2221be82" + hash: "9cc744249cb031f0400e87893c1642af" } Frame { msec: 2320 - hash: "7169f87de9a332bb94108661e9783a54" + hash: "a834706bbf573f37cf9f59c6c6cbbfa5" } Frame { msec: 2336 - hash: "3ff3c0d2db8d1d65cfc7b14520cf41aa" + hash: "8db3eea9d47a162d8b0ee9cd18e194f3" } Frame { msec: 2352 - hash: "0757ee68ff9923a2dbeb2129f3d4409c" + hash: "29da9b8da8f572ace93250abb8626a90" } Frame { msec: 2368 - hash: "223dd69204949b494cda0762ef9965fd" + hash: "179b74316d885f9ee41066b9c475b57f" } Frame { msec: 2384 - hash: "e97c6ba010857de43baeccbe85e2b262" + hash: "35464509ef5a9919af46a30d40c3edc7" } Frame { msec: 2400 - hash: "9f170350da8b3785d5db9c24ce8cacf8" + hash: "aadec42355d38d149421ef6c93783e69" } Frame { msec: 2416 - hash: "512f3a1ef9d5c263ab22559490dc3022" + hash: "cb8609791270e8e3c13da4579f85595f" } Frame { msec: 2432 - hash: "0f3df7f366bc918c55172df45c22056e" + hash: "93e81e036a1bc30cc63ce703f8f43a34" } Frame { msec: 2448 - hash: "71f8f04423b9a3356aa08235a91ddde7" + hash: "d08d18adf9ca92cd6597c2f51ae90383" } Frame { msec: 2464 - hash: "0c48c98562318f7bac502c49fd09fd5e" + hash: "f54ec103787023647beaa4b992340385" } Frame { msec: 2480 - hash: "17defd865ec00da3a74360044a906ea9" + hash: "61c9f72d78fce0b966a278abacc97ce6" } Frame { msec: 2496 - hash: "07ef0b634016b52023174a6a593cb2aa" + hash: "5b0500ed0562b11280c3424412f74188" } Frame { msec: 2512 - hash: "56d06c41e9ad55852654bcc6ce77504d" + hash: "b8ee7bc1e94ce35bf946ee71fa03d72c" } Frame { msec: 2528 - hash: "05848d818a1531a649f9c23947e67855" + hash: "60ec6aceeaf82fc730c3df55b5c06f90" } Frame { msec: 2544 - hash: "11c8397fb9d7b993761b08ba8c9958e5" + hash: "01cc732bad8b28483e79115c117ee26d" } Frame { msec: 2560 - hash: "82255275db096d4150bd6cbd07805b3f" + hash: "b39c8d373524ba679c8567d16e6c5fe0" } Frame { msec: 2576 - hash: "8dd3572656f6feb16d55d9318b6b6317" + hash: "2474476dfd021ff485c3a127bd22367e" } Frame { msec: 2592 - hash: "8096e99b41c38a777df2010057119afb" + hash: "1342a1a0f6bc02159de1be058cf2411b" } Frame { msec: 2608 - hash: "4187c358b8319dffdef36c67b02a4921" + hash: "a9721b64b9a5526335937245302249ae" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 72; y: 121 + modifiers: 0 + sendToViewport: true } Frame { msec: 2624 - hash: "f891ef9a694bc6513f04e38d34c78e24" + hash: "109dc503ee86e731f52d25908daf5d36" } Frame { msec: 2640 - hash: "77db9416fb003a5bb793b6573ca3a3cd" + hash: "94998dbab6792c518ca1f37f060f1d4b" } Frame { msec: 2656 - hash: "152cf831ca83212fc026b1146c49a386" - } - Frame { - msec: 2672 - hash: "a596b17515b471d5e67edda3baf8938b" - } - Frame { - msec: 2688 - hash: "307db3e3c929da9783b12d7a2efdbda5" - } - Frame { - msec: 2704 - hash: "1baff6641852daabdc639a35a4821189" - } - Frame { - msec: 2720 - hash: "1f7df5b9c29773c7ae3d08005e7dd903" - } - Frame { - msec: 2736 - hash: "7eb1937ccb2727c27e57b7d7960678d2" + hash: "3146ba4e63fa74279939b8de935f067c" } - Frame { - msec: 2752 - hash: "8294b7a9105083887634973a1c64b70a" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 73; y: 121 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 2768 - hash: "89ea9be6ebb280ff43d7b037d989aa53" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 74; y: 122 + modifiers: 0 + sendToViewport: true } Frame { - msec: 2784 - hash: "4cbeaef4f796eebf114c5e470389d30a" + msec: 2672 + hash: "1aaea4143076bf8ba8190d94fcc89e64" } - Frame { - msec: 2800 - hash: "0ce8c069bf3fb31d759d62e429c67a15" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 79; y: 123 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 2816 - hash: "201f1b39884249f60a53a201f783ce9b" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 129 + modifiers: 0 + sendToViewport: true } Frame { - msec: 2832 - hash: "bcafa2c76a9747a64565a3d3484c1c91" + msec: 2688 + hash: "a0d8bb20189c3c65e5e72671788d9493" } - Frame { - msec: 2848 - hash: "94c7ff74b5a37b6e03a47afc40fde107" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 138 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 2864 - hash: "08127dfa54da0616ce6cb19c646487ed" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 161; y: 148 + modifiers: 0 + sendToViewport: true } Frame { - msec: 2880 - hash: "dd861293918ee3685ffc48f1670a19df" + msec: 2704 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Mouse { - type: 2 - button: 1 + type: 5 + button: 0 buttons: 1 - x: 310; y: 277 + x: 194; y: 158 modifiers: 0 sendToViewport: true } @@ -928,43 +1020,39 @@ VisualTest { type: 5 button: 0 buttons: 1 - x: 324; y: 279 + x: 239; y: 169 modifiers: 0 sendToViewport: true } Frame { - msec: 2896 - hash: "b76ce9c50fcbe38a29c1930302dd61da" + msec: 2720 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Mouse { type: 5 button: 0 buttons: 1 - x: 330; y: 281 + x: 280; y: 178 modifiers: 0 sendToViewport: true } - Frame { - msec: 2912 - hash: "d30704b159562c21cd2f42f2370acdfa" - } Mouse { type: 5 button: 0 buttons: 1 - x: 346; y: 283 + x: 313; y: 185 modifiers: 0 sendToViewport: true } Frame { - msec: 2928 - hash: "db0916ebf147ee738aaf7492bd38c262" + msec: 2736 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Mouse { type: 5 button: 0 buttons: 1 - x: 358; y: 285 + x: 344; y: 191 modifiers: 0 sendToViewport: true } @@ -972,303 +1060,779 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 358; y: 285 + x: 344; y: 191 modifiers: 0 sendToViewport: true } Frame { - msec: 2944 - hash: "128058d78c8ceabf4867c8c2d23c8007" - } - Frame { - msec: 2960 - hash: "9a59b6d1576b70796abcd58167e5135e" - } - Frame { - msec: 2976 - hash: "2d5f030aa7ae5f7b5df1894f0250a391" + msec: 2752 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 2992 - hash: "fb45fe68abab13f5eb4e8022f1e4e2f1" + msec: 2768 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3008 - hash: "ad090853500b3720c1bb4d750731e25c" + msec: 2784 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3024 - hash: "f8f560f26cc0b63f51858c5119b7a1ef" + msec: 2800 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3040 - hash: "87e9d53c0ffcf7231693d9d6619ad37e" + msec: 2816 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3056 - hash: "73000f490569eb178d47a00b96d39a17" + msec: 2832 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3072 - hash: "b8a196eca9c3bd95659931115bec319f" + msec: 2848 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3088 - hash: "5f9265d0818701ce08066b55a8bbd904" + msec: 2864 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3104 - hash: "9a62f2e25e8d32872e43fbdcdb838756" + msec: 2880 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3120 - hash: "1c7b238074d274e4f105b5c2b7fd6dac" + msec: 2896 + image: "test-pathview.3.png" } Frame { - msec: 3136 - hash: "f6fbd5658a122ced7257852b4d38605d" + msec: 2912 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3152 - hash: "24a0cc1d69213b12f9420fa9ffee7319" + msec: 2928 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3168 - hash: "8811594c57e514da3afeb04460569e5d" + msec: 2944 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3184 - hash: "760d4afdc958184b5b68bc3bcc2f1d3b" + msec: 2960 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3200 - hash: "b3b2ca99af9aa022dfebf71bfa1cd491" + msec: 2976 + hash: "a0d8bb20189c3c65e5e72671788d9493" } Frame { - msec: 3216 - hash: "293dbff5edf4dde1f57ca3af1c4bce5e" + msec: 2992 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3232 - hash: "0c48c98562318f7bac502c49fd09fd5e" + msec: 3008 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3248 - hash: "1cac8d792f55f3e47549d628bd729a7d" + msec: 3024 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3264 - hash: "d63664b4a6c42c67a3c700e3a000fc07" + msec: 3040 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3280 - hash: "be41201056bd58d4793c9c7b5cc63f3f" + msec: 3056 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3296 - hash: "0ea52d61c7b8803d76340874b846783d" + msec: 3072 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3312 - hash: "260c743db91b8802e2c27f8c92d620e5" + msec: 3088 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } - Frame { - msec: 3328 - hash: "33d3dbe981874cd04edd35a4e5bf4e68" + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 152; y: 143 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3344 - hash: "27d183bfe7a7775ba47578de7a5b2dcb" + msec: 3104 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3360 - hash: "a6c0bd87922ca8d40fe413ab8624dd24" + msec: 3120 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3376 - hash: "218d68463d34cc31dc81756be9effd02" + msec: 3136 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3392 - hash: "29e9148ab8c0aa66988a6bcda12b06ea" + msec: 3152 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3408 - hash: "8cc09fb7e94b1bd0d3482e0bf5d0abec" + msec: 3168 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } - Frame { - msec: 3424 - hash: "39a595b99ed012a1e54b516b75f8652d" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 151; y: 144 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3440 - hash: "30754f5e10dc0d148f10a5eced16258a" + msec: 3184 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } Frame { - msec: 3456 - hash: "85de32bfdfaea28e4c534dca69b1255e" + msec: 3200 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } - Frame { - msec: 3472 - hash: "459bda74f223c6cfbee12524939b09ef" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 152; y: 145 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 3488 - hash: "db2ae2401ff1a65911339e2292f075dd" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 153; y: 145 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3504 - hash: "0cc18d7cbf42cb68baedd73cf59d8c08" + msec: 3216 + hash: "1236a317e60f7ae3d3fb2fb521bad2a2" } - Frame { - msec: 3520 - hash: "36c72c3d608fc5126f4b62d4416ad54e" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 155; y: 146 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 3536 - hash: "7f4db14f493a300ba37dae79a9d60084" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 157; y: 146 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3552 - hash: "efe0031b95195bebfd887ef63c2ce441" + msec: 3232 + hash: "1b604ea70459a768fb37a6333000174b" } - Frame { - msec: 3568 - hash: "ade092ef64fc3b1e4d4afc86dca3cf71" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 161; y: 147 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 3584 - hash: "e57a7cf2f90b87fed0fd438599fabae3" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 164; y: 148 + modifiers: 0 + sendToViewport: true } Frame { - msec: 3600 - hash: "1be372fe7de83c4d019e3856c03b39b6" + msec: 3248 + hash: "25e0aabe364085a61b4572ef015dac2c" } - Frame { + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 166; y: 148 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 168; y: 149 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3264 + hash: "ee6fc5c1de08e6f13f23b26829d2cba2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 170; y: 150 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 171; y: 150 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3280 + hash: "b077c59359d047738d9ba739f591393b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 175; y: 150 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 177; y: 151 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "2cc0b8d7bd088f2277f5e939c234114c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 180; y: 152 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 183; y: 152 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3312 + hash: "64703db84cd5bda3109546293783804d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 187; y: 153 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 191; y: 154 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3328 + hash: "137cd88932ad1fdbfdbf1a80cccf7b3f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 193; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 195; y: 154 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3344 + hash: "ff9011d861c64bcad214b52cb4245583" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 197; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 199; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3360 + hash: "c3f0132e472d29ddee95c7349243d33e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 202; y: 155 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 202; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3376 + hash: "42ae9c21dce6a7cd59de228dac775dd5" + } + Frame { + msec: 3392 + hash: "3f8631caf6a98d83356b188d6f94e9a6" + } + Frame { + msec: 3408 + hash: "b2788cd1939a6dd42f12d8fd1282a122" + } + Frame { + msec: 3424 + hash: "0d1ab6e9f2780be0c392d20f4b3b9619" + } + Frame { + msec: 3440 + hash: "03fdd91b352798b1ff958c23c0bc5f35" + } + Frame { + msec: 3456 + hash: "028fee3630fdb3cf862213c0466a56fe" + } + Frame { + msec: 3472 + hash: "3ab76009ca029723e5cf0bf9bc154102" + } + Frame { + msec: 3488 + hash: "866c59b7dd545364b70ddbf21a8ee874" + } + Frame { + msec: 3504 + hash: "9b4ff972b1055db38900fc0c5007e7b0" + } + Frame { + msec: 3520 + hash: "cbe0073c84617e23f0679a08c1a78492" + } + Frame { + msec: 3536 + hash: "374a5e6070dd628ed031e80d44be1f3f" + } + Frame { + msec: 3552 + hash: "4d16c81f877585a82549cfc4f68c574d" + } + Frame { + msec: 3568 + hash: "64b2b4c374a730b138b3573095f45d2c" + } + Frame { + msec: 3584 + hash: "26c59f4131fdb01ac4771231341c75c3" + } + Frame { + msec: 3600 + hash: "bf6a3fdb7c516ca9cfc09f1059cc8cdf" + } + Frame { msec: 3616 - hash: "4cb14166395004b6f0f04c6d95879583" + hash: "1bfb86796087cd293c68205cce6ac294" } Frame { msec: 3632 - hash: "a5ec71ba41f5fc0eeebf907749f26266" + hash: "e0f76f8fc7bd7756a4e004655f97f782" } Frame { msec: 3648 - hash: "257ef3bb651dbd43635576563c0f97c7" + hash: "61d3aa5f827452482d8a4a903fe64acc" } Frame { msec: 3664 - hash: "aa95d440ff9c75215bd2483befe18f78" + hash: "c8e42d3a5df195eaa091e50fc9dcd51e" } Frame { msec: 3680 - hash: "670815d144a7838b02bf24cf586c8df4" + hash: "bb684dccf4c0a74dc091fb78c1be4f2b" } Frame { msec: 3696 - hash: "5f58ff1dd96ee21710ce2aeee81c232b" + hash: "54341e5a76fb4657021c41e6e3f3d496" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 117; y: 142 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 142 + modifiers: 0 + sendToViewport: true } Frame { msec: 3712 - hash: "0c5a6c2dfbac5b97481b8e505fd4c4eb" + hash: "435ee710e108df42f659250ad7dbdb5e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 143 + modifiers: 0 + sendToViewport: true } Frame { msec: 3728 - hash: "b269e9fe4d14537c8bef0b66effe7319" + hash: "0c7078ec0d4a1dea84e0fba06323c533" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 119; y: 143 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 120; y: 143 + modifiers: 0 + sendToViewport: true } Frame { msec: 3744 - hash: "b269e9fe4d14537c8bef0b66effe7319" + hash: "854103790c02ca86fa011ef1b0f2be0a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 121; y: 144 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 144 + modifiers: 0 + sendToViewport: true } Frame { msec: 3760 - hash: "b269e9fe4d14537c8bef0b66effe7319" + hash: "1a5995196e5bb4d1464ca76191af72d5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 123; y: 144 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 124; y: 144 + modifiers: 0 + sendToViewport: true } Frame { msec: 3776 - hash: "b269e9fe4d14537c8bef0b66effe7319" + hash: "397bbd080cae99790621642fab6ded91" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 144 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 129; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3792 + hash: "66ecad306911060329dcf7695c358e87" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 132; y: 145 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 135; y: 146 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "c06da5f40f3f59f576a1d540d0b3244f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 139; y: 147 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 143; y: 149 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3824 + hash: "a88d97691539dce19af4c14baf610275" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 147; y: 150 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 152; y: 151 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3840 + hash: "a07dca2c0014609ca5241612550992f5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 156; y: 152 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 161; y: 153 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3856 + image: "test-pathview.4.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 168; y: 155 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 175; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3872 + hash: "e5a4e76dd607ba1bae97aaf184ee009a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 184; y: 157 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 194; y: 158 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3888 + hash: "bb1d2614e590562479fc8d301bc7402f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 203; y: 160 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 211; y: 160 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3904 + hash: "5d9fd2238666d3ae04613f1bba0fab05" } - Frame { - msec: 3792 - hash: "b269e9fe4d14537c8bef0b66effe7319" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 221; y: 162 + modifiers: 0 + sendToViewport: true } Mouse { - type: 2 - button: 1 + type: 5 + button: 0 buttons: 1 - x: 174; y: 234 + x: 231; y: 162 modifiers: 0 sendToViewport: true } Frame { - msec: 3808 - hash: "9480eb8761d4ce90971903fcfab1e09e" + msec: 3920 + hash: "b12a944cb5e593afbb21a10453879b52" } Mouse { type: 5 button: 0 buttons: 1 - x: 176; y: 236 + x: 241; y: 162 modifiers: 0 sendToViewport: true } - Frame { - msec: 3824 - hash: "30a6ac631e1a3433f252f56ee4337cdc" - } Mouse { type: 5 button: 0 buttons: 1 - x: 179; y: 238 + x: 251; y: 164 modifiers: 0 sendToViewport: true } Frame { - msec: 3840 - hash: "ff3df1951adc01e5046d807873b06992" + msec: 3936 + hash: "2f04c990978627b86fb2ad04579db0db" } Mouse { type: 5 button: 0 buttons: 1 - x: 184; y: 243 + x: 276; y: 167 modifiers: 0 sendToViewport: true } Frame { - msec: 3856 - hash: "ed07f9eea6cd2cd78a3e2479137f843d" + msec: 3952 + hash: "e7ddf142fc36174fcaaa70b9340ef7a8" } Mouse { type: 5 button: 0 buttons: 1 - x: 185; y: 244 + x: 288; y: 167 modifiers: 0 sendToViewport: true } - Frame { - msec: 3872 - hash: "7a5b201cc8725dbf15d89907fffd4ee3" - } Mouse { type: 5 button: 0 buttons: 1 - x: 197; y: 250 + x: 301; y: 169 modifiers: 0 sendToViewport: true } Frame { - msec: 3888 - hash: "bc2433b9e5f03cdbd35922d145a4ce59" + msec: 3968 + hash: "4fce53c6f5347fe03ecf17b07fabe3ac" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 312; y: 169 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 213; y: 256 + x: 324; y: 171 modifiers: 0 sendToViewport: true } @@ -1276,560 +1840,728 @@ VisualTest { type: 3 button: 1 buttons: 0 - x: 213; y: 256 + x: 324; y: 171 modifiers: 0 sendToViewport: true } Frame { - msec: 3904 - hash: "d443f23aa5449d5f2b11c47feab5a0ae" - } - Frame { - msec: 3920 - hash: "c43f00d3ae4c8abbd20fc7157363b19d" - } - Frame { - msec: 3936 - hash: "22d6f5e9fdfe44e73020e6f504002b7c" - } - Frame { - msec: 3952 - hash: "4a9a285834aad5795adbefbe167028e2" - } - Frame { - msec: 3968 - hash: "561a6c005950830acf2a45ab9a207346" - } - Frame { msec: 3984 - hash: "b0387e3cfd455e1144d0bce9b51d6767" + hash: "75a0ec2c0158c55a90147c3f4afaa19c" } Frame { msec: 4000 - hash: "610237f67aa7e5f8d5b363b1612b4966" + hash: "e89e98b7c1f36b74c664c77e121dedcb" } Frame { msec: 4016 - hash: "8034a5a7e0558d73051ea6c5bc750866" + hash: "f4c1e52a7b97a25fba640be2a1430d2d" } Frame { msec: 4032 - hash: "0e4dc8a9c124b51c5f1225f4c6a9ec63" + hash: "be58ca8f63dac8373825231512f483ca" } Frame { msec: 4048 - hash: "dc4e94522e8c64e9f2dbbf12a1f1aa3e" + hash: "755b16d4be00cb52595d42775d6227ac" } Frame { msec: 4064 - hash: "7466c076a95f2f6bbc2b6ce306773337" + hash: "c62f1ebbb1e4ae4ca22c060078d6240b" } Frame { msec: 4080 - hash: "787e2749905b97159fd0922c6cb388e2" + hash: "5f1187e9530584f9eb81ce1ce8267da0" } Frame { msec: 4096 - hash: "1e510d01afad190ec21de253bd8b4821" + hash: "5dc9921e9ddf15ee0457fcdc834544c5" } Frame { msec: 4112 - hash: "d740f40eb21be71ec70c00411d2ee76b" + hash: "efacedc2782435ef4e269e6956fb3547" } Frame { msec: 4128 - hash: "887a6f445af8fccf4932eed575a09cbb" + hash: "5b356dd3082f6b0920bb41d332595ce1" } Frame { msec: 4144 - hash: "fbb7e1d8cb9dd9016df0c33c69b1451a" + hash: "5d8afcc1abd890beb2badf85bcf02897" } Frame { msec: 4160 - hash: "5025e5f04a0807cb298037d6dda8c3af" + hash: "03c56ab4fea11cce19fcbb62dccb7683" } Frame { msec: 4176 - hash: "b9924f24f60c24087be165e8e385ebb0" + hash: "236254ce32a8e06dc42f2fd3c9ac6c7c" } Frame { msec: 4192 - hash: "2bab970787ac8b056401c8a73cb1a3c5" + hash: "4beb33da77bc2b41eb882a2a5cdeb539" } Frame { msec: 4208 - hash: "bda954bfafaa2915d760cf7a602b326f" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 187; y: 242 - modifiers: 0 - sendToViewport: true + hash: "b345470adead1ffb3af4d1091ffbd95c" } Frame { msec: 4224 - hash: "9b109bb9e786a45a78849436ea32a484" + hash: "c2677f1653b08952338a5c26a724ebe7" } Frame { msec: 4240 - hash: "9b109bb9e786a45a78849436ea32a484" + hash: "45b6633acf0ac28c5b5462920cf61282" } Frame { msec: 4256 - hash: "9b109bb9e786a45a78849436ea32a484" + hash: "26a9a6609ce8eee1f744c2bd43494f22" + } + Frame { + msec: 4272 + hash: "9373a8010a05d05cb5b3c2ec75359493" + } + Frame { + msec: 4288 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4304 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4320 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4336 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4352 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4368 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4384 + hash: "d0c561761825512a02a9e3640139cadc" + } + Frame { + msec: 4400 + hash: "d0c561761825512a02a9e3640139cadc" } Mouse { - type: 5 - button: 0 + type: 2 + button: 1 buttons: 1 - x: 187; y: 243 + x: 112; y: 126 modifiers: 0 sendToViewport: true } Frame { - msec: 4272 - hash: "9b109bb9e786a45a78849436ea32a484" + msec: 4416 + hash: "d0c561761825512a02a9e3640139cadc" } Mouse { type: 5 button: 0 buttons: 1 - x: 199; y: 252 + x: 112; y: 128 modifiers: 0 sendToViewport: true } Frame { - msec: 4288 - hash: "cc3c61f49a7b3c395670b86c8078a337" + msec: 4432 + hash: "d0c561761825512a02a9e3640139cadc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 114; y: 128 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 1 - x: 223; y: 262 + x: 115; y: 130 modifiers: 0 sendToViewport: true } Frame { - msec: 4304 - hash: "464d09b53b78fe5474d9c1d022bee9fd" + msec: 4448 + hash: "d0c561761825512a02a9e3640139cadc" } Mouse { type: 5 button: 0 buttons: 1 - x: 251; y: 272 + x: 116; y: 130 modifiers: 0 sendToViewport: true } Mouse { - type: 3 - button: 1 - buttons: 0 - x: 251; y: 272 + type: 5 + button: 0 + buttons: 1 + x: 119; y: 132 modifiers: 0 sendToViewport: true } Frame { - msec: 4320 - hash: "aab17f48ff506cda84543cbe0d8a1ce4" - } - Frame { - msec: 4336 - hash: "b7ba6c107f4085822a738120a913ba0c" - } - Frame { - msec: 4352 - hash: "751b79e202a70dcc9a86c3a1450172b8" - } - Frame { - msec: 4368 - hash: "bb03f969fd6987255ff113ef98ed2bb1" + msec: 4464 + hash: "0e7554f077e2d6d8c6cf9496b20ab009" } - Frame { - msec: 4384 - hash: "c33302b366441fa2d8753d5ce314cd37" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 134 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 4400 - hash: "4cdf32004382bcaca5a68cb92761caa2" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 131; y: 138 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4416 - hash: "d3fe18ea7dcbee0709a2041e50b87154" + msec: 4480 + hash: "d6e78f43c971abcc1d2aadb96e8b80b0" } - Frame { - msec: 4432 - hash: "ac58a7adb0e7a354a058d7e9a7010c06" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 147; y: 144 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 4448 - hash: "bdf8a8934a372ab49f4b6e9c95c7f591" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 168; y: 151 + modifiers: 0 + sendToViewport: true } Frame { - msec: 4464 - hash: "d2e8b417b74ec5f6e23f0935a4d0aa98" + msec: 4496 + hash: "10d8e0ee5bd432c639963c9cedd25b85" } - Frame { - msec: 4480 - hash: "0f94c6ca3ffbd730c2d813a991d21ca3" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 190; y: 157 + modifiers: 0 + sendToViewport: true } - Frame { - msec: 4496 - hash: "fb7728eebb2fa8f5255dc7435d20bbb6" + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 219; y: 164 + modifiers: 0 + sendToViewport: true } Frame { msec: 4512 - hash: "c8211e8adcef525c296531a3d369f717" + hash: "53e142d6b0112644d75df29f7865fbb4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 269; y: 171 + modifiers: 0 + sendToViewport: true } Frame { msec: 4528 - hash: "f24de36c85b87953977fa8b6456209dc" + hash: "9609807e6c2a27a8b9f1d5c878c3dadf" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 319; y: 176 + modifiers: 0 + sendToViewport: true } Frame { msec: 4544 - hash: "9ce7cf389af08cb1ba2534418f51857b" + hash: "a0a1e5fd37e9d8033f182f4f2b20fd26" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 361; y: 180 + modifiers: 0 + sendToViewport: true } Frame { msec: 4560 - hash: "17d1f3ae0dba0bde222bb2483a403fbd" + hash: "b40e553dc373e4018488d5421b9a8914" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 406; y: 185 + modifiers: 0 + sendToViewport: true } Frame { msec: 4576 - hash: "1748d75e229945012ece689b3784a02c" + hash: "22e36512a0af86fac12c09f735dcb1f7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 428; y: 187 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 428; y: 187 + modifiers: 0 + sendToViewport: true } Frame { msec: 4592 - hash: "6786fa9e31d6f0a71a285c790aa5b008" + hash: "70e9ad0f56e4c37f8684e38f614b889d" } Frame { msec: 4608 - hash: "f2a2ba33b41d8d522e8aab34c7da8f7b" + hash: "0754126f5738e3dcec35fc1ef65fdec3" } Frame { msec: 4624 - hash: "aa53142d1b433ae9f748aef5cb7bef46" + hash: "b3d84ceeecc294d21bc09a3197195c20" } Frame { msec: 4640 - hash: "9c6802b2b0a419a4aaf9909c0f88c66e" + hash: "ce00501e194b1056edf1ebd43b954a70" } Frame { msec: 4656 - hash: "206b11f2acd742d55ddd8acf7415bbeb" + hash: "793f41ac2568530e6d630446216833dc" } Frame { msec: 4672 - hash: "36876cf600cbf9c3b15f243617c9474e" + hash: "e8573de724b653439bde85c15e9555ab" } Frame { msec: 4688 - hash: "1f5daf97294b490546657c5d9e12022e" + hash: "bfb3f3645c7b2425b686ac23bcef82b8" } Frame { msec: 4704 - hash: "637fc34fc2cf6139ba8809be54a2a0fc" + hash: "faa78596e208c2cf4593ea25e31fabde" } Frame { msec: 4720 - hash: "9f824bd9e156980873619b1978f226bb" + hash: "f1b0931bffce37abfe5a6d635f1f8454" } Frame { msec: 4736 - hash: "7002444129a5077ce5be44a5e2530328" + hash: "0975630a55bfd56eb3e39426c1c3f1e5" } Frame { msec: 4752 - hash: "42b7a44030ad4fc50ceb6a60bc97991e" + hash: "98f1d79153a8009123abc94141375779" } Frame { msec: 4768 - hash: "ae986cac541033398076fb918136212e" + hash: "d864817f877a9eeb44c665518ea19687" } Frame { msec: 4784 - hash: "6bdd9f764b1675e5b0feced8c2d831a6" + hash: "79745c267d14e7790e1bb3a7e76f20b4" } Frame { msec: 4800 - hash: "6cddaed756ff1bcbd9a4627a4c8a44d8" + hash: "ec038d4cec64b847711fa221f808bead" } Frame { msec: 4816 - hash: "07dfffe85adc4b52565e9ed156fa3ed6" + image: "test-pathview.5.png" } Frame { msec: 4832 - hash: "c987bbe9fbf74bb6cf2686a5ee97c59a" + hash: "ef7b3f93abbf210f8f0d38a58380dc8f" } Frame { msec: 4848 - hash: "19568159ec2282d5f150583baa0a8a94" + hash: "f0eea63127df25f7f818596fc034fef8" } Frame { msec: 4864 - hash: "5b176ef6bf70ff1a9805ca85b1b0c1a2" + hash: "8000dee3ea54522a8193a7f9f2e86023" } Frame { msec: 4880 - hash: "de716a8c15a46bf1621878794e968c53" + hash: "111485ebaf93aae4f5e0a83da898bbac" } Frame { msec: 4896 - hash: "241af9ab77c86cdb75f73339548604ad" + hash: "4b2dee1fd88dcaeabc8235f6a0e5c090" } Frame { msec: 4912 - hash: "afc7168ecb7fa7e3310ca818b75f7a1c" + hash: "5e560c777d0294dfa8f249232bfcf3a2" } Frame { msec: 4928 - hash: "83bff911b502a34d139a724f686bb1f9" + hash: "d8b490092ca5ce3ef9b078f4768c382a" } Frame { msec: 4944 - hash: "f4d3fb54ae5be2b13065cd4316b06837" + hash: "28b2bbc3fd19786dd9c0ab718141c525" } Frame { msec: 4960 - hash: "d29c7dfedf9dd355d60e394528b3b938" + hash: "d1a61000ebc5a475c0223dde649c8054" } Frame { msec: 4976 - hash: "ddf23d860ea71ab4b407de1a5f913f74" + hash: "d3e8aae08a2518c039d6bda80fc520a4" } Frame { msec: 4992 - hash: "a0dbb6ecbfd08f9ebdd641fea5dae16c" + hash: "9f3bd8654adb9af0457dd50ff71fcd43" } Frame { msec: 5008 - hash: "7ed3170e55e3c3c9561959ad4c56d326" + hash: "befe00fef613b7616e2dc668a5ed59c7" } Frame { msec: 5024 - hash: "dbde5f508aabc2d1f2ccfaf135efeca9" + hash: "24e84e6998389aa119d7d9e0ac2206ac" } Frame { msec: 5040 - hash: "72039739be41bf63b3959bdc90ce25bb" + hash: "2d3d2b66bf016c8e499f527dbf8923db" } Frame { msec: 5056 - hash: "417789daefe6bc01320db7803ae31d61" + hash: "52d24673729dbd53d3227675b7001b24" } Frame { msec: 5072 - hash: "7e57dbddaf379f4316182048fa9e2d6f" + hash: "4e5c807682d7b6b7839c047a7fb4ad93" } Frame { msec: 5088 - hash: "aeca9a4df94d2b9ac2a713531a7d98f1" + hash: "319affea47c4a0b0e2c3db51b85430bc" } Frame { msec: 5104 - hash: "98ad6694f23678819020d6ac0161651c" + hash: "344962f0b88c7e8a33df71b4708fd1c0" } Frame { msec: 5120 - hash: "b6eba3872da19ec677eee419ae9cccbc" + hash: "ac099ba8a5639b9c83b6f58f2b5bcf93" } Frame { msec: 5136 - hash: "e824909bfe7b6d54773bb218ba93e884" + hash: "2f8e57c93289dcdc758281531300e949" } Frame { msec: 5152 - hash: "3be04f3ff6d948538f4472bc6bfadb0f" + hash: "e4cc3bdf6068064bcfdd0014cc301e65" } Frame { msec: 5168 - hash: "e05ff21dda1d978a2ac2eedd3826b6f7" + hash: "598c8a33e2bbf47b21df8b0636e0f0bc" } Frame { msec: 5184 - hash: "8ee970b2b197c8d879a7b1703cbd4dcd" + hash: "6aea67c85370eee8447a22e2b9e8c44c" } Frame { msec: 5200 - hash: "e583845e7719d2776c6362c34f77937c" + hash: "39e27a3376f4aba8510f7b0d90ca0e33" } Frame { msec: 5216 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "0ff93a16a07af43bd5e22a2b00fd2588" } Frame { msec: 5232 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "8b6004368b9b0a766f6b519820fe1ff6" } Frame { msec: 5248 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "5d92c0a12ff138d1b2c75bd042be4ea2" } Frame { msec: 5264 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "4386b0abe49106a0174154c726c301f6" } Frame { msec: 5280 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "832da8d2a86caa3ca96f33d2cd49178e" } Frame { msec: 5296 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "efee6ab1ba4a1112f2129aad12825667" } Frame { msec: 5312 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "f20a7e67a4789c559b0b0a7656bd89b1" } Frame { msec: 5328 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "350cc8c0085a8f79c9ea8880737a0b75" } Frame { msec: 5344 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "b19715b4029ea489debf7c5a269aca98" } Frame { msec: 5360 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "f383fcaf603af41650c5622bfaf136b3" } Frame { msec: 5376 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "0c62a442367fc0bac5117da1327ed39a" } Frame { msec: 5392 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "323ba45d158d983f359211f1a87b7ebd" } Frame { msec: 5408 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "aeed1a31b8b77dac2c2858969ff2d86c" } Frame { msec: 5424 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "27a9357730a97846ffeddd18492df04d" } Frame { msec: 5440 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "42f78593e64585b33c8854e8ea92710e" } Frame { msec: 5456 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "064f5cec99b9a351bebe2088019f46d1" } Frame { msec: 5472 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "d3669826f94aa2afc1069ab967f677a3" } Frame { msec: 5488 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "a118cf8892d29e6b70b4e65e42380c15" } Frame { msec: 5504 - hash: "593fd590531ccfb59d890b8043eaab9c" + hash: "f254260f01ff4697e9e3146cc106140d" } Frame { msec: 5520 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "ec062b2bb87444115c2e8744b7f80bde" } Frame { msec: 5536 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "4d45522a4e4253c810cac9cbf24c9b76" } Frame { msec: 5552 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "532c3d3ead73836948a1036e8e69cadf" } Frame { msec: 5568 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "4debea14aeac85ff4e64387938d8b010" } Frame { msec: 5584 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "d8940cf6e39a1bd5e7216a83ce87a676" } Frame { msec: 5600 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "fba6485f8a60a38ce2f3110137b1f2df" } Frame { msec: 5616 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "8a8909b114332dd932b784a2640e9ff4" } Frame { msec: 5632 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "fd901422400333c137240ef5f91928a3" } Frame { msec: 5648 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "97b84a957515d5823e381fdd86d31fb8" } Frame { msec: 5664 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "f3547ea694b88dd7d2fb8b04d6bf76a9" } Frame { msec: 5680 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "9eb0da29d0c323b45e62d31bee97ce8c" } Frame { msec: 5696 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "9d814096d27e9fbcffdf7e29866e0059" } Frame { msec: 5712 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "6087185e1e8bf17545a7372be2990ab2" } Frame { msec: 5728 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5744 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5760 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5776 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + image: "test-pathview.6.png" } Frame { msec: 5792 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5808 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5824 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5840 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5856 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5872 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5888 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" } Frame { msec: 5904 - hash: "c0d0f62d9078f6be493d5545a2ae78ad" + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 5920 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 5936 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 5952 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 5968 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 5984 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 6000 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 6016 + hash: "82e534c416dfe884e5abc2f91d902484" + } + Frame { + msec: 6032 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6048 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6064 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6080 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6096 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6112 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6128 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6144 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6160 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6176 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6192 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6208 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6224 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6240 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6256 + hash: "6839b467f32eaa79d4c1ce4905145350" + } + Frame { + msec: 6272 + hash: "6839b467f32eaa79d4c1ce4905145350" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml index 38368d4..3171203 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml @@ -1,7 +1,7 @@ import QtQuick 1.0 Rectangle { - width: 800; height: 450 + width: 580; height: 220 //Same as test-pathview, but with pathItemCount < model.count ListModel { @@ -20,8 +20,10 @@ Rectangle { id: photoDelegate Rectangle { id: wrapper - width: 85; height: 85; color: lColor + width: 65; height: 65; color: lColor scale: wrapper.PathView.scale + + MouseArea { anchors.fill: parent } transform: Rotation { id: itemRotation; origin.x: wrapper.width/2; origin.y: wrapper.height/2 @@ -31,9 +33,10 @@ Rectangle { } PathView { - id: pathView; model: rssModel; delegate: photoDelegate - y: 100; width: 800; height: 330; pathItemCount: 6; z: 1 - focus: true + id: photoPathView; model: rssModel; delegate: photoDelegate + anchors.fill: parent; z: 1 + anchors.topMargin:40 + pathItemCount: 6 path: Path { startX: -50; startY: 40; @@ -41,22 +44,27 @@ Rectangle { PathAttribute { name: "angle"; value: -45 } PathCubic { - x: 400; y: 220 - control1X: 140; control1Y: 40 - control2X: 210; control2Y: 220 + x: 300; y: 140 + control1X: 90; control1Y: 30 + control2X: 140; control2Y: 150 } PathAttribute { name: "scale"; value: 1.2 } PathAttribute { name: "angle"; value: 0 } PathCubic { - x: 850; y: 40 - control2X: 660; control2Y: 40 - control1X: 590; control1Y: 220 + x: 600; y: 30 + control2X: 440; control2Y: 30 + control1X: 420; control1Y: 150 } PathAttribute { name: "scale"; value: 0.5 } PathAttribute { name: "angle"; value: 45 } } } + + Column { + Rectangle { width: 20; height: 20; color: "red"; opacity: photoPathView.moving ? 1 : 0 } + Rectangle { width: 20; height: 20; color: "blue"; opacity: photoPathView.flicking ? 1 : 0 } + } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml index c89bd68..4374b84 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml @@ -1,7 +1,7 @@ import QtQuick 1.0 Rectangle { - width: 800; height: 450 + width: 580; height: 220 ListModel { id: rssModel @@ -19,7 +19,7 @@ Rectangle { id: photoDelegate Rectangle { id: wrapper - width: 85; height: 85; color: lColor + width: 65; height: 65; color: lColor scale: wrapper.PathView.scale MouseArea { anchors.fill: parent } @@ -33,7 +33,8 @@ Rectangle { PathView { id: photoPathView; model: rssModel; delegate: photoDelegate - y: 100; width: 800; height: 330; z: 1 + anchors.fill: parent; z: 1 + anchors.topMargin:40 path: Path { startX: -50; startY: 40; @@ -41,18 +42,18 @@ Rectangle { PathAttribute { name: "angle"; value: -45 } PathCubic { - x: 400; y: 220 - control1X: 140; control1Y: 40 - control2X: 210; control2Y: 220 + x: 300; y: 140 + control1X: 90; control1Y: 30 + control2X: 140; control2Y: 150 } PathAttribute { name: "scale"; value: 1.2 } PathAttribute { name: "angle"; value: 0 } PathCubic { - x: 850; y: 40 - control2X: 660; control2Y: 40 - control1X: 590; control1Y: 220 + x: 600; y: 30 + control2X: 440; control2Y: 30 + control1X: 420; control1Y: 150 } PathAttribute { name: "scale"; value: 0.5 } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png index 8b7ae74..be18b8d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png index 9088bb4..e4db4bc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png index 18cd429..d464e79 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png index 739afc1..b0b9386 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png index 93f0682..4ea4b24 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.6.png new file mode 100644 index 0000000..a115867 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml index 2366f71..5f1e8be 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "53540ff71d74d705a7f19325b50f81ce" + image: "dynamic.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "ec46803523ee0516ed2c89923ff2ded7" + image: "dynamic.2.png" } Frame { msec: 1952 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 2896 - hash: "235bf197b3867c734c4f4ead9db466d1" + image: "dynamic.3.png" } Frame { msec: 2912 @@ -966,7 +966,7 @@ VisualTest { } Frame { msec: 3856 - hash: "c92cba3c2825db4293153588c4b7b229" + image: "dynamic.4.png" } Frame { msec: 3872 @@ -1206,7 +1206,7 @@ VisualTest { } Frame { msec: 4816 - hash: "a0c46402b4700cc2099bdf42c47faf9b" + image: "dynamic.5.png" } Frame { msec: 4832 @@ -1446,7 +1446,7 @@ VisualTest { } Frame { msec: 5776 - hash: "4cb9ee1d12b99fb98bedcbcc048867e4" + image: "dynamic.6.png" } Frame { msec: 5792 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png index a104312..dd38019 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png index ae71dc8..d749080 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png index 6f631b0..57a3ae0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.3.png new file mode 100644 index 0000000..3a75ec4 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml index fd262e0..14280a0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml @@ -10,786 +10,786 @@ VisualTest { } Frame { msec: 32 - hash: "aefd5a2570cc0252be102644ec1e49e3" + hash: "1d0005639ad631a4f88fb2372b955741" } Frame { msec: 48 - hash: "6183d0554a8b812bee02719dc4df21d1" + hash: "b303c2fb08eb8158c322719d072deb06" } Frame { msec: 64 - hash: "e1b3a94d033626338de0e04dba7b6df9" + hash: "4b3d7a5b9b5f1a335e81e3aafce2a244" } Frame { msec: 80 - hash: "7d1a5a265fb20ac4d741d76ab7b3a41f" + hash: "33d144e82787ac28f9012105645f5eb8" } Frame { msec: 96 - hash: "0ce7d2acda3e5ccb7b2364e2a7b409a4" + hash: "b6e16400c1364241da2fc12810780b9b" } Frame { msec: 112 - hash: "21f3a66ee80fcb2dd4dce0d1666aa4dd" + hash: "e32e552a0ac9e517df2826d82ed3e483" } Frame { msec: 128 - hash: "ea5b81ff2805210111cb388ab9be0d8f" + hash: "855e317677189a8aa97909ac5c7a831c" } Frame { msec: 144 - hash: "a8a54a3c524dcf6777b71d99ae2d50bd" + hash: "cddb47ce0a793dc74c6cbc2b3fb138d0" } Frame { msec: 160 - hash: "6b658c468af8a88e4a282d57fdcbc3b0" + hash: "21932fa377c6c9652eb22bbae4bf7d23" } Frame { msec: 176 - hash: "986121c9d928cc9ceb912a975f75760a" + hash: "95adc0bfe18070001d531a36785af2a2" } Frame { msec: 192 - hash: "4bf3593d0edc4347cf77670a48ba4440" + hash: "b3c39dc57a658b1ff7c24194a4214696" } Frame { msec: 208 - hash: "ea00f25295fb019f949930fb7109ceb4" + hash: "d145d38d45f824f3dd2f43eddf38d310" } Frame { msec: 224 - hash: "ad6cc7563e2720c405842317d0ce731a" + hash: "dee8ad57b625965d3045089d5f6e80aa" } Frame { msec: 240 - hash: "8a03a1207cdb5bd92f5227b25a7b638e" + hash: "94263216e2b0ab77980b3cc0b42350a6" } Frame { msec: 256 - hash: "f355321aa47d18e8b6dde503565d0e97" + hash: "a9ea122b9b67428f9d28368ffb862c37" } Frame { msec: 272 - hash: "e18f671cac8e68948f32a468bf2630cf" + hash: "d1101c25521fd2308ccbe5ec318d9922" } Frame { msec: 288 - hash: "264bca92fba53f25439d240afef62880" + hash: "e854bb4accb78052ec3df32a80d29a94" } Frame { msec: 304 - hash: "a1a226c73fb97d5302ce683f901ee5c4" + hash: "10898f94cc74a888fc57f76897a56b2a" } Frame { msec: 320 - hash: "05578552476372fc58e463e84a147ddd" + hash: "65668c114d62e3e901953c9aca9fe276" } Frame { msec: 336 - hash: "0a3e0a651f9eb3e6a44a55a6786e60ff" + hash: "a67cd21b3c451134961d5890b05cff49" } Frame { msec: 352 - hash: "4ca362f079f96a01360ee8062fbb8238" + hash: "40fbf54e37f46dce2aeda74ed6815e42" } Frame { msec: 368 - hash: "ba512c117d97ce16ff92d03ce2b08056" + hash: "dc86af89de1edce0986c6e1a56bd0e21" } Frame { msec: 384 - hash: "8688355f0f97afe000d02f71c841d5dc" + hash: "b9700d510fe9b936d60a0ef22b1a4d23" } Frame { msec: 400 - hash: "a2ea6ad008da95a67d3bc70e11e3811d" + hash: "620edf9a854b1f32911b4af69be95076" } Frame { msec: 416 - hash: "83bc9c444ab8618438dc2b8b14716f7b" + hash: "28d9670eb3dea66506affaf8b8672c52" } Frame { msec: 432 - hash: "fafbba34fc8f9d33b559e6fcd0c5f1c6" + hash: "9deaf655b9e71dc835377526c5ae7d96" } Frame { msec: 448 - hash: "92d245951b759f74182602a7a337cb0f" + hash: "a19709d7bf37fd126f15da386527d0f8" } Frame { msec: 464 - hash: "e0634d25088a6855df8d86d84fe37cd7" + hash: "32dbd7c98038abf3775a2c788a687b27" } Frame { msec: 480 - hash: "7f4d05f4c3b1a365732e448f2c751740" + hash: "d1a22b8e8cbd429dc0e8bc22bfce5d4b" } Frame { msec: 496 - hash: "fcd6f55929f753f77b1617c0984b8690" + hash: "04a48f9f304a614535821f1278950789" } Frame { msec: 512 - hash: "7e88f100a7012d739cd3c97c4e7f4b45" + hash: "ba26b58e109d5b63e972e4acd7229162" } Frame { msec: 528 - hash: "8f9d029b3850ee2f11cdf6630d100682" + hash: "b92d3329f744c7de158a472b8b542437" } Frame { msec: 544 - hash: "b915f712b24f187ee759b3337fb0df7a" + hash: "c44139265be3def1cc73ea7198a64537" } Frame { msec: 560 - hash: "eae400a0c72d38156f7ae0f16ab9ee66" + hash: "6f211c82a64c7e0ef2e7700359ac226e" } Frame { msec: 576 - hash: "e913a1e317cca355b06a393f44cc0243" + hash: "1690781b90e6e4ad264db76943d3b6d2" } Frame { msec: 592 - hash: "abf075ea63a6f5cce43c38e20dbcdbb2" + hash: "2ab7e97b7426843f2488121fdda87b48" } Frame { msec: 608 - hash: "a6e85caa1eb933343a4605bc434e2841" + hash: "91fe6ed4d44d69e9ce79aa3636faf0cb" } Frame { msec: 624 - hash: "8e33e2582dd127d3f04017bf493b0ac6" + hash: "9b4638d2eb6ecc0b50c30e74dc4b098e" } Frame { msec: 640 - hash: "959e4062262bcc759abfc7b0bf3e10b6" + hash: "0e18542d1b5b887eaf22f936adb38bd0" } Frame { msec: 656 - hash: "9529e2241df0d90ea640fdb3752b0837" + hash: "f4a123a8811654d033c3613a80a8f3f7" } Frame { msec: 672 - hash: "5595b64495996ce66b5f6892e9457456" + hash: "14edd1cf660429e95c55ae81ce57d05d" } Frame { msec: 688 - hash: "532259c3577553622093eba907ae82d3" + hash: "1114235b75e814b80b70ce4109a0b6f3" } Frame { msec: 704 - hash: "85c4332100b6f5256702b594c83f4eff" + hash: "8ed2a94fab38d951325bbf79597134c6" } Frame { msec: 720 - hash: "b96292d85b12fa8e68c5de3deb29b980" + hash: "315a34cfe26778d86cadceea78fd15f6" } Frame { msec: 736 - hash: "64febec9c8b58e2b93249f19c57b7aba" + hash: "4a95ae04f498f93bf19ab2bc45c0be21" } Frame { msec: 752 - hash: "88e588af29131cf942e02b1080e564e5" + hash: "d241f7cfdfd241facb0b7f7a3d328d01" } Frame { msec: 768 - hash: "07f911478be2f36d0c1b9cb878f4fe47" + hash: "fae3040a9e0b2f9c76cc26bda47e04e9" } Frame { msec: 784 - hash: "8ffbf2381efefcbca413f6e3455018fb" + hash: "a444297639db23413810b2df5c47ed9c" } Frame { msec: 800 - hash: "6e456af680e40799d3f38bdde29a85f9" + hash: "8084ee95169c3176af563fc4cc033332" } Frame { msec: 816 - hash: "48a8dbc64d7823164c992f55b270115d" + hash: "8f6ac972fb537f496a69f7bde0e8bc22" } Frame { msec: 832 - hash: "a6d28eb1d0aafd387e35ca7b362bec53" + hash: "b7e632bc5c8a0a0c5d2b752e581ff5db" } Frame { msec: 848 - hash: "2e9f2b2ebf1b24f01fc986ded320d7c9" + hash: "341c29c41dc1d938dcf5d94d20ff9160" } Frame { msec: 864 - hash: "d0cafd9be3263193c207c39eeb051bb8" + hash: "2c7eb6f2974c6520bc2fbbb65c118124" } Frame { msec: 880 - hash: "8dee1a5365fa3ccd7036c8afa6a805cc" + hash: "8dd08316d3d4b17bd3d656dff2b69019" } Frame { msec: 896 - hash: "42f893afb80633f0ffb82f1725bb097f" + hash: "5c2a7456afbb094671e693df0a5fa37d" } Frame { msec: 912 - hash: "f466a404940abcd4c8f3180696da1a29" + hash: "d169ce70699b020f62bc33160b74887b" } Frame { msec: 928 - hash: "e5746e33b3eb155a354bc5900b7593ee" + hash: "e67ef3cd8dbcef11cf156b32eb0aae67" } Frame { msec: 944 - hash: "a1c2eb7048356f4ebc803d9d5439db24" + hash: "16d0d8676f754f0e85a3b425a4401c26" } Frame { msec: 960 - hash: "cecdb41f4b121dcb9ea8eedacdc4653b" + hash: "7681c0a07803c3eadedf05b60acca9be" } Frame { msec: 976 - hash: "338aec0e679a8f2e79f6a5503dfbd6c3" + image: "smoothedfollow.1.png" } Frame { msec: 992 - hash: "59321f1eb26c379e9e2a37b6890d922d" + hash: "5f87209dc76264d5c259092ccfd0663a" } Frame { msec: 1008 - hash: "f37a821b9cf9f67fd011c6790a2757f0" + hash: "c647b4725e7f1ce05b5b7bd067d54bff" } Frame { msec: 1024 - hash: "c3f1b8722c616ecd55d8496e76a9bf06" + hash: "d43d241fa85cadc042ae510fa441d01d" } Frame { msec: 1040 - hash: "ca6aff9addda2e3ac51e5e2013393365" + hash: "87a4b4fb8981b1ddb765236cd74a9084" } Frame { msec: 1056 - hash: "17d1aa7821ce8169a3100a3cd3a0df2b" + hash: "607fb5055cc0d5b6e8a1a37134a9686c" } Frame { msec: 1072 - hash: "d85dd272f35868d6832316e862db4ec1" + hash: "9ed861affdaf4de535ff65b26e1fa8ee" } Frame { msec: 1088 - hash: "8bce5bdadfa974655dc7e020ad43edeb" + hash: "cdfbf1d934a46b85c9d7a07e25eb3fee" } Frame { msec: 1104 - hash: "b97f71587a5187d5175e5d9f1409c00a" + hash: "94cc78c6be827b3f3b3d74d72af5a4db" } Frame { msec: 1120 - hash: "53d438e601c25aebfd2ecb0064cdf5cc" + hash: "50cd154de9141528f0417c0e0f0090a9" } Frame { msec: 1136 - hash: "18c43dd35b3e0d8f9ab5c8de3e48886a" + hash: "86e4a163ad5d7d9bee8f513a814fcac2" } Frame { msec: 1152 - hash: "e4ab585684d083de118b7862ef5cbd63" + hash: "61b927a9a58264b827ab00c30cddb4c1" } Frame { msec: 1168 - hash: "48ab046a2e2ca1a1225574b94925482e" + hash: "e50d30e42cb035e52cf88664182b7ac1" } Frame { msec: 1184 - hash: "c4bd06a5c329ef6975a60453f588bce7" + hash: "33a45c3ab72e3e582ef0e4a759064050" } Frame { msec: 1200 - hash: "864393a984dce3e9dd2daec56ddb3fe7" + hash: "323be0228c50a87f380c9b4e5af0c6c0" } Frame { msec: 1216 - hash: "fcdf4cfcd8a6d8667868ba9633475fe0" + hash: "d82e3de64104096e0cce7bc23d1f3f96" } Frame { msec: 1232 - hash: "5ac2b96158045c9b9eb35f1cbabe5b1f" + hash: "e8872b9d98dff227cb3eb8765cbfa5f5" } Frame { msec: 1248 - hash: "83c409e5d3e6fe9e953d9ce14d731b3b" + hash: "23ee9e4d9d5388c900072df7fb063164" } Frame { msec: 1264 - hash: "01805526b04e17b89238e7b929be48dd" + hash: "e23cb4cdcc53a364004a55144ea1af8a" } Frame { msec: 1280 - hash: "4708345219b3732f9aaf8b40645f65d2" + hash: "816ee1ba2a5fe2db4ee09cecb8d56c34" } Frame { msec: 1296 - hash: "12716f84b6f648df2cbe08cfea58764c" + hash: "d0f01509412d1e4aa192db8aa6dbc50d" } Frame { msec: 1312 - hash: "6cce1e6354bd338f364bcca84a5fd081" + hash: "ba37ba506ce63c6cda06f23a73c928d9" } Frame { msec: 1328 - hash: "c5da6f6b00402e0de00490792b963cdf" + hash: "194a5a791ee5008f585cf215e5cabc26" } Frame { msec: 1344 - hash: "0eacadf69c0818e818abaf3aaf823aff" + hash: "09c9466b27e57cf936653fdd91e885a8" } Frame { msec: 1360 - hash: "c68cd79bf0d329a3c672896b9ce2044d" + hash: "ee8ef68a1d5cde45431ac233d1cbe191" } Frame { msec: 1376 - hash: "26786f921ddddd9d2f975e1193943d2d" + hash: "45f3bede3b5ae8cde9d385746740760e" } Frame { msec: 1392 - hash: "68c7c1779bb19ee5cd9370b5c06f4ce7" + hash: "10ae672c18a84fec45513850797220b5" } Frame { msec: 1408 - hash: "5e87c3e00ef7fab01c17d9e89c661aab" + hash: "6d72fb8d4d1f7499b38e4969ae26409b" } Frame { msec: 1424 - hash: "0b459122be303c38d3564dd7fea53fc1" + hash: "7c6bf427b0f7aac8c869a0dd83277ca0" } Frame { msec: 1440 - hash: "3b13101a45b470fd04fa02f34548984b" + hash: "1289b04711ef38d4e37161f1385bf4d2" } Frame { msec: 1456 - hash: "6308fa1ed015bb698251af0d1b9be084" + hash: "2414780f52880801eea13dc9efba1cb2" } Frame { msec: 1472 - hash: "f219427d8fdf826f33351ba64db55d33" + hash: "37efbf23005659b4f2b29f224c929502" } Frame { msec: 1488 - hash: "0c9ad8c5224d3cdefb8ac793cac3ca79" + hash: "e70091696edf26a8dc8dc51d4932fd86" } Frame { msec: 1504 - hash: "38438307162bceef76afb043c82b6a82" + hash: "21e8d0b6eee7bc71ae7ccd05d9bb9280" } Frame { msec: 1520 - hash: "78b367e6bab0463fe08f5e634cfbced2" + hash: "321553e3e415cf7695d46a90050f8265" } Frame { msec: 1536 - hash: "81e56f9d3bb9b360a07dc85697a59340" + hash: "235f975c8b382caee2004a8bf9533385" } Frame { msec: 1552 - hash: "cef4fdb8c12485d3590e598090312297" + hash: "abeeb9ff4c51f2b4ba5c9fee98e72926" } Frame { msec: 1568 - hash: "8ea0c90a100c583558f92843030543cc" + hash: "d2de1c552fdf4675baccab402100aabb" } Frame { msec: 1584 - hash: "0037f0f17a50bdfe3bf0de810ff837f1" + hash: "26d2ac9f31c9181222edda09a4452b5f" } Frame { msec: 1600 - hash: "2b060ac0dfa045b916d3fd5ff6f84bfb" + hash: "8c1ac1872a6720185ec670150e344683" } Frame { msec: 1616 - hash: "b20705dcc6176efd83cff6927991ff0a" + hash: "3b792cf960fc8dd6b424ce4c9f2aa0a1" } Frame { msec: 1632 - hash: "0af69e490bdc54f27d3e50c1fdfd12a8" + hash: "4f0e2dad54e5be44c0345732deae067d" } Frame { msec: 1648 - hash: "8e4cceadc01de5b51082889efabcbb7e" + hash: "17f21faa9293cfd4ef63fcee9d07f264" } Frame { msec: 1664 - hash: "b64958786a7007686fb1734783d553f5" + hash: "0ea885db3c4c5facb96306f1fbf6bc43" } Frame { msec: 1680 - hash: "e0b9d98bb3a596fd235d58b6a761a0e0" + hash: "a68e7bb730b29b4c3b5468fd7b3d1d4f" } Frame { msec: 1696 - hash: "1a5d7dc4dfd3ee86a36978d4effd299c" + hash: "719de171d8413f691e4ece4bcb00896c" } Frame { msec: 1712 - hash: "4946561f008635599651bf24b9aa0594" + hash: "ee9f5c2bfda6718a23fdd6c8f3f2e765" } Frame { msec: 1728 - hash: "8427d33046af64c6e63939238c101e86" + hash: "0f01834bbcfe690e5ee2d5897e5ea225" } Frame { msec: 1744 - hash: "cdcfab5cea86c33f276c3613d76067c4" + hash: "68af59f35ff14d9ff12a2a05f22cca69" } Frame { msec: 1760 - hash: "966005d62bd69b53d77459e5ab65116c" + hash: "50c9141aae689a8f09acf4d914075299" } Frame { msec: 1776 - hash: "8a3c4ff083a973325c4ab09e09027ef6" + hash: "beb9e30c9b4f0d351c1387c69ea99208" } Frame { msec: 1792 - hash: "737ffd6f52fa3d812ecaf835a30495af" + hash: "2079cd433d9d29ad330e0782853712c7" } Frame { msec: 1808 - hash: "6731007c97ba3ba60e73ab50803868e5" + hash: "de18d8be8fc1414cc19d446c659d1bcd" } Frame { msec: 1824 - hash: "caa4ea08c5c330e77a7445cc1adf1666" + hash: "031807325492a899da9a91a9512487dd" } Frame { msec: 1840 - hash: "73778bfbae55a81557a128acb4a197c8" + hash: "4fdd8f3b01b4b61d269001604144bb7c" } Frame { msec: 1856 - hash: "7d8609f1336ddf4e25b505e54142114e" + hash: "1172ec8a63f431f457b9a398b3d03571" } Frame { msec: 1872 - hash: "d8b4514d2bd77dbe67e27d400dc1a2f3" + hash: "4741a14556e9d32c2b180cca9009c63a" } Frame { msec: 1888 - hash: "ac3e7040f1e9fc680f52f46d25eb3faa" + hash: "ec2c6d187a97037b5c1edea65d4b17cc" } Frame { msec: 1904 - hash: "509c21774f0fca9dde0657133a1cc363" + hash: "ea7d445310c28aa3e07735f1c7db4a28" } Frame { msec: 1920 - hash: "6b810b1a3a9090ea11456a0bdf170c8a" + hash: "3424b2d983a8962d9abb232c3d7c7814" } Frame { msec: 1936 - hash: "545bcb0c362a083ee698a5c8cd225014" + image: "smoothedfollow.2.png" } Frame { msec: 1952 - hash: "77370c9b2880c55fecf07457dd0d455b" + hash: "c362edcbe4e4460aa18599c05e993312" } Frame { msec: 1968 - hash: "6c44209f31f5f010f1b3e05490468821" + hash: "1a1291338c205ef2d315a43cca1caae2" } Frame { msec: 1984 - hash: "2dffac0c44e52f2984525d3d3700e6ed" + hash: "ff6f0f47955d069a65cf9d19b7a061ff" } Frame { msec: 2000 - hash: "d70f2db1b166b2de3bef74bc4bf94a80" + hash: "3a6b787bbfe0510fdc8693a4827043e5" } Frame { msec: 2016 - hash: "50e4f6a82f498066fc9b6588762f59f9" + hash: "8198a6eec71a6da13b77397f3ead05a3" } Frame { msec: 2032 - hash: "956a7d7db9aef1b7abefac1a69622f02" + hash: "4c0fcb8d2105f104f6e1db0d58077c01" } Frame { msec: 2048 - hash: "13f19d5baefb6c8c9f71c16163663a27" + hash: "d9146739fa248ddcb6b4308d125825e7" } Frame { msec: 2064 - hash: "076ff84405ddb29a12ed30d27cee558b" + hash: "5bda4f61879d0e9c714f2c138a91f4fd" } Frame { msec: 2080 - hash: "6af0261639f809da8f7e4831559596d3" + hash: "30c0f8016506edb6875fd4cfa16cfa0f" } Frame { msec: 2096 - hash: "a0500b18e99bfe3a48d52cc62b4a946b" + hash: "bc04c5ae627073fcc467b86bea097630" } Frame { msec: 2112 - hash: "bb0ea576c9136fb70720d4540731d2ca" + hash: "7fcc2f6a7c620202a55618e66ed3c5f9" } Frame { msec: 2128 - hash: "d9b12ad9bf54d7db0ef1b36297a6dd6c" + hash: "36f0855b78bbbf08ddf28f7a5775aea8" } Frame { msec: 2144 - hash: "2de77e082872f072a849ba9ea93e3aec" + hash: "4acd7d6bceab6c8ba4508f9edddab6e7" } Frame { msec: 2160 - hash: "69e186c3e8e6b2c75da2ca87043129da" + hash: "2074776f5bd921148a50fad1004c00ea" } Frame { msec: 2176 - hash: "0c2f23b0cbedb45a68f0cbe6132b4820" + hash: "0d79e1f38609320586831d93d87532a9" } Frame { msec: 2192 - hash: "533bad00e5624611ea8a15d5fa98f0f2" + hash: "0402d99770dd23cbfc051eb576a29b57" } Frame { msec: 2208 - hash: "d9c60bc821205aa4ea38d846e5b00f3a" + hash: "456ba4fbe1ff68e1c9e22c9182c98ac6" } Frame { msec: 2224 - hash: "d4de041edf15c6b6806d7f5992146711" + hash: "de41559e07d9e58a68e26cf4daab879f" } Frame { msec: 2240 - hash: "100145df5271efaaee1d619bd50b69fc" + hash: "ad5087eae86c1b2afe5dbbcf8d098b18" } Frame { msec: 2256 - hash: "22905b794fee24f3a25e4944d5505e96" + hash: "117dc7b2e560a6959ef82dc461580620" } Frame { msec: 2272 - hash: "aeed7adea08fe6e8b60310082cf87b6c" + hash: "4ce30665d1e63f728018cddfda1e3249" } Frame { msec: 2288 - hash: "82bf8d40b6ed8aae9d6172eae76d1859" + hash: "c1e66d2c554b81631aff66e695e05ee0" } Frame { msec: 2304 - hash: "b1881778936744db3df0898638e4b0df" + hash: "293b4c3a8ba18d9000f1a0c35ba3dbed" } Frame { msec: 2320 - hash: "87195016996f8786a8a2430c54f13494" + hash: "eefcc0eb3e4847dbf7edc52979c19cfb" } Frame { msec: 2336 - hash: "56f99b14320662b90eb10e77845bba30" + hash: "1e25f0a629cffa99c3c962c5ce72cba3" } Frame { msec: 2352 - hash: "69a84022d8d2b3cdb1d7eae6ce5ccef2" + hash: "e86a378941f876143cf13ef8c161d155" } Frame { msec: 2368 - hash: "578ca8c66da6aa64392b253ab6cccbc0" + hash: "7063d2895353e4e2659e0911f8959a92" } Frame { msec: 2384 - hash: "4c2058e4708001f82f3bcb8110d6a54f" + hash: "d26161aad10ec6d446dbae65bcc73926" } Frame { msec: 2400 - hash: "a838be752168bc6feb3151327147bb23" + hash: "3322df938aa5d2ffa32e445ad1f8b1a2" } Frame { msec: 2416 - hash: "bf6cde06f0ee814cd4a23f3d43e7d270" + hash: "4ce384ace0527cb637865426a42d382f" } Frame { msec: 2432 - hash: "9162ec43bc84261c0eb9ea2425da0b8a" + hash: "5f49f970488f457681a9a59e82a1650e" } Frame { msec: 2448 - hash: "7be19df0ee54f9bb31ebee2d786addc8" + hash: "d5494958d0c8f4307506c0b27f4a350c" } Frame { msec: 2464 - hash: "542a4c004f5b1b8efa7588b27cc2ba43" + hash: "cebee9854c54f2badef1cfa6b12adc88" } Frame { msec: 2480 - hash: "f9e2edd343be212a9679f1e2ad0e73b3" + hash: "9824242313879d9494b561a0a3a7fdc2" } Frame { msec: 2496 - hash: "b6d4e9169fc4446cdbd3a36f485b943b" + hash: "a14019028da0d3bf08782bf8285a188c" } Frame { msec: 2512 - hash: "0d3b7a652a94162b71e88ed213559af4" + hash: "f241eb27a0460182d08c6e4e1ebbc25b" } Frame { msec: 2528 - hash: "9d4a2383a4d43ac94ff0a344f217b22d" + hash: "3b243c79d097f89e5a3f8ece97321026" } Frame { msec: 2544 - hash: "719d402379c40de5cd6d4c8fa92f5472" + hash: "95755ce577ab0b8ede949851ce842d9d" } Frame { msec: 2560 - hash: "78fb55f5b9c2033a91e41100229e4465" + hash: "0cd40a2a4b9d0b7dbba8dff247db178f" } Frame { msec: 2576 - hash: "0a9ec91eee6c7c770ce2e414fa881229" + hash: "b964995f06ab287a98569baab365c475" } Frame { msec: 2592 - hash: "5d9f81f1becf486a09f086e15a64d1f0" + hash: "a28aca3ba953c52ac00fea0c84a6aba9" } Frame { msec: 2608 - hash: "0f5e18af1eac31e6993ea2df51a143f0" + hash: "d45d2eaeab472eaa1bd9460f4464c62b" } Frame { msec: 2624 - hash: "08a292373756b06c3a624b8f3bf06236" + hash: "0872615e2d8d2ec1192ec6e60aff01c7" } Frame { msec: 2640 - hash: "f3c8101429753ce8f0ee094fe0db98ac" + hash: "8724c4128b869be51053deafd68e4e47" } Frame { msec: 2656 - hash: "1603ad220d68ae0a2f613687533c2ebc" + hash: "8c8e0a8fed148120b2b79d3c6b886651" } Frame { msec: 2672 - hash: "e2b8049d18fd36fff0180bd4bc199732" + hash: "35357a5689398f6f594ae45743555107" } Frame { msec: 2688 - hash: "d1bfeadaa9046ec5013734938a8f4af1" + hash: "848a069b9e8334482e118ba0df14dc1c" } Frame { msec: 2704 - hash: "3cb3a0e9dc73e76101288395ffeb2b7b" + hash: "26cb86bd54616c69966d949424d4d41f" } Frame { msec: 2720 - hash: "104a10e6bd48dacfedf5c98cf641ae93" + hash: "437669b1efa8b33ee469547527ccb4d9" } Frame { msec: 2736 - hash: "f04a2985e7c203dd6fce46b60fcb23fc" + hash: "ff040bafe5c484d7b516008f17411ad2" } Frame { msec: 2752 - hash: "30cb747f4604c208d7dc697d5fe2af6b" + hash: "fdab8b8cf64a2b15ab07691ca2ad115f" } Frame { msec: 2768 - hash: "b9eca6ee8fe29351cadeb9a2caf36fa6" + hash: "e3867ffaf98270f6efe77d816a8254cb" } Frame { msec: 2784 - hash: "7bc56e712d713a00a684e07cf3d09907" + hash: "cbad5ba7c09567166f063955b45aa647" } Frame { msec: 2800 - hash: "0d7a5e2ff588b71e77abb72723c763b2" + hash: "336049bb4ff2e945483648feabe997c2" } Frame { msec: 2816 - hash: "0d961843e54cbe5ba76c11bcd634bc39" + hash: "45e65f29cc932090a3bfc2292c4e5e72" } Frame { msec: 2832 - hash: "6328b52965a002944c501d9888928caa" + hash: "d617d33fe22196f88844a7adc5305413" } Frame { msec: 2848 - hash: "63e668a7688167b604b641929843d0cf" + hash: "fb32358f314d9cd6ac6646888f402b46" } Frame { msec: 2864 - hash: "7f5e71332268be68de9dcb25f173d2e0" + hash: "2897322c869a0bd7a851ff779c8591bf" } Frame { msec: 2880 - hash: "d97e6dd2b3c79fe0b306981c08b6cea4" + hash: "c41d71d62727f0fc26dc790f09c67168" } Frame { msec: 2896 - hash: "dc6e83fcc5a403913a94c498f1571098" + image: "smoothedfollow.3.png" } Frame { msec: 2912 - hash: "8deb275bd08df9b3abdcf3e2796a0601" + hash: "b5c2182ce797d91175d9f7493a77aae8" } Frame { msec: 2928 - hash: "6c08a25a442b97a8cb359792b6a01641" + hash: "4436d56d8dba299619be367cf57dc41d" } Frame { msec: 2944 - hash: "5f7ccd5706c77f0b0ddced41ed6352d8" + hash: "fe2d68f672a78568da1a281be13eda36" } Frame { msec: 2960 - hash: "6668d1936524f0fdc490720a962a3698" + hash: "90731590c28f254a213f83f83b988608" } Frame { msec: 2976 - hash: "e36f901fb4b8ad754592642a7575e4ee" + hash: "e276149e000e768a5b2704fde77bff2b" } Frame { msec: 2992 - hash: "7453182980e458d827f3ff83aa3f2c88" + hash: "616b2d32f6b0f047a252f0b698408d87" } Frame { msec: 3008 - hash: "0e15d75b2a7f2e4a39906093b930d6a8" + hash: "ebd003e7712060ec45d7be9bebb9ab8f" } Frame { msec: 3024 - hash: "822ccc6c629eabf38fd5ac56abb638f5" + hash: "d97b14eb1fe9556b283b5d7b35f30fcc" } Frame { msec: 3040 - hash: "331ef5b3e3dd5642f8532d337fd22def" + hash: "a926b60b28442c4318fb3c2c5474540c" } Frame { msec: 3056 - hash: "3c29aae83f28239f31125ef02f523d02" + hash: "7908c0356da3bc27d2513c843a0d4feb" } Frame { msec: 3072 - hash: "56ed674bf2d345861eb235a4239078e2" + hash: "48644d6fb0dbd280b806c991b3b72417" } Frame { msec: 3088 - hash: "5412b9ad01a6780b67bc59b80a274cd5" + hash: "4efbb4954b2d2c26f3e32f9f1bba6b41" } Frame { msec: 3104 - hash: "a6f9ae09a7386f06a84c251083660dd6" + hash: "d9c5e5ca5d6c1189740706673abab943" } Frame { msec: 3120 - hash: "83f07277c9bec7419dd6a4d40d8accf7" + hash: "d0acc9b7ee97220e551df16e0c3d1f53" } Frame { msec: 3136 - hash: "e6cb74961dfef68a32f255176e0ebff3" + hash: "2610d1de5d32e74ab8fd238cd721ef2e" } Frame { msec: 3152 - hash: "9e6c3ac0190beaf30754155a5d64b81c" + hash: "b8d1e724d5cb172ab5d7475d2f7a6ee6" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml index 720d2e6..c154aa0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml @@ -1,40 +1,40 @@ import QtQuick 1.0 Rectangle { - width: 800; height: 720; color: "gray" + width: 400; height: 360; color: "gray" Rectangle { id: rect - width: 50; height: 20; y: 30; color: "black" + width: 25; height: 10; y: 15; color: "black" SequentialAnimation on x { loops: Animation.Infinite - NumberAnimation { from: 50; to: 700; duration: 1000 } - NumberAnimation { from: 700; to: 50; duration: 1000 } + NumberAnimation { from: 25; to: 350; duration: 1000 } + NumberAnimation { from: 350; to: 25; duration: 1000 } } } Rectangle { - width: 50; height: 20; x: rect.x; y: 60; color: "red" - Behavior on x { SmoothedAnimation { velocity: 400 } } + width: 25; height: 10; x: rect.x; y: 30; color: "red" + Behavior on x { SmoothedAnimation { velocity: 200 } } } Rectangle { - width: 50; height: 20; x: rect.x; y: 90; color: "yellow" - Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } } + width: 25; height: 10; x: rect.x; y: 45; color: "yellow" + Behavior on x { SmoothedAnimation { velocity: 150; reversingMode: SmoothedAnimation.Immediate } } } Rectangle { - width: 50; height: 20; x: rect.x; y: 120; color: "green" - Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } } + width: 25; height: 10; x: rect.x; y: 60; color: "green" + Behavior on x { SmoothedAnimation { velocity: 100; reversingMode: SmoothedAnimation.Sync } } } Rectangle { - width: 50; height: 20; x: rect.x; y: 150; color: "purple" - Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } } + width: 25; height: 10; x: rect.x; y: 75; color: "purple" + Behavior on x { SmoothedAnimation { velocity: 100; maximumEasingTime: 100 } } } Rectangle { - width: 50; height: 20; x: rect.x; y: 180; color: "blue" + width: 25; height: 10; x: rect.x; y: 90; color: "blue" Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } } } @@ -42,13 +42,13 @@ Rectangle { Rectangle { id: rect2 property int dir: 1 - width: 50; height: 20; x:50; y: 240; color: "black" + width: 25; height: 10; x:25; y: 120; color: "black" function advance(){ - if(x >= 700) + if(x >= 350) dir = -1; - if(x <= 50) + if(x <= 25) dir = 1; - x += 130.0 * dir; + x += 65.0 * dir; } } Timer{ @@ -59,39 +59,39 @@ Rectangle { } Rectangle { - width: 50; height: 20; x: rect2.x; y: 270; color: "red" - Behavior on x { SmoothedAnimation { velocity: 400 } } + width: 25; height: 10; x: rect2.x; y: 135; color: "red" + Behavior on x { SmoothedAnimation { velocity: 200 } } } Rectangle { - width: 50; height: 20; x: rect2.x; y: 300; color: "yellow" - Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } } + width: 25; height: 10; x: rect2.x; y: 150; color: "yellow" + Behavior on x { SmoothedAnimation { velocity: 150; reversingMode: SmoothedAnimation.Immediate } } } Rectangle { - width: 50; height: 20; x: rect2.x; y: 330; color: "green" - Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } } + width: 25; height: 10; x: rect2.x; y: 165; color: "green" + Behavior on x { SmoothedAnimation { velocity: 100; reversingMode: SmoothedAnimation.Sync } } } Rectangle { - width: 50; height: 20; x: rect2.x; y: 360; color: "purple" - Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } } + width: 25; height: 10; x: rect2.x; y: 180; color: "purple" + Behavior on x { SmoothedAnimation { velocity: 100; maximumEasingTime: 100 } } } Rectangle { - width: 50; height: 20; x: rect2.x; y: 390; color: "blue" + width: 25; height: 10; x: rect2.x; y: 195; color: "blue" Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } } } //rect3 just jumps , but the rects following it should be smooth Rectangle { id: rect3 - width: 50; height: 20; x:50; y: 480; color: "black" + width: 25; height: 10; x:25; y: 240; color: "black" function advance(){ - if(x == 50) - x = 700; + if(x == 25) + x = 350; else - x = 50; + x = 25; } } Timer{ @@ -102,27 +102,27 @@ Rectangle { } Rectangle { - width: 50; height: 20; x: rect3.x; y: 510; color: "red" - Behavior on x { SmoothedAnimation { velocity: 400 } } + width: 25; height: 10; x: rect3.x; y: 255; color: "red" + Behavior on x { SmoothedAnimation { velocity: 200 } } } Rectangle { - width: 50; height: 20; x: rect3.x; y: 540; color: "yellow" - Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } } + width: 25; height: 10; x: rect3.x; y: 270; color: "yellow" + Behavior on x { SmoothedAnimation { velocity: 150; reversingMode: SmoothedAnimation.Immediate } } } Rectangle { - width: 50; height: 20; x: rect3.x; y: 570; color: "green" - Behavior on x { SmoothedAnimation { velocity: 200; reversingMode: SmoothedAnimation.Sync } } + width: 25; height: 10; x: rect3.x; y: 285; color: "green" + Behavior on x { SmoothedAnimation { velocity: 100; reversingMode: SmoothedAnimation.Sync } } } Rectangle { - width: 50; height: 20; x: rect3.x; y: 600; color: "purple" - Behavior on x { SmoothedAnimation { velocity: 200; maximumEasingTime: 100 } } + width: 25; height: 10; x: rect3.x; y: 300; color: "purple" + Behavior on x { SmoothedAnimation { velocity: 100; maximumEasingTime: 100 } } } Rectangle { - width: 50; height: 20; x: rect3.x; y: 630; color: "blue" + width: 25; height: 10; x: rect3.x; y: 315; color: "blue" Behavior on x { SmoothedAnimation { velocity: -1; duration: 300 } } } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.1.png index d24af1a..f159b6b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.2.png new file mode 100644 index 0000000..d24af1a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml index 6f0c939..2e8337e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "2ff4e8f394a62892adb348271435205c" + image: "clock.1.png" } Frame { msec: 992 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1936 - hash: "a3e6173e6d82d2cb52149588b32851e4" + image: "clock.2.png" } Frame { msec: 1952 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png index d00d78d..7b7db05 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png index c01c980..7c1442f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png index 6bca85f..c01c980 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png index 5f024d2..8806e4c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png index b244fbe..b331119 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png index 141753c..76e3c6f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png new file mode 100644 index 0000000..141753c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml index 12d7897..4548e5b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 976 - hash: "78422e0e8d323dea6aa655a2980b7562" + image: "follow.1.png" } Frame { msec: 992 @@ -494,7 +494,7 @@ VisualTest { } Frame { msec: 1936 - hash: "379d5c4ced414f856e476095fbedfb7d" + image: "follow.2.png" } Frame { msec: 1952 @@ -734,7 +734,7 @@ VisualTest { } Frame { msec: 2896 - hash: "3c5d3d10bacc093afc6a9c0b5aa4cddc" + image: "follow.3.png" } Frame { msec: 2912 @@ -982,7 +982,7 @@ VisualTest { } Frame { msec: 3856 - hash: "0aed83364cd59e3f7309c92593894d43" + image: "follow.4.png" } Frame { msec: 3872 @@ -1222,7 +1222,7 @@ VisualTest { } Frame { msec: 4816 - hash: "a510d302d2441b9a07463aed8b592d32" + image: "follow.5.png" } Frame { msec: 4832 @@ -1462,7 +1462,7 @@ VisualTest { } Frame { msec: 5776 - hash: "6354ebe3aa919a52902b5a5346b473ae" + image: "follow.6.png" } Frame { msec: 5792 @@ -1702,7 +1702,7 @@ VisualTest { } Frame { msec: 6736 - hash: "228920e994ebf71d542c71ce8263614e" + image: "follow.7.png" } Frame { msec: 6752 @@ -1731,7 +1731,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 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 9b76db0..38f2051 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 1059209..d431bb8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml @@ -10,238 +10,238 @@ VisualTest { } Frame { msec: 32 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 48 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 64 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 80 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 96 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 112 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 128 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 144 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 160 - hash: "1ec47db85ba34bf1900445a2ab87b5e3" + hash: "d80fd046c582a26230e547471f290f12" } Frame { msec: 176 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 192 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 208 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 224 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 240 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 256 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 272 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 288 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 304 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 320 - hash: "1fc2a63fa95e277bed60abfdecc7c82f" + hash: "f9e466557e920150c638621536d94e5b" } Frame { msec: 336 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 352 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 368 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 384 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 400 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 416 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 432 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 448 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 464 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 480 - hash: "3a4e863d83f5d475e0c8c5121905bd87" + hash: "40b5718a9370c332f254a3ead05dfe5b" } Frame { msec: 496 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 512 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 528 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 544 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 560 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 576 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 592 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 608 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 624 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 640 - hash: "8887c8f40667f65a814d74b6edcfb81c" + hash: "3249c560c69e915020f9632acd1c5eca" } Frame { msec: 656 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 672 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 688 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 704 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 720 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 736 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 752 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 768 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 784 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 800 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 816 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 832 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 848 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 864 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 880 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 896 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 912 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 928 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 944 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } Frame { msec: 960 - hash: "436000b48f688120d96919227d9e67b4" + hash: "2df61c56ba08ef258a0d493760127a8d" } } 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 index b2ac22f..823199c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png 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 22c4b93..4bf0697 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml @@ -10,122 +10,122 @@ VisualTest { } Frame { msec: 32 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 48 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 64 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 80 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 96 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 112 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 128 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 144 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 160 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 176 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 192 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 208 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 224 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 240 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 256 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 272 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 288 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 304 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 320 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 336 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 352 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 368 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 384 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 400 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 416 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 432 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 448 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 464 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 480 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } Frame { msec: 496 - hash: "e38b59f2c271def037213e57a966bd95" + hash: "7e082fa05e000cc20fcda7cb61d98edd" } } 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 50b367f..026d06c 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png new file mode 100644 index 0000000..026d06c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.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 6cad9e8..26d0656 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml @@ -10,251 +10,251 @@ VisualTest { } Frame { msec: 32 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 48 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 64 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 80 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 96 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 112 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 128 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 144 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 160 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 176 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 192 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 208 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 224 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 240 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 256 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 272 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 288 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 304 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 320 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 336 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 352 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 368 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 384 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 400 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 416 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 432 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 448 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 464 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 480 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 496 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 512 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 528 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 544 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 560 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 576 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 592 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 608 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 624 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 640 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 656 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 672 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 688 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 704 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 720 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 736 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 752 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 768 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 784 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 800 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 816 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 832 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 848 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 864 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 880 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 896 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 912 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 928 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 944 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 960 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 976 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + image: "qtbug_14865.1.png" } Frame { msec: 992 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 1008 - hash: "cd8f901f2e9c46f52bebd83437fcbd6f" + hash: "4235bd6abcbdf6621c4c41153fbaada5" } Frame { msec: 1024 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png index de216ba..53d3c12 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png new file mode 100644 index 0000000..53d3c12 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png differ 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 949f077..7aadc15 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml @@ -10,243 +10,243 @@ VisualTest { } Frame { msec: 32 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 48 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 64 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 80 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 96 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 112 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 128 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 144 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 160 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 176 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 192 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 208 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 224 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 240 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 256 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 272 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 288 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 304 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 320 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 336 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 352 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 368 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 384 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 400 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 416 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 432 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 448 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 464 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 480 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 496 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 512 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 528 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 544 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 560 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 576 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 592 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 608 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 624 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 640 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 656 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 672 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 688 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 704 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 720 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 736 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 752 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 768 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 784 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 800 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 816 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 832 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 848 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 864 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 880 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 896 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 912 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 928 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 944 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 960 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 976 - hash: "bdf278826a033dbb744d1fa9492c9351" + image: "elide.1.png" } Key { type: 6 @@ -258,22 +258,22 @@ VisualTest { } Frame { msec: 992 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 1008 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 1024 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 1040 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } Frame { msec: 1056 - hash: "bdf278826a033dbb744d1fa9492c9351" + hash: "40d4596fcecc4e6a214decccc581a75f" } } 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 51d009f..2f4c84a 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png index 43565b6..ae786a2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.2.png index f2df9b2..785093e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.3.png index 11cf86c..28f95c9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.4.png new file mode 100644 index 0000000..963c4ea Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.4.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 7d2ee3d..6e9057c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml @@ -10,435 +10,435 @@ VisualTest { } Frame { msec: 32 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 48 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 64 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 80 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 96 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 112 - hash: "26a468619443250a160845a894643eb9" + hash: "716f5d150bd8757952d7b4ba327fb8bd" } Frame { msec: 128 - hash: "26a468619443250a160845a894643eb9" + hash: "8ec55fba2017a56c641c7baca5345b8b" } Frame { msec: 144 - hash: "26a468619443250a160845a894643eb9" + hash: "8ec55fba2017a56c641c7baca5345b8b" } Frame { msec: 160 - hash: "26a468619443250a160845a894643eb9" + hash: "8ec55fba2017a56c641c7baca5345b8b" } Frame { msec: 176 - hash: "26a468619443250a160845a894643eb9" + hash: "8ec55fba2017a56c641c7baca5345b8b" } Frame { msec: 192 - hash: "26a468619443250a160845a894643eb9" + hash: "79dc1645a5486ddfa3d957f3bd4ffbda" } Frame { msec: 208 - hash: "26a468619443250a160845a894643eb9" + hash: "79dc1645a5486ddfa3d957f3bd4ffbda" } Frame { msec: 224 - hash: "26a468619443250a160845a894643eb9" + hash: "79dc1645a5486ddfa3d957f3bd4ffbda" } Frame { msec: 240 - hash: "26a468619443250a160845a894643eb9" + hash: "79dc1645a5486ddfa3d957f3bd4ffbda" } Frame { msec: 256 - hash: "26a468619443250a160845a894643eb9" + hash: "476eae8ca9f6698cf67e2d20c5c24b66" } Frame { msec: 272 - hash: "26a468619443250a160845a894643eb9" + hash: "476eae8ca9f6698cf67e2d20c5c24b66" } Frame { msec: 288 - hash: "26a468619443250a160845a894643eb9" + hash: "476eae8ca9f6698cf67e2d20c5c24b66" } Frame { msec: 304 - hash: "26a468619443250a160845a894643eb9" + hash: "476eae8ca9f6698cf67e2d20c5c24b66" } Frame { msec: 320 - hash: "26a468619443250a160845a894643eb9" + hash: "bef1a9585daf30f1739a190ffa2e4b46" } Frame { msec: 336 - hash: "26a468619443250a160845a894643eb9" + hash: "bef1a9585daf30f1739a190ffa2e4b46" } Frame { msec: 352 - hash: "26a468619443250a160845a894643eb9" + hash: "bef1a9585daf30f1739a190ffa2e4b46" } Frame { msec: 368 - hash: "26a468619443250a160845a894643eb9" + hash: "bef1a9585daf30f1739a190ffa2e4b46" } Frame { msec: 384 - hash: "26a468619443250a160845a894643eb9" + hash: "bef1a9585daf30f1739a190ffa2e4b46" } Frame { msec: 400 - hash: "26a468619443250a160845a894643eb9" + hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" } Frame { msec: 416 - hash: "26a468619443250a160845a894643eb9" + hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" } Frame { msec: 432 - hash: "26a468619443250a160845a894643eb9" + hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" } Frame { msec: 448 - hash: "26a468619443250a160845a894643eb9" + hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" } Frame { msec: 464 - hash: "26a468619443250a160845a894643eb9" + hash: "2fe675a360e61452c31dda42070c137f" } Frame { msec: 480 - hash: "26a468619443250a160845a894643eb9" + hash: "2fe675a360e61452c31dda42070c137f" } Frame { msec: 496 - hash: "26a468619443250a160845a894643eb9" + hash: "2fe675a360e61452c31dda42070c137f" } Frame { msec: 512 - hash: "26a468619443250a160845a894643eb9" + hash: "2fe675a360e61452c31dda42070c137f" } Frame { msec: 528 - hash: "250d6cd632ad176aacbb09fa50f6c099" + hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" } Frame { msec: 544 - hash: "250d6cd632ad176aacbb09fa50f6c099" + hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" } Frame { msec: 560 - hash: "250d6cd632ad176aacbb09fa50f6c099" + hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" } Frame { msec: 576 - hash: "92cfcc9ee96124c5a3848f68228b286b" + hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" } Frame { msec: 592 - hash: "92cfcc9ee96124c5a3848f68228b286b" + hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" } Frame { msec: 608 - hash: "92cfcc9ee96124c5a3848f68228b286b" + hash: "c79f68e9481f91f6f6a6816a655efc24" } Frame { msec: 624 - hash: "92cfcc9ee96124c5a3848f68228b286b" + hash: "c79f68e9481f91f6f6a6816a655efc24" } Frame { msec: 640 - hash: "92cfcc9ee96124c5a3848f68228b286b" + hash: "c79f68e9481f91f6f6a6816a655efc24" } Frame { msec: 656 - hash: "235f581c767dc4a4f6133e570126a813" + hash: "c79f68e9481f91f6f6a6816a655efc24" } Frame { msec: 672 - hash: "235f581c767dc4a4f6133e570126a813" + hash: "9a189e9d9249fb04fd98c4e91aba1cb5" } Frame { msec: 688 - hash: "235f581c767dc4a4f6133e570126a813" + hash: "9a189e9d9249fb04fd98c4e91aba1cb5" } Frame { msec: 704 - hash: "235f581c767dc4a4f6133e570126a813" + hash: "9a189e9d9249fb04fd98c4e91aba1cb5" } Frame { msec: 720 - hash: "235f581c767dc4a4f6133e570126a813" + hash: "9a189e9d9249fb04fd98c4e91aba1cb5" } Frame { msec: 736 - hash: "c7d6b690224ae554f6200a5d2520ae25" + hash: "9a189e9d9249fb04fd98c4e91aba1cb5" } Frame { msec: 752 - hash: "c7d6b690224ae554f6200a5d2520ae25" + hash: "42c1ac48858ab5901601dc5a950a398f" } Frame { msec: 768 - hash: "23f5fb2275945e89bf856877b82f99de" + hash: "42c1ac48858ab5901601dc5a950a398f" } Frame { msec: 784 - hash: "23f5fb2275945e89bf856877b82f99de" + hash: "42c1ac48858ab5901601dc5a950a398f" } Frame { msec: 800 - hash: "23f5fb2275945e89bf856877b82f99de" + hash: "42c1ac48858ab5901601dc5a950a398f" } Frame { msec: 816 - hash: "23f5fb2275945e89bf856877b82f99de" + hash: "f05bf4e3cc562c5a900fb389a7c093de" } Frame { msec: 832 - hash: "23f5fb2275945e89bf856877b82f99de" + hash: "f05bf4e3cc562c5a900fb389a7c093de" } Frame { msec: 848 - hash: "99e6e3d94bb90939dacadf20f791d415" + hash: "f05bf4e3cc562c5a900fb389a7c093de" } Frame { msec: 864 - hash: "99e6e3d94bb90939dacadf20f791d415" + hash: "f05bf4e3cc562c5a900fb389a7c093de" } Frame { msec: 880 - hash: "99e6e3d94bb90939dacadf20f791d415" + hash: "1b5d1234aa02009ec447ac8fefc403bb" } Frame { msec: 896 - hash: "186db3738dc443d66b5b0352d7753b26" + hash: "1b5d1234aa02009ec447ac8fefc403bb" } Frame { msec: 912 - hash: "186db3738dc443d66b5b0352d7753b26" + hash: "1b5d1234aa02009ec447ac8fefc403bb" } Frame { msec: 928 - hash: "186db3738dc443d66b5b0352d7753b26" + hash: "1b5d1234aa02009ec447ac8fefc403bb" } Frame { msec: 944 - hash: "186db3738dc443d66b5b0352d7753b26" + hash: "1b5d1234aa02009ec447ac8fefc403bb" } Frame { msec: 960 - hash: "186db3738dc443d66b5b0352d7753b26" + hash: "ec7cfc539d7bde448c631da211de8f44" } Frame { msec: 976 - hash: "88be0433f060832e8345a43eb681998e" + image: "elide2.1.png" } Frame { msec: 992 - hash: "88be0433f060832e8345a43eb681998e" + hash: "ec7cfc539d7bde448c631da211de8f44" } Frame { msec: 1008 - hash: "88be0433f060832e8345a43eb681998e" + hash: "ec7cfc539d7bde448c631da211de8f44" } Frame { msec: 1024 - hash: "88be0433f060832e8345a43eb681998e" + hash: "646394dd534a32bc3a066e606cc485f3" } Frame { msec: 1040 - hash: "88be0433f060832e8345a43eb681998e" + hash: "646394dd534a32bc3a066e606cc485f3" } Frame { msec: 1056 - hash: "89e8da94c1e4e1c031d58f1dd593104a" + hash: "646394dd534a32bc3a066e606cc485f3" } Frame { msec: 1072 - hash: "89e8da94c1e4e1c031d58f1dd593104a" + hash: "646394dd534a32bc3a066e606cc485f3" } Frame { msec: 1088 - hash: "786b7ea2e267ee6d593f18caa95be45d" + hash: "6b66b968aaed1896e2e9fafe27bba50f" } Frame { msec: 1104 - hash: "786b7ea2e267ee6d593f18caa95be45d" + hash: "6b66b968aaed1896e2e9fafe27bba50f" } Frame { msec: 1120 - hash: "786b7ea2e267ee6d593f18caa95be45d" + hash: "6b66b968aaed1896e2e9fafe27bba50f" } Frame { msec: 1136 - hash: "830afd40f8ee9d0c969fbd61eb68ae94" + hash: "6b66b968aaed1896e2e9fafe27bba50f" } Frame { msec: 1152 - hash: "830afd40f8ee9d0c969fbd61eb68ae94" + hash: "6b66b968aaed1896e2e9fafe27bba50f" } Frame { msec: 1168 - hash: "d00b74868c2dbddc2d5ae5ec0469f9a1" + hash: "869f75182b9a4b452da1689a5921085f" } Frame { msec: 1184 - hash: "d00b74868c2dbddc2d5ae5ec0469f9a1" + hash: "869f75182b9a4b452da1689a5921085f" } Frame { msec: 1200 - hash: "d00b74868c2dbddc2d5ae5ec0469f9a1" + hash: "869f75182b9a4b452da1689a5921085f" } Frame { msec: 1216 - hash: "d00b74868c2dbddc2d5ae5ec0469f9a1" + hash: "869f75182b9a4b452da1689a5921085f" } Frame { msec: 1232 - hash: "1508cbb70b1221ccf169ff6376df4cc9" + hash: "b2017890ac543b9224e85a44157d9fbb" } Frame { msec: 1248 - hash: "1508cbb70b1221ccf169ff6376df4cc9" + hash: "b2017890ac543b9224e85a44157d9fbb" } Frame { msec: 1264 - hash: "1508cbb70b1221ccf169ff6376df4cc9" + hash: "b2017890ac543b9224e85a44157d9fbb" } Frame { msec: 1280 - hash: "490d7425d117ebe23e3e3637fd3e7b09" + hash: "b2017890ac543b9224e85a44157d9fbb" } Frame { msec: 1296 - hash: "490d7425d117ebe23e3e3637fd3e7b09" + hash: "b2017890ac543b9224e85a44157d9fbb" } Frame { msec: 1312 - hash: "490d7425d117ebe23e3e3637fd3e7b09" + hash: "acac3eb92619e01b3470511cef1a91c8" } Frame { msec: 1328 - hash: "490d7425d117ebe23e3e3637fd3e7b09" + hash: "acac3eb92619e01b3470511cef1a91c8" } Frame { msec: 1344 - hash: "490d7425d117ebe23e3e3637fd3e7b09" + hash: "acac3eb92619e01b3470511cef1a91c8" } Frame { msec: 1360 - hash: "048b3223ca262f5f3271f4ad81fbe41f" + hash: "acac3eb92619e01b3470511cef1a91c8" } Frame { msec: 1376 - hash: "048b3223ca262f5f3271f4ad81fbe41f" + hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" } Frame { msec: 1392 - hash: "048b3223ca262f5f3271f4ad81fbe41f" + hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" } Frame { msec: 1408 - hash: "048b3223ca262f5f3271f4ad81fbe41f" + hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" } Frame { msec: 1424 - hash: "048b3223ca262f5f3271f4ad81fbe41f" + hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" } Frame { msec: 1440 - hash: "4e91391c852167a04c6224ef5426b17c" + hash: "481f661e2613242d253498e467c91105" } Frame { msec: 1456 - hash: "4e91391c852167a04c6224ef5426b17c" + hash: "481f661e2613242d253498e467c91105" } Frame { msec: 1472 - hash: "4e91391c852167a04c6224ef5426b17c" + hash: "481f661e2613242d253498e467c91105" } Frame { msec: 1488 - hash: "4e91391c852167a04c6224ef5426b17c" + hash: "481f661e2613242d253498e467c91105" } Frame { msec: 1504 - hash: "4e91391c852167a04c6224ef5426b17c" + hash: "481f661e2613242d253498e467c91105" } Frame { msec: 1520 - hash: "08e969be0cd428140cd079f5f6338b4f" + hash: "4c342918351f0165ce63129afbd60074" } Frame { msec: 1536 - hash: "08e969be0cd428140cd079f5f6338b4f" + hash: "4c342918351f0165ce63129afbd60074" } Frame { msec: 1552 - hash: "08e969be0cd428140cd079f5f6338b4f" + hash: "4c342918351f0165ce63129afbd60074" } Frame { msec: 1568 - hash: "08e969be0cd428140cd079f5f6338b4f" + hash: "4c342918351f0165ce63129afbd60074" } Frame { msec: 1584 - hash: "08e969be0cd428140cd079f5f6338b4f" + hash: "4f21a25c75cfabbcbd7c485c7c479bfc" } Frame { msec: 1600 - hash: "458e10bb1d38ef8f1248be959a3ac8bc" + hash: "4f21a25c75cfabbcbd7c485c7c479bfc" } Frame { msec: 1616 - hash: "458e10bb1d38ef8f1248be959a3ac8bc" + hash: "4f21a25c75cfabbcbd7c485c7c479bfc" } Frame { msec: 1632 - hash: "458e10bb1d38ef8f1248be959a3ac8bc" + hash: "4f21a25c75cfabbcbd7c485c7c479bfc" } Frame { msec: 1648 - hash: "fde9eccf9fa722d4321bd26ead3d6c5e" + hash: "b627f215fdb6f62e6cbf2ddbe14dc794" } Frame { msec: 1664 - hash: "fde9eccf9fa722d4321bd26ead3d6c5e" + hash: "b627f215fdb6f62e6cbf2ddbe14dc794" } Frame { msec: 1680 - hash: "fde9eccf9fa722d4321bd26ead3d6c5e" + hash: "b627f215fdb6f62e6cbf2ddbe14dc794" } Frame { msec: 1696 - hash: "fde9eccf9fa722d4321bd26ead3d6c5e" + hash: "b627f215fdb6f62e6cbf2ddbe14dc794" } Frame { msec: 1712 - hash: "fde9eccf9fa722d4321bd26ead3d6c5e" + hash: "b627f215fdb6f62e6cbf2ddbe14dc794" } Frame { msec: 1728 - hash: "68ac9747d1b36351ac6677336d4e0bfd" + hash: "8c490b27882c58d34cbc941a0b10e6fe" } Frame { msec: 1744 - hash: "68ac9747d1b36351ac6677336d4e0bfd" + hash: "8c490b27882c58d34cbc941a0b10e6fe" } Key { type: 6 @@ -450,542 +450,542 @@ VisualTest { } Frame { msec: 1760 - hash: "68ac9747d1b36351ac6677336d4e0bfd" + hash: "8c490b27882c58d34cbc941a0b10e6fe" } Frame { msec: 1776 - hash: "015658eeb53ce6937d0a0b3941cea138" + hash: "8c490b27882c58d34cbc941a0b10e6fe" } Frame { msec: 1792 - hash: "015658eeb53ce6937d0a0b3941cea138" + hash: "739abcde4a980e05932aa079245136cd" } Frame { msec: 1808 - hash: "015658eeb53ce6937d0a0b3941cea138" + hash: "739abcde4a980e05932aa079245136cd" } Frame { msec: 1824 - hash: "015658eeb53ce6937d0a0b3941cea138" + hash: "739abcde4a980e05932aa079245136cd" } Frame { msec: 1840 - hash: "015658eeb53ce6937d0a0b3941cea138" + hash: "739abcde4a980e05932aa079245136cd" } Frame { msec: 1856 - hash: "4720bcf54fce0c680a983113dc009104" + hash: "739abcde4a980e05932aa079245136cd" } Frame { msec: 1872 - hash: "4720bcf54fce0c680a983113dc009104" + hash: "af47b93ee81b0e4add42d9addad92219" } Frame { msec: 1888 - hash: "4720bcf54fce0c680a983113dc009104" + hash: "af47b93ee81b0e4add42d9addad92219" } Frame { msec: 1904 - hash: "4720bcf54fce0c680a983113dc009104" + hash: "af47b93ee81b0e4add42d9addad92219" } Frame { msec: 1920 - hash: "03123bcb0f4ff032257415f713a5873c" + hash: "af47b93ee81b0e4add42d9addad92219" } Frame { msec: 1936 - hash: "03123bcb0f4ff032257415f713a5873c" + image: "elide2.2.png" } Frame { msec: 1952 - hash: "03123bcb0f4ff032257415f713a5873c" + hash: "43d7bee700464080f7535d398d60af25" } Frame { msec: 1968 - hash: "03123bcb0f4ff032257415f713a5873c" + hash: "43d7bee700464080f7535d398d60af25" } Frame { msec: 1984 - hash: "03123bcb0f4ff032257415f713a5873c" + hash: "43d7bee700464080f7535d398d60af25" } Frame { msec: 2000 - hash: "e93d314c5a19e771282bf09ff0983917" + hash: "31bf9784a1e1b84cc0ed4a342284ce1a" } Frame { msec: 2016 - hash: "e93d314c5a19e771282bf09ff0983917" + hash: "31bf9784a1e1b84cc0ed4a342284ce1a" } Frame { msec: 2032 - hash: "e93d314c5a19e771282bf09ff0983917" + hash: "31bf9784a1e1b84cc0ed4a342284ce1a" } Frame { msec: 2048 - hash: "e93d314c5a19e771282bf09ff0983917" + hash: "31bf9784a1e1b84cc0ed4a342284ce1a" } Frame { msec: 2064 - hash: "e93d314c5a19e771282bf09ff0983917" + hash: "31bf9784a1e1b84cc0ed4a342284ce1a" } Frame { msec: 2080 - hash: "877e76006891001e574b39f60249ec8a" + hash: "59db6dabc6c6930b9561bc906f49cc3c" } Frame { msec: 2096 - hash: "877e76006891001e574b39f60249ec8a" + hash: "59db6dabc6c6930b9561bc906f49cc3c" } Frame { msec: 2112 - hash: "877e76006891001e574b39f60249ec8a" + hash: "59db6dabc6c6930b9561bc906f49cc3c" } Frame { msec: 2128 - hash: "04213ba6fc23600c62c49bdd63725b3d" + hash: "59db6dabc6c6930b9561bc906f49cc3c" } Frame { msec: 2144 - hash: "04213ba6fc23600c62c49bdd63725b3d" + hash: "9e9cd1f4b9ad0980d6601e52c3d21402" } Frame { msec: 2160 - hash: "04213ba6fc23600c62c49bdd63725b3d" + hash: "9e9cd1f4b9ad0980d6601e52c3d21402" } Frame { msec: 2176 - hash: "04213ba6fc23600c62c49bdd63725b3d" + hash: "9e9cd1f4b9ad0980d6601e52c3d21402" } Frame { msec: 2192 - hash: "605fbd44c23d135d809e987fde15caf0" + hash: "9e9cd1f4b9ad0980d6601e52c3d21402" } Frame { msec: 2208 - hash: "605fbd44c23d135d809e987fde15caf0" + hash: "f8e23813215634224d2fb00f3d1993c5" } Frame { msec: 2224 - hash: "138d9fe345628797df8af84b71e76717" + hash: "f8e23813215634224d2fb00f3d1993c5" } Frame { msec: 2240 - hash: "138d9fe345628797df8af84b71e76717" + hash: "f8e23813215634224d2fb00f3d1993c5" } Frame { msec: 2256 - hash: "138d9fe345628797df8af84b71e76717" + hash: "f8e23813215634224d2fb00f3d1993c5" } Frame { msec: 2272 - hash: "138d9fe345628797df8af84b71e76717" + hash: "f8e23813215634224d2fb00f3d1993c5" } Frame { msec: 2288 - hash: "138d9fe345628797df8af84b71e76717" + hash: "e867db62cb8ec10228ea7b2eceda3723" } Frame { msec: 2304 - hash: "1a160138dbed69dd2fc6cdc335c39332" + hash: "e867db62cb8ec10228ea7b2eceda3723" } Frame { msec: 2320 - hash: "1a160138dbed69dd2fc6cdc335c39332" + hash: "e867db62cb8ec10228ea7b2eceda3723" } Frame { msec: 2336 - hash: "a40edd45d19a09b7b5b6601c2e4789ba" + hash: "e867db62cb8ec10228ea7b2eceda3723" } Frame { msec: 2352 - hash: "a40edd45d19a09b7b5b6601c2e4789ba" + hash: "36da8cc7019fae8b1abc877961d3af41" } Frame { msec: 2368 - hash: "a40edd45d19a09b7b5b6601c2e4789ba" + hash: "36da8cc7019fae8b1abc877961d3af41" } Frame { msec: 2384 - hash: "a40edd45d19a09b7b5b6601c2e4789ba" + hash: "36da8cc7019fae8b1abc877961d3af41" } Frame { msec: 2400 - hash: "a40edd45d19a09b7b5b6601c2e4789ba" + hash: "36da8cc7019fae8b1abc877961d3af41" } Frame { msec: 2416 - hash: "f8c24070f98d456925ce5fb5519ef20e" + hash: "36da8cc7019fae8b1abc877961d3af41" } Frame { msec: 2432 - hash: "f8c24070f98d456925ce5fb5519ef20e" + hash: "ea907beaf860fa21684fc524e876346c" } Frame { msec: 2448 - hash: "f8c24070f98d456925ce5fb5519ef20e" + hash: "ea907beaf860fa21684fc524e876346c" } Frame { msec: 2464 - hash: "f8c24070f98d456925ce5fb5519ef20e" + hash: "ea907beaf860fa21684fc524e876346c" } Frame { msec: 2480 - hash: "f8c24070f98d456925ce5fb5519ef20e" + hash: "ea907beaf860fa21684fc524e876346c" } Frame { msec: 2496 - hash: "f383c8fc8764f8615937fcbe18a881cb" + hash: "2b3eb80e842df2fa2b6c217a2948af45" } Frame { msec: 2512 - hash: "f383c8fc8764f8615937fcbe18a881cb" + hash: "2b3eb80e842df2fa2b6c217a2948af45" } Frame { msec: 2528 - hash: "f383c8fc8764f8615937fcbe18a881cb" + hash: "2b3eb80e842df2fa2b6c217a2948af45" } Frame { msec: 2544 - hash: "f383c8fc8764f8615937fcbe18a881cb" + hash: "2b3eb80e842df2fa2b6c217a2948af45" } Frame { msec: 2560 - hash: "f383c8fc8764f8615937fcbe18a881cb" + hash: "05ffb4d0af3fea65151596ea5b9b43c5" } Frame { msec: 2576 - hash: "98355e4087b07e4bf85bd9dd6b2594e2" + hash: "05ffb4d0af3fea65151596ea5b9b43c5" } Frame { msec: 2592 - hash: "98355e4087b07e4bf85bd9dd6b2594e2" + hash: "05ffb4d0af3fea65151596ea5b9b43c5" } Frame { msec: 2608 - hash: "98355e4087b07e4bf85bd9dd6b2594e2" + hash: "05ffb4d0af3fea65151596ea5b9b43c5" } Frame { msec: 2624 - hash: "98355e4087b07e4bf85bd9dd6b2594e2" + hash: "05ffb4d0af3fea65151596ea5b9b43c5" } Frame { msec: 2640 - hash: "098f7051d2bc8b159a3c358c99ade1e5" + hash: "612517436b6ef76f29b213944f742624" } Frame { msec: 2656 - hash: "098f7051d2bc8b159a3c358c99ade1e5" + hash: "612517436b6ef76f29b213944f742624" } Frame { msec: 2672 - hash: "098f7051d2bc8b159a3c358c99ade1e5" + hash: "612517436b6ef76f29b213944f742624" } Frame { msec: 2688 - hash: "fa588455c73bfd3d14ee322580d95015" + hash: "612517436b6ef76f29b213944f742624" } Frame { msec: 2704 - hash: "fa588455c73bfd3d14ee322580d95015" + hash: "a62c646572c94d55971445c0546e06fc" } Frame { msec: 2720 - hash: "fa588455c73bfd3d14ee322580d95015" + hash: "a62c646572c94d55971445c0546e06fc" } Frame { msec: 2736 - hash: "fa588455c73bfd3d14ee322580d95015" + hash: "a62c646572c94d55971445c0546e06fc" } Frame { msec: 2752 - hash: "fa588455c73bfd3d14ee322580d95015" + hash: "a62c646572c94d55971445c0546e06fc" } Frame { msec: 2768 - hash: "ed69a2ab8e66fa397190b35cb942ec2d" + hash: "91be655836fbf7f811a44ffa1e80b72a" } Frame { msec: 2784 - hash: "ed69a2ab8e66fa397190b35cb942ec2d" + hash: "91be655836fbf7f811a44ffa1e80b72a" } Frame { msec: 2800 - hash: "ed69a2ab8e66fa397190b35cb942ec2d" + hash: "91be655836fbf7f811a44ffa1e80b72a" } Frame { msec: 2816 - hash: "ed69a2ab8e66fa397190b35cb942ec2d" + hash: "91be655836fbf7f811a44ffa1e80b72a" } Frame { msec: 2832 - hash: "ed69a2ab8e66fa397190b35cb942ec2d" + hash: "91be655836fbf7f811a44ffa1e80b72a" } Frame { msec: 2848 - hash: "905d42c34198abdc68a3c6f69bfbd293" + hash: "4fdf23d15633bd9dbcc1767fca797ef6" } Frame { msec: 2864 - hash: "905d42c34198abdc68a3c6f69bfbd293" + hash: "4fdf23d15633bd9dbcc1767fca797ef6" } Frame { msec: 2880 - hash: "905d42c34198abdc68a3c6f69bfbd293" + hash: "4fdf23d15633bd9dbcc1767fca797ef6" } Frame { msec: 2896 - hash: "2e796a963fee85d51be536a00baa0c45" + image: "elide2.3.png" } Frame { msec: 2912 - hash: "2e796a963fee85d51be536a00baa0c45" + hash: "a81f41ab4e100d92f643ae188c1a5b8a" } Frame { msec: 2928 - hash: "2e796a963fee85d51be536a00baa0c45" + hash: "a81f41ab4e100d92f643ae188c1a5b8a" } Frame { msec: 2944 - hash: "b73b94832ede92794187b9ed452f96e0" + hash: "a81f41ab4e100d92f643ae188c1a5b8a" } Frame { msec: 2960 - hash: "b73b94832ede92794187b9ed452f96e0" + hash: "a81f41ab4e100d92f643ae188c1a5b8a" } Frame { msec: 2976 - hash: "b73b94832ede92794187b9ed452f96e0" + hash: "a81f41ab4e100d92f643ae188c1a5b8a" } Frame { msec: 2992 - hash: "b73b94832ede92794187b9ed452f96e0" + hash: "6785dbb1bd05081c5b5d890d4b4f28d5" } Frame { msec: 3008 - hash: "b73b94832ede92794187b9ed452f96e0" + hash: "6785dbb1bd05081c5b5d890d4b4f28d5" } Frame { msec: 3024 - hash: "4f000e957cd4c7ef4845855088801c2d" + hash: "6785dbb1bd05081c5b5d890d4b4f28d5" } Frame { msec: 3040 - hash: "4f000e957cd4c7ef4845855088801c2d" + hash: "6785dbb1bd05081c5b5d890d4b4f28d5" } Frame { msec: 3056 - hash: "4f000e957cd4c7ef4845855088801c2d" + hash: "ca4fc26d93d4767ef7cdbac6b2e24cf5" } Frame { msec: 3072 - hash: "4f000e957cd4c7ef4845855088801c2d" + hash: "ca4fc26d93d4767ef7cdbac6b2e24cf5" } Frame { msec: 3088 - hash: "4f000e957cd4c7ef4845855088801c2d" + hash: "ca4fc26d93d4767ef7cdbac6b2e24cf5" } Frame { msec: 3104 - hash: "a432c8b664352e585f732813df2e861f" + hash: "ca4fc26d93d4767ef7cdbac6b2e24cf5" } Frame { msec: 3120 - hash: "a432c8b664352e585f732813df2e861f" + hash: "706fd39d5945f9f698e7fa6e26631b58" } Frame { msec: 3136 - hash: "a432c8b664352e585f732813df2e861f" + hash: "706fd39d5945f9f698e7fa6e26631b58" } Frame { msec: 3152 - hash: "e06abd91449d3b5d18582b9da2d20c97" + hash: "706fd39d5945f9f698e7fa6e26631b58" } Frame { msec: 3168 - hash: "e06abd91449d3b5d18582b9da2d20c97" + hash: "706fd39d5945f9f698e7fa6e26631b58" } Frame { msec: 3184 - hash: "e06abd91449d3b5d18582b9da2d20c97" + hash: "706fd39d5945f9f698e7fa6e26631b58" } Frame { msec: 3200 - hash: "c4cecc3832935d59d9808ea70385632d" + hash: "c4ed351cacc86b5ca2c8198be0a754e0" } Frame { msec: 3216 - hash: "c4cecc3832935d59d9808ea70385632d" + hash: "c4ed351cacc86b5ca2c8198be0a754e0" } Frame { msec: 3232 - hash: "c4cecc3832935d59d9808ea70385632d" + hash: "c4ed351cacc86b5ca2c8198be0a754e0" } Frame { msec: 3248 - hash: "56942f99b8b2a6c491b8635ae5619a4f" + hash: "c4ed351cacc86b5ca2c8198be0a754e0" } Frame { msec: 3264 - hash: "56942f99b8b2a6c491b8635ae5619a4f" + hash: "addbbaca2d29fbc8c7907d51a8e9cdce" } Frame { msec: 3280 - hash: "56942f99b8b2a6c491b8635ae5619a4f" + hash: "addbbaca2d29fbc8c7907d51a8e9cdce" } Frame { msec: 3296 - hash: "56942f99b8b2a6c491b8635ae5619a4f" + hash: "addbbaca2d29fbc8c7907d51a8e9cdce" } Frame { msec: 3312 - hash: "a3bf780a2ae09fb3fee6215a24b8bb53" + hash: "addbbaca2d29fbc8c7907d51a8e9cdce" } Frame { msec: 3328 - hash: "a3bf780a2ae09fb3fee6215a24b8bb53" + hash: "fcb6b78276df1a6c839d6f30f8fe6495" } Frame { msec: 3344 - hash: "a3bf780a2ae09fb3fee6215a24b8bb53" + hash: "fcb6b78276df1a6c839d6f30f8fe6495" } Frame { msec: 3360 - hash: "a3bf780a2ae09fb3fee6215a24b8bb53" + hash: "fcb6b78276df1a6c839d6f30f8fe6495" } Frame { msec: 3376 - hash: "822cff91269181ddb5a3b24ca0227583" + hash: "fcb6b78276df1a6c839d6f30f8fe6495" } Frame { msec: 3392 - hash: "822cff91269181ddb5a3b24ca0227583" + hash: "fcb6b78276df1a6c839d6f30f8fe6495" } Frame { msec: 3408 - hash: "822cff91269181ddb5a3b24ca0227583" + hash: "b066cbbb00a4bef4e730ea8131c2bbe5" } Frame { msec: 3424 - hash: "822cff91269181ddb5a3b24ca0227583" + hash: "b066cbbb00a4bef4e730ea8131c2bbe5" } Frame { msec: 3440 - hash: "20f06bbb130e81d6eb2612aa79bb7968" + hash: "b066cbbb00a4bef4e730ea8131c2bbe5" } Frame { msec: 3456 - hash: "20f06bbb130e81d6eb2612aa79bb7968" + hash: "b066cbbb00a4bef4e730ea8131c2bbe5" } Frame { msec: 3472 - hash: "fcb03904d0e628f95c9b665c65b10266" + hash: "e6d801e738ed3265b0127b79da7e8ec5" } Frame { msec: 3488 - hash: "fcb03904d0e628f95c9b665c65b10266" + hash: "e6d801e738ed3265b0127b79da7e8ec5" } Frame { msec: 3504 - hash: "fcb03904d0e628f95c9b665c65b10266" + hash: "e6d801e738ed3265b0127b79da7e8ec5" } Frame { msec: 3520 - hash: "fcb03904d0e628f95c9b665c65b10266" + hash: "e6d801e738ed3265b0127b79da7e8ec5" } Frame { msec: 3536 - hash: "fcb03904d0e628f95c9b665c65b10266" + hash: "e6d801e738ed3265b0127b79da7e8ec5" } Frame { msec: 3552 - hash: "1c17eaf20f5c16fea97a263d2aad1918" + hash: "5b9a527ce399d0467b29c8813bbc7e6a" } Frame { msec: 3568 - hash: "1c17eaf20f5c16fea97a263d2aad1918" + hash: "5b9a527ce399d0467b29c8813bbc7e6a" } Frame { msec: 3584 - hash: "1c17eaf20f5c16fea97a263d2aad1918" + hash: "5b9a527ce399d0467b29c8813bbc7e6a" } Frame { msec: 3600 - hash: "1c17eaf20f5c16fea97a263d2aad1918" + hash: "5b9a527ce399d0467b29c8813bbc7e6a" } Frame { msec: 3616 - hash: "1c17eaf20f5c16fea97a263d2aad1918" + hash: "e9dd6c70c22d7b100a07ee837add697b" } Frame { msec: 3632 - hash: "3c91d205312aefc4af746cea413c9344" + hash: "e9dd6c70c22d7b100a07ee837add697b" } Frame { msec: 3648 - hash: "3c91d205312aefc4af746cea413c9344" + hash: "e9dd6c70c22d7b100a07ee837add697b" } Frame { msec: 3664 - hash: "3c91d205312aefc4af746cea413c9344" + hash: "e9dd6c70c22d7b100a07ee837add697b" } Frame { msec: 3680 - hash: "3c91d205312aefc4af746cea413c9344" + hash: "92e553a6e8385ceba6804075e5ed6add" } Frame { msec: 3696 - hash: "3c91d205312aefc4af746cea413c9344" + hash: "92e553a6e8385ceba6804075e5ed6add" } Frame { msec: 3712 - hash: "6cb467aa12d6ae76edbfa324c0ad26d1" + hash: "92e553a6e8385ceba6804075e5ed6add" } Frame { msec: 3728 - hash: "6cb467aa12d6ae76edbfa324c0ad26d1" + hash: "92e553a6e8385ceba6804075e5ed6add" } Frame { msec: 3744 - hash: "c8ec3da9c651eadf4aa8a4051d326f91" + hash: "92e553a6e8385ceba6804075e5ed6add" } Frame { msec: 3760 - hash: "c8ec3da9c651eadf4aa8a4051d326f91" + hash: "eafdc541e5bb2937cc472511758bd494" } Frame { msec: 3776 - hash: "c8ec3da9c651eadf4aa8a4051d326f91" + hash: "eafdc541e5bb2937cc472511758bd494" } Frame { msec: 3792 - hash: "6cea311c6007463480b71ffd66074557" + hash: "eafdc541e5bb2937cc472511758bd494" } Frame { msec: 3808 - hash: "6cea311c6007463480b71ffd66074557" + hash: "eafdc541e5bb2937cc472511758bd494" } Frame { msec: 3824 - hash: "6cea311c6007463480b71ffd66074557" + hash: "3d207efb5d563ec0a8640091710aa9fd" } Frame { msec: 3840 - hash: "6e800f4aacf0096f34acdf13678cab25" + hash: "3d207efb5d563ec0a8640091710aa9fd" } Frame { msec: 3856 - hash: "6e800f4aacf0096f34acdf13678cab25" + image: "elide2.4.png" } Frame { msec: 3872 - hash: "6e800f4aacf0096f34acdf13678cab25" + hash: "3d207efb5d563ec0a8640091710aa9fd" } Frame { msec: 3888 - hash: "fc336a43eaf9974cd6ad82bfee128ead" + hash: "d837a68f291b44c8ea4b92088ebccb2c" } Frame { msec: 3904 - hash: "fc336a43eaf9974cd6ad82bfee128ead" + hash: "d837a68f291b44c8ea4b92088ebccb2c" } } 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 33f7eb0..bf41ce8 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png index cbfae6e..683a452 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png index 5e2527e..6b4a280 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png index 901551e..ddf5431 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png index 32a5ba2..7e56a3c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png new file mode 100644 index 0000000..5005724 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.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 ae009f7..7b17ab2 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml @@ -10,1235 +10,1235 @@ VisualTest { } Frame { msec: 32 - hash: "72bd0f47e179c5356d4a0575939b6c05" + hash: "b5dfa53607ab952a07d77b4d6bd53a4a" } Frame { msec: 48 - hash: "9229869bf23fe10394ffb6bacc38d2b5" + hash: "c9b99388f7570a65162026739c365edd" } Frame { msec: 64 - hash: "4f75c0a0b7a04c8abdf2768a819b6c14" + hash: "6f612fe36fa8028a75f6149390bd3585" } Frame { msec: 80 - hash: "514a9a762cd0356cbcecb93e73c81534" + hash: "efada1cf68ff7dae90962e7540c79b53" } Frame { msec: 96 - hash: "68436451f6f3ee981bf8851944b82dda" + hash: "f42b6952937376ae34f7ef493e86aee6" } Frame { msec: 112 - hash: "fa33b582c0890bc9852f3a6c80864988" + hash: "008b0419f3ec6dbb16220a8e484a1ec8" } Frame { msec: 128 - hash: "f65928b270f12f2917193ba70d9388ee" + hash: "ecb3c1cb02f7a01d4343dad1a066fa6f" } Frame { msec: 144 - hash: "755d1421a9b2bf3be9d665f5f8d6f767" + hash: "ce5adf6c5c4d5e385ce7e461e380b00e" } Frame { msec: 160 - hash: "dbec63b93f3617440317f7ddc2fbd6fa" + hash: "79b8fefae0ac2784391c15c0221bd99d" } Frame { msec: 176 - hash: "1ec885da7efc3d71904c79a4a4768f27" + hash: "259da9a4c2bb9c89d16dd1943645e836" } Frame { msec: 192 - hash: "a20981af2ce8e82a6c1825e438dfd815" + hash: "40ee5004fed2af60ab5fc4983bd2dacd" } Frame { msec: 208 - hash: "3c951028229d8d6a3a0faa18f21afbe6" + hash: "935314bef478d43e30b6cbdcb33ba72b" } Frame { msec: 224 - hash: "8354d4c9bd5ccb2eae46cdaf3fd337bb" + hash: "9860af14b459925078467f334bf41e42" } Frame { msec: 240 - hash: "05880d6d76fa8dc421af4d06cbdd4448" + hash: "d9955eabd55559d7bef3f4cd96b42a35" } Frame { msec: 256 - hash: "370e33f141d0a8396b5c2bb279f9bb67" + hash: "7fa3de8afdeb61c6e2e87cde2e96152f" } Frame { msec: 272 - hash: "663b162ce447eee0f2194a92b463d6fe" + hash: "0deea16d1f6d18f1e9c57546b485fe75" } Frame { msec: 288 - hash: "618c53edf13177d433fdcca5b0cedfaa" + hash: "231a71ad0981525d9eb15643bc397130" } Frame { msec: 304 - hash: "ce96d70a89f7701ce069e93c192196ed" + hash: "119e67ab3b30bd9a716ad81bbb10d626" } Frame { msec: 320 - hash: "5826b56af5a4670d479c5f8e649d29d4" + hash: "4f29d912920ab6b8973a2c392a19ea53" } Frame { msec: 336 - hash: "5aaf7fc6295d4ab6377bd77e91f73ae8" + hash: "8544592eb1d48a55cfd0e274c05622cb" } Frame { msec: 352 - hash: "26cb0b5e60de63d582b4c4d1c4120746" + hash: "eca3de3a1f3e388a0029ea03327e4b21" } Frame { msec: 368 - hash: "41b6c379d7fb678abbcccde7bca7f243" + hash: "7672135d842f0f6f3a06c19e320b9431" } Frame { msec: 384 - hash: "46668408674d3e94048375152f991427" + hash: "49b5720ebbb03a9c61aebdc6eaf6b2a8" } Frame { msec: 400 - hash: "c966370fbbdd8b32cafc06cdc551e020" + hash: "7d2ddf271385fef343412c43a41d88da" } Frame { msec: 416 - hash: "025aab500846dab22713ccada8f93a51" + hash: "3df6034ff296ab1242146ba7298a9dd8" } Frame { msec: 432 - hash: "a6a68f04ea34fba46025a1415dc46bbb" + hash: "5a52202453c359370c017a397cbc6f20" } Frame { msec: 448 - hash: "1afc5b8b094056695b09088d13ab1612" + hash: "649d58d817e37e7b14d3080998dbc126" } Frame { msec: 464 - hash: "efff72e37e0c23e0cd51169d0c06c065" + hash: "f00b682156bde560b571e0044eff150a" } Frame { msec: 480 - hash: "ed425b23ea5340ac5b176b4fbb377fe3" + hash: "0e5ce3806c60e7a67e72ee9f4c334454" } Frame { msec: 496 - hash: "9df20063ec67aa06e44bf292f05469a6" + hash: "9d8c0e6a6a66560752abc68de10a6ec0" } Frame { msec: 512 - hash: "d3400c655403d00df7e202a42b75476d" + hash: "ffd81c8901cdf67ec3fa574b606eba89" } Frame { msec: 528 - hash: "336fd54ae209ba7c28a69939a021341b" + hash: "56b7098e63f8cc1d8957829e7779ae73" } Frame { msec: 544 - hash: "621c3b64fc6214b8a48c216d46d5615d" + hash: "7d7417b2b2c07c93bf5d951fddf4363b" } Frame { msec: 560 - hash: "5f9ac0b6830dbfa4cba83adc0cce232f" + hash: "a2dd725545042e9b6a366d809d2cfc4f" } Frame { msec: 576 - hash: "2b829253ed85f5ffe5e3867accadd218" + hash: "8fd5ccba4b997a96f7773936afc4fc92" } Frame { msec: 592 - hash: "61325a770fb501d88f6bb2700294ca44" + hash: "85f29eae877f93c4617a37b5c445c605" } Frame { msec: 608 - hash: "807dea2954afa902694b1ef98ef5f2c1" + hash: "a8eb3ebef75081964a6beba533eba89b" } Frame { msec: 624 - hash: "43edc754d8155c198dd1db6d55d25abf" + hash: "8c3e3f4833419e7df6de0c9443390751" } Frame { msec: 640 - hash: "4c800c2b8ab7b1500e80f50ee925b73b" + hash: "537f3d9760f6cc0c07452ea3f334a008" } Frame { msec: 656 - hash: "17b60d375c02b55923b94b147015bc7d" + hash: "93a1851ca2afb595ad684a7f613e860c" } Frame { msec: 672 - hash: "591e79b034700b514c84894e0fc27e27" + hash: "fd353e60da99a884f60a2d1ab6e4be46" } Frame { msec: 688 - hash: "61624e674a0994cedae75b2e56958612" + hash: "21cff9dcfa9e7bb4a44d75338e314d0e" } Frame { msec: 704 - hash: "7f662b3978191ef5812ccad4d1d687b8" + hash: "64153f5d57b7191f5e957f22dcdff6d3" } Frame { msec: 720 - hash: "d07560950476d08ce51661356ea53753" + hash: "211d8e9b6427129e4b9292fc862edfb6" } Frame { msec: 736 - hash: "1cbbf48c54d373bbb3fdfe42fe8396b7" + hash: "35f96f202391dc805b0bbb45d7efb1bf" } Frame { msec: 752 - hash: "f95205fb90069a13ab395d7a3e1775ad" + hash: "0336a1ba71d4bf7b4cbf98812ba1ae9c" } Frame { msec: 768 - hash: "f40a57afb29c1cc161f71a1b134a5d0d" + hash: "c5ec3a61d64228efe448b0d5c0004baa" } Frame { msec: 784 - hash: "3311a6a6197df79e5fcf2a1729368618" + hash: "9154774bce1d89b84c0f525e282bc95d" } Frame { msec: 800 - hash: "597ae977e27d0cac57b1fc8b0564a15b" + hash: "8d07794b2b17971ff69ff7961c441765" } Frame { msec: 816 - hash: "aca451b1a1e8f727315f8d13d4b21aec" + hash: "086c711c3794f8ad8d634ed6483f3caf" } Frame { msec: 832 - hash: "c0437b88a05a7aa1b7b645b5151773d7" + hash: "af591122aee8c949957ae19136505a57" } Frame { msec: 848 - hash: "be8659747f0b6e76acaf17851b599b7b" + hash: "c84db4548f53ae95023e56fad3c4aea3" } Frame { msec: 864 - hash: "2b0033b95e853368cff2d6032ff707f6" + hash: "d7a7bb5cfb91923db8d72d9a12f0016c" } Frame { msec: 880 - hash: "12a747305311ea86ce681a3ff56f394f" + hash: "7171788040f36bf1c878678906a84290" } Frame { msec: 896 - hash: "00b041e67e3ac3e1678eae72580107f7" + hash: "d2016d9ba6b29c7dfb5d64e506e7f980" } Frame { msec: 912 - hash: "09f69db7a724401388e4b7fefeb3df89" + hash: "75945e6719cea6aaf021fcd28dfe4da0" } Frame { msec: 928 - hash: "15e96d009e101d6869d1cc69e0a9092a" + hash: "e203a20fc8dda077ff217ac74895b8f6" } Frame { msec: 944 - hash: "b1a900f6ca81bf556ef126211afb8b0c" + hash: "1acb696745e0ead2f8c9d807787ce225" } Frame { msec: 960 - hash: "7ee899df8915bc0c523e0bb01fc210ca" + hash: "b8d60fcd3e262dc33d623a741fdafb0b" } Frame { msec: 976 - hash: "87ea64b511b6d990f66cd4e3a141caf2" + image: "multilength.1.png" } Frame { msec: 992 - hash: "cc5281bca844570d36ab193ba074dfcb" + hash: "0acda3300bec26515f7ddfd33af6ca84" } Frame { msec: 1008 - hash: "cf430f604050734c455206b974587d76" + hash: "12f5c647778c868638845fd66c825f51" } Frame { msec: 1024 - hash: "b10b053a551dda58e626062b6721009f" + hash: "e87432496a570b68c18d563fd3e55b7c" } Frame { msec: 1040 - hash: "0ab24cb42bf4db645c779a48a060919d" + hash: "332a165345a53198ec22a69e12a7cd6c" } Frame { msec: 1056 - hash: "0cba8d41e70c3ab23c55d02328954fd3" + hash: "92f7d768af912807dca6ad16006d84e9" } Frame { msec: 1072 - hash: "1f25027c81418c8f511d3d866948ea97" + hash: "50c330c7e9ed8f08e4b496b322fed388" } Frame { msec: 1088 - hash: "d4ef5c5de73e515ea3eb841d87d3916c" + hash: "554317004bc31ba56c970fac294577df" } Frame { msec: 1104 - hash: "bbdb93e72c966b3801cbc27a42f0e29f" + hash: "3c6391b4296451f1ca1db737e4d928c3" } Frame { msec: 1120 - hash: "f2b12153d449e6b2476af44272b6d54f" + hash: "8274fa399e0b132582389c909775e8cb" } Frame { msec: 1136 - hash: "5605809550a9c5151d3f6eb04de76587" + hash: "f66504b79f0415652f4c6720a2643afe" } Frame { msec: 1152 - hash: "c887e88030c58144e6bb253e369b3bac" + hash: "53ce26d4f839451868c70133c3f0dff2" } Frame { msec: 1168 - hash: "9d9f4aaea9d55118fac9cf78e6785ef7" + hash: "715b6a5090e0a947cbbd5f8902088177" } Frame { msec: 1184 - hash: "08dcb6457d8556aec27fdd38095f9058" + hash: "3715a52358febdbfa4aeefe56b4b173e" } Frame { msec: 1200 - hash: "45052b296f95976b22d5933ced4e259c" + hash: "d89459730ea136a34135fded35bc2247" } Frame { msec: 1216 - hash: "3bae979929efc4e3e315f3b00eb8da49" + hash: "ba8471a6c2449a05dfe411b86a38ff35" } Frame { msec: 1232 - hash: "af52455d0e2d8e30a4c27aaa58d61702" + hash: "5c477b14e0ff59e5d7db360005deaea7" } Frame { msec: 1248 - hash: "760a6b74a31adb04f220e4bb7457bc2b" + hash: "becdcaa9d4f78d94e3f3af87467798bd" } Frame { msec: 1264 - hash: "bfb0d7dab25007c20a45f98f69fa97ff" + hash: "2b1f5c5c6a9f26e6b359cf786591d480" } Frame { msec: 1280 - hash: "eac34dc1254c606a7b866e25967796dd" + hash: "9b1cbb944a941fd2869ac193e9701582" } Frame { msec: 1296 - hash: "f2577d86f3b90ff49339e9eb208b2b55" + hash: "e1c67be1ec2030529335c02099a3d9cc" } Frame { msec: 1312 - hash: "11beecfe87619f1c90ab1aa79e5cc0d9" + hash: "4f4ecadaa0afad0e38530067ee7688b9" } Frame { msec: 1328 - hash: "8f721400a444750f11a9f6a5b1f9b1f1" + hash: "13f13cb8ea96d764c93ab43f538af2a7" } Frame { msec: 1344 - hash: "be5082d93788b91f251a174b2889b58f" + hash: "cd33ccd1ac45f1f83cf93cfbdefa415a" } Frame { msec: 1360 - hash: "22527c1c29923577e90f506745230573" + hash: "8c84a3842a8da763c4b398e49a13831f" } Frame { msec: 1376 - hash: "a6ab98f02be95359a939a7841123ef17" + hash: "3b47b3c27171032450a421ae8ecc786d" } Frame { msec: 1392 - hash: "c23c3352261f3c94e5f329b6a872dda2" + hash: "524517523cb15d7886c6dbfa8724ea95" } Frame { msec: 1408 - hash: "0b4987678b416bafd922c47d2b540fe1" + hash: "3ae90a6ed20fe62da9fb81b51d6d9a1e" } Frame { msec: 1424 - hash: "8e3335e136e7ff01df146dcba4ae49c2" + hash: "70c0880f0d0d1deefc22baebbeda06c3" } Frame { msec: 1440 - hash: "28d20b81feb20325613d5a5d16238eb3" + hash: "d97f6cda6df39ffe1db076204191bba6" } Frame { msec: 1456 - hash: "04405979c68d1354f8b3fff03ad5ff5f" + hash: "d170a0b8339bd0c29b664403ce8b3286" } Frame { msec: 1472 - hash: "51929671bccb25ec5fd9d6d6df29483b" + hash: "fd962a3a4e2fbe03f6730136cdc2a824" } Frame { msec: 1488 - hash: "4bc938a8620242ca07e73adcd0219934" + hash: "75bcbfc7d7bf3139538347b17b41cf12" } Frame { msec: 1504 - hash: "73f5ddd56c836813a2754cefcddcecaa" + hash: "0fcba8fa11a2f3fc7ebcefee6e9dafcd" } Frame { msec: 1520 - hash: "08ab374f2911207dddddf4cf18d26769" + hash: "621f80511b2ce7106b1d285045f505ca" } Frame { msec: 1536 - hash: "0a91b4c009079159340040067dfc0cc8" + hash: "be6896d8de4bbb8b7ef9e1d34f6f7f32" } Frame { msec: 1552 - hash: "bdd54a222ba5bc0deb97e26071732e68" + hash: "a770cffe72c2791d6d76c16926f98f2f" } Frame { msec: 1568 - hash: "1b75d3b34f7fd74451d22d03dd7e4e65" + hash: "7e8222f9831e235c7d044b5188a20dd1" } Frame { msec: 1584 - hash: "a34ad1878b0bd1316d4ceb0c22709c6f" + hash: "a740dfb5ae432712abb4f5f9479a22fa" } Frame { msec: 1600 - hash: "8a25b513f0c6371e81065f3f0594ddfe" + hash: "a731135b3ac067712081b959f27d8784" } Frame { msec: 1616 - hash: "09063acfe8bf1cbc521cd84ecd718930" + hash: "c6cdb85a28bdc970cf2a30f0e2cef763" } Frame { msec: 1632 - hash: "6607cab8e4b4b6a1671cdf63582b625b" + hash: "4c901d5879cd4e1602b4f3560745f0b1" } Frame { msec: 1648 - hash: "5662b3252b5dd640ce9055ff11c11e47" + hash: "ef64a09b2bd30a6c618ac59a8cacd628" } Frame { msec: 1664 - hash: "2267ff61b2af23a15d6d5263d52c3ecb" + hash: "816f55f5b0b8e3baa52e274ae737ee30" } Frame { msec: 1680 - hash: "99d86069a3ea0c49a8f37f5124f2850b" + hash: "90db19b8b2d820d36d7a45518f730014" } Frame { msec: 1696 - hash: "acfa238bcb12c6197acb990aa4ddc03f" + hash: "f94248d3df175536a4a6b88722763d75" } Frame { msec: 1712 - hash: "6c4c804f6e0e46fcfe25b04836db80f7" + hash: "d1aa57e0666a7d9b5b0dc7b021a1387c" } Frame { msec: 1728 - hash: "5c1868d36ad767cd9923fab8605220dd" + hash: "77b17a540862f5ec6b2256408fd3637f" } Frame { msec: 1744 - hash: "a1279c79d3be6a62b5aebff4c66971e5" + hash: "e9b9a37996f5825006565f5b56e755ea" } Frame { msec: 1760 - hash: "f1d9f03f77b224ec355d4b5ae1ef8551" + hash: "1ce712e1755047d17d5cf3c97cff1c96" } Frame { msec: 1776 - hash: "3ad06495838986ef570f1c0f9d9f4a52" + hash: "95c21bab93788ed45280e61c51173a99" } Frame { msec: 1792 - hash: "e4122ccbc4da03797738a949654fb555" + hash: "6f62ae9bba2b1d2ea67f13d63157bd7c" } Frame { msec: 1808 - hash: "0178b04a0c2e91b5a409c28a2b3c4cca" + hash: "b5f11412bdb100f88a1f29aa577316e5" } Frame { msec: 1824 - hash: "04b3fdd361985d1f108551dafca851f6" + hash: "d4e2468ed0935687e370fcf70059f57f" } Frame { msec: 1840 - hash: "f7e8e73dcb009fc160122b64f2e4857e" + hash: "e7b5970ef9f327a8e7905f1a16c3f1a3" } Frame { msec: 1856 - hash: "e8575db453082b6601107b20ec15fb86" + hash: "c5b9694fe2d7952d6ef03ff5febec00b" } Frame { msec: 1872 - hash: "18b8bc3993275a0a1e096084ada871f0" + hash: "0604da4b328d80162fd88bdfcf2a8a68" } Frame { msec: 1888 - hash: "1a1229d6c945cc1a0df7ca4ac61dfff0" + hash: "cbeffb3c86fcd7b52672382d6a186692" } Frame { msec: 1904 - hash: "bf43232fccfedfca1cac48206cacfaf2" + hash: "deb96a6469b351f5e70d3032ad250df9" } Frame { msec: 1920 - hash: "a631a4ba1e9638943719dcc2ea5cdb3c" + hash: "d4bcb6da72c0b7f2e0e55be917eb5720" } Frame { msec: 1936 - hash: "c0c2396b5e5dc36853a28d6c5a6274f3" + image: "multilength.2.png" } Frame { msec: 1952 - hash: "9b49951115444bf17e96ded2837e5eff" + hash: "c044b96932667fd56ca8c87ec70791a3" } Frame { msec: 1968 - hash: "422d01a547ce612233bfa5e85bf73c7f" + hash: "f197116b796c3647986337515c04a812" } Frame { msec: 1984 - hash: "fe2cb2fb4aefb5da1cf27e709a0acd5f" + hash: "3d06fad059276fd5f8f58faeac482d52" } Frame { msec: 2000 - hash: "e106fbd81f7a057e3bf5d8a42c92e4f1" + hash: "841ab0655e2bd498d51605fd37607378" } Frame { msec: 2016 - hash: "b1b60361a929ccb109a9e9e8a10065d0" + hash: "5968dd4f704d72f264704ae6d6a416cf" } Frame { msec: 2032 - hash: "35858a35e56a48804d3cedda908ca2eb" + hash: "5daf3758175963e409ad7ea18d40a894" } Frame { msec: 2048 - hash: "a8fb42ed2c55d3396133acf28064283c" + hash: "37750cd0aca54fc6fa6651213a4a8aa0" } Frame { msec: 2064 - hash: "479291530784175abc7d564ac2319d2a" + hash: "b64411f26c1bde823daa4caf96402887" } Frame { msec: 2080 - hash: "75e7b2930143d610659cf42a3604374e" + hash: "cf6d68046e9b7cc39305bfbdbd64a6eb" } Frame { msec: 2096 - hash: "3d9438b11c89d76353943e5d2f656e7d" + hash: "47f89ab15314ce63dc3828aa4ae16d54" } Frame { msec: 2112 - hash: "cb23d7c508c8e3169bab39aaa4de01fd" + hash: "a7116055b3b33ad02bae75f2db016314" } Frame { msec: 2128 - hash: "bc7805e391bc272a837c9b1df9cf8f77" + hash: "0a0443c4927d3d8d3373c311b89ead0d" } Frame { msec: 2144 - hash: "020d270f6a93e05dacd70a2b41a3ea8a" + hash: "6be5e906e9127471bb11e98ba9d68d4c" } Frame { msec: 2160 - hash: "8f23f9ea2fa630111f0481b6a6ec09a6" + hash: "759c0e5e8a435846bf4471075df9ce1b" } Frame { msec: 2176 - hash: "6b42c823da044ae69d9600260d7437e6" + hash: "b7648957a2fdcca31b863907ea5cbc4f" } Frame { msec: 2192 - hash: "d31e1a434a9fcd12e439640776f8c8be" + hash: "7e9ead6f87c989160681fe87eb44224b" } Frame { msec: 2208 - hash: "48bb7782d57e195d3f0f3dfb25fed571" + hash: "f7ab3534218320a49b8cc14b39d23a38" } Frame { msec: 2224 - hash: "76922f380f3c6c83edb5ff2a4208a4d0" + hash: "44ac6d8e7fd3facac856b532bea9b0dd" } Frame { msec: 2240 - hash: "9027d61a3b91a9f56230f4ee740b6db8" + hash: "238d68eb27eaacddcf428706fca95cad" } Frame { msec: 2256 - hash: "043455a71c91e3d65f1eed632b152fea" + hash: "8568076d97d416810f1e91acd33bbba0" } Frame { msec: 2272 - hash: "6bfc058bd9f8986d306606f8c7b06ae2" + hash: "3649d85321ac7674d8c3dd77815aaf32" } Frame { msec: 2288 - hash: "49f1e17d33f1ac690bcac7e85668cb3b" + hash: "0c6dab9f7d575265d554093b88ee7e17" } Frame { msec: 2304 - hash: "2090befb760a16d73bea960a6e835405" + hash: "6387cb408d048d7b139f3d9aed2f14d6" } Frame { msec: 2320 - hash: "e99382309c4419f38642333386595211" + hash: "de2fa29a82cec9d9f22d50bba257f5de" } Frame { msec: 2336 - hash: "2c7a49bcb6eca031984d7a96b607d402" + hash: "ba77a0dc547202e129e899998c7e0909" } Frame { msec: 2352 - hash: "b55be701b19739713d532f3d6cbd5393" + hash: "0acde6d2435444611f7d5fc67d336d4b" } Frame { msec: 2368 - hash: "fdad916849eeae7b9b276f57bb022321" + hash: "1032d38e48cc3485c7a50bcf3ae949d0" } Frame { msec: 2384 - hash: "e3a8dd9da5c767a60dab121fb3a2811b" + hash: "571649ca193507216f344405d8cb9636" } Frame { msec: 2400 - hash: "73262e2250337b8f02d8e672b66ae273" + hash: "968aa311380ef783852b4a642d61d0c3" } Frame { msec: 2416 - hash: "84dca99c97f837ecfb9b3195db556687" + hash: "b440b4f5f2cb4a061b69e9a99bca0417" } Frame { msec: 2432 - hash: "4f82d7a5f3b286a2d8ccc0a07c35a1a0" + hash: "c1a2c2fd58f52c6a6f3e5dc2c1e9e8cf" } Frame { msec: 2448 - hash: "63f6eec01262783a421040dd44740577" + hash: "2eab036693343475b799188c98f18bad" } Frame { msec: 2464 - hash: "e98f39a3a9379155081014cdf761c055" + hash: "9b0e2eb4c5ed398dfe5ac82c83d38065" } Frame { msec: 2480 - hash: "c084db070c74596551190dd49dfc2ed2" + hash: "d6459b44113b2514a036a39449579918" } Frame { msec: 2496 - hash: "f6866290d95f0d85fcf05de39bcadcc7" + hash: "99e24ed5413be65aee179d7fdd0aa473" } Frame { msec: 2512 - hash: "d919eb26a2d8874ed1e4051769b525c6" + hash: "43c7a5fe622eee2202ab1061155da474" } Frame { msec: 2528 - hash: "1967d42c7a23b8d11e6accf27de24ce7" + hash: "78bc6de01b343c19ce11bcb5ce5db091" } Frame { msec: 2544 - hash: "2fe4f7fe66f820b2738598e85da9f0b9" + hash: "77463f64f99952f37467b4cae5a75a73" } Frame { msec: 2560 - hash: "4fa2b66d2d4beaa56ed8c387b62f4817" + hash: "39181ec3e10fba5d73221e3ef725661d" } Frame { msec: 2576 - hash: "eef73ebb85223a5f99b5f5ec7dfaae94" + hash: "f23732daf5b25cbfa79256ad21739537" } Frame { msec: 2592 - hash: "acb7a8c1939633f16e8b7989b2d598c2" + hash: "171b8149512f9a1fc44c4076ae8e6891" } Frame { msec: 2608 - hash: "b5e67eb3ace1d1d7f9fa1f1c907bd442" + hash: "1c30c5284764d3aba948f417dc67ea95" } Frame { msec: 2624 - hash: "552035a9d76f4dd65d86533535c00a5d" + hash: "5b40de40cc84f75a3038a2adafea6688" } Frame { msec: 2640 - hash: "d2e25e33232ec8ddd326818fabf15a65" + hash: "11e918309ac265c0dddc34b05ddd2beb" } Frame { msec: 2656 - hash: "65c4dfbb48c1c9115c37ed5c294d7bd1" + hash: "a18c91eae3fd3154c12e46717248577a" } Frame { msec: 2672 - hash: "3aceb756fa460a767194f2923871e2d3" + hash: "839199f3940822a38fc2b44161ee0840" } Frame { msec: 2688 - hash: "759a7bd99c6e630929216eb89f6b27fa" + hash: "8b62f8b4c353981788111a9434995a18" } Frame { msec: 2704 - hash: "81aa0091d86f745bcddd279473df1f8d" + hash: "db7ee2d5e4905959c836d5162bd241c0" } Frame { msec: 2720 - hash: "cce5b12ab54251ea6df458d492bc92e9" + hash: "cb770a4cd0f56108ef703147e74338ae" } Frame { msec: 2736 - hash: "5637b7aeb8b9d754e0a96b6f5d0dcb03" + hash: "bdaaedef0c17b19cc283eba699799073" } Frame { msec: 2752 - hash: "ad7644a8994888bc562590ff8942eabf" + hash: "8a7f5f87493ba387c14056f9a598e320" } Frame { msec: 2768 - hash: "490a3da685f73c45f4be697c3f37ccd1" + hash: "3974497b297fa233f3821abba2bdd6ce" } Frame { msec: 2784 - hash: "190cc35ecc32ed8ea6ebd135fb8d7a00" + hash: "41a5744b7747765764829328217e80ea" } Frame { msec: 2800 - hash: "89511367c186947f9173dc30932c4454" + hash: "4d380bb823659cdfc1d3517234144b72" } Frame { msec: 2816 - hash: "880c05184406232db9d3830e46d47bd7" + hash: "4699cc1dad5c6d5c84137ee5c5db52a4" } Frame { msec: 2832 - hash: "db907e2573c385bc2545cfba4fda4be1" + hash: "22a34c810c640b378708079761d16c9b" } Frame { msec: 2848 - hash: "c96ad05fd3ab4cd71d33738448029e0c" + hash: "0c76a943b24dc9538416b05a678c7c94" } Frame { msec: 2864 - hash: "112ecf3b2fcd5919402842044d052272" + hash: "575a20b793f899d50a95121708263283" } Frame { msec: 2880 - hash: "72cc0f0bd55773611952347b2b177d2c" + hash: "830757417bbff5d6950177aa3617516a" } Frame { msec: 2896 - hash: "dc1aa5563a76f20d8200fbd9794b3249" + image: "multilength.3.png" } Frame { msec: 2912 - hash: "3f72adedabe9e2896750e2738df71566" + hash: "1b83db1121bb3436621d3f22758af76d" } Frame { msec: 2928 - hash: "3f78a5a9312126e6a6ca699886dd05d0" + hash: "b2a6d502e9ed62f67c29b8ae7b857116" } Frame { msec: 2944 - hash: "75a199efbdf119abbc1598137e974e28" + hash: "e9e06068090c076021e508772ae85b5a" } Frame { msec: 2960 - hash: "e4d068e2ba9c65a0e910faf431e4df7e" + hash: "5c7288791d73792b914e99a38b7b455c" } Frame { msec: 2976 - hash: "817e686a44b4eaced58c251facd5e89d" + hash: "ad2b35c647da055a1088e476f250ea78" } Frame { msec: 2992 - hash: "0c5e7217f5b68e0b2158c512f66177c2" + hash: "7cc9bbd4a2ed2ba1646b10a68c11241f" } Frame { msec: 3008 - hash: "253a765019170fe4f649825b4cd17832" + hash: "f633c12a9d078c4a1405ee399bd75e6f" } Frame { msec: 3024 - hash: "cf3f774316868179f6766e5dbdab2b17" + hash: "e4638bb2b40ed7c31630412010bccef1" } Frame { msec: 3040 - hash: "7cf30923200a9b8524909bdfbb20b33c" + hash: "76fdd98f79c08d9211c42b79f953315a" } Frame { msec: 3056 - hash: "1dd14bc90dfab3d8864c177e56c25b63" + hash: "df754dffbe6429aa7222e7a37d1956c5" } Frame { msec: 3072 - hash: "aaa4074319d1656b58f874d6843e66c4" + hash: "68edef9b10728f0785cc74dfe92c3e03" } Frame { msec: 3088 - hash: "b2a3479eb8087138f20b0dbd539f0592" + hash: "627ac43eb191db77345ab1a08bfd7e7a" } Frame { msec: 3104 - hash: "1ab4358f6008ce87a5b1c6a54d04b343" + hash: "c38698cc4c2de1eb96855f0b6398fd7f" } Frame { msec: 3120 - hash: "4425e58b30da6edd1730421e990dd6e7" + hash: "6264db59fa7dd4498cedac94b856d90e" } Frame { msec: 3136 - hash: "9b4e62af65c064ca2fe4de5d03255b56" + hash: "b550d8181dbf88c5079e2fb6310f0309" } Frame { msec: 3152 - hash: "edf9b8b0cc18942b23c03ee1ed837dd6" + hash: "6ffecf31343192ae352c42c6ba978fd3" } Frame { msec: 3168 - hash: "b05a1bc33ce2e4c2383f7ecc9544020c" + hash: "445e7056bfb7726fcf1b0b6411400ec0" } Frame { msec: 3184 - hash: "73304724e5b4d7c556859da310c31a0a" + hash: "9648c06d3a89c054587fa1e86c727fd0" } Frame { msec: 3200 - hash: "4cf88e365cd9651e2fb86452ff81e4be" + hash: "8d0af1ad33c06cfceaba1a0ca84cf0a0" } Frame { msec: 3216 - hash: "7b42902b17781f98075bfdf50950addd" + hash: "f8f0c27738b186f17a9dd106481e85c5" } Frame { msec: 3232 - hash: "8806b9cb7e352a67b23085593b61606b" + hash: "44e5893cd28e2d70afbfbb779f2dd154" } Frame { msec: 3248 - hash: "d2fdf78fa3b7261683f2ed4f2dee62c8" + hash: "dc0d1baafa24423402caf63d6fcd6189" } Frame { msec: 3264 - hash: "dafa72fd7aae2c9bfa5f6aa2694235d2" + hash: "12c17a563b37bf633dce6fc6793d1cd9" } Frame { msec: 3280 - hash: "d784b9b39ab063ab68b85d6485257ce0" + hash: "a8647172101b59753ea6aa40ec4570dc" } Frame { msec: 3296 - hash: "991ef068c26b304fb19d03fdfeb2e3f4" + hash: "e21afb74f793bef8c1b03d252b5700a8" } Frame { msec: 3312 - hash: "c6014d497f4db9121c539a53115a847f" + hash: "2e10ccbdee088b17172a479a8a859d56" } Frame { msec: 3328 - hash: "88c778d811febd165e28ae7698f774b8" + hash: "f111c24e1e8d643543519fd703811f24" } Frame { msec: 3344 - hash: "51fbf553794b8a2303d2e0dff44c80fa" + hash: "dd9aeec2ed05f9c68e1726a91e90e127" } Frame { msec: 3360 - hash: "ba1abdcf3a04231ce9439cb6d93e8717" + hash: "043923ed2dee91815d0dce6cd38834e9" } Frame { msec: 3376 - hash: "56a5d2fe8af1ef1e08ce545eb65e6ba0" + hash: "07e0dbb223355b2921eb0597235ee820" } Frame { msec: 3392 - hash: "8337eb7d11500676921de0b13812ca02" + hash: "0fba3e9a08d83405df35c632f9dc051e" } Frame { msec: 3408 - hash: "8f50f53ed00ad9b9bbf9423b3274efa7" + hash: "a0a5a515ec395bdf4912ab24c8780339" } Frame { msec: 3424 - hash: "bf5ca931d00d3dc4fcfe5e93d08bde2f" + hash: "4e04e0246eb952cfae716214084cc1ed" } Frame { msec: 3440 - hash: "f2619492bbb96bd3958f4d61bb23c42e" + hash: "e7e989234e360e7c0cb44e7be4d654e8" } Frame { msec: 3456 - hash: "3b1afefbc7e0990059bd3990f17a7312" + hash: "139b3309ac9e25b2165342bfb202169f" } Frame { msec: 3472 - hash: "30041f2cb8c071e7dc8f9c8ef1e49743" + hash: "b4008ee73b92abad9c5fd7c83cb864cf" } Frame { msec: 3488 - hash: "f8bef9f28823fdebec0b39e1044ac03c" + hash: "b801a917995bd41eee2f4e4fed3006c5" } Frame { msec: 3504 - hash: "4c0282e6a48dbbcdbbffde55457eee12" + hash: "a0ea151cd2a2056a45ff5428239b37f4" } Frame { msec: 3520 - hash: "7956ea76120b9292b2f3c6123187ac0e" + hash: "01df418b5ba99271d3a2e8807de78899" } Frame { msec: 3536 - hash: "dce82656442ff1a0823bac5ded7c0290" + hash: "047fd42df7a5ba0f939930c2021df5fe" } Frame { msec: 3552 - hash: "96151e49fd0f07817d27583c22afe30f" + hash: "4336498cee8b516e79297a073257e008" } Frame { msec: 3568 - hash: "262a38546540ecb81065cbdbace4fa28" + hash: "ce404ce21bc91ff8dc61bd95b9e1d5ac" } Frame { msec: 3584 - hash: "4ea3a1a93be2ef25ca6f05d144b50d3b" + hash: "06b5c263105ec574f10e70002c29adee" } Frame { msec: 3600 - hash: "77d321f837b720d4e63fb028e885dce7" + hash: "6a224a56bbeaeb703afa0c2a7f2daf7d" } Frame { msec: 3616 - hash: "e0e40d426a13ef3d9caa6ba474a1a460" + hash: "65259fcbdb9edfefc4fcbd1ab5f62542" } Frame { msec: 3632 - hash: "6bd5645b808206dd9a4e9c0e423db06b" + hash: "93be4111a6aa21d85ab354bbd41e5b31" } Frame { msec: 3648 - hash: "791538cf21cfa32ab4595137a655e0a3" + hash: "2e4edcdc4807466620c9671d329a0977" } Frame { msec: 3664 - hash: "59266a6f73c217f0c68f7dac69d4b25d" + hash: "e3232d08b83e3e9917b6f4eabc86df72" } Frame { msec: 3680 - hash: "ee730ce23e84942c5fe2587ce0ecd3f6" + hash: "f27caa5d738b4778d4343f7b197c5dac" } Frame { msec: 3696 - hash: "b1353eee7a68d1ab0057ab7a6dd0774c" + hash: "dcf3032bc798daf1dc6bb7d608e2dffb" } Frame { msec: 3712 - hash: "0ea828127568afa52ecc31e335e69d11" + hash: "9f2d4ba31ab4ec10b43b7de19197994e" } Frame { msec: 3728 - hash: "d95fc327253500563d0e05a4b80a7c8a" + hash: "4bf6419de081524ecdeb4c07b376f06d" } Frame { msec: 3744 - hash: "e3aff011332ccf9cbebbff2803733038" + hash: "3fdd8166873e768e1346e52a1b4a6554" } Frame { msec: 3760 - hash: "27ee147b62bfa2d1183321bba3ccb8d3" + hash: "7b25b2f1b2694a87095fba46d505684f" } Frame { msec: 3776 - hash: "245578d636b5486da0210a0dd7b84a80" + hash: "d8246057d4b0306747ba449d5247dd21" } Frame { msec: 3792 - hash: "87be77d90d9e7a2d282026e63d14ddfd" + hash: "e45c06fbf48923393f672381f0256513" } Frame { msec: 3808 - hash: "25cf672e69b7c61eab9f53437b40956e" + hash: "fef8f1bf977d6567eebe14ccafd36853" } Frame { msec: 3824 - hash: "10606e7b0ecb8ec204fe025aece90004" + hash: "04152eab971eac3fbba26f15ba09d329" } Frame { msec: 3840 - hash: "4f2bd407ac54541506ec10edb4dbec58" + hash: "5039cb5183587fe46ef30c5d0f8c9584" } Frame { msec: 3856 - hash: "a3c411c8c3da3975205994a7da97320f" + image: "multilength.4.png" } Frame { msec: 3872 - hash: "1491ce2867ad4f116e705d259b773550" + hash: "5d62550ba4502c3eae3f62ce5b8e9374" } Frame { msec: 3888 - hash: "8f2fe6175fa45213d84e4c0b0b7cb4a7" + hash: "859ab80ee7d563a158970d1f3360c7dd" } Frame { msec: 3904 - hash: "bc77ad13f5015fc1b5bb85dc51b207b3" + hash: "4f900b694d6e552c9287472ca58be35a" } Frame { msec: 3920 - hash: "5fb9a7834a5358077952c20ca025fcf0" + hash: "6b3aa5a3071ea5ec911bae3dee02a496" } Frame { msec: 3936 - hash: "09ba094e2cfb1033019e85f66910a593" + hash: "d1b1536b5162e5367db66bb21ccebdcd" } Frame { msec: 3952 - hash: "43db976e63a8fd71da67198942aa7943" + hash: "8c8dd0b84be58a3257dbd0210a7b21ab" } Frame { msec: 3968 - hash: "6298a0aa4b84ee1722d83897b3553fe1" + hash: "f96cb092836d67c81fdfd3668005e912" } Frame { msec: 3984 - hash: "6b87ba7d3fe468229b29cd28590e17b1" + hash: "7b06694d2fd4dd2def94b11a1e46a391" } Frame { msec: 4000 - hash: "1b4e219629a1f19b135544ac2e961788" + hash: "cef499e6c1665d2bd4a4322d4334234a" } Frame { msec: 4016 - hash: "087e95cbd0549be1bbe4a32520858514" + hash: "664503d5cef2676e287c363a488e91f1" } Frame { msec: 4032 - hash: "2c51a434fc3633623e10bedeba4e260d" + hash: "cefa44e348ea0d6955a71c7eb0a9b45c" } Frame { msec: 4048 - hash: "f29b87d80779a7f4d38e8058d984c386" + hash: "0ee5684bf4d5b54c5bc9aeefcb98a3d1" } Frame { msec: 4064 - hash: "b8055e4b3c2ee551a7becf176cd173e3" + hash: "fb6667f1c516187cfb93774469ea8165" } Frame { msec: 4080 - hash: "3c35391e1c1d230e0a085cb7f7f0e8ef" + hash: "fba776d4d3056bf64e335de876e118be" } Frame { msec: 4096 - hash: "dd8a63cdeefc6ce5a35ceb700f7b3755" + hash: "a49aa08c4bd8a1ae9420e0962cf77e01" } Frame { msec: 4112 - hash: "5b4a322f768d426a56a82d714cf4f705" + hash: "bff31d464ae9fc68adf0c8072b637592" } Frame { msec: 4128 - hash: "08830f630c15419d79c459891a8fff64" + hash: "23bd0afacb2d9bd009c9b5006dc6adf1" } Frame { msec: 4144 - hash: "84c90e454dcdbf00c441ff326760d2cd" + hash: "d918e94e5be77741d1172fbf960db07e" } Frame { msec: 4160 - hash: "17c7311faee569b077f85848f7155319" + hash: "9abce75f201e20a730e79a672bf837e8" } Frame { msec: 4176 - hash: "17b5aeff8f03828c1851a6b984d4e69e" + hash: "aae93f5e2a2c6e06dbe78bea4e6b1283" } Frame { msec: 4192 - hash: "3bcc28ab875d3b5f62df0d5cede3e850" + hash: "66cba82f479ae6536800b05f6d694884" } Frame { msec: 4208 - hash: "a4c861d766af1378e21a91a6e1bca06d" + hash: "d79d43b820c4a53735cfb84288dd5efd" } Frame { msec: 4224 - hash: "fa6e17c9c35c41ac5270a55f0cc4dcd2" + hash: "fe0237b64a2ef664ce2c3028b730fdc4" } Frame { msec: 4240 - hash: "48d8c7ce0b6f2e9840a2f5cb40e41449" + hash: "771b02756dadb0a1f268166138f7cad4" } Frame { msec: 4256 - hash: "713a391414fffe3cf01248e7c0919d71" + hash: "cbd224a02668f57413b6999dfb141723" } Frame { msec: 4272 - hash: "472282080ae357f5fb0dac1bf411f6f5" + hash: "f770a74ce40615095798b244af3cc097" } Frame { msec: 4288 - hash: "660d37f1b3c5dd6e2de22ad2be818675" + hash: "faea3d28eb65656392860d888ec087b1" } Frame { msec: 4304 - hash: "334f12d83fdc7bd8f3d97697061a75f8" + hash: "1f1d5ee10403184ab83ec5c1f94c4290" } Frame { msec: 4320 - hash: "4bfe83273913bad702290db2b1c81d52" + hash: "501253b40939d98beac9db85d3cd5b4b" } Frame { msec: 4336 - hash: "9ddc0238b0fbb42c503da8782d750d81" + hash: "0819ece70a98a3ea4371947375b52d46" } Frame { msec: 4352 - hash: "43081559ed8f1d62baed1ab5dde34c5c" + hash: "2b5f64e4a03aa416a4cf172c99aec498" } Frame { msec: 4368 - hash: "4bf955a94901588cf37a1fe9b82feef3" + hash: "931a6fa175b8d540fc745d425a9b93b3" } Frame { msec: 4384 - hash: "3a3a987096f2a11f495af4ee20c2452b" + hash: "fa6f54fae79a428029fbd0ae6481bcc5" } Frame { msec: 4400 - hash: "290647a4f73c42ea33f841281bf6f3d6" + hash: "7796756dfd30688ed74c2e6e0b05ca5a" } Frame { msec: 4416 - hash: "1a18f4f658997710aa7be9409c75a602" + hash: "b42cfbfe1527412b977b8e2c7506cdf0" } Frame { msec: 4432 - hash: "1bc52bc68633464654410f59bf97142b" + hash: "c81300e8d29770c0efd2ab91d75a669a" } Frame { msec: 4448 - hash: "33e3a5e0ec745046f7a7cceffd516a71" + hash: "923494f5147a85432e6efbcf5b79e26a" } Frame { msec: 4464 - hash: "7e61c48d2e0e6e195d527d6aeb4ffe8c" + hash: "3aaffee732cb243bbda5df938f487b2d" } Frame { msec: 4480 - hash: "42c42f7e02f6cd72afa92cf97494a1eb" + hash: "ce8e33f621c7f5cd5047da86bdef4084" } Frame { msec: 4496 - hash: "d1876d371284e41f4d553a470a9970fb" + hash: "55e2bc371ea853ee4f3ba22e35c20e8e" } Frame { msec: 4512 - hash: "479960a289b598591a4bf3c66dc6258a" + hash: "e8bec4813a6c8f212c70019f907ba904" } Frame { msec: 4528 - hash: "0ea8965e095c73499b5abc4ac44e07ef" + hash: "aae9dd25ca9935c478e5d9fa629c6f70" } Frame { msec: 4544 - hash: "cc7fe014a856896ce3871743e552d6f2" + hash: "30828a796072deb6e6505090dbc2c840" } Frame { msec: 4560 - hash: "5b3cd6bec24ae4a215ec28651e9a3ed0" + hash: "c8ebeb539a6ebb2ca47544f7f1617da9" } Frame { msec: 4576 - hash: "63d60a2c6d27e30dda001c202446d221" + hash: "3ad9a23b57b0938a430c636910dc312f" } Frame { msec: 4592 - hash: "22f30d377fb90c433881d17211a9f9bd" + hash: "1a12587ebbae18dd761c70c4ed845fa5" } Frame { msec: 4608 - hash: "acfbf010e93723185792009ed372ccb9" + hash: "f1d6ee0cd7aaa221d151c2d32e963358" } Frame { msec: 4624 - hash: "91f3335706d5037d9c579091e29d1219" + hash: "e9bbf398abc09d9740dce4e3843c53f4" } Frame { msec: 4640 - hash: "83ad6be4ecaa6495b25f9b55bb11796a" + hash: "f839c105f1897f028611d557b11f5814" } Frame { msec: 4656 - hash: "39a68ee7f4ddb8059ef42eb9e42b7659" + hash: "b923b46ccfe53ceb7ea228b12f44842d" } Frame { msec: 4672 - hash: "0ad1facc49beaa2c3510fe1612ba3b4f" + hash: "8e3708a8f2ba63f7cb01b8d66d1b3dec" } Frame { msec: 4688 - hash: "d780a7f3dc1a313d462084fffda989c7" + hash: "68659fce94c9d019a1d5da6273186674" } Frame { msec: 4704 - hash: "0f1ad6155d4ed2a11d2fa91c63b62678" + hash: "56797caf6f2987b7d03c0401871d87e3" } Frame { msec: 4720 - hash: "26f4bb010704911d87b96a9f31a0a121" + hash: "de0d89aaa5b1ce0ed99d2906b63e7434" } Frame { msec: 4736 - hash: "7772aaabb6418d71fb7566a0aac4279f" + hash: "e3802a76b64eeaeae06b23134b5198a9" } Frame { msec: 4752 - hash: "47bf1ec73915b369d653ff71ce7758da" + hash: "1a3ddf57aa429a407705ae268441c5b5" } Frame { msec: 4768 - hash: "fcc1ed23c1678bf1b11bf59dbaba5186" + hash: "319b09c0e4a8c0d1f507594b53a407c4" } Frame { msec: 4784 - hash: "0d66fbc0b99c35dae53e1026c2041252" + hash: "fd54c9ee19133b0f75c56e4d6472cdad" } Frame { msec: 4800 - hash: "ea23a6ba2406a5cd0cb8a8a7477bdf94" + hash: "e6b983b491133a41b753411c587c69ec" } Frame { msec: 4816 - hash: "d1fbba4331fd640a40fe7e07fcfce20b" + image: "multilength.5.png" } Frame { msec: 4832 - hash: "f79f9ac08c779fd1646450ef4cc21f01" + hash: "2760407d7defa4738d7b9ecb243f41a9" } Frame { msec: 4848 - hash: "2095da58125d29b815c44ec9a22598d3" + hash: "1ff562f05454980d4f677e783ba4bf75" } Frame { msec: 4864 - hash: "01d4805a90443a6c20a5ae2cb83ec151" + hash: "43ad6e0926f812af5553e3a8492404e9" } Frame { msec: 4880 - hash: "f329ce7199c2137e8c32a25f96ee5c6b" + hash: "b9c34d52c0c44dcdf8a2ca8a0e20ae65" } Frame { msec: 4896 - hash: "72c0c2c7660974827acc1fcb54e7ca6c" + hash: "4fd7f6d183626686569462a9828837d2" } Frame { msec: 4912 - hash: "6902d2a637733171699684baf07bb86e" + hash: "3b904440f68aa0009707b5f3a0c2af74" } Frame { msec: 4928 - hash: "615683e3bc07792ee38ca8146657a88a" + hash: "cc58910f0881ec5b3cb2eec404c19e16" } Frame { msec: 4944 - hash: "9fe981f60fd1d974f063fccd2ae205ab" + hash: "8b638f369c3629530d91e6acac8c5fdf" } Frame { msec: 4960 @@ -1258,66 +1258,66 @@ VisualTest { } Frame { msec: 5024 - hash: "51e3a7214bf2fd98108de683ae650b05" + hash: "c95868a45ccb031ea1d440bedd1fc33f" } Frame { msec: 5040 - hash: "af3da99b9abc3b3440b22d4d428dcd1a" + hash: "eb78d75fbf3ef0b88c072f69ac3f490d" } Frame { msec: 5056 - hash: "4f75c0a0b7a04c8abdf2768a819b6c14" + hash: "6f612fe36fa8028a75f6149390bd3585" } Frame { msec: 5072 - hash: "c73dc19d48511634717cf4e95f843a5d" + hash: "7906071fe656ccf18d24c100950b6a7a" } Frame { msec: 5088 - hash: "0f263ab43dde78f1280483c6287b44a2" + hash: "064a0b9a0adb235fd52a6d53b65c9d1c" } Frame { msec: 5104 - hash: "68436451f6f3ee981bf8851944b82dda" + hash: "f42b6952937376ae34f7ef493e86aee6" } Frame { msec: 5120 - hash: "e0ea33b011cc8aef74070e26b71bd05e" + hash: "3444491cc10b0ae2f298ac3aefcda77c" } Frame { msec: 5136 - hash: "755d1421a9b2bf3be9d665f5f8d6f767" + hash: "ce5adf6c5c4d5e385ce7e461e380b00e" } Frame { msec: 5152 - hash: "7e20da3dab6bd290498756ac392bc052" + hash: "6b6c1a422f778935b400c9a170439ec4" } Frame { msec: 5168 - hash: "babdfa14fbba8f6eb0c95334588123ce" + hash: "fdaff741a826c10cb9799adc70d92145" } Frame { msec: 5184 - hash: "1ec885da7efc3d71904c79a4a4768f27" + hash: "259da9a4c2bb9c89d16dd1943645e836" } Frame { msec: 5200 - hash: "2159f4c9f72bca3ba98b4fd0aeb3c1ba" + hash: "fd2903f4b3d7086981a89e87e460a7ba" } Frame { msec: 5216 - hash: "8354d4c9bd5ccb2eae46cdaf3fd337bb" + hash: "9860af14b459925078467f334bf41e42" } Frame { msec: 5232 - hash: "ee95872db6f9440800bb98023764dc2a" + hash: "ae2b8b255d48c12a954f02c63e0d5aa4" } Frame { msec: 5248 - hash: "23197dd2bb352193b72d4445912d9c94" + hash: "c33e9369e76654433e97b2b72cca7911" } Frame { msec: 5264 - hash: "370e33f141d0a8396b5c2bb279f9bb67" + hash: "7fa3de8afdeb61c6e2e87cde2e96152f" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml index 6514694..fe4e2e7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml @@ -3,6 +3,7 @@ import "../../shared" 1.0 TestText { property color bcolor: "blue" + font.pixelSize: 10 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/data-X11/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png index 30dc0a9..688de40 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png index 0574f63..4177b9e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png differ 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 index d7de152..04e0f5e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png 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/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png index 8d3c37b..36e5d35 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png new file mode 100644 index 0000000..34f8e38 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.qml new file mode 100644 index 0000000..afae3f8 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "richtext2.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.0.png new file mode 100644 index 0000000..34f8e38 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.qml new file mode 100644 index 0000000..afae3f8 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "richtext2.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml index 3a06cf0..c1325f0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml @@ -2,40 +2,55 @@ import QtQuick 1.0 import "../../shared" 1.0 Rectangle { - id: s; width: 620; height: 600; color: "lightsteelblue" + id: s; width: 620; height: 360; color: "lightsteelblue" property string text: "Jackdaws love my big sphinx of quartz." Column { spacing: 8 TestText { - text: s.text - } - TestText { - text: s.text; font.pixelSize: 18 - } - TestText { - text: s.text; font.pointSize: 20 - } - TestText { - text: s.text; color: "red"; smooth: true - } - TestText { - text: s.text; font.capitalization: "AllUppercase" - } - TestText { - text: s.text; font.underline: true - } - TestText { - text: s.text; font.overline: true; smooth: true + text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width } TestText { - text: s.text; font.strikeout: true + font.pixelSize: 18 + text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; } TestText { - text: s.text; font.underline: true; font.overline: true; font.strikeout: true + font.pointSize: 20 + text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; } - TestText { - text: s.text; font.letterSpacing: 2 + Grid{ + columns: 2 + spacing: 4 + TestText { + text: s.text; color: "red"; smooth: true + } + TestText { + text: s.text; font.capitalization: "AllUppercase" + } + TestText { + text: s.text; font.underline: true + } + TestText { + text: s.text; font.overline: true; smooth: true + } + TestText { + text: s.text; font.strikeout: true + } + TestText { + text: s.text; font.underline: true; font.overline: true; font.strikeout: true + } + TestText { + text: s.text; style: Text.Outline; styleColor: "white" + } + TestText { + text: s.text; style: Text.Sunken; styleColor: "gray" + } + TestText { + text: s.text; style: Text.Raised; styleColor: "yellow" + } + TestText { + text: s.text; font.letterSpacing: 2 + } } TestText { text: s.text; font.underline: true; font.letterSpacing: 2; font.capitalization: "AllUppercase"; color: "blue" @@ -43,24 +58,6 @@ Rectangle { TestText { text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green" } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white" - } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray" - } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow" - } - TestText { - text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width - } - TestText { - text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; height: 20 - } - TestText { - text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; height: 20 - } Row{ height: childrenRect.height spacing: 4 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml index 715ada6..10a2d9a 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: 400 + width: 620; height: 280 Grid { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml index 3670479..d0960c3 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 import "../../shared" 1.0 Rectangle { - id: s; width: 620; height: 600; color: "lightsteelblue" + id: s; width: 620; height: 300; color: "lightsteelblue" property string text: "The quick brown fox jumps over the lazy dog." Column { @@ -43,36 +43,5 @@ Rectangle { TestText { text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green" } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white" - } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray" - } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow" - } - TestText { - text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width - } - TestText { - text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; height: 20 - } - TestText { - text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; height: 20 - } - Row{ - height: childrenRect.height; - spacing: 4 - TestText { - text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere - } - TestText { - text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.Wrap - } - TestText { - text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200 - } - } } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext2.qml new file mode 100644 index 0000000..f5e85fa --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext2.qml @@ -0,0 +1,43 @@ +import QtQuick 1.0 +import "../../shared" 1.0 + +//This is a continuation of richtext.qml, it was bisected so that it could fit on smaller screens +Rectangle { + id: s; width: 620; height: 300; color: "lightsteelblue" + property string text: "The quick brown fox jumps over the lazy dog." + + Column { + spacing: 6 + TestText { + text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white" + } + TestText { + text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray" + } + TestText { + text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow" + } + TestText { + text: s.text; horizontalAlignment: Text.AlignLeft; width: s.width + } + TestText { + text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; height: 20 + } + TestText { + text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; height: 20 + } + Row{ + height: childrenRect.height; + spacing: 4 + TestText { + text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere + } + TestText { + text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.Wrap + } + TestText { + text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200 + } + } + } +} 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 8803b36..be025e5 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.1.png index 5e29359..1b2cd04 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.2.png index 0ffee64..2e56d47 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.3.png index 6c56e9c..8abdfc2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.4.png index 276170d..58428ce 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.5.png index 3d8709f..3c23bd6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.5.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 a0803a4..9630745 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml @@ -10,83 +10,83 @@ VisualTest { } Frame { msec: 32 - hash: "4e068995d68e8939e6560e35b685e839" + hash: "2fd338490edda276f7ee16232bf244d1" } Frame { msec: 48 - hash: "761b09bce25b3b240093d16ad02268d7" + hash: "527a1c18503f580bcf926a70d9f30006" } Frame { msec: 64 - hash: "1ecb6d7d08d4e4e14db28e24a60eccc4" + hash: "8b911c3e4a0fccf1dbeca50931780a2d" } Frame { msec: 80 - hash: "642417a56b3d6b8b35f5aec1bf0a9d2c" + hash: "f631ad72bf36ccb0c5f3ff708f029b1b" } Frame { msec: 96 - hash: "2e24870a44d3fc6c6d5c920bab29d417" + hash: "d4099e6a2c1ff77a71231351f5bc32ff" } Frame { msec: 112 - hash: "9a59d0672f2a752943561af89fd71d7f" + hash: "0e531d158b1c14d6fc633e528846c336" } Frame { msec: 128 - hash: "c359dd36910678a30f935a13c8680ee4" + hash: "5721d3397b9e66da4ee47a7f19107566" } Frame { msec: 144 - hash: "245f1e127549e9b28c7574ffb143fcde" + hash: "6647f5d3680f3523ec73b434d0c2f8da" } Frame { msec: 160 - hash: "8df3d3dbce673311d88c055e8dffaeb5" + hash: "73fb40e680c30b1a5fe95de9913a0591" } Frame { msec: 176 - hash: "590fdeaddb3df033a1908a8a95fcd17a" + hash: "c392c2599b29086a437afa292b06d63c" } Frame { msec: 192 - hash: "a158891c8d2ee3899463412a3363e48c" + hash: "bcedd42d52bab532831b47c6ee2a99ac" } Frame { msec: 208 - hash: "e9ec2c82f46b36fbd0285ce6795c7cf9" + hash: "089b150d5cc9315c6626edfc1bb66774" } Frame { msec: 224 - hash: "0a02598af770dfe1d332f10c9482e770" + hash: "f6e83fdb13e4f00ba5004b081e2379ee" } Frame { msec: 240 - hash: "8765475468bccbd0df897a533241f3c5" + hash: "ca8336d47c002df3702a46be2b974ba7" } Frame { msec: 256 - hash: "4cd9deed66bfdfadde8f8bf34f0e5513" + hash: "f0d82431f1e35f76fd718af1d742cd13" } Frame { msec: 272 - hash: "139bf5a1811beb2438df4ecfa3bbaac7" + hash: "78dc119673be7902ab25d508db771f04" } Frame { msec: 288 - hash: "9d51555afd71a7035e67a543846dcf7f" + hash: "2839bc67b7ac43353b976c2c7bc3b6c3" } Frame { msec: 304 - hash: "de187b58fc8dfaad2d62e9463691b0c0" + hash: "c1f9743c0505b6ca197c4bd0bbbd7bd3" } Frame { msec: 320 - hash: "9f88ac6d71246b06ca7ce9d8d983c91b" + hash: "2d714b10ce1e3e7dd1efb58ed4b62f90" } Frame { msec: 336 - hash: "a43c12a7d6597d171112dc43085a439e" + hash: "c4f94bab5475eacfc757338ffd6d4a59" } Key { type: 6 @@ -98,27 +98,27 @@ VisualTest { } Frame { msec: 352 - hash: "ad38f32755f669837ec2243e355ebc85" + hash: "c5caa8a08f09203c005e1cd6d80e8ccc" } Frame { msec: 368 - hash: "d87bd14345c785cc7e78a5c5462b90ec" + hash: "c96896be1a311c0cedc1c7ec1bd9e13e" } Frame { msec: 384 - hash: "77850031e012246dd967ac689e353eb3" + hash: "d3d6dc1d8ff93e373583e3cbdca88b81" } Frame { msec: 400 - hash: "f1bd048cd9167a8f162d1c39aca4f7c1" + hash: "2a456146359c54c52f9e7a6cebcfa454" } Frame { msec: 416 - hash: "0fa030c5da23f23a0665a535e23b84a2" + hash: "d127788c702c2ed037c709ffc331840e" } Frame { msec: 432 - hash: "af3a5f1982459164dfec26746172b0eb" + hash: "8a5987a736b092e12198d969544d632c" } Key { type: 6 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 448 - hash: "0de90659472b63dd41a5602197ff502e" + hash: "e8471c605f6a8cc187d879510ed7ebe7" } Frame { msec: 464 - hash: "81e40abf91017614a52e03bb2474549f" + hash: "6959b4f72422636ae59989c9def06d03" } Frame { msec: 480 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 496 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Key { type: 6 @@ -154,35 +154,35 @@ VisualTest { } Frame { msec: 512 - hash: "0416581d32ab84680dfc26b6f546d2c5" + hash: "45a1fa0c871592f872574fdcd3fb586c" } Frame { msec: 528 - hash: "0416581d32ab84680dfc26b6f546d2c5" + hash: "45a1fa0c871592f872574fdcd3fb586c" } Frame { msec: 544 - hash: "0416581d32ab84680dfc26b6f546d2c5" + hash: "45a1fa0c871592f872574fdcd3fb586c" } Frame { msec: 560 - hash: "0416581d32ab84680dfc26b6f546d2c5" + hash: "45a1fa0c871592f872574fdcd3fb586c" } Frame { msec: 576 - hash: "ac98b973e6d12193829139661d3e5847" + hash: "8567bf3fb7adb990501070fac62fda31" } Frame { msec: 592 - hash: "366907376adae4d88d42d1b9e7533ec0" + hash: "824b9fef000cfad45c86d180eb13c584" } Frame { msec: 608 - hash: "5f486d0a21c74f2ba50afcafa8c15453" + hash: "cb8989a5839bf284f0e8b3eb1bf68667" } Frame { msec: 624 - hash: "a3bf6dde525e528745272a8e43fc895c" + hash: "f23e6394ed3c2fc32c690095ccfc1a7f" } Key { type: 7 @@ -194,15 +194,15 @@ VisualTest { } Frame { msec: 640 - hash: "4ffb297d2a98a3d13b848af569b1b5b5" + hash: "d32d30ebd0c292e66314f6b6005701b9" } Frame { msec: 656 - hash: "3679a17658e417bf08fc86d4bef0d4e9" + hash: "4ebda51f84f73eb6891f9c71ffba4b92" } Frame { msec: 672 - hash: "5c6a25284ffd13350425e792fd143421" + hash: "9a97e8cdb84e96f08f2af468d146fb45" } Key { type: 6 @@ -214,31 +214,31 @@ VisualTest { } Frame { msec: 688 - hash: "09a2c1032d0206e20340ae4267525f98" + hash: "9cd5a0e60b7f679faba3dad78eac1ac3" } Frame { msec: 704 - hash: "0036070d9a7ee854b3612858af46ab59" + hash: "2e18ff4ebead28620901d4a9ad050ffe" } Frame { msec: 720 - hash: "8774509eaa5fc29385da89214ef77589" + hash: "57a6a1bbfe4c4577e4334b63b977ca13" } Frame { msec: 736 - hash: "6d4f8ebf046148e5079f498396c119b4" + hash: "5f5806c2b30465845ed2bc36f1c60e14" } Frame { msec: 752 - hash: "4c7d5d2f77116c96357b0791348af058" + hash: "10125c338dffa13dfd0bbff5fc33d757" } Frame { msec: 768 - hash: "398c927a3525d5b90a5dd7a05ba9467b" + hash: "b6c83fdee9081a1773a441cffb843c11" } Frame { msec: 784 - hash: "d84b45f6acb8cbd399d4ed6bf80ce132" + hash: "c26f3ac7cd2065b98434e3fb4bc7c4a7" } Key { type: 7 @@ -250,63 +250,63 @@ VisualTest { } Frame { msec: 800 - hash: "40c597d9e04e8e0daf62f58b9e7973b3" + hash: "6cb47a37677280ef63b060767c669878" } Frame { msec: 816 - hash: "2c7fdd47e29d924e3e008a6840e0e6be" + hash: "7f27c84cd7ae3f255b0df6029e13c48d" } Frame { msec: 832 - hash: "2b3229bb1aa220499114f274cf643ce9" + hash: "fec675b07b3f569014e9f35563761d49" } Frame { msec: 848 - hash: "e55446874c1a343ce3607d679d69d1d4" + hash: "cfd2439d79ad66232107022317fd5a4c" } Frame { msec: 864 - hash: "6824708eb176a9cf92f241d4054800dd" + hash: "cec5331c1f6023335942e572992aa172" } Frame { msec: 880 - hash: "d386230dd416740625eb4f677ef4531b" + hash: "549d4736558332a64c5fc3462be71500" } Frame { msec: 896 - hash: "9b2fbddab890dbe43e84e85bf320e6c1" + hash: "1d01fe566f850fe2297fd8ed6b1efa8d" } Frame { msec: 912 - hash: "1d1065aca7eb47f0096bc2c8c4320880" + hash: "cd1b61c7acd7067f9722c1a673b9a3ea" } Frame { msec: 928 - hash: "d97ba6e2bfc021fe993afdb5b28316ba" + hash: "cb4fed177ff3df7212413450d4b73549" } Frame { msec: 944 - hash: "3a3a2f340bf1ccb14eab0562d7ecfe87" + hash: "720d0e5c3e377e2c53d251e02577d6f6" } Frame { msec: 960 - hash: "d23d7492b85e4f30994ecd64e8273ff6" + hash: "1ab118400896a46a8d179b762343522f" } Frame { msec: 976 - hash: "ea4f4c1de5bfb1be43ab0188afb7189c" + image: "cursorDelegate.1.png" } Frame { msec: 992 - hash: "399ca2d4411d3fb226c94bd32a17d0cd" + hash: "6cf8502f84b57001bf14fc4bab24911b" } Frame { msec: 1008 - hash: "ca78503396613536c8e4076884354cb1" + hash: "5aa693852436f664da87d4360da0f477" } Frame { msec: 1024 - hash: "ca78503396613536c8e4076884354cb1" + hash: "5aa693852436f664da87d4360da0f477" } Key { type: 7 @@ -318,39 +318,39 @@ VisualTest { } Frame { msec: 1040 - hash: "399ca2d4411d3fb226c94bd32a17d0cd" + hash: "6cf8502f84b57001bf14fc4bab24911b" } Frame { msec: 1056 - hash: "ea4f4c1de5bfb1be43ab0188afb7189c" + hash: "17499b49e462181383fde57dce81aef9" } Frame { msec: 1072 - hash: "d23d7492b85e4f30994ecd64e8273ff6" + hash: "1ab118400896a46a8d179b762343522f" } Frame { msec: 1088 - hash: "3a3a2f340bf1ccb14eab0562d7ecfe87" + hash: "720d0e5c3e377e2c53d251e02577d6f6" } Frame { msec: 1104 - hash: "d97ba6e2bfc021fe993afdb5b28316ba" + hash: "cb4fed177ff3df7212413450d4b73549" } Frame { msec: 1120 - hash: "1d1065aca7eb47f0096bc2c8c4320880" + hash: "cd1b61c7acd7067f9722c1a673b9a3ea" } Frame { msec: 1136 - hash: "9b2fbddab890dbe43e84e85bf320e6c1" + hash: "1d01fe566f850fe2297fd8ed6b1efa8d" } Frame { msec: 1152 - hash: "d386230dd416740625eb4f677ef4531b" + hash: "549d4736558332a64c5fc3462be71500" } Frame { msec: 1168 - hash: "6824708eb176a9cf92f241d4054800dd" + hash: "cec5331c1f6023335942e572992aa172" } Key { type: 6 @@ -362,31 +362,31 @@ VisualTest { } Frame { msec: 1184 - hash: "e8e14dbba33578a36d9c69214333c537" + hash: "a8af14ffccbd892f17c0235d62d10cd8" } Frame { msec: 1200 - hash: "95c6e967f6f445748945c51943cf532f" + hash: "81fbaaf1af513b2dc978ef0e358bbc6f" } Frame { msec: 1216 - hash: "d145d4cbd0e3a98686b3bac1c5c17093" + hash: "204cfba6a668ba25ed37f12bfcdd97eb" } Frame { msec: 1232 - hash: "09348a4108a585dd23c3a252a5c596f6" + hash: "fa6c8f7f8a8730d412168002511b82e6" } Frame { msec: 1248 - hash: "55126f2c879771e1aa5ced51b54c827a" + hash: "0d491b55d03f5d5bb6cfce63bc98deae" } Frame { msec: 1264 - hash: "ebb36a4c2fcb85107033ec2731fc5743" + hash: "0e4d3edabdf6e0faa366abcc3b0ef521" } Frame { msec: 1280 - hash: "0581a4432d4b3d0c1555a31e772c2575" + hash: "13f397452e74ef834662363b09b000b9" } Key { type: 7 @@ -398,95 +398,95 @@ VisualTest { } Frame { msec: 1296 - hash: "b4030774f06935f1b43fc8f1a69e53a5" + hash: "bb064cac4cb117b4d28e26d04dd59d7c" } Frame { msec: 1312 - hash: "655e1739c130888ff83a3b69bb0ab7e3" + hash: "dfab74915a3f1e82c558ba8fb26d81fc" } Frame { msec: 1328 - hash: "99fc97c572e7c8949693b32910e6eefb" + hash: "7593cfb3073aa9d638c093e0f4c9857d" } Frame { msec: 1344 - hash: "e9c8bb13c2549047c05d671daa378496" + hash: "fe4a725dcc97b7f320225e02dc88d34a" } Frame { msec: 1360 - hash: "cb344e0d39b5b07ca7d094bf30ce9f53" + hash: "67794fa0162684b2097164d6cd666f16" } Frame { msec: 1376 - hash: "15ba6e62c693f2bf74bdf86668139985" + hash: "747cfcd428eb59ca99749de261e561d4" } Frame { msec: 1392 - hash: "48133ec73eb9723059eb6e6af3139f2b" + hash: "293fd7523f25e42d2acab401482a9af9" } Frame { msec: 1408 - hash: "0b19e777a04f03774f2d5f5398bdb10f" + hash: "2644c937db0488c14f833a9e9f7d9cf6" } Frame { msec: 1424 - hash: "fc41d9a9aedf9274a68b33603ed6ccd0" + hash: "d80500f7cce8d887d0c523060e4217af" } Frame { msec: 1440 - hash: "fa6e65f0c835b12dc10463711bd73350" + hash: "96265a45f0f25d9c0cd1168789b50952" } Frame { msec: 1456 - hash: "25a02c3388e52df550a0332efde90fcd" + hash: "e862d11944ea38939faa5b24fa9183bf" } Frame { msec: 1472 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1488 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1504 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1520 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1536 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1552 - hash: "2390443be82acf291856be59fa18fc26" + hash: "946c778fcc8ee4942a30d4654e103fec" } Frame { msec: 1568 - hash: "284cd356d551a048d4a000b90217ac72" + hash: "99e0e3d965bea36001298815d12b4d4c" } Frame { msec: 1584 - hash: "94fb20c3767e09d1b4254ee6122cf24e" + hash: "c552ace3096eca31d0fc256d2bd153e0" } Frame { msec: 1600 - hash: "bfac920384425ce9f34505b44eceb523" + hash: "203858ff0fc145ac60942c2b8e67ca20" } Frame { msec: 1616 - hash: "4a2d434efcb9a57f2013dc6b366e0e4e" + hash: "11ea7696ec3aa9a394cabd723bcada9e" } Frame { msec: 1632 - hash: "d0fbe98dc34c4bb0d1ceb7e4678cc1d5" + hash: "e0e24c0527e015d0bb05206771024d04" } Frame { msec: 1648 - hash: "28ab147983a71e93e5610f53e14bd113" + hash: "995ccae48c4f0fc2ab40e793d074e78b" } Key { type: 6 @@ -498,35 +498,35 @@ VisualTest { } Frame { msec: 1664 - hash: "2e6ee60fe9ff07fa4558134e6b1d6da8" + hash: "cff7bee4ba1e8eb4c46e13f12f6059e1" } Frame { msec: 1680 - hash: "f181e578e865981d7a2073080b381ec1" + hash: "e43bd84ba7bdc4ea0370c79bfa7667bd" } Frame { msec: 1696 - hash: "d7c0558ea16829b52ea6d09814c301b9" + hash: "b7dd97abf895eaea20836833f959f0c6" } Frame { msec: 1712 - hash: "c9304cb66c04566cf4374b46ab85e6e7" + hash: "b724e9874f0df5ed4ad9bdedbc4c45c9" } Frame { msec: 1728 - hash: "024dde64822afc9eea63974851fe57e1" + hash: "69d9d28793e65aa9a1829d07cc035e4d" } Frame { msec: 1744 - hash: "8e4520e95a8acc8f1d4b710c4a14898f" + hash: "689fc2cf5feb1084fceda93eab9b7aac" } Frame { msec: 1760 - hash: "6b271c3f1d9d49bbd80a8ee33f3fc09c" + hash: "2bcc0f2fb8cccf7904c982cd60d3fefb" } Frame { msec: 1776 - hash: "eb76a46632856bf07b005cad2ba2f6ab" + hash: "d55a868304da7e9af57cd775f2c283c1" } Key { type: 6 @@ -538,35 +538,35 @@ VisualTest { } Frame { msec: 1792 - hash: "a29bd83f6b4e877f3c7b89c82dfcab54" + hash: "b2591af5120258c99e84f31311396675" } Frame { msec: 1808 - hash: "dca39b6b6fff5e4a6309e4c0e42811c0" + hash: "4f9908bdbad583a6a956a21d6ab05505" } Frame { msec: 1824 - hash: "88ad3f9f638a97bed98f00ec7d78dfe4" + hash: "dd1c43a94dcabae975f0dba67c2742da" } Frame { msec: 1840 - hash: "5697a705f36283213bbe4b5848baa764" + hash: "f9b8c8987bad613fe23fcf9d5fe995b8" } Frame { msec: 1856 - hash: "8850842afae3060a91d612f7b869fd48" + hash: "9bd4431207a85e0effefb9cf36a2651b" } Frame { msec: 1872 - hash: "4f08dbd1cab0bfcc8b9f232d46cf42db" + hash: "cd7c4c097231797649f2d24a729e3587" } Frame { msec: 1888 - hash: "f7df5b96d0983a918e3c81aa7bee3950" + hash: "f2ac503f2aab55df922f90a6b9baeb0f" } Frame { msec: 1904 - hash: "b28681bcb414d428588acda377fef838" + hash: "f356c05f9445c2fb260a29a58431269c" } Key { type: 7 @@ -578,83 +578,83 @@ VisualTest { } Frame { msec: 1920 - hash: "a5f90da82b51bc866648304a20a1dcd3" + hash: "5580f8c543d67378b0f54117070f69bd" } Frame { msec: 1936 - hash: "5c154b54776ed555563d3e5196a8aedd" + image: "cursorDelegate.2.png" } Frame { msec: 1952 - hash: "ee64c0452b325880de3a4fea599c18cc" + hash: "634c5597e64c34b039c70f614f0100e1" } Frame { msec: 1968 - hash: "0776e1557b2d32db1c7c43331c532331" + hash: "7f0bde32846ae8172cfd02f38d34dc48" } Frame { msec: 1984 - hash: "24b68da9a63bbf00ffffeca649f771fa" + hash: "bc9092f889ffd6a6682ed9754c6697a2" } Frame { msec: 2000 - hash: "00d49d91b51f5bd428c07e9be65f551a" + hash: "3ef935e3a4a0d409af7dd38f2433cdfe" } Frame { msec: 2016 - hash: "874d4b599cb92cd9160960e3b3af74e0" + hash: "2a044024b38499e801810a19d313e01f" } Frame { msec: 2032 - hash: "00d49d91b51f5bd428c07e9be65f551a" + hash: "3ef935e3a4a0d409af7dd38f2433cdfe" } Frame { msec: 2048 - hash: "24b68da9a63bbf00ffffeca649f771fa" + hash: "bc9092f889ffd6a6682ed9754c6697a2" } Frame { msec: 2064 - hash: "0776e1557b2d32db1c7c43331c532331" + hash: "7f0bde32846ae8172cfd02f38d34dc48" } Frame { msec: 2080 - hash: "ee64c0452b325880de3a4fea599c18cc" + hash: "634c5597e64c34b039c70f614f0100e1" } Frame { msec: 2096 - hash: "5c154b54776ed555563d3e5196a8aedd" + hash: "80f3bf6ea745da047da936578b87ee00" } Frame { msec: 2112 - hash: "a5f90da82b51bc866648304a20a1dcd3" + hash: "5580f8c543d67378b0f54117070f69bd" } Frame { msec: 2128 - hash: "b28681bcb414d428588acda377fef838" + hash: "f356c05f9445c2fb260a29a58431269c" } Frame { msec: 2144 - hash: "f7df5b96d0983a918e3c81aa7bee3950" + hash: "f2ac503f2aab55df922f90a6b9baeb0f" } Frame { msec: 2160 - hash: "4f08dbd1cab0bfcc8b9f232d46cf42db" + hash: "cd7c4c097231797649f2d24a729e3587" } Frame { msec: 2176 - hash: "8850842afae3060a91d612f7b869fd48" + hash: "9bd4431207a85e0effefb9cf36a2651b" } Frame { msec: 2192 - hash: "5697a705f36283213bbe4b5848baa764" + hash: "f9b8c8987bad613fe23fcf9d5fe995b8" } Frame { msec: 2208 - hash: "88ad3f9f638a97bed98f00ec7d78dfe4" + hash: "dd1c43a94dcabae975f0dba67c2742da" } Frame { msec: 2224 - hash: "dca39b6b6fff5e4a6309e4c0e42811c0" + hash: "4f9908bdbad583a6a956a21d6ab05505" } Key { type: 7 @@ -666,35 +666,35 @@ VisualTest { } Frame { msec: 2240 - hash: "a29bd83f6b4e877f3c7b89c82dfcab54" + hash: "b2591af5120258c99e84f31311396675" } Frame { msec: 2256 - hash: "7defd2ecefeb86b457a2ee76d97424ee" + hash: "5c40e466b5af2e4b67dbb4ea96b24146" } Frame { msec: 2272 - hash: "ccf6d45e8822d72482d9b585909b612b" + hash: "899a30ca4014231c8e9f15be4e0c3ee6" } Frame { msec: 2288 - hash: "996dddf091394513adda1b1f00bf0c68" + hash: "a44bbb13a336fdd4aedaf4c5c6ee399a" } Frame { msec: 2304 - hash: "3cf94e90eddb4b0815762b89f58f8325" + hash: "3b1b3e228ccbd61f9dfb896391da0b5b" } Frame { msec: 2320 - hash: "ab9f876450526b37774c6c4a5794c7b1" + hash: "22f5ec3d2eda574d1976604b82307924" } Frame { msec: 2336 - hash: "9109880e9201e92eb17ae87a3648dca7" + hash: "9e63d1a15c954d2960eecf54e5eeb172" } Frame { msec: 2352 - hash: "0e759f2f279057c1f4d1147be5b41214" + hash: "64ce03b10500b5a98b5c826362d8140e" } Key { type: 6 @@ -706,35 +706,35 @@ VisualTest { } Frame { msec: 2368 - hash: "d87bd14345c785cc7e78a5c5462b90ec" + hash: "c96896be1a311c0cedc1c7ec1bd9e13e" } Frame { msec: 2384 - hash: "77850031e012246dd967ac689e353eb3" + hash: "d3d6dc1d8ff93e373583e3cbdca88b81" } Frame { msec: 2400 - hash: "f1bd048cd9167a8f162d1c39aca4f7c1" + hash: "2a456146359c54c52f9e7a6cebcfa454" } Frame { msec: 2416 - hash: "0fa030c5da23f23a0665a535e23b84a2" + hash: "d127788c702c2ed037c709ffc331840e" } Frame { msec: 2432 - hash: "af3a5f1982459164dfec26746172b0eb" + hash: "8a5987a736b092e12198d969544d632c" } Frame { msec: 2448 - hash: "0de90659472b63dd41a5602197ff502e" + hash: "e8471c605f6a8cc187d879510ed7ebe7" } Frame { msec: 2464 - hash: "81e40abf91017614a52e03bb2474549f" + hash: "6959b4f72422636ae59989c9def06d03" } Frame { msec: 2480 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Key { type: 7 @@ -746,95 +746,95 @@ VisualTest { } Frame { msec: 2496 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 2512 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 2528 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 2544 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 2560 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 2576 - hash: "e26dbfb26415b21198add56d5de02cb2" + hash: "aa52467f87fbd766baa5137ddf18e0f6" } Frame { msec: 2592 - hash: "fa2877a963417789b82170b32e0af7a0" + hash: "bc9549a04b9bc898feda61b7fce45b3f" } Frame { msec: 2608 - hash: "860b39f92c412a7d946f882d8f99d837" + hash: "606e69ad9b6e3a82e08ae4bbabb34680" } Frame { msec: 2624 - hash: "d7b8c52aef183965a97d82a18b03ed94" + hash: "257ed9eae13221c5d47103043ef4ad5c" } Frame { msec: 2640 - hash: "b1ce9cf0ebd8e1e783e5bd43bbd72072" + hash: "f5b44d257447499e0268e9a8730d88e7" } Frame { msec: 2656 - hash: "d214b419ec5b4cff8f877bdeb1b9ef96" + hash: "8f03a92b2b0b04ee0ac45e7631df78ce" } Frame { msec: 2672 - hash: "95e7057104508b3919d722d4befde7b7" + hash: "054e88b3d80940006b24fdf233a70682" } Frame { msec: 2688 - hash: "270489ec5da5bf9a93fa4e52f47a71f5" + hash: "20896fbba7e1970957ff20d33541730c" } Frame { msec: 2704 - hash: "46646e396ab0c1c20427dadd71d45ba9" + hash: "238fca62069b7c6e1b6919afca518dbe" } Frame { msec: 2720 - hash: "65e2fd167565f876310d56fa9203c118" + hash: "764e14ba052d8340d6d674d6f417643d" } Frame { msec: 2736 - hash: "aff0da79bd9bd8c285139d7737a1316f" + hash: "278fb36637ff60d1949da9e9b887726f" } Frame { msec: 2752 - hash: "bf264fe7d774a597a3ff0965d912fa90" + hash: "f51251c5ec7b0071248d3fa5db1c12fd" } Frame { msec: 2768 - hash: "f00358343437f6e058848c7237601632" + hash: "785d38e036e7dd809037de3885067455" } Frame { msec: 2784 - hash: "88c9e1d58397a81ed23931c7fdae1e7d" + hash: "4291bb6217f363aab48812359626de36" } Frame { msec: 2800 - hash: "44d46b459f6bb89510e52b0d999fd499" + hash: "e139ad6787f1c4a1b89d4030703076e5" } Frame { msec: 2816 - hash: "0c196a24c9ca7143d382688db678d855" + hash: "4c23976fb1b3b583153cbd72f2db10f4" } Frame { msec: 2832 - hash: "9df6d3d3b9981cb907ab89e65b743e97" + hash: "5e0a3d848a749ecd4f9a572f10664f4b" } Frame { msec: 2848 - hash: "501a644d6cde64ad041b086e00fd3950" + hash: "1acc382cfe2f5872982440e8a85eb57b" } Key { type: 6 @@ -846,35 +846,35 @@ VisualTest { } Frame { msec: 2864 - hash: "83f297406b1c6311da3a216024836d15" + hash: "eba94c6ae3dc4eb26c8d074137c7aa0f" } Frame { msec: 2880 - hash: "1bb236db749ef514c00d0a3dd698d24f" + hash: "7c75307fbb765bd69b888d500247b595" } Frame { msec: 2896 - hash: "93f79f8717948bde8ee55c668af2d397" + image: "cursorDelegate.3.png" } Frame { msec: 2912 - hash: "881b5c2ccd0bbdaea4d61abbec600fc5" + hash: "da73d23a925d93194aeb64d1522adc02" } Frame { msec: 2928 - hash: "be72fe7c27901db62f2dbd9a757e4838" + hash: "d661872854338121d867b35d9e44ae6d" } Frame { msec: 2944 - hash: "c83c973fb1253ccab333fb1e604155b8" + hash: "969b5cf20c7c4e18723a8b8a70ea68ec" } Frame { msec: 2960 - hash: "dd6072d204812c23e24db1e7a81c6f57" + hash: "c7318ea4b4a4ac49308bef41d3bc264d" } Frame { msec: 2976 - hash: "fb342743dc5ab9ade2b8a48a2a11dc8f" + hash: "dd6bd11cc0bc877dbd70c55d4f5bab29" } Key { type: 7 @@ -886,63 +886,63 @@ VisualTest { } Frame { msec: 2992 - hash: "fc8ede705bfe8f339fe47041c502b0d6" + hash: "21905ed4264a52c9b404149abedabe33" } Frame { msec: 3008 - hash: "00fa0306d3fdc7e384cfc0660a3a355d" + hash: "e952374e5967619679af711157b561cd" } Frame { msec: 3024 - hash: "00fa0306d3fdc7e384cfc0660a3a355d" + hash: "e952374e5967619679af711157b561cd" } Frame { msec: 3040 - hash: "fc8ede705bfe8f339fe47041c502b0d6" + hash: "21905ed4264a52c9b404149abedabe33" } Frame { msec: 3056 - hash: "fb342743dc5ab9ade2b8a48a2a11dc8f" + hash: "dd6bd11cc0bc877dbd70c55d4f5bab29" } Frame { msec: 3072 - hash: "dd6072d204812c23e24db1e7a81c6f57" + hash: "c7318ea4b4a4ac49308bef41d3bc264d" } Frame { msec: 3088 - hash: "c83c973fb1253ccab333fb1e604155b8" + hash: "969b5cf20c7c4e18723a8b8a70ea68ec" } Frame { msec: 3104 - hash: "be72fe7c27901db62f2dbd9a757e4838" + hash: "d661872854338121d867b35d9e44ae6d" } Frame { msec: 3120 - hash: "881b5c2ccd0bbdaea4d61abbec600fc5" + hash: "da73d23a925d93194aeb64d1522adc02" } Frame { msec: 3136 - hash: "93f79f8717948bde8ee55c668af2d397" + hash: "2c0261e2223d7212e047dd4af6246a8f" } Frame { msec: 3152 - hash: "1bb236db749ef514c00d0a3dd698d24f" + hash: "7c75307fbb765bd69b888d500247b595" } Frame { msec: 3168 - hash: "83f297406b1c6311da3a216024836d15" + hash: "eba94c6ae3dc4eb26c8d074137c7aa0f" } Frame { msec: 3184 - hash: "3d284b4000d2849ed4af2f7c1b859492" + hash: "e6eaa9959334f24ef3cf68d44d7340f1" } Frame { msec: 3200 - hash: "de315e6836334fd0a2da855f5be4ff30" + hash: "3adb8604d872bc8ff5498841c6da71b5" } Frame { msec: 3216 - hash: "5ca117709284f4a1cbd64cdba4079340" + hash: "e602eeaac3ce53033154297e73802c02" } Key { type: 6 @@ -954,31 +954,31 @@ VisualTest { } Frame { msec: 3232 - hash: "308a4220f5c74fd56bd218cd695b9822" + hash: "85afa80a1c333674cfbfcc38cedc798d" } Frame { msec: 3248 - hash: "4ac4e09e987f2ba9661ed52fb1bdf236" + hash: "72679887fb26b7eb2553d6e554e26679" } Frame { msec: 3264 - hash: "9ffd39a8a540ec88ff2b20a16ef083ee" + hash: "d25f21361d9cea41b17277f1ffecac62" } Frame { msec: 3280 - hash: "4a36ed8e68811954fef171d5734ccbaf" + hash: "24db38727e1a58d515119181ea41e209" } Frame { msec: 3296 - hash: "714a6231aca70cfa8e83ea71b7ae90dc" + hash: "e7ddd84f438fd2d463a3b9552dad345a" } Frame { msec: 3312 - hash: "1fa9e35449ee87c972e3189ad0651a68" + hash: "621e406f5b9204eb5d82c4f66fdf6a61" } Frame { msec: 3328 - hash: "d602008fada2f4edb6ad00fe759f9db9" + hash: "2a8befe073dda8589197cf05eeeaaf59" } Key { type: 7 @@ -990,103 +990,103 @@ VisualTest { } Frame { msec: 3344 - hash: "bf16cc38f109e761b5ac2b0c63a1a2fe" + hash: "104f0e21a041236f48dab6fe2c1c5aa1" } Frame { msec: 3360 - hash: "30f26041533455ed92c4984f55e3c6ff" + hash: "0f8f74614b0b7295bb9df8fa0b1f6877" } Frame { msec: 3376 - hash: "5838d666902bc693de505522dad13254" + hash: "3a3cc6cfd3200e06a2816f2746edf699" } Frame { msec: 3392 - hash: "6c8ada09b627050e4340da6e8ddd646e" + hash: "83032d1da6907ebe1ab9fddf314d0bc1" } Frame { msec: 3408 - hash: "b33cd5bbb90d435dd7ea3ab67bef88ee" + hash: "b93878281f21c85c211908086f2899e7" } Frame { msec: 3424 - hash: "692d4029938c01044b4210958dd1ee7e" + hash: "a554a6ecd96f37f114f1fd616e0aeab2" } Frame { msec: 3440 - hash: "7e2e55555ee2c7e172e61ddb6365355d" + hash: "8943d47912a4206e61836d99cca835da" } Frame { msec: 3456 - hash: "87ca0584879b25336a1023ac3252fc9a" + hash: "4d06d264f71d75421c9a6d5a87d6a9ba" } Frame { msec: 3472 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3488 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3504 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3520 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3536 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3552 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 3568 - hash: "8c6052eb4cf03d7742a73874d9f15285" + hash: "ca17401d638025fde8aad18b9a358029" } Frame { msec: 3584 - hash: "8a1b63c42867f87a1cf4b47944b3860a" + hash: "3542537f0b0e1375d81c7f0365bbdf1d" } Frame { msec: 3600 - hash: "90712efd7c17b0ad33d2c2c02e9eaa97" + hash: "235b68812a3cb48fc09bd8319aef40f1" } Frame { msec: 3616 - hash: "8099972420ffd03e2bfc3ea45918a543" + hash: "3aa88f646534068d13e9c4f23af52019" } Frame { msec: 3632 - hash: "2b78b1179a34319c287a6659406e23c3" + hash: "8f037bdef4940fdb1936900ad5aee36e" } Frame { msec: 3648 - hash: "ad9458ab4d6376c87350a2356c280f94" + hash: "18e8239c50ca62a5bd96d983ab5ff46d" } Frame { msec: 3664 - hash: "a74bc230e310a2826b2fed962db22f7a" + hash: "d62f6887bdad9decb48ebaf63a6330a3" } Frame { msec: 3680 - hash: "bd72e8f4757050c41673a6f0d38f2285" + hash: "0af7997ec1a755a761fc1ab47ef30137" } Frame { msec: 3696 - hash: "379bad4fa4b605cb6a16434bdb031e2b" + hash: "b3a384f93ef5f36466f0a638182b66cb" } Frame { msec: 3712 - hash: "e144a8e9586f29f9b2f042b47e7739ae" + hash: "fceb3ee105028e29dca001197c63e524" } Frame { msec: 3728 - hash: "bd74c9e79bc1a88dd6a17a3aed21e368" + hash: "5c16dc7aee02eefa95d0c6211f81ba48" } Key { type: 6 @@ -1098,31 +1098,31 @@ VisualTest { } Frame { msec: 3744 - hash: "144724168f42372e10ec6c39662a5ed8" + hash: "e4c3193ad0885084becbeaaaa899fff4" } Frame { msec: 3760 - hash: "d8859888802e7b54e2d2a44cf252eb54" + hash: "84afa9118845126960309537e529ea74" } Frame { msec: 3776 - hash: "20561e2faf7e8fe1d6337248e6cd5e94" + hash: "6e18f95c4252aff3ee5447a08153ee53" } Frame { msec: 3792 - hash: "184cff262d1004ce702c117a6b5b9699" + hash: "59facabe2430703113665d0153402472" } Frame { msec: 3808 - hash: "61b156acacefa6e4f4ddd8adaca90d08" + hash: "316bce2e605a4df04d41a4f7620086bd" } Frame { msec: 3824 - hash: "0906852b1e62a936694a22d6ffa4f5dd" + hash: "7dcba8f0dd9fd67518f0502d904624fd" } Frame { msec: 3840 - hash: "2d1b406be294727a278ba6bbc97be62a" + hash: "cb9166d113c5c7495916f6b7f850407c" } Key { type: 7 @@ -1134,59 +1134,59 @@ VisualTest { } Frame { msec: 3856 - hash: "cc0fb2ae2dd1ccad94c453bc4c4b6d32" + image: "cursorDelegate.4.png" } Frame { msec: 3872 - hash: "6a6baee5ca76d331c47fca4d0f7168e5" + hash: "7cc78c7ab5820a698b62c452dfc0d1db" } Frame { msec: 3888 - hash: "32032d7ce55af41c97ac5bf33aca40bb" + hash: "5f068715dc1244895e6e09afd6e846a9" } Frame { msec: 3904 - hash: "a8781226e5e494324a34e120aa446cd1" + hash: "c279e7293539593bfc8250d37f78791c" } Frame { msec: 3920 - hash: "0dd5df088fcc0228a97ffe715c95e2b6" + hash: "d01ff855befa456a213d4f78f22fe46c" } Frame { msec: 3936 - hash: "774b161fe9645bc69b89e580b3e41f71" + hash: "16e20d2e663e64daa1920b165604f342" } Frame { msec: 3952 - hash: "5756d7ffd8ff656db54f4329ea909553" + hash: "2feebd6865e71afd30c73e342fb2cab1" } Frame { msec: 3968 - hash: "2b4a5c97ff4d8792a7706bb78385ec35" + hash: "8c417cb9ef300c895323060ceb860bd9" } Frame { msec: 3984 - hash: "f9765e4def564b64861402e1a873b169" + hash: "05903a78cad8d331349f93a1cea75d7d" } Frame { msec: 4000 - hash: "287b07ef6288dcea13fffd2b95aafd54" + hash: "e142bb264ab7877a9b40596d497ea2c1" } Frame { msec: 4016 - hash: "7abcb9d6cf223c1655f6265f780a321a" + hash: "717e5e965b9ff188fd9200927968d359" } Frame { msec: 4032 - hash: "287b07ef6288dcea13fffd2b95aafd54" + hash: "e142bb264ab7877a9b40596d497ea2c1" } Frame { msec: 4048 - hash: "f9765e4def564b64861402e1a873b169" + hash: "05903a78cad8d331349f93a1cea75d7d" } Frame { msec: 4064 - hash: "2b4a5c97ff4d8792a7706bb78385ec35" + hash: "8c417cb9ef300c895323060ceb860bd9" } Key { type: 7 @@ -1198,302 +1198,302 @@ VisualTest { } Frame { msec: 4080 - hash: "5756d7ffd8ff656db54f4329ea909553" + hash: "2feebd6865e71afd30c73e342fb2cab1" } Frame { msec: 4096 - hash: "774b161fe9645bc69b89e580b3e41f71" + hash: "16e20d2e663e64daa1920b165604f342" } Frame { msec: 4112 - hash: "0dd5df088fcc0228a97ffe715c95e2b6" + hash: "d01ff855befa456a213d4f78f22fe46c" } Frame { msec: 4128 - hash: "a8781226e5e494324a34e120aa446cd1" + hash: "c279e7293539593bfc8250d37f78791c" } Frame { msec: 4144 - hash: "32032d7ce55af41c97ac5bf33aca40bb" + hash: "5f068715dc1244895e6e09afd6e846a9" } Frame { msec: 4160 - hash: "6a6baee5ca76d331c47fca4d0f7168e5" + hash: "7cc78c7ab5820a698b62c452dfc0d1db" } Frame { msec: 4176 - hash: "cc0fb2ae2dd1ccad94c453bc4c4b6d32" + hash: "194b8b8843cf8a7d90ec910ee4021d9c" } Frame { msec: 4192 - hash: "2d1b406be294727a278ba6bbc97be62a" + hash: "cb9166d113c5c7495916f6b7f850407c" } Frame { msec: 4208 - hash: "0906852b1e62a936694a22d6ffa4f5dd" + hash: "7dcba8f0dd9fd67518f0502d904624fd" } Frame { msec: 4224 - hash: "61b156acacefa6e4f4ddd8adaca90d08" + hash: "316bce2e605a4df04d41a4f7620086bd" } Frame { msec: 4240 - hash: "184cff262d1004ce702c117a6b5b9699" + hash: "59facabe2430703113665d0153402472" } Frame { msec: 4256 - hash: "20561e2faf7e8fe1d6337248e6cd5e94" + hash: "6e18f95c4252aff3ee5447a08153ee53" } Frame { msec: 4272 - hash: "d8859888802e7b54e2d2a44cf252eb54" + hash: "84afa9118845126960309537e529ea74" } Frame { msec: 4288 - hash: "144724168f42372e10ec6c39662a5ed8" + hash: "e4c3193ad0885084becbeaaaa899fff4" } Frame { msec: 4304 - hash: "d2da36fbf73289f545133bd608af66a2" + hash: "6a7b8f8ae1959681afc7e76c242ddf63" } Frame { msec: 4320 - hash: "b1d7da6b42a31bba91148ab37b111945" + hash: "94457c4fd09b63fe9df738af422a3716" } Frame { msec: 4336 - hash: "6f226a3b20d95e17df69e2c4e5aff3d1" + hash: "29189dea05961b2ed7d525b17bc99513" } Frame { msec: 4352 - hash: "1109da0f043a9418661fc05e53fe3b45" + hash: "11fc3e52587bbedf0016c829d2d849d1" } Frame { msec: 4368 - hash: "f3e901db9efd1d9fadf1cb6858040d51" + hash: "57178e2a3d404d4301ee89a6202ad7cc" } Frame { msec: 4384 - hash: "c8e50c0e924b11a3f1943abb9a4008a4" + hash: "151778e9dd76fbf6d9e98b86469ec01e" } Frame { msec: 4400 - hash: "431226a27488ed1dba237de3d43f94c5" + hash: "bfab5d3f368c06f2ef5e22b7e16090ad" } Frame { msec: 4416 - hash: "420d316430c84f10d7cd24d29b918149" + hash: "ef29b8ff8fcf221368056aa249f706a1" } Frame { msec: 4432 - hash: "ccbd4d1e4865ebd9b0fe923e6ab05e5c" + hash: "cd14458426f94efbbc729112e6a481c5" } Frame { msec: 4448 - hash: "231bff73758a1c6f7c7c0365159ba3e6" + hash: "cbafbb1c359a0c0e7182c4449d04b052" } Frame { msec: 4464 - hash: "d1ac7ceda7303bbf3392d33f47037ed6" + hash: "b56e3f531bb6b3f2c62a6972910038b3" } Frame { msec: 4480 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4496 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4512 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4528 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4544 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4560 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4576 - hash: "a2ad07326fafcb3012cdb869f39af466" + hash: "3d6db6e3ee77ee75341ce16dc4a56c59" } Frame { msec: 4592 - hash: "8622eb25a6da44926b5161bce213a483" + hash: "ff43ccdb14ae4d12ffead2eb261a5056" } Frame { msec: 4608 - hash: "fe563aa9dae9655871f82a779063cdbd" + hash: "fb73ac1e61834f2f0263e53a3c00a857" } Frame { msec: 4624 - hash: "775cd79b012f79b773449a0ad8457149" + hash: "6bd66d118ff27b0cea7944ea22c727c9" } Frame { msec: 4640 - hash: "01e9fab344a148a0877a7332d561be5a" + hash: "0b474aa5492386c319bf72280dae7896" } Frame { msec: 4656 - hash: "935566d139599a30197850774fb059ba" + hash: "81952cf37f0965a603bf06a05ef610fa" } Frame { msec: 4672 - hash: "4aae1ac532624417decddd978f516b6e" + hash: "ad7606f147498c755284d111a1af7710" } Frame { msec: 4688 - hash: "34dc78df6e9941988712c1f8f79c3db0" + hash: "144abb4208f9cc4f823e0d4abb3207d8" } Frame { msec: 4704 - hash: "23a96c11d5917c44bd48239ed2b5777f" + hash: "0b4f3fafaf262f16e887938eda9624a3" } Frame { msec: 4720 - hash: "f8f13e097eae3152db3ccebff1343fe0" + hash: "e729d3fde3db0f72b1080c7dc2eded1a" } Frame { msec: 4736 - hash: "02f8fca7c4ab80ecf425e4b39e966b86" + hash: "36ffc8e16ebcb9c4499c4ff037b8b293" } Frame { msec: 4752 - hash: "c3356367750e797ff81bc4102f948134" + hash: "c49853a23d2e8b966836888acce19ecc" } Frame { msec: 4768 - hash: "7b5de3772b8bcb4b10f3d265d5603afb" + hash: "3873af5aa871bdb1d4f538333b11cf33" } Frame { msec: 4784 - hash: "ed3c741639232377f61867fd353ce58a" + hash: "6d02efe848b27b3e221a8332099fb83f" } Frame { msec: 4800 - hash: "4f0d49aff27a1c83287d38e760c10f16" + hash: "2f08f365916d892f0789e93b674cb41b" } Frame { msec: 4816 - hash: "5ca117709284f4a1cbd64cdba4079340" + image: "cursorDelegate.5.png" } Frame { msec: 4832 - hash: "de315e6836334fd0a2da855f5be4ff30" + hash: "3adb8604d872bc8ff5498841c6da71b5" } Frame { msec: 4848 - hash: "3d284b4000d2849ed4af2f7c1b859492" + hash: "e6eaa9959334f24ef3cf68d44d7340f1" } Frame { msec: 4864 - hash: "83f297406b1c6311da3a216024836d15" + hash: "eba94c6ae3dc4eb26c8d074137c7aa0f" } Frame { msec: 4880 - hash: "1bb236db749ef514c00d0a3dd698d24f" + hash: "7c75307fbb765bd69b888d500247b595" } Frame { msec: 4896 - hash: "93f79f8717948bde8ee55c668af2d397" + hash: "2c0261e2223d7212e047dd4af6246a8f" } Frame { msec: 4912 - hash: "881b5c2ccd0bbdaea4d61abbec600fc5" + hash: "da73d23a925d93194aeb64d1522adc02" } Frame { msec: 4928 - hash: "be72fe7c27901db62f2dbd9a757e4838" + hash: "d661872854338121d867b35d9e44ae6d" } Frame { msec: 4944 - hash: "c83c973fb1253ccab333fb1e604155b8" + hash: "969b5cf20c7c4e18723a8b8a70ea68ec" } Frame { msec: 4960 - hash: "dd6072d204812c23e24db1e7a81c6f57" + hash: "c7318ea4b4a4ac49308bef41d3bc264d" } Frame { msec: 4976 - hash: "fb342743dc5ab9ade2b8a48a2a11dc8f" + hash: "dd6bd11cc0bc877dbd70c55d4f5bab29" } Frame { msec: 4992 - hash: "fc8ede705bfe8f339fe47041c502b0d6" + hash: "21905ed4264a52c9b404149abedabe33" } Frame { msec: 5008 - hash: "00fa0306d3fdc7e384cfc0660a3a355d" + hash: "e952374e5967619679af711157b561cd" } Frame { msec: 5024 - hash: "00fa0306d3fdc7e384cfc0660a3a355d" + hash: "e952374e5967619679af711157b561cd" } Frame { msec: 5040 - hash: "fc8ede705bfe8f339fe47041c502b0d6" + hash: "21905ed4264a52c9b404149abedabe33" } Frame { msec: 5056 - hash: "fb342743dc5ab9ade2b8a48a2a11dc8f" + hash: "dd6bd11cc0bc877dbd70c55d4f5bab29" } Frame { msec: 5072 - hash: "dd6072d204812c23e24db1e7a81c6f57" + hash: "c7318ea4b4a4ac49308bef41d3bc264d" } Frame { msec: 5088 - hash: "c83c973fb1253ccab333fb1e604155b8" + hash: "969b5cf20c7c4e18723a8b8a70ea68ec" } Frame { msec: 5104 - hash: "be72fe7c27901db62f2dbd9a757e4838" + hash: "d661872854338121d867b35d9e44ae6d" } Frame { msec: 5120 - hash: "881b5c2ccd0bbdaea4d61abbec600fc5" + hash: "da73d23a925d93194aeb64d1522adc02" } Frame { msec: 5136 - hash: "93f79f8717948bde8ee55c668af2d397" + hash: "2c0261e2223d7212e047dd4af6246a8f" } Frame { msec: 5152 - hash: "1bb236db749ef514c00d0a3dd698d24f" + hash: "7c75307fbb765bd69b888d500247b595" } Frame { msec: 5168 - hash: "83f297406b1c6311da3a216024836d15" + hash: "eba94c6ae3dc4eb26c8d074137c7aa0f" } Frame { msec: 5184 - hash: "3d284b4000d2849ed4af2f7c1b859492" + hash: "e6eaa9959334f24ef3cf68d44d7340f1" } Frame { msec: 5200 - hash: "de315e6836334fd0a2da855f5be4ff30" + hash: "3adb8604d872bc8ff5498841c6da71b5" } Frame { msec: 5216 - hash: "5ca117709284f4a1cbd64cdba4079340" + hash: "e602eeaac3ce53033154297e73802c02" } Frame { msec: 5232 - hash: "4f0d49aff27a1c83287d38e760c10f16" + hash: "2f08f365916d892f0789e93b674cb41b" } Frame { msec: 5248 - hash: "ed3c741639232377f61867fd353ce58a" + hash: "6d02efe848b27b3e221a8332099fb83f" } Frame { msec: 5264 - hash: "7b5de3772b8bcb4b10f3d265d5603afb" + hash: "3873af5aa871bdb1d4f538333b11cf33" } } 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 95f0c98..19a7ea1 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 409192c..e25493f 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 cd2f112..5800e13 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 7191c1e..29e8168 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.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png new file mode 100644 index 0000000..19a7ea1 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.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 f9d728e..955ebbd 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml @@ -10,95 +10,95 @@ VisualTest { } Frame { msec: 32 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 48 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 64 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 80 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 96 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 112 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 128 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 144 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 160 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 176 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 192 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 208 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 224 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 240 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 256 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 272 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 288 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 304 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 320 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 336 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 352 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 368 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 384 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Key { type: 6 @@ -110,15 +110,15 @@ VisualTest { } Frame { msec: 400 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 416 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 432 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Key { type: 7 @@ -130,27 +130,27 @@ VisualTest { } Frame { msec: 448 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 464 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 480 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 496 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 512 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 528 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Key { type: 6 @@ -162,15 +162,15 @@ VisualTest { } Frame { msec: 544 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 560 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 576 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Key { type: 7 @@ -182,27 +182,27 @@ VisualTest { } Frame { msec: 592 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 608 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 624 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 640 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 656 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 672 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Key { type: 6 @@ -214,19 +214,19 @@ VisualTest { } Frame { msec: 688 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 704 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 720 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 736 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Key { type: 7 @@ -238,23 +238,23 @@ VisualTest { } Frame { msec: 752 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 768 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 784 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 800 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 816 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Key { type: 6 @@ -266,19 +266,19 @@ VisualTest { } Frame { msec: 832 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 848 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 864 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 880 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Key { type: 7 @@ -290,19 +290,19 @@ VisualTest { } Frame { msec: 896 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 912 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 928 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 944 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Key { type: 6 @@ -314,19 +314,19 @@ VisualTest { } Frame { msec: 960 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 976 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + image: "qt-669.1.png" } Frame { msec: 992 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 1008 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Key { type: 7 @@ -338,23 +338,23 @@ VisualTest { } Frame { msec: 1024 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 1040 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 1056 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 1072 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 1088 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 1104 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1120 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1136 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Key { type: 7 @@ -386,23 +386,23 @@ VisualTest { } Frame { msec: 1152 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1168 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1184 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1200 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 1216 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Key { type: 6 @@ -414,19 +414,19 @@ VisualTest { } Frame { msec: 1232 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1248 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1264 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1280 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Key { type: 7 @@ -438,19 +438,19 @@ VisualTest { } Frame { msec: 1296 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1312 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1328 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 1344 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Key { type: 6 @@ -462,19 +462,19 @@ VisualTest { } Frame { msec: 1360 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1376 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1392 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1408 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Key { type: 7 @@ -486,23 +486,23 @@ VisualTest { } Frame { msec: 1424 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1440 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1456 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1472 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1488 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Key { type: 6 @@ -514,15 +514,15 @@ VisualTest { } Frame { msec: 1504 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1520 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1536 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Key { type: 7 @@ -534,79 +534,79 @@ VisualTest { } Frame { msec: 1552 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1568 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1584 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1600 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1616 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1632 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1648 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1664 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1680 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1696 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1712 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1728 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1744 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1760 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1776 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1792 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1808 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1824 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Frame { msec: 1840 - hash: "6a76601730228708049c79b414b3cbe2" + hash: "79ad12250ec5379ed79ad01604968fe0" } Key { type: 6 @@ -618,39 +618,39 @@ VisualTest { } Frame { msec: 1856 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1872 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1888 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1904 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1920 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1936 - hash: "2dc196a65cb13214901e0189c2b1984b" + image: "qt-669.2.png" } Frame { msec: 1952 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1968 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 1984 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Key { type: 7 @@ -662,23 +662,23 @@ VisualTest { } Frame { msec: 2000 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 2016 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 2032 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 2048 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Frame { msec: 2064 - hash: "2dc196a65cb13214901e0189c2b1984b" + hash: "0a110e257ae412b8440a17be98a6b7f5" } Key { type: 6 @@ -690,23 +690,23 @@ VisualTest { } Frame { msec: 2080 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2096 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2112 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2128 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2144 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Key { type: 7 @@ -718,23 +718,23 @@ VisualTest { } Frame { msec: 2160 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2176 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2192 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2208 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Frame { msec: 2224 - hash: "2da2b87d285f27ee4cdd82c2c03cdf08" + hash: "162c39ecb50d0a2a03953cca07c493ff" } Key { type: 6 @@ -746,11 +746,11 @@ VisualTest { } Frame { msec: 2240 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 2256 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Key { type: 7 @@ -762,23 +762,23 @@ VisualTest { } Frame { msec: 2272 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 2288 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 2304 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 2320 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Frame { msec: 2336 - hash: "5e8b89638494bceaed69ce3d75245458" + hash: "0386e92fe3ea2eda40b6f785419cf9f7" } Key { type: 6 @@ -790,15 +790,15 @@ VisualTest { } Frame { msec: 2352 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2368 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2384 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Key { type: 7 @@ -810,55 +810,55 @@ VisualTest { } Frame { msec: 2400 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2416 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2432 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2448 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2464 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2480 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2496 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2512 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2528 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2544 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2560 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2576 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Frame { msec: 2592 - hash: "0c7162e2bf228c76c7b9247e7ee1cf63" + hash: "671d2393c31db71d33cd29482294b855" } Key { type: 6 @@ -870,23 +870,23 @@ VisualTest { } Frame { msec: 2608 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2624 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2640 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2656 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2672 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Key { type: 7 @@ -898,23 +898,23 @@ VisualTest { } Frame { msec: 2688 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2704 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2720 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2736 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Frame { msec: 2752 - hash: "ad3b0560a1e896c39acff9a7cf53b043" + hash: "59923f379655d063d27641c88064c071" } Key { type: 6 @@ -926,15 +926,15 @@ VisualTest { } Frame { msec: 2768 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 2784 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 2800 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Key { type: 7 @@ -946,19 +946,19 @@ VisualTest { } Frame { msec: 2816 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 2832 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 2848 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Frame { msec: 2864 - hash: "40504095d8877e37cd24ac694ca94758" + hash: "5815bbb03307e196fa567ae273366394" } Key { type: 6 @@ -970,19 +970,19 @@ VisualTest { } Frame { msec: 2880 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 2896 - hash: "b6f3847d394c87873e34814e332e205a" + image: "qt-669.3.png" } Frame { msec: 2912 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 2928 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Key { type: 7 @@ -994,23 +994,23 @@ VisualTest { } Frame { msec: 2944 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 2960 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 2976 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 2992 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Frame { msec: 3008 - hash: "b6f3847d394c87873e34814e332e205a" + hash: "7f418dcd1c4ef954cbb66e16361b8871" } Key { type: 6 @@ -1022,23 +1022,23 @@ VisualTest { } Frame { msec: 3024 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3040 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3056 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3072 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3088 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Key { type: 7 @@ -1050,155 +1050,155 @@ VisualTest { } Frame { msec: 3104 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3120 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3136 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3152 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3168 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3184 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3200 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3216 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3232 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3248 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3264 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3280 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3296 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3312 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3328 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3344 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3360 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3376 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3392 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3408 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3424 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3440 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3456 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3472 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3488 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3504 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3520 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3536 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3552 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3568 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3584 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3600 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3616 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3632 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3648 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3664 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3680 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Frame { msec: 3696 - hash: "3f5f573f37883dc025e21a1fd99eef63" + hash: "ff9e0c6cfbbbd68708698875037ac3d3" } Key { type: 6 @@ -1210,27 +1210,27 @@ VisualTest { } Frame { msec: 3712 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3728 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3744 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3760 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3776 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3792 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Key { type: 7 @@ -1242,130 +1242,130 @@ VisualTest { } Frame { msec: 3808 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3824 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3840 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3856 - hash: "8d8671fb6c3413f38308a0dd15026eae" + image: "qt-669.4.png" } Frame { msec: 3872 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3888 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3904 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3920 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3936 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3952 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3968 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 3984 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4000 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4016 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4032 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4048 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4064 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4080 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4096 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4112 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4128 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4144 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4160 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4176 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4192 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4208 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4224 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4240 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4256 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4272 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4288 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } Frame { msec: 4304 - hash: "8d8671fb6c3413f38308a0dd15026eae" + hash: "5efa0360e73361a50a5fb4e2b7a650b5" } } 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 0d989de..a1c3c39 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.1.png index 1db3c26..bfc91f5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.1.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 9c72d52..56f6ece 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 9c72d52..56f6ece 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.12.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png new file mode 100644 index 0000000..56f6ece Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.2.png index fbef805..f1829fa 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.3.png index dc56c7e..b7f41db 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.4.png index 04ea496..9e58c3a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.5.png index 98bf7de..8dbcc41 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.6.png index d95b895..302974b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png index 9954344..f8bc3b4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.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 d49c2ff..b435da6 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 9c72d52..e156cd5 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 91489b9..56ae969 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml @@ -10,79 +10,79 @@ VisualTest { } Frame { msec: 32 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 48 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 64 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 80 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 96 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 112 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 128 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 144 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 160 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 176 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 192 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 208 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 224 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 240 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 256 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 272 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 288 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 304 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 320 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Mouse { type: 2 @@ -94,23 +94,23 @@ VisualTest { } Frame { msec: 336 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 352 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 368 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 384 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 400 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Mouse { type: 3 @@ -122,63 +122,63 @@ VisualTest { } Frame { msec: 416 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 432 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 448 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 464 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 480 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 496 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 512 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 528 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 544 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 560 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 576 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 592 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 608 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 624 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Frame { msec: 640 - hash: "a4edfba57a47b45f96fe1fa7a37c1720" + hash: "b59ca5ccc1bd1d1192cc109d66a31d0b" } Mouse { type: 2 @@ -190,11 +190,11 @@ VisualTest { } Frame { msec: 656 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 672 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Mouse { type: 3 @@ -206,159 +206,159 @@ VisualTest { } Frame { msec: 688 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 704 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 720 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 736 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 752 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 768 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 784 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 800 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 816 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 832 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 848 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 864 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 880 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 896 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 912 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 928 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 944 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 960 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 976 - hash: "bf9ad629e190df34f8bbb242e986083f" + image: "usingMultilineEdit.1.png" } Frame { msec: 992 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1008 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1024 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1040 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1056 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1072 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1088 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1104 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1120 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1136 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1152 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1168 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1184 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1200 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1216 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1232 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1248 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1264 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1280 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Frame { msec: 1296 - hash: "bf9ad629e190df34f8bbb242e986083f" + hash: "2414ab7436ed58a29eaf3ef15b5ced79" } Key { type: 6 @@ -370,23 +370,23 @@ VisualTest { } Frame { msec: 1312 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Frame { msec: 1328 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Frame { msec: 1344 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Frame { msec: 1360 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Frame { msec: 1376 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Key { type: 7 @@ -398,7 +398,7 @@ VisualTest { } Frame { msec: 1392 - hash: "bf65dbbfc02ad1589093d965c83d5806" + hash: "91757521cdb0617645a2a6cb831f51f3" } Key { type: 6 @@ -410,19 +410,19 @@ VisualTest { } Frame { msec: 1408 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1424 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1440 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1456 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Key { type: 7 @@ -434,27 +434,27 @@ VisualTest { } Frame { msec: 1472 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1488 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1504 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1520 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1536 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Frame { msec: 1552 - hash: "ef0640a754b76b5e28bff78376f1aaf3" + hash: "a7e2d2f2668dcb902d3ab0e413d9b639" } Key { type: 6 @@ -466,15 +466,15 @@ VisualTest { } Frame { msec: 1568 - hash: "b392b8d675e61166e9707f4a7f191c15" + hash: "1602f7c814daec9612795d1e109b8f14" } Frame { msec: 1584 - hash: "b392b8d675e61166e9707f4a7f191c15" + hash: "1602f7c814daec9612795d1e109b8f14" } Frame { msec: 1600 - hash: "b392b8d675e61166e9707f4a7f191c15" + hash: "1602f7c814daec9612795d1e109b8f14" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1616 - hash: "b392b8d675e61166e9707f4a7f191c15" + hash: "1602f7c814daec9612795d1e109b8f14" } Key { type: 6 @@ -498,23 +498,23 @@ VisualTest { } Frame { msec: 1632 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Frame { msec: 1648 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Frame { msec: 1664 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Frame { msec: 1680 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Frame { msec: 1696 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Key { type: 7 @@ -526,11 +526,11 @@ VisualTest { } Frame { msec: 1712 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Frame { msec: 1728 - hash: "f7a9826581a72f37b1211f1006d93ae5" + hash: "84e1e7c90b2134d037146d8a7cd4c413" } Key { type: 6 @@ -542,15 +542,15 @@ VisualTest { } Frame { msec: 1744 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Frame { msec: 1760 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Frame { msec: 1776 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Key { type: 7 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1792 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Frame { msec: 1808 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Frame { msec: 1824 - hash: "cea68eaed3000fe598917688b49525b7" + hash: "87109c5f296e5b56aaecc09a2decae4d" } Key { type: 6 @@ -582,23 +582,23 @@ VisualTest { } Frame { msec: 1840 - hash: "968932500933300e0a0ca711067d6659" + hash: "29f766ca17ac45522ca2079cce9a1015" } Frame { msec: 1856 - hash: "968932500933300e0a0ca711067d6659" + hash: "29f766ca17ac45522ca2079cce9a1015" } Frame { msec: 1872 - hash: "968932500933300e0a0ca711067d6659" + hash: "29f766ca17ac45522ca2079cce9a1015" } Frame { msec: 1888 - hash: "968932500933300e0a0ca711067d6659" + hash: "29f766ca17ac45522ca2079cce9a1015" } Frame { msec: 1904 - hash: "968932500933300e0a0ca711067d6659" + hash: "29f766ca17ac45522ca2079cce9a1015" } Key { type: 7 @@ -618,19 +618,19 @@ VisualTest { } Frame { msec: 1920 - hash: "1d5b3f8dc6e0701c0c11a330e055ba5d" + hash: "be6de699f29278ee3a39c3d8ed90f808" } Frame { msec: 1936 - hash: "1d5b3f8dc6e0701c0c11a330e055ba5d" + image: "usingMultilineEdit.2.png" } Frame { msec: 1952 - hash: "1d5b3f8dc6e0701c0c11a330e055ba5d" + hash: "be6de699f29278ee3a39c3d8ed90f808" } Frame { msec: 1968 - hash: "1d5b3f8dc6e0701c0c11a330e055ba5d" + hash: "be6de699f29278ee3a39c3d8ed90f808" } Key { type: 6 @@ -642,11 +642,11 @@ VisualTest { } Frame { msec: 1984 - hash: "067182091936c99dfa5c29b226bd4351" + hash: "ef413406c3e7aa03ced4e06661dfafcc" } Frame { msec: 2000 - hash: "067182091936c99dfa5c29b226bd4351" + hash: "ef413406c3e7aa03ced4e06661dfafcc" } Key { type: 7 @@ -658,7 +658,7 @@ VisualTest { } Frame { msec: 2016 - hash: "067182091936c99dfa5c29b226bd4351" + hash: "ef413406c3e7aa03ced4e06661dfafcc" } Key { type: 6 @@ -670,11 +670,11 @@ VisualTest { } Frame { msec: 2032 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Frame { msec: 2048 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Key { type: 7 @@ -686,19 +686,19 @@ VisualTest { } Frame { msec: 2064 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Frame { msec: 2080 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Frame { msec: 2096 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Frame { msec: 2112 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2128 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Frame { msec: 2144 - hash: "810e996b65424f80e229160860805492" + hash: "d29b729a45533ef77af530ab2f125bd1" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Frame { msec: 2176 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Frame { msec: 2192 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Frame { msec: 2208 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Frame { msec: 2224 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Frame { msec: 2240 - hash: "10aca130f139e44c0889d8d9c9bb8673" + hash: "3b2069cbaa6640664dbe1b80f3cf0670" } Key { type: 7 @@ -766,23 +766,23 @@ VisualTest { } Frame { msec: 2256 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Frame { msec: 2272 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Frame { msec: 2288 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Frame { msec: 2304 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Frame { msec: 2320 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Key { type: 7 @@ -794,11 +794,11 @@ VisualTest { } Frame { msec: 2336 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Frame { msec: 2352 - hash: "6785570c7f2cc9f3c6b0b07b8a94ecb2" + hash: "6ef4fd1a5d53c16670163384ef4c8f06" } Key { type: 6 @@ -810,19 +810,19 @@ VisualTest { } Frame { msec: 2368 - hash: "701c2738b7c064cd487bd0c6c0beb6b4" + hash: "c656f82ce3471c70d5f8050c5bd904e6" } Frame { msec: 2384 - hash: "701c2738b7c064cd487bd0c6c0beb6b4" + hash: "c656f82ce3471c70d5f8050c5bd904e6" } Frame { msec: 2400 - hash: "701c2738b7c064cd487bd0c6c0beb6b4" + hash: "c656f82ce3471c70d5f8050c5bd904e6" } Frame { msec: 2416 - hash: "701c2738b7c064cd487bd0c6c0beb6b4" + hash: "c656f82ce3471c70d5f8050c5bd904e6" } Key { type: 7 @@ -834,7 +834,7 @@ VisualTest { } Frame { msec: 2432 - hash: "701c2738b7c064cd487bd0c6c0beb6b4" + hash: "c656f82ce3471c70d5f8050c5bd904e6" } Key { type: 6 @@ -846,27 +846,27 @@ VisualTest { } Frame { msec: 2448 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Frame { msec: 2464 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Frame { msec: 2480 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Frame { msec: 2496 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Frame { msec: 2512 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Frame { msec: 2528 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Key { type: 7 @@ -878,7 +878,7 @@ VisualTest { } Frame { msec: 2544 - hash: "35c0c51dd874faa28058251164836dcb" + hash: "991d345c4a62087543afa032e8d4bd2f" } Key { type: 6 @@ -890,19 +890,19 @@ VisualTest { } Frame { msec: 2560 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2576 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2592 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2608 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Key { type: 7 @@ -914,23 +914,23 @@ VisualTest { } Frame { msec: 2624 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2640 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2656 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2672 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Frame { msec: 2688 - hash: "12748fe9d3b72aff29449deeb2372d03" + hash: "9b55130d7cb0922aaeed3a5aad103f98" } Key { type: 6 @@ -942,27 +942,27 @@ VisualTest { } Frame { msec: 2704 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Frame { msec: 2720 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Frame { msec: 2736 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Frame { msec: 2752 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Frame { msec: 2768 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Frame { msec: 2784 - hash: "0d119074fb7e882ebe4dfbad9bfb401a" + hash: "9b323c8f49dc890af8849a0de8a7db4d" } Key { type: 6 @@ -974,7 +974,7 @@ VisualTest { } Frame { msec: 2800 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Key { type: 7 @@ -986,19 +986,19 @@ VisualTest { } Frame { msec: 2816 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Frame { msec: 2832 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Frame { msec: 2848 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Frame { msec: 2864 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Key { type: 7 @@ -1010,19 +1010,19 @@ VisualTest { } Frame { msec: 2880 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Frame { msec: 2896 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + image: "usingMultilineEdit.3.png" } Frame { msec: 2912 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Frame { msec: 2928 - hash: "3646bd6ea35fb8f0160a24a203b0f469" + hash: "c3c761352c46bd89c400c6638180fa9a" } Key { type: 6 @@ -1034,15 +1034,15 @@ VisualTest { } Frame { msec: 2944 - hash: "d90cbfbec0e5a73781664eec63ba7081" + hash: "93af025fc4cf949167efac7ed3bc5258" } Frame { msec: 2960 - hash: "d90cbfbec0e5a73781664eec63ba7081" + hash: "93af025fc4cf949167efac7ed3bc5258" } Frame { msec: 2976 - hash: "d90cbfbec0e5a73781664eec63ba7081" + hash: "93af025fc4cf949167efac7ed3bc5258" } Key { type: 7 @@ -1062,19 +1062,19 @@ VisualTest { } Frame { msec: 2992 - hash: "8faa6d1174cf3e8ef10f6575276ed125" + hash: "41fe34c5246a438886e85fdc30513a08" } Frame { msec: 3008 - hash: "8faa6d1174cf3e8ef10f6575276ed125" + hash: "41fe34c5246a438886e85fdc30513a08" } Frame { msec: 3024 - hash: "8faa6d1174cf3e8ef10f6575276ed125" + hash: "41fe34c5246a438886e85fdc30513a08" } Frame { msec: 3040 - hash: "8faa6d1174cf3e8ef10f6575276ed125" + hash: "41fe34c5246a438886e85fdc30513a08" } Key { type: 7 @@ -1086,7 +1086,7 @@ VisualTest { } Frame { msec: 3056 - hash: "8faa6d1174cf3e8ef10f6575276ed125" + hash: "41fe34c5246a438886e85fdc30513a08" } Key { type: 6 @@ -1098,15 +1098,15 @@ VisualTest { } Frame { msec: 3072 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Frame { msec: 3088 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Frame { msec: 3104 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Key { type: 6 @@ -1118,7 +1118,7 @@ VisualTest { } Frame { msec: 3120 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Key { type: 7 @@ -1130,11 +1130,11 @@ VisualTest { } Frame { msec: 3136 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Frame { msec: 3152 - hash: "bac072bfe350abe83fbc941e56845939" + hash: "db7bd05984a1ca713382f109780b8e5d" } Key { type: 6 @@ -1146,19 +1146,19 @@ VisualTest { } Frame { msec: 3168 - hash: "386a85651164d0edbeb5cc2b7ee438c7" + hash: "85bed6c44d017fb45591ee821a6e8c82" } Frame { msec: 3184 - hash: "386a85651164d0edbeb5cc2b7ee438c7" + hash: "85bed6c44d017fb45591ee821a6e8c82" } Frame { msec: 3200 - hash: "386a85651164d0edbeb5cc2b7ee438c7" + hash: "85bed6c44d017fb45591ee821a6e8c82" } Frame { msec: 3216 - hash: "386a85651164d0edbeb5cc2b7ee438c7" + hash: "85bed6c44d017fb45591ee821a6e8c82" } Key { type: 7 @@ -1170,7 +1170,7 @@ VisualTest { } Frame { msec: 3232 - hash: "386a85651164d0edbeb5cc2b7ee438c7" + hash: "85bed6c44d017fb45591ee821a6e8c82" } Key { type: 7 @@ -1190,19 +1190,19 @@ VisualTest { } Frame { msec: 3248 - hash: "982d48e7ef886a74791306f055ddc714" + hash: "70e09c15e0db15327b278c20508cd77e" } Frame { msec: 3264 - hash: "982d48e7ef886a74791306f055ddc714" + hash: "70e09c15e0db15327b278c20508cd77e" } Frame { msec: 3280 - hash: "982d48e7ef886a74791306f055ddc714" + hash: "70e09c15e0db15327b278c20508cd77e" } Frame { msec: 3296 - hash: "982d48e7ef886a74791306f055ddc714" + hash: "70e09c15e0db15327b278c20508cd77e" } Key { type: 7 @@ -1214,7 +1214,7 @@ VisualTest { } Frame { msec: 3312 - hash: "982d48e7ef886a74791306f055ddc714" + hash: "70e09c15e0db15327b278c20508cd77e" } Key { type: 6 @@ -1226,23 +1226,23 @@ VisualTest { } Frame { msec: 3328 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Frame { msec: 3344 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Frame { msec: 3360 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Frame { msec: 3376 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Frame { msec: 3392 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Key { type: 7 @@ -1254,7 +1254,7 @@ VisualTest { } Frame { msec: 3408 - hash: "38003a58f17d25d302c5e1b643b271b0" + hash: "7bdf47aad57a3e53683819927a9ba6f7" } Key { type: 6 @@ -1266,23 +1266,23 @@ VisualTest { } Frame { msec: 3424 - hash: "18d37190d139a1567d91882fdac411d6" + hash: "cd302294ea4a6015f4093e3ce0640a15" } Frame { msec: 3440 - hash: "18d37190d139a1567d91882fdac411d6" + hash: "cd302294ea4a6015f4093e3ce0640a15" } Frame { msec: 3456 - hash: "18d37190d139a1567d91882fdac411d6" + hash: "cd302294ea4a6015f4093e3ce0640a15" } Frame { msec: 3472 - hash: "18d37190d139a1567d91882fdac411d6" + hash: "cd302294ea4a6015f4093e3ce0640a15" } Frame { msec: 3488 - hash: "18d37190d139a1567d91882fdac411d6" + hash: "cd302294ea4a6015f4093e3ce0640a15" } Key { type: 7 @@ -1302,27 +1302,27 @@ VisualTest { } Frame { msec: 3504 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Frame { msec: 3520 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Frame { msec: 3536 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Frame { msec: 3552 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Frame { msec: 3568 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Frame { msec: 3584 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Key { type: 7 @@ -1334,7 +1334,7 @@ VisualTest { } Frame { msec: 3600 - hash: "279aa32aaeebea7f8078e8a750d0514b" + hash: "6679b8bffbcf389e1a56e9e494c9041c" } Key { type: 6 @@ -1346,19 +1346,19 @@ VisualTest { } Frame { msec: 3616 - hash: "626123df4dc8fc1321d0262871ffbe3e" + hash: "6cf8306437867645e5459cd4c9733ef7" } Frame { msec: 3632 - hash: "626123df4dc8fc1321d0262871ffbe3e" + hash: "6cf8306437867645e5459cd4c9733ef7" } Frame { msec: 3648 - hash: "626123df4dc8fc1321d0262871ffbe3e" + hash: "6cf8306437867645e5459cd4c9733ef7" } Frame { msec: 3664 - hash: "626123df4dc8fc1321d0262871ffbe3e" + hash: "6cf8306437867645e5459cd4c9733ef7" } Key { type: 6 @@ -1370,7 +1370,7 @@ VisualTest { } Frame { msec: 3680 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Key { type: 7 @@ -1382,15 +1382,15 @@ VisualTest { } Frame { msec: 3696 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3712 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3728 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Key { type: 7 @@ -1402,63 +1402,63 @@ VisualTest { } Frame { msec: 3744 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3760 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3776 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3792 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3808 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3824 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3840 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3856 - hash: "00972f42fed66eb94832506b436b203d" + image: "usingMultilineEdit.4.png" } Frame { msec: 3872 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3888 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3904 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3920 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3936 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3952 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Frame { msec: 3968 - hash: "00972f42fed66eb94832506b436b203d" + hash: "31c0880fb6b8995881f0983685c51c81" } Key { type: 6 @@ -1470,23 +1470,23 @@ VisualTest { } Frame { msec: 3984 - hash: "72d952ff90862b93ccec046f61d85360" + hash: "34c2a53d8852e17ab2b7990eb6156343" } Frame { msec: 4000 - hash: "72d952ff90862b93ccec046f61d85360" + hash: "34c2a53d8852e17ab2b7990eb6156343" } Frame { msec: 4016 - hash: "72d952ff90862b93ccec046f61d85360" + hash: "34c2a53d8852e17ab2b7990eb6156343" } Frame { msec: 4032 - hash: "72d952ff90862b93ccec046f61d85360" + hash: "34c2a53d8852e17ab2b7990eb6156343" } Frame { msec: 4048 - hash: "72d952ff90862b93ccec046f61d85360" + hash: "34c2a53d8852e17ab2b7990eb6156343" } Key { type: 6 @@ -1498,7 +1498,7 @@ VisualTest { } Frame { msec: 4064 - hash: "abd2bd3a1fdf5dbdd5bfdcc84bad136c" + hash: "75a0e73d34f90ca26b4c7e94a7a6ecd2" } Key { type: 7 @@ -1510,19 +1510,19 @@ VisualTest { } Frame { msec: 4080 - hash: "abd2bd3a1fdf5dbdd5bfdcc84bad136c" + hash: "75a0e73d34f90ca26b4c7e94a7a6ecd2" } Frame { msec: 4096 - hash: "abd2bd3a1fdf5dbdd5bfdcc84bad136c" + hash: "75a0e73d34f90ca26b4c7e94a7a6ecd2" } Frame { msec: 4112 - hash: "abd2bd3a1fdf5dbdd5bfdcc84bad136c" + hash: "75a0e73d34f90ca26b4c7e94a7a6ecd2" } Frame { msec: 4128 - hash: "abd2bd3a1fdf5dbdd5bfdcc84bad136c" + hash: "75a0e73d34f90ca26b4c7e94a7a6ecd2" } Key { type: 6 @@ -1534,11 +1534,11 @@ VisualTest { } Frame { msec: 4144 - hash: "f091e9b3d660c3664960f3fe6f624a1d" + hash: "296a65279cec34eb93083f3938bf9b16" } Frame { msec: 4160 - hash: "f091e9b3d660c3664960f3fe6f624a1d" + hash: "296a65279cec34eb93083f3938bf9b16" } Key { type: 7 @@ -1550,15 +1550,15 @@ VisualTest { } Frame { msec: 4176 - hash: "f091e9b3d660c3664960f3fe6f624a1d" + hash: "296a65279cec34eb93083f3938bf9b16" } Frame { msec: 4192 - hash: "f091e9b3d660c3664960f3fe6f624a1d" + hash: "296a65279cec34eb93083f3938bf9b16" } Frame { msec: 4208 - hash: "f091e9b3d660c3664960f3fe6f624a1d" + hash: "296a65279cec34eb93083f3938bf9b16" } Key { type: 6 @@ -1570,11 +1570,11 @@ VisualTest { } Frame { msec: 4224 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4240 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Key { type: 7 @@ -1586,11 +1586,11 @@ VisualTest { } Frame { msec: 4256 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4272 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Key { type: 7 @@ -1602,27 +1602,27 @@ VisualTest { } Frame { msec: 4288 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4304 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4320 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4336 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4352 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Frame { msec: 4368 - hash: "bc9ae8ea7f8a7f1089263a20b4a5e826" + hash: "902a4133742f9a99195a059f7f6b91df" } Key { type: 6 @@ -1634,23 +1634,23 @@ VisualTest { } Frame { msec: 4384 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Frame { msec: 4400 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Frame { msec: 4416 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Frame { msec: 4432 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Frame { msec: 4448 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Key { type: 7 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4464 - hash: "f96b7c209a5e558543157cf5aa4ce69e" + hash: "7e92966a300a81511c5fcb9e447b9029" } Key { type: 6 @@ -1674,23 +1674,23 @@ VisualTest { } Frame { msec: 4480 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4496 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4512 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4528 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4544 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Key { type: 7 @@ -1702,15 +1702,15 @@ VisualTest { } Frame { msec: 4560 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4576 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4592 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Key { type: 6 @@ -1722,63 +1722,63 @@ VisualTest { } Frame { msec: 4608 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4624 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4640 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4656 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4672 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4688 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4704 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4720 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4736 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4752 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4768 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4784 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4800 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Frame { msec: 4816 - hash: "67facce41bc51af385bd8102a7e1285e" + image: "usingMultilineEdit.5.png" } Frame { msec: 4832 - hash: "67facce41bc51af385bd8102a7e1285e" + hash: "d22869235a5e4689db64d97f0b5af6c0" } Key { type: 6 @@ -1790,31 +1790,31 @@ VisualTest { } Frame { msec: 4848 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4864 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4880 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4896 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4912 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4928 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4944 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Key { type: 7 @@ -1826,19 +1826,19 @@ VisualTest { } Frame { msec: 4960 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4976 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 4992 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5008 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Key { type: 7 @@ -1850,191 +1850,191 @@ VisualTest { } Frame { msec: 5024 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5040 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5056 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5072 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5088 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5104 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5120 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5136 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5152 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5168 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5184 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5200 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5216 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5232 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5248 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5264 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5280 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5296 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5312 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5328 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5344 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5360 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5376 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5392 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5408 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5424 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5440 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5456 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5472 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5488 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5504 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5520 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5536 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5552 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5568 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5584 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5600 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5616 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5632 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5648 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5664 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5680 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5696 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5712 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5728 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5744 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Frame { msec: 5760 - hash: "a616e994d83964ff75d95b702f355937" + hash: "8153431eabfb3a6916aa37319d9fd379" } Mouse { type: 2 @@ -2046,19 +2046,19 @@ VisualTest { } Frame { msec: 5776 - hash: "e9532a9023548cf5dfca3fdaeb3467e7" + image: "usingMultilineEdit.6.png" } Frame { msec: 5792 - hash: "e9532a9023548cf5dfca3fdaeb3467e7" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 5808 - hash: "e9532a9023548cf5dfca3fdaeb3467e7" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 5824 - hash: "e9532a9023548cf5dfca3fdaeb3467e7" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 5 @@ -2078,7 +2078,7 @@ VisualTest { } Frame { msec: 5840 - hash: "e9532a9023548cf5dfca3fdaeb3467e7" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 5 @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 5856 - hash: "3ee2836c3a2ff4c71d82dd261941883b" + hash: "6e3ef70a6a20c61d681c0510da3dba63" } Mouse { type: 5 @@ -2118,7 +2118,7 @@ VisualTest { } Frame { msec: 5872 - hash: "3ee2836c3a2ff4c71d82dd261941883b" + hash: "6e3ef70a6a20c61d681c0510da3dba63" } Mouse { type: 5 @@ -2138,7 +2138,7 @@ VisualTest { } Frame { msec: 5888 - hash: "3ee2836c3a2ff4c71d82dd261941883b" + hash: "12199badcd73e1dead9e7fb8848175a7" } Mouse { type: 5 @@ -2158,7 +2158,7 @@ VisualTest { } Frame { msec: 5904 - hash: "4e620c1b847274f691e80a384eac5320" + hash: "9a10e37dad5bce8a6a3e9dfe3789ea71" } Mouse { type: 5 @@ -2178,7 +2178,7 @@ VisualTest { } Frame { msec: 5920 - hash: "1a246aa1be0878c38da2eaac6befb738" + hash: "9a10e37dad5bce8a6a3e9dfe3789ea71" } Mouse { type: 5 @@ -2198,7 +2198,7 @@ VisualTest { } Frame { msec: 5936 - hash: "7d6d4a33aacd1d2f530834af31069793" + hash: "a636fd97f33ef06215d71ce3c4b5e151" } Mouse { type: 5 @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 5952 - hash: "3d71f15694368397bc8f6a6a0c2c16de" + hash: "b0967a28cd241da39213d6c8478280f7" } Mouse { type: 5 @@ -2238,7 +2238,7 @@ VisualTest { } Frame { msec: 5968 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2250,7 +2250,7 @@ VisualTest { } Frame { msec: 5984 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2270,7 +2270,7 @@ VisualTest { } Frame { msec: 6000 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 6016 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2310,7 +2310,7 @@ VisualTest { } Frame { msec: 6032 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2330,7 +2330,7 @@ VisualTest { } Frame { msec: 6048 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2350,7 +2350,7 @@ VisualTest { } Frame { msec: 6064 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 6080 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2390,7 +2390,7 @@ VisualTest { } Frame { msec: 6096 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2410,7 +2410,7 @@ VisualTest { } Frame { msec: 6112 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2430,7 +2430,7 @@ VisualTest { } Frame { msec: 6128 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2450,7 +2450,7 @@ VisualTest { } Frame { msec: 6144 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2470,7 +2470,7 @@ VisualTest { } Frame { msec: 6160 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2490,7 +2490,7 @@ VisualTest { } Frame { msec: 6176 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2502,23 +2502,23 @@ VisualTest { } Frame { msec: 6192 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Frame { msec: 6208 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Frame { msec: 6224 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Frame { msec: 6240 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Frame { msec: 6256 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2530,7 +2530,7 @@ VisualTest { } Frame { msec: 6272 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2550,7 +2550,7 @@ VisualTest { } Frame { msec: 6288 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2570,7 +2570,7 @@ VisualTest { } Frame { msec: 6304 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2590,7 +2590,7 @@ VisualTest { } Frame { msec: 6320 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2610,7 +2610,7 @@ VisualTest { } Frame { msec: 6336 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 6352 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 6368 - hash: "a0f4a1f253c763054ca7d9727d517e5c" + hash: "684d7a67d57fdc766dca3092c65cf089" } Mouse { type: 5 @@ -2670,7 +2670,7 @@ VisualTest { } Frame { msec: 6384 - hash: "b6589493e0225846be0af57024e25d98" + hash: "81c12a084635c80c97f6b3cd3574a6e6" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 6400 - hash: "b6589493e0225846be0af57024e25d98" + hash: "81c12a084635c80c97f6b3cd3574a6e6" } Mouse { type: 5 @@ -2702,7 +2702,7 @@ VisualTest { } Frame { msec: 6416 - hash: "d8a1bee2a0e57944d8268a2ce7e6c3c1" + hash: "8374126491796963e3f5895dab7e9076" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6432 - hash: "b7eeca12627f0ca82a0e56179184b3b8" + hash: "d7f5f6f0654d055ff47bef6736bbcfc6" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6448 - hash: "abccf1571b12444328188003928a0aea" + hash: "85c94958294c8590e1cb9c74bf741bb2" } Mouse { type: 5 @@ -2754,7 +2754,7 @@ VisualTest { } Frame { msec: 6464 - hash: "9ad787bf41f0ab66beffff056a115c23" + hash: "586c98412d41f892eb07d8c41cb3c990" } Mouse { type: 5 @@ -2774,7 +2774,7 @@ VisualTest { } Frame { msec: 6480 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 5 @@ -2794,7 +2794,7 @@ VisualTest { } Frame { msec: 6496 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2814,7 +2814,7 @@ VisualTest { } Frame { msec: 6512 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2834,7 +2834,7 @@ VisualTest { } Frame { msec: 6528 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2854,7 +2854,7 @@ VisualTest { } Frame { msec: 6544 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2874,7 +2874,7 @@ VisualTest { } Frame { msec: 6560 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2894,7 +2894,7 @@ VisualTest { } Frame { msec: 6576 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2914,27 +2914,27 @@ VisualTest { } Frame { msec: 6592 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Frame { msec: 6608 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Frame { msec: 6624 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Frame { msec: 6640 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Frame { msec: 6656 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Frame { msec: 6672 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2954,7 +2954,7 @@ VisualTest { } Frame { msec: 6688 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2974,7 +2974,7 @@ VisualTest { } Frame { msec: 6704 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -2994,7 +2994,7 @@ VisualTest { } Frame { msec: 6720 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3014,7 +3014,7 @@ VisualTest { } Frame { msec: 6736 - hash: "bc4cd74678c08403bb16b74630d0fd18" + image: "usingMultilineEdit.7.png" } Mouse { type: 5 @@ -3034,7 +3034,7 @@ VisualTest { } Frame { msec: 6752 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3054,7 +3054,7 @@ VisualTest { } Frame { msec: 6768 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3074,7 +3074,7 @@ VisualTest { } Frame { msec: 6784 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3094,7 +3094,7 @@ VisualTest { } Frame { msec: 6800 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3114,7 +3114,7 @@ VisualTest { } Frame { msec: 6816 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3134,7 +3134,7 @@ VisualTest { } Frame { msec: 6832 - hash: "bc4cd74678c08403bb16b74630d0fd18" + hash: "120ac252477fd32ecb696e6796b0984b" } Mouse { type: 5 @@ -3154,7 +3154,7 @@ VisualTest { } Frame { msec: 6848 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 5 @@ -3174,7 +3174,7 @@ VisualTest { } Frame { msec: 6864 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 5 @@ -3194,7 +3194,7 @@ VisualTest { } Frame { msec: 6880 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 3 @@ -3206,55 +3206,55 @@ VisualTest { } Frame { msec: 6896 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6912 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6928 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6944 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6960 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6976 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 6992 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7008 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7024 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7040 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7056 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7072 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Frame { msec: 7088 - hash: "0e728de352bc8658bb3e2900a56bfad9" + hash: "0fba30df8b6cac2f911fbd2b7c48fca6" } Mouse { type: 2 @@ -3266,23 +3266,23 @@ VisualTest { } Frame { msec: 7104 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7120 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7136 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7152 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7168 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Mouse { type: 3 @@ -3294,103 +3294,103 @@ VisualTest { } Frame { msec: 7184 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7200 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7216 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7232 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7248 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7264 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7280 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7296 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7312 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7328 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7344 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7360 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7376 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7392 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7408 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7424 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7440 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7456 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7472 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7488 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7504 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7520 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7536 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7552 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Frame { msec: 7568 - hash: "c9b766ef3743159fdd7a01d3eeaa357b" + hash: "df53c57d83cf38d96893f379d8a0c1a7" } Key { type: 6 @@ -3402,15 +3402,15 @@ VisualTest { } Frame { msec: 7584 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7600 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7616 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Key { type: 7 @@ -3422,27 +3422,27 @@ VisualTest { } Frame { msec: 7632 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7648 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7664 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7680 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Frame { msec: 7696 - hash: "f8d7e167379a5109b1744727b3bb5050" + image: "usingMultilineEdit.8.png" } Frame { msec: 7712 - hash: "f8d7e167379a5109b1744727b3bb5050" + hash: "bdc721eb51436b121826d4163cbf596f" } Key { type: 6 @@ -3454,63 +3454,63 @@ VisualTest { } Frame { msec: 7728 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7744 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7760 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7776 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7792 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7808 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7824 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7840 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7856 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7872 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7888 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7904 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7920 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7936 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Frame { msec: 7952 - hash: "d1f43fa2f710725527736ac3439577df" + hash: "7d378c1c1e54d2d13b602f1cf1a56a2f" } Key { type: 7 @@ -3530,11 +3530,11 @@ VisualTest { } Frame { msec: 7968 - hash: "1553d42725394fa4d4c9b97dc12a78b9" + hash: "bc028efd0fc3d999269d047fe4d64e27" } Frame { msec: 7984 - hash: "1553d42725394fa4d4c9b97dc12a78b9" + hash: "bc028efd0fc3d999269d047fe4d64e27" } Key { type: 7 @@ -3554,11 +3554,11 @@ VisualTest { } Frame { msec: 8000 - hash: "236c237e3f4673d568a8cf2c3665cb49" + hash: "b18fe0d9cfed62d53e152e3f294dc8b3" } Frame { msec: 8016 - hash: "236c237e3f4673d568a8cf2c3665cb49" + hash: "b18fe0d9cfed62d53e152e3f294dc8b3" } Key { type: 7 @@ -3578,11 +3578,11 @@ VisualTest { } Frame { msec: 8032 - hash: "cea55dd0cd5b0c2e37808bd38c689ddf" + hash: "eca1a9d5eed543b913d1d2b19cef3286" } Frame { msec: 8048 - hash: "cea55dd0cd5b0c2e37808bd38c689ddf" + hash: "eca1a9d5eed543b913d1d2b19cef3286" } Key { type: 7 @@ -3602,11 +3602,11 @@ VisualTest { } Frame { msec: 8064 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8080 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Key { type: 6 @@ -3626,31 +3626,31 @@ VisualTest { } Frame { msec: 8096 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8112 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8128 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8144 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8160 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8176 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Frame { msec: 8192 - hash: "9bf8a1a8a79230f459fcec6d21843f3f" + hash: "01f1ac2c199086a701a784a3a47fdb71" } Key { type: 6 @@ -3662,19 +3662,19 @@ VisualTest { } Frame { msec: 8208 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8224 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8240 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8256 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Key { type: 7 @@ -3686,19 +3686,19 @@ VisualTest { } Frame { msec: 8272 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8288 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8304 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Frame { msec: 8320 - hash: "261d950728b1628d637e739a72c58e9f" + hash: "acfeaebe60368dd946a2fa80ab15df1d" } Key { type: 6 @@ -3710,19 +3710,19 @@ VisualTest { } Frame { msec: 8336 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8352 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8368 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8384 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Key { type: 7 @@ -3734,23 +3734,23 @@ VisualTest { } Frame { msec: 8400 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8416 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8432 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8448 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Frame { msec: 8464 - hash: "aad904179a9dbda49f411b9ae3efcb53" + hash: "c21a0997b7d428306b5caa09dd02e9d3" } Key { type: 6 @@ -3762,19 +3762,19 @@ VisualTest { } Frame { msec: 8480 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8496 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8512 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8528 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Key { type: 7 @@ -3786,35 +3786,35 @@ VisualTest { } Frame { msec: 8544 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8560 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8576 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8592 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8608 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8624 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8640 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8656 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + image: "usingMultilineEdit.9.png" } Key { type: 7 @@ -3826,139 +3826,139 @@ VisualTest { } Frame { msec: 8672 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8688 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8704 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8720 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8736 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8752 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8768 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8784 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8800 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8816 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8832 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8848 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8864 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8880 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8896 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8912 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8928 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8944 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8960 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8976 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 8992 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9008 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9024 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9040 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9056 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9072 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9088 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9104 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9120 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9136 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9152 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9168 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9184 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9200 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 2 @@ -3970,11 +3970,11 @@ VisualTest { } Frame { msec: 9216 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9232 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9248 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 5 @@ -4006,7 +4006,7 @@ VisualTest { } Frame { msec: 9264 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 5 @@ -4026,7 +4026,7 @@ VisualTest { } Frame { msec: 9280 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 3 @@ -4038,43 +4038,43 @@ VisualTest { } Frame { msec: 9296 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9312 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9328 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9344 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9360 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9376 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9392 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9408 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9424 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Frame { msec: 9440 - hash: "b5c199f82cea188d2aafa4fa09f444fc" + hash: "af707ae0e8110b2e6e3d1041aaa89319" } Mouse { type: 2 @@ -4086,27 +4086,27 @@ VisualTest { } Frame { msec: 9456 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9472 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9488 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9504 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9520 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9536 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Mouse { type: 3 @@ -4118,35 +4118,35 @@ VisualTest { } Frame { msec: 9552 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9568 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9584 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9600 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9616 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + image: "usingMultilineEdit.10.png" } Frame { msec: 9632 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9648 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9664 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Key { type: 6 @@ -4158,111 +4158,111 @@ VisualTest { } Frame { msec: 9680 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9696 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9712 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9728 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9744 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9760 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9776 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9792 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9808 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9824 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9840 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9856 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9872 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9888 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9904 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9920 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9936 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9952 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9968 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 9984 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10000 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10016 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10032 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10048 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10064 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10080 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10096 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Key { type: 6 @@ -4274,35 +4274,35 @@ VisualTest { } Frame { msec: 10112 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10128 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10144 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10160 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10176 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10192 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10208 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10224 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Key { type: 7 @@ -4314,35 +4314,35 @@ VisualTest { } Frame { msec: 10240 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10256 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10272 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10288 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10304 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10320 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10336 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Frame { msec: 10352 - hash: "ead21885244133a71e103eb9ae6b61e4" + hash: "d99a651d8ed51c36dbca0ca86abc808e" } Key { type: 6 @@ -4354,27 +4354,27 @@ VisualTest { } Frame { msec: 10368 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10384 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10400 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10416 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10432 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10448 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Key { type: 7 @@ -4386,51 +4386,51 @@ VisualTest { } Frame { msec: 10464 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10480 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10496 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10512 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10528 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10544 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10560 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10576 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + image: "usingMultilineEdit.11.png" } Frame { msec: 10592 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10608 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10624 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10640 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Key { type: 7 @@ -4442,246 +4442,246 @@ VisualTest { } Frame { msec: 10656 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10672 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10688 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10704 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10720 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10736 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10752 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10768 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10784 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10800 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10816 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10832 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10848 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10864 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10880 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10896 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10912 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10928 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10944 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10960 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10976 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 10992 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11008 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11024 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11040 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11056 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11072 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11088 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11104 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11120 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11136 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11152 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11168 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11184 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11200 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11216 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11232 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11248 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11264 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11280 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11296 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11312 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11328 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11344 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11360 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11376 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11392 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11408 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11424 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11440 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11456 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11472 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11488 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11504 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11520 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11536 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + image: "usingMultilineEdit.12.png" } Frame { msec: 11552 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11568 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11584 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11600 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } Frame { msec: 11616 - hash: "a6c8b66b0d3f1124a6a316209a1456ff" + hash: "e940f5582d8ad5487221743f15041021" } } 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 daa0479..da3b971 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 ec65f49..8ea0787 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 ec65f49..33328db 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 ec65f49..222ba53 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 ec65f49..970e73d 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 ec65f49..4dc64a1 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 ec65f49..99d451c 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.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png new file mode 100644 index 0000000..99d451c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.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 0bf29ab..13834f0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml @@ -18,7 +18,7 @@ VisualTest { } Frame { msec: 32 - hash: "81b7e0be317f0ca4425fa75ac5a73be9" + hash: "ca07773bf0df96be1f23d13c4d6e2bfd" } Key { type: 7 @@ -30,11 +30,11 @@ VisualTest { } Frame { msec: 48 - hash: "81b7e0be317f0ca4425fa75ac5a73be9" + hash: "ca07773bf0df96be1f23d13c4d6e2bfd" } Frame { msec: 64 - hash: "81b7e0be317f0ca4425fa75ac5a73be9" + hash: "ca07773bf0df96be1f23d13c4d6e2bfd" } Key { type: 7 @@ -46,11 +46,11 @@ VisualTest { } Frame { msec: 80 - hash: "81b7e0be317f0ca4425fa75ac5a73be9" + hash: "ca07773bf0df96be1f23d13c4d6e2bfd" } Frame { msec: 96 - hash: "81b7e0be317f0ca4425fa75ac5a73be9" + hash: "ca07773bf0df96be1f23d13c4d6e2bfd" } Key { type: 6 @@ -62,15 +62,15 @@ VisualTest { } Frame { msec: 112 - hash: "ad65e3fe3973343e9b6feb1c28ee40f4" + hash: "fc223de2e1f35db08d9689bc41f02304" } Frame { msec: 128 - hash: "ad65e3fe3973343e9b6feb1c28ee40f4" + hash: "fc223de2e1f35db08d9689bc41f02304" } Frame { msec: 144 - hash: "ad65e3fe3973343e9b6feb1c28ee40f4" + hash: "fc223de2e1f35db08d9689bc41f02304" } Key { type: 6 @@ -82,15 +82,15 @@ VisualTest { } Frame { msec: 160 - hash: "187c3d689a5b217d8e886464303840aa" + hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" } Frame { msec: 176 - hash: "187c3d689a5b217d8e886464303840aa" + hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" } Frame { msec: 192 - hash: "187c3d689a5b217d8e886464303840aa" + hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" } Key { type: 7 @@ -102,11 +102,11 @@ VisualTest { } Frame { msec: 208 - hash: "187c3d689a5b217d8e886464303840aa" + hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" } Frame { msec: 224 - hash: "187c3d689a5b217d8e886464303840aa" + hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" } Key { type: 6 @@ -118,7 +118,7 @@ VisualTest { } Frame { msec: 240 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Key { type: 7 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 256 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Frame { msec: 272 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Frame { msec: 288 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Frame { msec: 304 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Key { type: 7 @@ -154,11 +154,11 @@ VisualTest { } Frame { msec: 320 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Frame { msec: 336 - hash: "572954512211be45ec468ca0c541f87b" + hash: "c017468afd522089b5c9f42dd61be1b4" } Key { type: 6 @@ -170,19 +170,19 @@ VisualTest { } Frame { msec: 352 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 368 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 384 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 400 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Key { type: 7 @@ -194,19 +194,19 @@ VisualTest { } Frame { msec: 416 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 432 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 448 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Frame { msec: 464 - hash: "a3ea4d6ebf0b267a01e18d4d7139cace" + hash: "84b1f1bf26af0da07006bb102d22693f" } Key { type: 6 @@ -218,19 +218,19 @@ VisualTest { } Frame { msec: 480 - hash: "36fb24a55e2cda02c3001adaa67e82a7" + hash: "a16f5aa01bd07de4ef7f868b7b6116f7" } Frame { msec: 496 - hash: "36fb24a55e2cda02c3001adaa67e82a7" + hash: "a16f5aa01bd07de4ef7f868b7b6116f7" } Frame { msec: 512 - hash: "36fb24a55e2cda02c3001adaa67e82a7" + hash: "a16f5aa01bd07de4ef7f868b7b6116f7" } Frame { msec: 528 - hash: "36fb24a55e2cda02c3001adaa67e82a7" + hash: "a16f5aa01bd07de4ef7f868b7b6116f7" } Key { type: 6 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 544 - hash: "cc3eb1d7263556949e5f7ad3862d9959" + hash: "e25e16d0d7b223b243d466630b901f68" } Frame { msec: 560 - hash: "cc3eb1d7263556949e5f7ad3862d9959" + hash: "e25e16d0d7b223b243d466630b901f68" } Frame { msec: 576 - hash: "cc3eb1d7263556949e5f7ad3862d9959" + hash: "e25e16d0d7b223b243d466630b901f68" } Frame { msec: 592 - hash: "cc3eb1d7263556949e5f7ad3862d9959" + hash: "e25e16d0d7b223b243d466630b901f68" } Frame { msec: 608 - hash: "cc3eb1d7263556949e5f7ad3862d9959" + hash: "e25e16d0d7b223b243d466630b901f68" } Key { type: 7 @@ -286,19 +286,19 @@ VisualTest { } Frame { msec: 624 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Frame { msec: 640 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Frame { msec: 656 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Frame { msec: 672 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Key { type: 7 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 688 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Frame { msec: 704 - hash: "1ebd7df1875dc93984c9b663791c058e" + hash: "a53520edb9c117aa53abc42fce3505be" } Key { type: 6 @@ -326,23 +326,23 @@ VisualTest { } Frame { msec: 720 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Frame { msec: 736 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Frame { msec: 752 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Frame { msec: 768 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Frame { msec: 784 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Key { type: 7 @@ -354,7 +354,7 @@ VisualTest { } Frame { msec: 800 - hash: "35ad49d6517b35bd410db9770818918d" + hash: "a7ef30038b24e8bf946bdd38aaac6430" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 816 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Frame { msec: 832 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Frame { msec: 848 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Key { type: 7 @@ -386,15 +386,15 @@ VisualTest { } Frame { msec: 864 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Frame { msec: 880 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Frame { msec: 896 - hash: "af5ec042c8a5e5b1942cb3e14a646b3a" + hash: "026b29fc03bd22e15ff725d34dee91eb" } Key { type: 6 @@ -406,27 +406,27 @@ VisualTest { } Frame { msec: 912 - hash: "3e21db7face603e4a41010e10fdc35eb" + hash: "2b1cef34dff32e36e3c44f2ffb2be66e" } Frame { msec: 928 - hash: "3e21db7face603e4a41010e10fdc35eb" + hash: "2b1cef34dff32e36e3c44f2ffb2be66e" } Frame { msec: 944 - hash: "3e21db7face603e4a41010e10fdc35eb" + hash: "2b1cef34dff32e36e3c44f2ffb2be66e" } Frame { msec: 960 - hash: "3e21db7face603e4a41010e10fdc35eb" + hash: "2b1cef34dff32e36e3c44f2ffb2be66e" } Frame { msec: 976 - hash: "3e21db7face603e4a41010e10fdc35eb" + image: "wrap.1.png" } Frame { msec: 992 - hash: "3e21db7face603e4a41010e10fdc35eb" + hash: "2b1cef34dff32e36e3c44f2ffb2be66e" } Key { type: 6 @@ -446,23 +446,23 @@ VisualTest { } Frame { msec: 1008 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1024 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1040 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1056 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1072 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Key { type: 7 @@ -474,31 +474,31 @@ VisualTest { } Frame { msec: 1088 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1104 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1120 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1136 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1152 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1168 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Frame { msec: 1184 - hash: "f681181b9e889f2fe0ac5ccddaa8c39f" + hash: "f619bc4148876effc459127009d4cc3a" } Key { type: 6 @@ -510,23 +510,23 @@ VisualTest { } Frame { msec: 1200 - hash: "4058b4a448b3836e980e2167628d5d45" + hash: "c7fbee3129141e8493b7bc4f85fdc2d0" } Frame { msec: 1216 - hash: "4058b4a448b3836e980e2167628d5d45" + hash: "c7fbee3129141e8493b7bc4f85fdc2d0" } Frame { msec: 1232 - hash: "4058b4a448b3836e980e2167628d5d45" + hash: "c7fbee3129141e8493b7bc4f85fdc2d0" } Frame { msec: 1248 - hash: "4058b4a448b3836e980e2167628d5d45" + hash: "c7fbee3129141e8493b7bc4f85fdc2d0" } Frame { msec: 1264 - hash: "4058b4a448b3836e980e2167628d5d45" + hash: "c7fbee3129141e8493b7bc4f85fdc2d0" } Key { type: 7 @@ -546,11 +546,11 @@ VisualTest { } Frame { msec: 1280 - hash: "9546e50697fd316e17b990d3ab235b8c" + hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed" } Frame { msec: 1296 - hash: "9546e50697fd316e17b990d3ab235b8c" + hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed" } Key { type: 6 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1312 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1328 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1344 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Key { type: 7 @@ -582,11 +582,11 @@ VisualTest { } Frame { msec: 1360 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1376 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1392 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1408 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1424 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Frame { msec: 1440 - hash: "4f7a3795af41fc641483b6de3829a9b5" + hash: "147efa341e4dc39cdd555c2c81e5c603" } Key { type: 6 @@ -622,23 +622,23 @@ VisualTest { } Frame { msec: 1456 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Frame { msec: 1472 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Frame { msec: 1488 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Frame { msec: 1504 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Frame { msec: 1520 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Key { type: 7 @@ -650,11 +650,11 @@ VisualTest { } Frame { msec: 1536 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Frame { msec: 1552 - hash: "a086058fa845a399a222c2571ef25442" + hash: "d5b19a6d767a08f488cc8fc5c427a2dd" } Key { type: 6 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1568 - hash: "a4a912ce9cee7ba833e70df683668d8e" + hash: "bf6265ca859f700fb07f8b992255787d" } Frame { msec: 1584 - hash: "a4a912ce9cee7ba833e70df683668d8e" + hash: "bf6265ca859f700fb07f8b992255787d" } Frame { msec: 1600 - hash: "a4a912ce9cee7ba833e70df683668d8e" + hash: "bf6265ca859f700fb07f8b992255787d" } Frame { msec: 1616 - hash: "a4a912ce9cee7ba833e70df683668d8e" + hash: "bf6265ca859f700fb07f8b992255787d" } Frame { msec: 1632 - hash: "a4a912ce9cee7ba833e70df683668d8e" + hash: "bf6265ca859f700fb07f8b992255787d" } Key { type: 6 @@ -702,23 +702,23 @@ VisualTest { } Frame { msec: 1648 - hash: "a0ca0b36e56019968875c059bf95e133" + hash: "329e4cd26283eb08188d96b2b0325733" } Frame { msec: 1664 - hash: "a0ca0b36e56019968875c059bf95e133" + hash: "329e4cd26283eb08188d96b2b0325733" } Frame { msec: 1680 - hash: "a0ca0b36e56019968875c059bf95e133" + hash: "329e4cd26283eb08188d96b2b0325733" } Frame { msec: 1696 - hash: "a0ca0b36e56019968875c059bf95e133" + hash: "329e4cd26283eb08188d96b2b0325733" } Frame { msec: 1712 - hash: "a0ca0b36e56019968875c059bf95e133" + hash: "329e4cd26283eb08188d96b2b0325733" } Key { type: 6 @@ -730,15 +730,15 @@ VisualTest { } Frame { msec: 1728 - hash: "3c06f171b86ed55a425fdb316591a4f4" + hash: "7b5ac2afafbbaf1e13c70a11461820ad" } Frame { msec: 1744 - hash: "3c06f171b86ed55a425fdb316591a4f4" + hash: "7b5ac2afafbbaf1e13c70a11461820ad" } Frame { msec: 1760 - hash: "3c06f171b86ed55a425fdb316591a4f4" + hash: "7b5ac2afafbbaf1e13c70a11461820ad" } Key { type: 7 @@ -750,7 +750,7 @@ VisualTest { } Frame { msec: 1776 - hash: "3c06f171b86ed55a425fdb316591a4f4" + hash: "7b5ac2afafbbaf1e13c70a11461820ad" } Key { type: 6 @@ -762,11 +762,11 @@ VisualTest { } Frame { msec: 1792 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1808 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Key { type: 7 @@ -778,19 +778,19 @@ VisualTest { } Frame { msec: 1824 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1840 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1856 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1872 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Key { type: 7 @@ -802,23 +802,23 @@ VisualTest { } Frame { msec: 1888 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1904 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1920 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Frame { msec: 1936 - hash: "e5100e36d546b8af34bfc7a68317fa74" + image: "wrap.2.png" } Frame { msec: 1952 - hash: "e5100e36d546b8af34bfc7a68317fa74" + hash: "bcfa1aa48767f70541a70cb5f85792ba" } Key { type: 6 @@ -830,27 +830,27 @@ VisualTest { } Frame { msec: 1968 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Frame { msec: 1984 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Frame { msec: 2000 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Frame { msec: 2016 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Frame { msec: 2032 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Frame { msec: 2048 - hash: "2ddf4c1b9ec2d5540c456e10c2af775e" + hash: "e89f7cf38b3b596298d6c649a1207469" } Key { type: 6 @@ -862,7 +862,7 @@ VisualTest { } Frame { msec: 2064 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Key { type: 7 @@ -874,15 +874,15 @@ VisualTest { } Frame { msec: 2080 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2096 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2112 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Key { type: 7 @@ -894,27 +894,27 @@ VisualTest { } Frame { msec: 2128 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2144 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2160 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2176 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2192 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Frame { msec: 2208 - hash: "9e3a9ddf097022722e9e7ebb5e0bbeed" + hash: "18e71331b42a115f7f9d5c09e235b944" } Key { type: 6 @@ -926,23 +926,23 @@ VisualTest { } Frame { msec: 2224 - hash: "d715ce5ca080ba5045c16f88211ca2a7" + hash: "3630abd7cc6ab303d08f30dea7b1eec1" } Frame { msec: 2240 - hash: "d715ce5ca080ba5045c16f88211ca2a7" + hash: "3630abd7cc6ab303d08f30dea7b1eec1" } Frame { msec: 2256 - hash: "d715ce5ca080ba5045c16f88211ca2a7" + hash: "3630abd7cc6ab303d08f30dea7b1eec1" } Frame { msec: 2272 - hash: "d715ce5ca080ba5045c16f88211ca2a7" + hash: "3630abd7cc6ab303d08f30dea7b1eec1" } Frame { msec: 2288 - hash: "d715ce5ca080ba5045c16f88211ca2a7" + hash: "3630abd7cc6ab303d08f30dea7b1eec1" } Key { type: 6 @@ -954,7 +954,7 @@ VisualTest { } Frame { msec: 2304 - hash: "11f9035d665a6eed88ea9e3030b111c7" + hash: "83e7b8c680cda95ec0a669b8030a3efd" } Key { type: 7 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 2320 - hash: "11f9035d665a6eed88ea9e3030b111c7" + hash: "83e7b8c680cda95ec0a669b8030a3efd" } Frame { msec: 2336 - hash: "11f9035d665a6eed88ea9e3030b111c7" + hash: "83e7b8c680cda95ec0a669b8030a3efd" } Frame { msec: 2352 - hash: "11f9035d665a6eed88ea9e3030b111c7" + hash: "83e7b8c680cda95ec0a669b8030a3efd" } Key { type: 6 @@ -986,11 +986,11 @@ VisualTest { } Frame { msec: 2368 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Frame { msec: 2384 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Key { type: 7 @@ -1002,15 +1002,15 @@ VisualTest { } Frame { msec: 2400 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Frame { msec: 2416 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Frame { msec: 2432 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Key { type: 7 @@ -1022,15 +1022,15 @@ VisualTest { } Frame { msec: 2448 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Frame { msec: 2464 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Frame { msec: 2480 - hash: "8277b43c48def7e966bbb96309042fe6" + hash: "cc826833607ae754e633d21ca67a6b5a" } Key { type: 6 @@ -1042,19 +1042,19 @@ VisualTest { } Frame { msec: 2496 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2512 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2528 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2544 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 2560 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2576 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2592 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2608 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2624 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Frame { msec: 2640 - hash: "1475ec7421f2c16f7dbb13eeb35f21c8" + hash: "2b4c812fac4e84909cc8fc70d8966a27" } Key { type: 6 @@ -1098,19 +1098,19 @@ VisualTest { } Frame { msec: 2656 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Frame { msec: 2672 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Frame { msec: 2688 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Frame { msec: 2704 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Key { type: 7 @@ -1122,15 +1122,15 @@ VisualTest { } Frame { msec: 2720 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Frame { msec: 2736 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Frame { msec: 2752 - hash: "eff9abb425dbd30a0eb8ee940c2a0fdc" + hash: "c1aabf4b43cbae0d7654ba78fc870fdd" } Key { type: 6 @@ -1142,23 +1142,23 @@ VisualTest { } Frame { msec: 2768 - hash: "dbc4c1e9f452575a2b543f3cc9ed53eb" + hash: "a707dd726c777a661e4f12d27a75cf63" } Frame { msec: 2784 - hash: "dbc4c1e9f452575a2b543f3cc9ed53eb" + hash: "a707dd726c777a661e4f12d27a75cf63" } Frame { msec: 2800 - hash: "dbc4c1e9f452575a2b543f3cc9ed53eb" + hash: "a707dd726c777a661e4f12d27a75cf63" } Frame { msec: 2816 - hash: "dbc4c1e9f452575a2b543f3cc9ed53eb" + hash: "a707dd726c777a661e4f12d27a75cf63" } Frame { msec: 2832 - hash: "dbc4c1e9f452575a2b543f3cc9ed53eb" + hash: "a707dd726c777a661e4f12d27a75cf63" } Key { type: 6 @@ -1178,19 +1178,19 @@ VisualTest { } Frame { msec: 2848 - hash: "8ea955780d76128c025cf1a51c995075" + hash: "bdaa69c1074f9820901ce31ea24383ca" } Frame { msec: 2864 - hash: "8ea955780d76128c025cf1a51c995075" + hash: "bdaa69c1074f9820901ce31ea24383ca" } Frame { msec: 2880 - hash: "8ea955780d76128c025cf1a51c995075" + hash: "bdaa69c1074f9820901ce31ea24383ca" } Frame { msec: 2896 - hash: "8ea955780d76128c025cf1a51c995075" + image: "wrap.3.png" } Key { type: 6 @@ -1202,11 +1202,11 @@ VisualTest { } Frame { msec: 2912 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 2928 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Key { type: 7 @@ -1218,11 +1218,11 @@ VisualTest { } Frame { msec: 2944 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 2960 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Key { type: 7 @@ -1234,35 +1234,35 @@ VisualTest { } Frame { msec: 2976 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 2992 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3008 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3024 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3040 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3056 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3072 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Frame { msec: 3088 - hash: "ab08c67bc5c8f53bba66ad48f618d9c9" + hash: "f703f87031be4f9d7409fb145343c02b" } Key { type: 6 @@ -1274,23 +1274,23 @@ VisualTest { } Frame { msec: 3104 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3120 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3136 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3152 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3168 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Key { type: 7 @@ -1302,23 +1302,23 @@ VisualTest { } Frame { msec: 3184 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3200 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3216 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3232 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Frame { msec: 3248 - hash: "32ee9af5d9f714bbcc32206be600f309" + hash: "cb2660df955b757b00661a1acb5f22d2" } Key { type: 6 @@ -1330,15 +1330,15 @@ VisualTest { } Frame { msec: 3264 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Frame { msec: 3280 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Frame { msec: 3296 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Key { type: 7 @@ -1350,15 +1350,15 @@ VisualTest { } Frame { msec: 3312 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Frame { msec: 3328 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Frame { msec: 3344 - hash: "0e5a0e32f40d3e02758a394797cb3947" + hash: "8ea510d25195956fa42eabfe3bb9f230" } Key { type: 6 @@ -1370,23 +1370,23 @@ VisualTest { } Frame { msec: 3360 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3376 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3392 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3408 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3424 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Key { type: 7 @@ -1398,15 +1398,15 @@ VisualTest { } Frame { msec: 3440 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3456 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Frame { msec: 3472 - hash: "31079d862bb5b41e36e146201f8c34d2" + hash: "26b58aef7b1f50a5d261718e8266a3fb" } Key { type: 6 @@ -1418,19 +1418,19 @@ VisualTest { } Frame { msec: 3488 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Frame { msec: 3504 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Frame { msec: 3520 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Frame { msec: 3536 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Key { type: 7 @@ -1442,11 +1442,11 @@ VisualTest { } Frame { msec: 3552 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Frame { msec: 3568 - hash: "1e5e9ab44b9c703637e58bb248026b51" + hash: "012854de1c9d1a772994d02f52bdcd7c" } Key { type: 6 @@ -1458,27 +1458,27 @@ VisualTest { } Frame { msec: 3584 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Frame { msec: 3600 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Frame { msec: 3616 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Frame { msec: 3632 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Frame { msec: 3648 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Frame { msec: 3664 - hash: "18f5f77a48858fb5584d55ba3f3a94d3" + hash: "660a31e1c0d573f4155cfa8fe2323413" } Key { type: 6 @@ -1490,7 +1490,7 @@ VisualTest { } Frame { msec: 3680 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Key { type: 7 @@ -1502,23 +1502,23 @@ VisualTest { } Frame { msec: 3696 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3712 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3728 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3744 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3760 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Key { type: 7 @@ -1530,39 +1530,39 @@ VisualTest { } Frame { msec: 3776 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3792 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3808 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3824 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3840 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3856 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + image: "wrap.4.png" } Frame { msec: 3872 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3888 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Frame { msec: 3904 - hash: "63d557c9ea24a9e63d6bdfc6259c8bf9" + hash: "bea00f5e628e40b679eb8829c16c6260" } Key { type: 6 @@ -1574,23 +1574,23 @@ VisualTest { } Frame { msec: 3920 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Frame { msec: 3936 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Frame { msec: 3952 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Frame { msec: 3968 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Frame { msec: 3984 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Key { type: 7 @@ -1602,11 +1602,11 @@ VisualTest { } Frame { msec: 4000 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Frame { msec: 4016 - hash: "67b49fc16da9390bff9814b34659baca" + hash: "c5c60cd10a1106161cde5f51dbdec5ad" } Key { type: 6 @@ -1618,15 +1618,15 @@ VisualTest { } Frame { msec: 4032 - hash: "a06c039bc65f399f7dcb1a484e557f34" + hash: "41c26e6a4c911f9ecd082c4d3366806b" } Frame { msec: 4048 - hash: "a06c039bc65f399f7dcb1a484e557f34" + hash: "41c26e6a4c911f9ecd082c4d3366806b" } Frame { msec: 4064 - hash: "a06c039bc65f399f7dcb1a484e557f34" + hash: "41c26e6a4c911f9ecd082c4d3366806b" } Key { type: 7 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4080 - hash: "a06c039bc65f399f7dcb1a484e557f34" + hash: "41c26e6a4c911f9ecd082c4d3366806b" } Key { type: 6 @@ -1650,19 +1650,19 @@ VisualTest { } Frame { msec: 4096 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Frame { msec: 4112 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Frame { msec: 4128 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Frame { msec: 4144 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Key { type: 7 @@ -1674,15 +1674,15 @@ VisualTest { } Frame { msec: 4160 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Frame { msec: 4176 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Frame { msec: 4192 - hash: "6471c3319fbe937080bd40d91770898f" + hash: "e212938ce981ed4e8d7a993468bc9377" } Key { type: 6 @@ -1694,23 +1694,23 @@ VisualTest { } Frame { msec: 4208 - hash: "124451f5a072f626642a85ebc36c0914" + hash: "55df0528a97d77d0a4b513aeedd34440" } Frame { msec: 4224 - hash: "124451f5a072f626642a85ebc36c0914" + hash: "55df0528a97d77d0a4b513aeedd34440" } Frame { msec: 4240 - hash: "124451f5a072f626642a85ebc36c0914" + hash: "55df0528a97d77d0a4b513aeedd34440" } Frame { msec: 4256 - hash: "124451f5a072f626642a85ebc36c0914" + hash: "55df0528a97d77d0a4b513aeedd34440" } Frame { msec: 4272 - hash: "124451f5a072f626642a85ebc36c0914" + hash: "55df0528a97d77d0a4b513aeedd34440" } Key { type: 6 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 4288 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Key { type: 7 @@ -1734,15 +1734,15 @@ VisualTest { } Frame { msec: 4304 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4320 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4336 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Key { type: 7 @@ -1754,23 +1754,23 @@ VisualTest { } Frame { msec: 4352 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4368 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4384 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4400 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Frame { msec: 4416 - hash: "963ee26238b20cd414e69b50ffa5a186" + hash: "2165091c97a891560bf3afab879e6dbc" } Key { type: 6 @@ -1782,15 +1782,15 @@ VisualTest { } Frame { msec: 4432 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4448 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4464 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Key { type: 7 @@ -1802,23 +1802,23 @@ VisualTest { } Frame { msec: 4480 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4496 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4512 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4528 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Frame { msec: 4544 - hash: "c5ce4fc832787535e66e64c546383d28" + hash: "a3d7968e13768c4ec538fe9ba7edf142" } Key { type: 6 @@ -1830,19 +1830,19 @@ VisualTest { } Frame { msec: 4560 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4576 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4592 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4608 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Key { type: 7 @@ -1854,19 +1854,19 @@ VisualTest { } Frame { msec: 4624 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4640 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4656 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Frame { msec: 4672 - hash: "57bcfc2fbc8e5993f0908980bdef2e79" + hash: "3b18ada8637d4024acfe88718765f71c" } Key { type: 6 @@ -1878,19 +1878,19 @@ VisualTest { } Frame { msec: 4688 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Frame { msec: 4704 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Frame { msec: 4720 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Frame { msec: 4736 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Key { type: 7 @@ -1902,15 +1902,15 @@ VisualTest { } Frame { msec: 4752 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Frame { msec: 4768 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Frame { msec: 4784 - hash: "60b5ec304c447a3bf54da75f964e9fff" + hash: "c419775870b0c5e41b5156c840e6a298" } Key { type: 6 @@ -1922,11 +1922,11 @@ VisualTest { } Frame { msec: 4800 - hash: "6ae6a9c38541546561db9049a300bce6" + hash: "81a744f02650728c7557a27c94056e64" } Frame { msec: 4816 - hash: "6ae6a9c38541546561db9049a300bce6" + image: "wrap.5.png" } Key { type: 7 @@ -1938,19 +1938,19 @@ VisualTest { } Frame { msec: 4832 - hash: "6ae6a9c38541546561db9049a300bce6" + hash: "81a744f02650728c7557a27c94056e64" } Frame { msec: 4848 - hash: "6ae6a9c38541546561db9049a300bce6" + hash: "81a744f02650728c7557a27c94056e64" } Frame { msec: 4864 - hash: "6ae6a9c38541546561db9049a300bce6" + hash: "81a744f02650728c7557a27c94056e64" } Frame { msec: 4880 - hash: "6ae6a9c38541546561db9049a300bce6" + hash: "81a744f02650728c7557a27c94056e64" } Key { type: 6 @@ -1962,19 +1962,19 @@ VisualTest { } Frame { msec: 4896 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 4912 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 4928 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 4944 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Key { type: 7 @@ -1986,482 +1986,482 @@ VisualTest { } Frame { msec: 4960 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 4976 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 4992 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5008 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5024 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5040 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5056 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5072 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5088 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5104 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5120 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5136 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5152 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5168 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5184 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5200 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5216 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5232 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5248 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5264 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5280 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5296 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5312 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5328 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5344 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5360 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5376 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5392 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5408 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5424 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5440 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5456 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5472 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5488 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5504 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5520 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5536 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5552 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5568 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5584 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5600 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5616 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5632 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5648 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5664 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5680 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5696 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5712 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5728 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5744 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5760 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5776 - hash: "41179a181fd4ae8bd15a259b66d90eea" + image: "wrap.6.png" } Frame { msec: 5792 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5808 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5824 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5840 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5856 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5872 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5888 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5904 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5920 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5936 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5952 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5968 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 5984 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6000 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6016 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6032 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6048 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6064 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6080 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6096 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6112 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6128 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6144 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6160 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6176 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6192 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6208 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6224 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6240 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6256 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6272 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6288 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6304 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6320 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6336 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6352 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6368 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6384 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6400 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6416 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6432 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6448 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6464 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6480 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6496 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6512 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6528 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6544 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6560 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6576 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6592 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6608 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6624 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6640 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6656 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6672 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6688 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6704 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6720 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6736 - hash: "41179a181fd4ae8bd15a259b66d90eea" + image: "wrap.7.png" } Frame { msec: 6752 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6768 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6784 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6800 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6816 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6832 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6848 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } Frame { msec: 6864 - hash: "41179a181fd4ae8bd15a259b66d90eea" + hash: "ed1520bf20159e60c6a75bbf07f3a6ee" } } 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 4f24b27..18dd55e 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.1.png index 3cd1c11..9cc8b85 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.2.png index c0e738e..f7c23e2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.3.png index a373ded..a5bd6cc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.4.png index 647984d..fdcdf88 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.5.png new file mode 100644 index 0000000..89fd161 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.5.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 b9e40a1..e14fb82 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml @@ -10,111 +10,111 @@ VisualTest { } Frame { msec: 32 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 48 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 64 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 80 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 96 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 112 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 128 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 144 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 160 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 176 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 192 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 208 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 224 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 240 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 256 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 272 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 288 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 304 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 320 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 336 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 352 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 368 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 384 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 400 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 416 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 432 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Frame { msec: 448 - hash: "65bbc5da769f475d1c47bdedb92ba65e" + hash: "ea218f136c6c7a70f2a4da569fae92b0" } Key { type: 6 @@ -126,23 +126,23 @@ VisualTest { } Frame { msec: 464 - hash: "97eff9733db71f7c5d396969582c572b" + hash: "e0cce7628c07ad989161e77d87f7f511" } Frame { msec: 480 - hash: "97eff9733db71f7c5d396969582c572b" + hash: "e0cce7628c07ad989161e77d87f7f511" } Frame { msec: 496 - hash: "97eff9733db71f7c5d396969582c572b" + hash: "e0cce7628c07ad989161e77d87f7f511" } Frame { msec: 512 - hash: "97eff9733db71f7c5d396969582c572b" + hash: "e0cce7628c07ad989161e77d87f7f511" } Frame { msec: 528 - hash: "87902d32dba1439e71ce5f57f514748e" + hash: "b86c442f4a561503d34238465fd20aec" } Key { type: 7 @@ -154,19 +154,19 @@ VisualTest { } Frame { msec: 544 - hash: "cad95931a38718eb481a9175fdfec305" + hash: "36f5f4397549f151ebfc0295ca33f55f" } Frame { msec: 560 - hash: "1dc99e5c7e4d2fa6b624b6df250b78fc" + hash: "1cc9682b652e65b547bbeb2b37f9d1e7" } Frame { msec: 576 - hash: "5d5739beb039a83bebb2c41489166edf" + hash: "b3874acb58643e1bb70a0b579e517526" } Frame { msec: 592 - hash: "6320c9a1c0013f5aa6180992b934ca59" + hash: "152b962f8a00b68459df073962a1a947" } Key { type: 6 @@ -178,19 +178,19 @@ VisualTest { } Frame { msec: 608 - hash: "9d9837c1f3779e5dab0dfeb1d11fdea1" + hash: "891f86211cdc5050881421613b199939" } Frame { msec: 624 - hash: "9d868112eaf70ce02ce93603278a565d" + hash: "5862b5e1ed2d1905357adbc5a7f2ade9" } Frame { msec: 640 - hash: "d2bccb3184d3bb42b91017410a8655b6" + hash: "2fd895e688fa1c8b2f0bbf6e7defdb2a" } Frame { msec: 656 - hash: "68f8be3e16637fd39a35f0cebb62b74a" + hash: "66c31658d38604b3e2d424aea15b715d" } Key { type: 7 @@ -202,19 +202,19 @@ VisualTest { } Frame { msec: 672 - hash: "04f5781b57ed9fee32d5ef80dc33f4ff" + hash: "df5331bc225d5e6f443812d489b19324" } Frame { msec: 688 - hash: "06cc2e24a848d441074de5ddff1c739a" + hash: "6ca6367bb314804598b6257fd8b49d28" } Frame { msec: 704 - hash: "94526186deb7248ac9c747ede15b106d" + hash: "877f64d93ba9d0d31181c3600bc02f80" } Frame { msec: 720 - hash: "1ac130517df314f4f44b9bde2d3dcc53" + hash: "6b3210a6e4f8c448e5d90c6dada7a114" } Key { type: 6 @@ -226,19 +226,19 @@ VisualTest { } Frame { msec: 736 - hash: "270ecf4900e94d60599ded230633aa02" + hash: "4e64391a8142f94cb1ae38082218af01" } Frame { msec: 752 - hash: "ef2093584cbce9182b99f297fcd2465d" + hash: "7bc3285fc6a0275622a76e605e2f7609" } Frame { msec: 768 - hash: "c445cf5f56213a712585934681d8af55" + hash: "895b45ca668e4fe112913d818f28631e" } Frame { msec: 784 - hash: "9f0edb3871e015a549622e1b70d1b748" + hash: "98e49c0ade7408c3229489ba6681088b" } Key { type: 7 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 800 - hash: "144c51d7aa47ea8cc8d79a97efa4b430" + hash: "98c7370ca0f570dbe23c2724cb4ddead" } Frame { msec: 816 - hash: "34f768a7c99dfb3c8f0e1fb1a08a37ac" + hash: "a71a7684552b072754469f6ae16d18b6" } Frame { msec: 832 - hash: "4f3970c4ad02b69f96c11610494e8a50" + hash: "9cf40ec30d20e2cf95de2bfede4e46c6" } Frame { msec: 848 - hash: "815a1cf66f0c9eb47e244753eebb83ba" + hash: "ed1efc0873a05be9f0c001c9cab94414" } Frame { msec: 864 - hash: "5db11f795c000b382fdc30726a711c65" + hash: "4909c38a27da00d9c6f0dafc52c45035" } Key { type: 6 @@ -278,15 +278,15 @@ VisualTest { } Frame { msec: 880 - hash: "67976ee172d0d55992c0e4734fbb7ccf" + hash: "81d4e7ca4265332555434fdd5f19c621" } Frame { msec: 896 - hash: "c764e4d5317acbbf5118a08565e5d5fd" + hash: "c336bac65473a8b76cecca1854c94752" } Frame { msec: 912 - hash: "a83f566d01b990e91f43bb63a58fb5b8" + hash: "8bf0b0c6bd2c0fbf7c9f3529a5b92ebc" } Key { type: 7 @@ -298,23 +298,23 @@ VisualTest { } Frame { msec: 928 - hash: "031282f352e01f23bc5f73bf8ce82c9a" + hash: "8b7f6b8eebd1d7648becb91d256ac475" } Frame { msec: 944 - hash: "1f3dc1d3ad0304376eac5d60d3c226ee" + hash: "6fcc3b9dee14bcdd2b60a32f696eec05" } Frame { msec: 960 - hash: "a764060e409f44b5a2196e405f0e00e0" + hash: "939ac75fa99f482509ee1bb6b93f2ed0" } Frame { msec: 976 - hash: "7bae45481596788afde8866a3c97edd7" + image: "cursorDelegate.1.png" } Frame { msec: 992 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Key { type: 6 @@ -326,15 +326,15 @@ VisualTest { } Frame { msec: 1008 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 1024 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 1040 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Key { type: 7 @@ -346,23 +346,23 @@ VisualTest { } Frame { msec: 1056 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 1072 - hash: "a2ad07326fafcb3012cdb869f39af466" + hash: "3d6db6e3ee77ee75341ce16dc4a56c59" } Frame { msec: 1088 - hash: "8622eb25a6da44926b5161bce213a483" + hash: "ff43ccdb14ae4d12ffead2eb261a5056" } Frame { msec: 1104 - hash: "ccbd4d1e4865ebd9b0fe923e6ab05e5c" + hash: "cd14458426f94efbbc729112e6a481c5" } Frame { msec: 1120 - hash: "775cd79b012f79b773449a0ad8457149" + hash: "6bd66d118ff27b0cea7944ea22c727c9" } Key { type: 6 @@ -374,23 +374,23 @@ VisualTest { } Frame { msec: 1136 - hash: "2a4ed061e512c5afd11072c4b707f707" + hash: "c294f1f7b7dd842d797ec5346f8794b3" } Frame { msec: 1152 - hash: "c855df7b17811f25fd17e4fb108c02e1" + hash: "185228bb06e052a279bc0481760a1920" } Frame { msec: 1168 - hash: "46c37d8e67ece5cae4f766acf50f3ca3" + hash: "81b01e755b7fcbda18634b88052326e4" } Frame { msec: 1184 - hash: "95a70f14ce01aae61190080ed3d55c77" + hash: "ff16045d2ae8a5e48440fe5094780987" } Frame { msec: 1200 - hash: "87da182d1285f3613bb2e4673e701757" + hash: "01b2a227010cba52952763cd9fbc8c94" } Key { type: 7 @@ -402,27 +402,27 @@ VisualTest { } Frame { msec: 1216 - hash: "5b97f13f43e713a6fbe96bdca8969191" + hash: "3c6ffa5250e90c994e334745efa15b19" } Frame { msec: 1232 - hash: "4d003182e7b7b0a05413b80f82a0fc41" + hash: "9656663feae42fced5646d8c21ad05ec" } Frame { msec: 1248 - hash: "dba09e038291a8dfdc61911d6b4b9bdf" + hash: "95ecea8c39c38c2319a8a0de1c3c97b1" } Frame { msec: 1264 - hash: "a2ae1e5cc6cd72fae70804e07df5a8a1" + hash: "7bc610d4efadf5ef603d0c62e81021b2" } Frame { msec: 1280 - hash: "f1c2a24b6f0ebcf98122e8db1cdcb66f" + hash: "b5343907926d112165a1e8914fa12383" } Frame { msec: 1296 - hash: "142dade1639655132435ae260b7935a0" + hash: "7b1be2c0e963b92accd35606cd9521f5" } Key { type: 6 @@ -434,7 +434,7 @@ VisualTest { } Frame { msec: 1312 - hash: "e80c0175d947bceef4bf53b60bf7eac0" + hash: "2004b105d197f736f68eef070574767d" } Key { type: 6 @@ -446,19 +446,19 @@ VisualTest { } Frame { msec: 1328 - hash: "de912cd8bd2fe762ec6b1ec819732507" + hash: "dbafec45c35739835180f7644f4bf66c" } Frame { msec: 1344 - hash: "d3fa9dfab37ee26572d25bcbe8c66b72" + hash: "ed86b86cc0eb1c8c05b0ddb063937270" } Frame { msec: 1360 - hash: "33bdb2817a2858ce430813d0774f0172" + hash: "bdc640c90728a4f39c22e0a415c595b4" } Frame { msec: 1376 - hash: "4f10f0ffb6b1c87155eedd53af36c74f" + hash: "2af0c828b767942ba1745dd9838a54b5" } Key { type: 6 @@ -470,31 +470,31 @@ VisualTest { } Frame { msec: 1392 - hash: "1b94be0de8412bd9380689895f290af7" + hash: "547f4cbf1637d997f50f755965dd4704" } Frame { msec: 1408 - hash: "48b3a5e2b04c86a75f4b6595eb2c1f55" + hash: "ede46a74a6e5297454da63227684d6cf" } Frame { msec: 1424 - hash: "d092fabd3dd51c718486e1e7dadaa0dc" + hash: "3a8747e0b26763c7bbc5ecd433c41d5a" } Frame { msec: 1440 - hash: "243359437235563f1a60b8eaf63365b6" + hash: "0ae75d3cf890fe95e53f4c2c2eb0c660" } Frame { msec: 1456 - hash: "a986c8ed8ad2d8b6aab2a001906ba2ad" + hash: "1014ed3a45803f4ca8dfd669137d3502" } Frame { msec: 1472 - hash: "da5e06dc481e9cb7d9159a84d0cc150a" + hash: "0abf6b3183b4b85eabbcb3f2d4173473" } Frame { msec: 1488 - hash: "1d70a05fce3a05477e21d22b127ae96a" + hash: "39dbf6788ad997531894fd5138953f21" } Key { type: 7 @@ -506,51 +506,51 @@ VisualTest { } Frame { msec: 1504 - hash: "913448213a07f6c8427c8e310d2026de" + hash: "0fd0841b32106155e25c274b47724d60" } Frame { msec: 1520 - hash: "51bef5ae52977a935b66af4baf1da4e6" + hash: "9fa396cab1425ca03e394c681ccb798d" } Frame { msec: 1536 - hash: "367bc25f868c23005d7fe903a9ea681b" + hash: "3c62d2a016bba6cd3f83982dcb7c1582" } Frame { msec: 1552 - hash: "3c25181652e788d128ed571ca4fea0b1" + hash: "ee6f16b9165eb663ae78716f723e5b16" } Frame { msec: 1568 - hash: "0218f939ff2b8c0bc22a537ed0f053f0" + hash: "dd2c49caa8b8f690fd8a29aac7f85dc8" } Frame { msec: 1584 - hash: "a3b765a823b2b3811273a1be90850533" + hash: "79343bd1b7472d75daad9ae9848b89ba" } Frame { msec: 1600 - hash: "2a42a29774eb4f962d299f8c2c213d55" + hash: "4c087ae0614e4736130235eea0af5267" } Frame { msec: 1616 - hash: "1f0ad54d0fe8fc27cadbaaeaa37364e0" + hash: "87d75b0e3bd197084f8d8c0601ba195d" } Frame { msec: 1632 - hash: "04d6028d1b1a1178e5bf774db8eef2c6" + hash: "ccd66bab965c78aa3b39728aef0648c6" } Frame { msec: 1648 - hash: "c325e46e89e8df04e2c3d8bf111c5f09" + hash: "d311116fafc9693e6c55eb2c1273a487" } Frame { msec: 1664 - hash: "70e6223ce16a797e2c56e21ad74b188b" + hash: "a4c1bc9c9f987bacfd19ea64f9a3ec2c" } Frame { msec: 1680 - hash: "0fb8762fd28564b84b83c17d749a3645" + hash: "a6b86821b0563c06b478b62037edffe5" } Key { type: 6 @@ -562,31 +562,31 @@ VisualTest { } Frame { msec: 1696 - hash: "ef5d19b59792ea8822e2391fe0d91dbd" + hash: "30b8fd8f9d3e63c9101cf3558fc7f0d6" } Frame { msec: 1712 - hash: "70ad15030164be8afbb4ab22d1ae5f5f" + hash: "8224ae61cfce9bbf9f69677071285ddc" } Frame { msec: 1728 - hash: "a5dfb8bd4b681e0d8d2c082821a2a976" + hash: "1b7408ad665e5e316893397c9362e069" } Frame { msec: 1744 - hash: "864781fbb8673b1e603df015f2d88601" + hash: "7ace1472840c3184263fe23cec5ba929" } Frame { msec: 1760 - hash: "0bdb6a155cdd14f4dce9fde3c5116dde" + hash: "ea3f542c80564ad841675197b51272c9" } Frame { msec: 1776 - hash: "5421f521a9bdccc8478fcee97e0dbc99" + hash: "0c4989dbd8d4008c1834140e28b98405" } Frame { msec: 1792 - hash: "c5f29693dd017932767f37e2fb2f22f2" + hash: "337452c36385bebadb35498172eb82ef" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1808 - hash: "b5e8abeaec33407e673f8021212528b1" + hash: "030ff7472ad4d566166e99aeb1daf1ad" } Frame { msec: 1824 - hash: "917c968e5ee8f0b25fdb175719d7dbfa" + hash: "59f7bb68de85445bad114caca87ae859" } Frame { msec: 1840 - hash: "56495c63676b9f73004e76e38d60567e" + hash: "5c0e8905d830357ca7bc26c6383a2dcc" } Frame { msec: 1856 - hash: "86f1ccdd7ff408c5b141d79797eea1fa" + hash: "b00e889ee28556eaca18a6d52b8b4c0c" } Key { type: 7 @@ -622,7 +622,7 @@ VisualTest { } Frame { msec: 1872 - hash: "9e9b32a9f71ab1aa4e87ddc323ccda03" + hash: "07d4cc37e71ff6fb34c1370db27bd0f9" } Key { type: 6 @@ -634,43 +634,43 @@ VisualTest { } Frame { msec: 1888 - hash: "360aef37452ce8f045659c227285cb82" + hash: "86d74cd53c541fde95b36a3899859272" } Frame { msec: 1904 - hash: "805949377c620fa4310aa4328eba1f23" + hash: "82457df6a73b8aa32b567cac53d19679" } Frame { msec: 1920 - hash: "627206a252bd6fcbf57d9f1cde0506bb" + hash: "63be8d924bace20717f87f7d260060e5" } Frame { msec: 1936 - hash: "00df8110a2008ba77b7e0bf2130e5319" + image: "cursorDelegate.2.png" } Frame { msec: 1952 - hash: "835f6f723577071461e41da1fd2e990a" + hash: "d274989f514174cda3316fa6650aed05" } Frame { msec: 1968 - hash: "6876cafa4d6d3a7d387602eba4d26db1" + hash: "f1cae5982318ec621423513f7a090adf" } Frame { msec: 1984 - hash: "5570ae1e700cdf42ba516be69fbaadc0" + hash: "1b30dd4a817370d8b6f5908cef69eeb9" } Frame { msec: 2000 - hash: "5570ae1e700cdf42ba516be69fbaadc0" + hash: "1b30dd4a817370d8b6f5908cef69eeb9" } Frame { msec: 2016 - hash: "5570ae1e700cdf42ba516be69fbaadc0" + hash: "1b30dd4a817370d8b6f5908cef69eeb9" } Frame { msec: 2032 - hash: "5570ae1e700cdf42ba516be69fbaadc0" + hash: "1b30dd4a817370d8b6f5908cef69eeb9" } Key { type: 7 @@ -682,7 +682,7 @@ VisualTest { } Frame { msec: 2048 - hash: "5570ae1e700cdf42ba516be69fbaadc0" + hash: "1b30dd4a817370d8b6f5908cef69eeb9" } Key { type: 7 @@ -694,27 +694,27 @@ VisualTest { } Frame { msec: 2064 - hash: "6876cafa4d6d3a7d387602eba4d26db1" + hash: "f1cae5982318ec621423513f7a090adf" } Frame { msec: 2080 - hash: "835f6f723577071461e41da1fd2e990a" + hash: "d274989f514174cda3316fa6650aed05" } Frame { msec: 2096 - hash: "00df8110a2008ba77b7e0bf2130e5319" + hash: "4c51c2e71ee1fef13b9ac5213b057cef" } Frame { msec: 2112 - hash: "627206a252bd6fcbf57d9f1cde0506bb" + hash: "63be8d924bace20717f87f7d260060e5" } Frame { msec: 2128 - hash: "805949377c620fa4310aa4328eba1f23" + hash: "82457df6a73b8aa32b567cac53d19679" } Frame { msec: 2144 - hash: "360aef37452ce8f045659c227285cb82" + hash: "86d74cd53c541fde95b36a3899859272" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "0ac33070e0c736bc0fb5ab12fa444b5c" + hash: "9bfb6b9a2604b4c534539bc731abda10" } Frame { msec: 2176 - hash: "520a544fd92f17a14380803e253b396f" + hash: "dfa52bb483388dfee56577968d013c8f" } Frame { msec: 2192 - hash: "4a080a5154c517e6bcf24b3a1f1d7f2c" + hash: "ea77a49e7e246649248e19b72d6433c9" } Frame { msec: 2208 - hash: "e83642b0793f5a790efca65ccf20a720" + hash: "348e6a82b1491739e72c5c361158a967" } Frame { msec: 2224 - hash: "8210b9cbf19f519ee34f4bb1a6afce16" + hash: "bb52aa533659d770d01deb8bef5a8b4d" } Frame { msec: 2240 - hash: "54d04e64af5c0a3d29f2dc8c0977ed3a" + hash: "082441b5fea02f2676ad4d53aefb6927" } Key { type: 7 @@ -758,31 +758,31 @@ VisualTest { } Frame { msec: 2256 - hash: "ae2a644f96bd7b2662ebcf4ebc33d930" + hash: "9194cd1399ceeda421944cd87182039b" } Frame { msec: 2272 - hash: "718ac9cb5ef2992b06b34e957f987b7a" + hash: "edff1333eb3a0047c527503ab3dbe71c" } Frame { msec: 2288 - hash: "a2e1dea5e5f37697c7ce1a9419b94f65" + hash: "e5c9931c8baf260d77f9cfcc1bb41101" } Frame { msec: 2304 - hash: "c0eb56c72311263d892ce65331547531" + hash: "75c37de92c5af3305733a92d405a4ec8" } Frame { msec: 2320 - hash: "585ad3efb7330de889b8cf56a51a0899" + hash: "f27082799d0860c660d16c3f9fe6e538" } Frame { msec: 2336 - hash: "236e54ae31e5ee3d08a7bc9aeaef0d9b" + hash: "5d79ff6cac5bd6943b656964c1d78b00" } Frame { msec: 2352 - hash: "d6218c8bb4da9d62bdb5d0cf5d7f8e37" + hash: "d58a1176858e49c89fc77bed260c6269" } Key { type: 6 @@ -802,23 +802,23 @@ VisualTest { } Frame { msec: 2368 - hash: "1dddd18a4ef66df9d9b431b2860e24d1" + hash: "70deb136fd364646e73390f0aa751baa" } Frame { msec: 2384 - hash: "5b1b45e75f5a829b31c0b6eb0189da7c" + hash: "ed3bf83d975d6b8f830ce0b5a0ad64cc" } Frame { msec: 2400 - hash: "062091bc7a5f3296c669614318b80fe7" + hash: "9007b93c9b9ae3612a0f97fe2e2ae825" } Frame { msec: 2416 - hash: "836f37fe92a46233640e0bd2c0932fea" + hash: "c39f05a5471fb3a26f57feab2b99c8fa" } Frame { msec: 2432 - hash: "f14ec1544a380fc9993b39754c23c2f4" + hash: "49cd710decb32599d7a9c8e0239bf9a5" } Key { type: 6 @@ -830,23 +830,23 @@ VisualTest { } Frame { msec: 2448 - hash: "2d549b5fea734e47682415df1717e6a6" + hash: "df3e2a44ed4e7cf6adb49f84b1d4fc53" } Frame { msec: 2464 - hash: "824c5960260dd3ed7527709ebfb06d27" + hash: "5b7984204405b31a0262da011ff3903e" } Frame { msec: 2480 - hash: "258f034fe1e71f25a92e667e05f53e82" + hash: "0dd2dc00c42eb7bb731d64e9a7188c83" } Frame { msec: 2496 - hash: "c432e758e19c44d788cb38df6e4c6d69" + hash: "1b811aa744375668672fb8b4e0d75621" } Frame { msec: 2512 - hash: "a1856592208f9a00385b13c44e1c4503" + hash: "f34c084f977a20fcf96eaf1e7b5423f7" } Key { type: 7 @@ -858,23 +858,23 @@ VisualTest { } Frame { msec: 2528 - hash: "2b4d40a0555df0b86f52d13790185459" + hash: "145b1c6526e04f02adf94eb5d0369ae0" } Frame { msec: 2544 - hash: "b153143e6b16c47fa06663dc6b1034d6" + hash: "1b047f1cb4738188c10d8b05e636694a" } Frame { msec: 2560 - hash: "ac52236c5d73aeae7c0834df1e6bd84e" + hash: "3f5921d19c63c7d434f0428cb155426e" } Frame { msec: 2576 - hash: "136eeb348b0b96edc9aaf9fbea741973" + hash: "940a9ca625a813af3c9f74600b9dd668" } Frame { msec: 2592 - hash: "4f8a1dfa8906de2bcdfbf5c3b29fbf9b" + hash: "3df53c013eae20a71e4337be5499ff65" } Key { type: 6 @@ -886,15 +886,15 @@ VisualTest { } Frame { msec: 2608 - hash: "7dc9726df2d112b46f4d9dbe66d534c7" + hash: "34e4524d132bbb2a9e4aaffa0982ad33" } Frame { msec: 2624 - hash: "f64086ca0e83fa8bb0fae28065260fdc" + hash: "87942e371bd51726dbfa5a09fdd31631" } Frame { msec: 2640 - hash: "5237dd2b79d71bbfa0a0d3963a7f42b7" + hash: "a2baf811e2b51215c4e5f88f0854f5a5" } Key { type: 7 @@ -906,23 +906,23 @@ VisualTest { } Frame { msec: 2656 - hash: "8dd435b577bb258979d33034885a8cd8" + hash: "cc12390ac2a3296c04f2538fb3b4cc00" } Frame { msec: 2672 - hash: "2609c066b8f102b4189991bf7d01eaad" + hash: "f209d32ec1742194c8436c36230a8239" } Frame { msec: 2688 - hash: "986fab22391264d04df9a55b18aee645" + hash: "444d87a6fc19b8f0e8dcda0615a484aa" } Frame { msec: 2704 - hash: "0256423680aa0843fe8ec84f5e68fc9b" + hash: "2e492b973fffd68245c24d603d2a8221" } Frame { msec: 2720 - hash: "b822bdcad69aa868f48b2bbf2d62e297" + hash: "742ab9c9d4d8e37337f237f792aba160" } Key { type: 6 @@ -934,19 +934,19 @@ VisualTest { } Frame { msec: 2736 - hash: "14effed70ca60233be9b2f6d0a1b5e6c" + hash: "74db3d75c0b30946b18edf5fc115dfce" } Frame { msec: 2752 - hash: "1abaf2c36a0fb9f04606c0e191d113cf" + hash: "86685be3dbb2236676f767894c694a5a" } Frame { msec: 2768 - hash: "cffb8ca29b0369d183d6461bf9e63fdf" + hash: "327351a6164fd566dd0f7ead05c7ea36" } Frame { msec: 2784 - hash: "9378bebddb09036bec98ff7018dcf7c1" + hash: "ba9262ab3d8824e3a9cdcfe29059bbda" } Key { type: 7 @@ -958,75 +958,75 @@ VisualTest { } Frame { msec: 2800 - hash: "0c3823994ee8f838c26040118ba62622" + hash: "8c8aba2c44a7ea5b4d1e2206a3dbd6a2" } Frame { msec: 2816 - hash: "d374547f47adc81a18428c7a79cb9cf2" + hash: "560067cbba922e2958bc7bae5ab93572" } Frame { msec: 2832 - hash: "449c2996a2d0e74f2300adad619700bc" + hash: "566c84584e49c633fdada833ea386565" } Frame { msec: 2848 - hash: "14379a320b6fc36de5d2a6776f1dc963" + hash: "615819749d92cb0b927e370c05321f5b" } Frame { msec: 2864 - hash: "cb010a99ffa3b6df26c6cd263a21cfcd" + hash: "9f11ee25f10750cc2302e6b528ab68b9" } Frame { msec: 2880 - hash: "87968f62496d88d8ed800d76a2d41c25" + hash: "5140d2ac5f1b361776fb335d43fcda1a" } Frame { msec: 2896 - hash: "a445d23288d462009916e31f370a2068" + image: "cursorDelegate.3.png" } Frame { msec: 2912 - hash: "8b3f2811300830e837797056f262bec2" + hash: "5fb75369681ac189b4de918dfa639f55" } Frame { msec: 2928 - hash: "2303a27e72334cae84b4fe51a62974ba" + hash: "9da1688d1084f1588b6d203698c8a2b6" } Frame { msec: 2944 - hash: "f3a9f3e74d2d83e38aee78cab7209bd6" + hash: "91bbae5a8fd04da71b1353f687c15d9f" } Frame { msec: 2960 - hash: "ca4777127a535655f057af57cf3e8c7b" + hash: "d3c0a6ed0510abb6135fb2e61f8721d8" } Frame { msec: 2976 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 2992 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 3008 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 3024 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 3040 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 3056 - hash: "de2b65920fa9177a79019f33712c2275" + hash: "23e728398c03c805066766081e434d41" } Frame { msec: 3072 - hash: "ca4777127a535655f057af57cf3e8c7b" + hash: "d3c0a6ed0510abb6135fb2e61f8721d8" } Key { type: 6 @@ -1038,23 +1038,23 @@ VisualTest { } Frame { msec: 3088 - hash: "83cfb141f6b77fa062443a442a5b2e9e" + hash: "d5519a015a697dcb1763748bd2789441" } Frame { msec: 3104 - hash: "b3e262864238d03f988c9750cc74e48f" + hash: "d8ca000081bf565a4f3de5a5e94d894b" } Frame { msec: 3120 - hash: "6ed2086ae01be46f0684bbecc05484c4" + hash: "03984ab7a25d80e24dd0650f881b8203" } Frame { msec: 3136 - hash: "91f6dad8f05577af6e4f5f0aceb06b4b" + hash: "edfea780ea62d48ac69afa5e6cad00af" } Frame { msec: 3152 - hash: "1bfb0c299c3c0db0518eaa54137c22b0" + hash: "b00a5d2424568d823eb7be0438dafa1f" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 3168 - hash: "37cc96ef4b760faadf76cc471f6ba49a" + hash: "76fda33dcea27a034ddfab61031d8de6" } Frame { msec: 3184 - hash: "67c848bf93e845eaf5eebc9b8e57482c" + hash: "11b9e3a58fd2c6d86e61a5e3b7db04b4" } Frame { msec: 3200 - hash: "e3906ad9b1dfbd1170364c11ff4b286f" + hash: "f7c583d00d7154d9e8af88bec706f97f" } Frame { msec: 3216 - hash: "24dd59673c5659e3bf6f52723e1bcd07" + hash: "8680b8c69c544213fb8d55233bde4ce5" } Frame { msec: 3232 - hash: "4b694f05f147bcf901a16807d4e3ec7c" + hash: "74fc148e3c466023e2449c6b1367bceb" } Frame { msec: 3248 - hash: "9d9dbf34f6a67a49210caa249b8a1abb" + hash: "9495a0ffe7589351cfced8b26f6d64e4" } Key { type: 6 @@ -1098,31 +1098,31 @@ VisualTest { } Frame { msec: 3264 - hash: "5381cde4763aa45c97793124e42db6f5" + hash: "519c58c8c0f62d96005b49f68648565b" } Frame { msec: 3280 - hash: "0f113c0263faa47428c4d16891ac4d4f" + hash: "609a2d8f02c8b42e0921a2a900edccbd" } Frame { msec: 3296 - hash: "cc1767ec13803959333cd35bfb2d9119" + hash: "c54617fb7b21ef8dc2bc0d8492ec476e" } Frame { msec: 3312 - hash: "ec1b4c71f9bd63ccf6d766b0b2f68b30" + hash: "096dc0d8b3ed47894ab0289bcfe3aa8f" } Frame { msec: 3328 - hash: "114ad78597ede2afc4dd8bafa1d4df21" + hash: "5b725bb5951caa968d221fe7c5dd6370" } Frame { msec: 3344 - hash: "d08dc22ddc707316483f09b796ea0380" + hash: "6733673178a1b85b22d22610a6f6c3d7" } Frame { msec: 3360 - hash: "135b2b0f4e469b207e673d1e7086cd4f" + hash: "5efbed8f4de4387572c5a98ba14f3c27" } Key { type: 7 @@ -1134,39 +1134,39 @@ VisualTest { } Frame { msec: 3376 - hash: "4267354fe0d24597bdb5ee1a6e9affbb" + hash: "650a0792ee0025e12f7f0ce6df72df6c" } Frame { msec: 3392 - hash: "700bd56ecea646bbec2017007bbb5b84" + hash: "0064815fa6e2bcbbe5f2ea8222ddd2b0" } Frame { msec: 3408 - hash: "874a65c2069f4ba89301c129f884f217" + hash: "13ca683ddd0071771e853a09fc6e5842" } Frame { msec: 3424 - hash: "b5ec22f95abb43c83533f7dc606667f6" + hash: "1625325eee9b4eaab2df135e0d2f0f14" } Frame { msec: 3440 - hash: "445de6663e80d1fe1527ec5acf4ec1de" + hash: "9e3f1df1b243167b5470778e8c44f7d1" } Frame { msec: 3456 - hash: "87c129a5bf08536d3fca90375283e26b" + hash: "493634fa37f10eb02d255253171d190d" } Frame { msec: 3472 - hash: "a63e2438a9cd412c2b119cd42b11009f" + hash: "86ddfc357d158deae39a7565c512d0c0" } Frame { msec: 3488 - hash: "61a3475bef5fd276b836cf3483526f57" + hash: "74486ca31cf165f0e55aacfae7af9e4c" } Frame { msec: 3504 - hash: "097ab9a1a1fe9743f162f57b93599fe7" + hash: "3479f78faf16d4d07b6b44d7682ac016" } Key { type: 7 @@ -1178,11 +1178,11 @@ VisualTest { } Frame { msec: 3520 - hash: "ebae1fb540c6ff6b0bc9a951391e2e94" + hash: "cb35c6a887f191b2eb5de961912c94b8" } Frame { msec: 3536 - hash: "ffc2da2e4c091eadaa9746b42b56d9e4" + hash: "53f5028e96fc65cc6171e78c31c16026" } Key { type: 7 @@ -1194,358 +1194,358 @@ VisualTest { } Frame { msec: 3552 - hash: "f243d823fc9977e69a008010d8db8a01" + hash: "c77e078983f12d8007c5509cd8b356f9" } Frame { msec: 3568 - hash: "592ac5bbf1c4b3a360be4d76c40a2be2" + hash: "ec2da5c6869161936e2598961c605674" } Frame { msec: 3584 - hash: "bd5b206097f30dfce884a8c74856857d" + hash: "bb9adcb5730aeafb2956e01d9aacaee1" } Frame { msec: 3600 - hash: "f14ec1544a380fc9993b39754c23c2f4" + hash: "49cd710decb32599d7a9c8e0239bf9a5" } Frame { msec: 3616 - hash: "836f37fe92a46233640e0bd2c0932fea" + hash: "c39f05a5471fb3a26f57feab2b99c8fa" } Frame { msec: 3632 - hash: "062091bc7a5f3296c669614318b80fe7" + hash: "9007b93c9b9ae3612a0f97fe2e2ae825" } Frame { msec: 3648 - hash: "5b1b45e75f5a829b31c0b6eb0189da7c" + hash: "ed3bf83d975d6b8f830ce0b5a0ad64cc" } Frame { msec: 3664 - hash: "1dddd18a4ef66df9d9b431b2860e24d1" + hash: "70deb136fd364646e73390f0aa751baa" } Frame { msec: 3680 - hash: "d6218c8bb4da9d62bdb5d0cf5d7f8e37" + hash: "d58a1176858e49c89fc77bed260c6269" } Frame { msec: 3696 - hash: "236e54ae31e5ee3d08a7bc9aeaef0d9b" + hash: "5d79ff6cac5bd6943b656964c1d78b00" } Frame { msec: 3712 - hash: "585ad3efb7330de889b8cf56a51a0899" + hash: "f27082799d0860c660d16c3f9fe6e538" } Frame { msec: 3728 - hash: "c0eb56c72311263d892ce65331547531" + hash: "75c37de92c5af3305733a92d405a4ec8" } Frame { msec: 3744 - hash: "a2e1dea5e5f37697c7ce1a9419b94f65" + hash: "e5c9931c8baf260d77f9cfcc1bb41101" } Frame { msec: 3760 - hash: "718ac9cb5ef2992b06b34e957f987b7a" + hash: "edff1333eb3a0047c527503ab3dbe71c" } Frame { msec: 3776 - hash: "ae2a644f96bd7b2662ebcf4ebc33d930" + hash: "9194cd1399ceeda421944cd87182039b" } Frame { msec: 3792 - hash: "54d04e64af5c0a3d29f2dc8c0977ed3a" + hash: "082441b5fea02f2676ad4d53aefb6927" } Frame { msec: 3808 - hash: "8210b9cbf19f519ee34f4bb1a6afce16" + hash: "bb52aa533659d770d01deb8bef5a8b4d" } Frame { msec: 3824 - hash: "e83642b0793f5a790efca65ccf20a720" + hash: "348e6a82b1491739e72c5c361158a967" } Frame { msec: 3840 - hash: "4a080a5154c517e6bcf24b3a1f1d7f2c" + hash: "ea77a49e7e246649248e19b72d6433c9" } Frame { msec: 3856 - hash: "520a544fd92f17a14380803e253b396f" + image: "cursorDelegate.4.png" } Frame { msec: 3872 - hash: "0ac33070e0c736bc0fb5ab12fa444b5c" + hash: "9bfb6b9a2604b4c534539bc731abda10" } Frame { msec: 3888 - hash: "5ee8c9dc7b238db131b3a078e46a8bbd" + hash: "02b01092c1f0e279872490306163647d" } Frame { msec: 3904 - hash: "69720bcca91f99f229aebc74c5e74261" + hash: "acf688ab0ceba1d5d1e0225b90fd706f" } Frame { msec: 3920 - hash: "41d8f4031223f7c833d50208e231964a" + hash: "5866ceee0fd72361dd490a2163b4fc55" } Frame { msec: 3936 - hash: "6fa8fd3252f367f3fafea4e3c7317a48" + hash: "218083c830ad133e2aeb4692d2d1517d" } Frame { msec: 3952 - hash: "8a1b63c42867f87a1cf4b47944b3860a" + hash: "3542537f0b0e1375d81c7f0365bbdf1d" } Frame { msec: 3968 - hash: "8c6052eb4cf03d7742a73874d9f15285" + hash: "ca17401d638025fde8aad18b9a358029" } Frame { msec: 3984 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4000 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4016 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4032 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4048 - hash: "7bae45481596788afde8866a3c97edd7" + hash: "87d666ee3bcf7a606e2aecb4954cfb28" } Frame { msec: 4064 - hash: "8c6052eb4cf03d7742a73874d9f15285" + hash: "ca17401d638025fde8aad18b9a358029" } Frame { msec: 4080 - hash: "8a1b63c42867f87a1cf4b47944b3860a" + hash: "3542537f0b0e1375d81c7f0365bbdf1d" } Frame { msec: 4096 - hash: "6fa8fd3252f367f3fafea4e3c7317a48" + hash: "218083c830ad133e2aeb4692d2d1517d" } Frame { msec: 4112 - hash: "41d8f4031223f7c833d50208e231964a" + hash: "5866ceee0fd72361dd490a2163b4fc55" } Frame { msec: 4128 - hash: "69720bcca91f99f229aebc74c5e74261" + hash: "acf688ab0ceba1d5d1e0225b90fd706f" } Frame { msec: 4144 - hash: "5ee8c9dc7b238db131b3a078e46a8bbd" + hash: "02b01092c1f0e279872490306163647d" } Frame { msec: 4160 - hash: "0ac33070e0c736bc0fb5ab12fa444b5c" + hash: "9bfb6b9a2604b4c534539bc731abda10" } Frame { msec: 4176 - hash: "520a544fd92f17a14380803e253b396f" + hash: "dfa52bb483388dfee56577968d013c8f" } Frame { msec: 4192 - hash: "4a080a5154c517e6bcf24b3a1f1d7f2c" + hash: "ea77a49e7e246649248e19b72d6433c9" } Frame { msec: 4208 - hash: "e83642b0793f5a790efca65ccf20a720" + hash: "348e6a82b1491739e72c5c361158a967" } Frame { msec: 4224 - hash: "8210b9cbf19f519ee34f4bb1a6afce16" + hash: "bb52aa533659d770d01deb8bef5a8b4d" } Frame { msec: 4240 - hash: "54d04e64af5c0a3d29f2dc8c0977ed3a" + hash: "082441b5fea02f2676ad4d53aefb6927" } Frame { msec: 4256 - hash: "ae2a644f96bd7b2662ebcf4ebc33d930" + hash: "9194cd1399ceeda421944cd87182039b" } Frame { msec: 4272 - hash: "718ac9cb5ef2992b06b34e957f987b7a" + hash: "edff1333eb3a0047c527503ab3dbe71c" } Frame { msec: 4288 - hash: "a2e1dea5e5f37697c7ce1a9419b94f65" + hash: "e5c9931c8baf260d77f9cfcc1bb41101" } Frame { msec: 4304 - hash: "c0eb56c72311263d892ce65331547531" + hash: "75c37de92c5af3305733a92d405a4ec8" } Frame { msec: 4320 - hash: "585ad3efb7330de889b8cf56a51a0899" + hash: "f27082799d0860c660d16c3f9fe6e538" } Frame { msec: 4336 - hash: "236e54ae31e5ee3d08a7bc9aeaef0d9b" + hash: "5d79ff6cac5bd6943b656964c1d78b00" } Frame { msec: 4352 - hash: "d6218c8bb4da9d62bdb5d0cf5d7f8e37" + hash: "d58a1176858e49c89fc77bed260c6269" } Frame { msec: 4368 - hash: "1dddd18a4ef66df9d9b431b2860e24d1" + hash: "70deb136fd364646e73390f0aa751baa" } Frame { msec: 4384 - hash: "5b1b45e75f5a829b31c0b6eb0189da7c" + hash: "ed3bf83d975d6b8f830ce0b5a0ad64cc" } Frame { msec: 4400 - hash: "062091bc7a5f3296c669614318b80fe7" + hash: "9007b93c9b9ae3612a0f97fe2e2ae825" } Frame { msec: 4416 - hash: "836f37fe92a46233640e0bd2c0932fea" + hash: "c39f05a5471fb3a26f57feab2b99c8fa" } Frame { msec: 4432 - hash: "f14ec1544a380fc9993b39754c23c2f4" + hash: "49cd710decb32599d7a9c8e0239bf9a5" } Frame { msec: 4448 - hash: "bd5b206097f30dfce884a8c74856857d" + hash: "bb9adcb5730aeafb2956e01d9aacaee1" } Frame { msec: 4464 - hash: "592ac5bbf1c4b3a360be4d76c40a2be2" + hash: "ec2da5c6869161936e2598961c605674" } Frame { msec: 4480 - hash: "f243d823fc9977e69a008010d8db8a01" + hash: "c77e078983f12d8007c5509cd8b356f9" } Frame { msec: 4496 - hash: "ffc2da2e4c091eadaa9746b42b56d9e4" + hash: "53f5028e96fc65cc6171e78c31c16026" } Frame { msec: 4512 - hash: "ebae1fb540c6ff6b0bc9a951391e2e94" + hash: "cb35c6a887f191b2eb5de961912c94b8" } Frame { msec: 4528 - hash: "097ab9a1a1fe9743f162f57b93599fe7" + hash: "3479f78faf16d4d07b6b44d7682ac016" } Frame { msec: 4544 - hash: "61a3475bef5fd276b836cf3483526f57" + hash: "74486ca31cf165f0e55aacfae7af9e4c" } Frame { msec: 4560 - hash: "a63e2438a9cd412c2b119cd42b11009f" + hash: "86ddfc357d158deae39a7565c512d0c0" } Frame { msec: 4576 - hash: "87c129a5bf08536d3fca90375283e26b" + hash: "493634fa37f10eb02d255253171d190d" } Frame { msec: 4592 - hash: "445de6663e80d1fe1527ec5acf4ec1de" + hash: "9e3f1df1b243167b5470778e8c44f7d1" } Frame { msec: 4608 - hash: "b5ec22f95abb43c83533f7dc606667f6" + hash: "1625325eee9b4eaab2df135e0d2f0f14" } Frame { msec: 4624 - hash: "874a65c2069f4ba89301c129f884f217" + hash: "13ca683ddd0071771e853a09fc6e5842" } Frame { msec: 4640 - hash: "700bd56ecea646bbec2017007bbb5b84" + hash: "0064815fa6e2bcbbe5f2ea8222ddd2b0" } Frame { msec: 4656 - hash: "4267354fe0d24597bdb5ee1a6e9affbb" + hash: "650a0792ee0025e12f7f0ce6df72df6c" } Frame { msec: 4672 - hash: "135b2b0f4e469b207e673d1e7086cd4f" + hash: "5efbed8f4de4387572c5a98ba14f3c27" } Frame { msec: 4688 - hash: "d08dc22ddc707316483f09b796ea0380" + hash: "6733673178a1b85b22d22610a6f6c3d7" } Frame { msec: 4704 - hash: "114ad78597ede2afc4dd8bafa1d4df21" + hash: "5b725bb5951caa968d221fe7c5dd6370" } Frame { msec: 4720 - hash: "ec1b4c71f9bd63ccf6d766b0b2f68b30" + hash: "096dc0d8b3ed47894ab0289bcfe3aa8f" } Frame { msec: 4736 - hash: "cc1767ec13803959333cd35bfb2d9119" + hash: "c54617fb7b21ef8dc2bc0d8492ec476e" } Frame { msec: 4752 - hash: "0f113c0263faa47428c4d16891ac4d4f" + hash: "609a2d8f02c8b42e0921a2a900edccbd" } Frame { msec: 4768 - hash: "5381cde4763aa45c97793124e42db6f5" + hash: "519c58c8c0f62d96005b49f68648565b" } Frame { msec: 4784 - hash: "99940d6744ac1245f82d62f08c371285" + hash: "5d1dd05aade754c204d13f5de03413dd" } Frame { msec: 4800 - hash: "7797530c0cec492d09390e8f5b6410e6" + hash: "ceca317086930994c35b0ed08db71d64" } Frame { msec: 4816 - hash: "77bbed46c7eb023252cdd80d0a15f38a" + image: "cursorDelegate.5.png" } Frame { msec: 4832 - hash: "36ee4da72825e96d5f670c94865a30d8" + hash: "64fcbd6ba961634b0ba33ec5b6693945" } Frame { msec: 4848 - hash: "c64d56c1b7df0a5c63ab8ff08ae6daf9" + hash: "48a6ced88807a05aea34b47d36261347" } Frame { msec: 4864 - hash: "942e038a3426fa318212a8f245141225" + hash: "aafa7081d0f1a46478c0956ad5c56d1d" } Frame { msec: 4880 - hash: "c033ebaee12dd8fe953e91160f986c3d" + hash: "6a9f14ec3fcd119afe68cbf372b13076" } Frame { msec: 4896 - hash: "07e64024cf7eda082297f6f83dba8067" + hash: "927556bdf4e883c409ba8797001152ce" } Frame { msec: 4912 - hash: "b33cd5bbb90d435dd7ea3ab67bef88ee" + hash: "b93878281f21c85c211908086f2899e7" } Frame { msec: 4928 - hash: "90712efd7c17b0ad33d2c2c02e9eaa97" + hash: "235b68812a3cb48fc09bd8319aef40f1" } Frame { msec: 4944 - hash: "7e2e55555ee2c7e172e61ddb6365355d" + hash: "8943d47912a4206e61836d99cca835da" } Frame { msec: 4960 - hash: "87ca0584879b25336a1023ac3252fc9a" + hash: "4d06d264f71d75421c9a6d5a87d6a9ba" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png index 826d99a..c9e17f9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png index 727e873..32a5600 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png new file mode 100644 index 0000000..a63fd07 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.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 7d2f45e..c752f0f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml @@ -110,23 +110,23 @@ VisualTest { } Frame { msec: 368 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 384 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 400 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 416 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 432 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Key { type: 7 @@ -138,27 +138,27 @@ VisualTest { } Frame { msec: 448 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 464 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 480 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 496 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 512 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 528 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Key { type: 7 @@ -170,43 +170,43 @@ VisualTest { } Frame { msec: 544 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 560 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 576 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 592 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 608 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 624 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 640 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 656 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 672 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Frame { msec: 688 - hash: "86f9d315291a08f35f1c431ae802ada2" + hash: "00097f2bb5cf4ea412db48acb93ffd76" } Key { type: 6 @@ -218,23 +218,23 @@ VisualTest { } Frame { msec: 704 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 720 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 736 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 752 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 768 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Key { type: 7 @@ -246,23 +246,23 @@ VisualTest { } Frame { msec: 784 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 800 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 816 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 832 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Frame { msec: 848 - hash: "5c1e01a1dd3004ea3eff7ec215cc8fdc" + hash: "94e683223900efc840296b86ce934ec3" } Key { type: 6 @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 880 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 896 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Key { type: 7 @@ -294,23 +294,23 @@ VisualTest { } Frame { msec: 912 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 928 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 944 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 960 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + hash: "24a0a2f12031b23a98d65178f0d6d58d" } Frame { msec: 976 - hash: "b3504e4dbb653a7c039dcf8ab0351055" + image: "echoMode.1.png" } Key { type: 6 @@ -322,19 +322,19 @@ VisualTest { } Frame { msec: 992 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1008 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1024 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1040 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Key { type: 7 @@ -346,51 +346,51 @@ VisualTest { } Frame { msec: 1056 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1072 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1088 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1104 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1120 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1136 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1152 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1168 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1184 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1200 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1216 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Frame { msec: 1232 - hash: "16069bd86f3b8a896087a455e76f1059" + hash: "7dde2dd8afe7283dd0601b12831f8946" } Key { type: 6 @@ -402,15 +402,15 @@ VisualTest { } Frame { msec: 1248 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Frame { msec: 1264 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Frame { msec: 1280 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Key { type: 7 @@ -422,15 +422,15 @@ VisualTest { } Frame { msec: 1296 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Frame { msec: 1312 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Frame { msec: 1328 - hash: "fd2dfea0c188c624ad6eec189d677d8e" + hash: "e098aa83b3287f67aba57e134e871d62" } Key { type: 6 @@ -442,39 +442,39 @@ VisualTest { } Frame { msec: 1344 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1360 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1376 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1392 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1408 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1424 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1440 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1456 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Frame { msec: 1472 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1488 - hash: "8c3642f420ecc94e77cbaee8b218bddb" + hash: "3f0a9e0cfd6937c943273bc1d39ce336" } Key { type: 6 @@ -498,19 +498,19 @@ VisualTest { } Frame { msec: 1504 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1520 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1536 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1552 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1584 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1600 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1616 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1632 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Frame { msec: 1648 - hash: "80685804ddaefa46508a3cbe4cd16f59" + hash: "b78259d22dd86c1dd7ba722795e7e155" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "270f91762428ce515e0de44dea26d6ed" + hash: "1402f8182c74124a1fb34ecd78fa4819" } Frame { msec: 1680 - hash: "270f91762428ce515e0de44dea26d6ed" + hash: "1402f8182c74124a1fb34ecd78fa4819" } Frame { msec: 1696 - hash: "270f91762428ce515e0de44dea26d6ed" + hash: "1402f8182c74124a1fb34ecd78fa4819" } Frame { msec: 1712 - hash: "270f91762428ce515e0de44dea26d6ed" + hash: "1402f8182c74124a1fb34ecd78fa4819" } Frame { msec: 1728 - hash: "270f91762428ce515e0de44dea26d6ed" + hash: "1402f8182c74124a1fb34ecd78fa4819" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Frame { msec: 1776 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Frame { msec: 1792 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Frame { msec: 1824 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Frame { msec: 1840 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Frame { msec: 1856 - hash: "5ff3755b130835886503045e45700235" + hash: "93d5b02d77829aef8f8afa0f5a9e93d1" } Key { type: 6 @@ -638,19 +638,19 @@ VisualTest { } Frame { msec: 1872 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 1888 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 1904 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 1920 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Key { type: 7 @@ -662,27 +662,27 @@ VisualTest { } Frame { msec: 1936 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + image: "echoMode.2.png" } Frame { msec: 1952 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 1968 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 1984 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 2000 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Frame { msec: 2016 - hash: "deab81e7fcc4ecc31d02fccc52a4cc17" + hash: "1f3b2da0ad387187f202857ed9bb4934" } Key { type: 6 @@ -694,11 +694,11 @@ VisualTest { } Frame { msec: 2032 - hash: "f87d1f15df169e08cdd3dff50d596492" + hash: "f2fd02bca5f5bf26013957e11d3f11ce" } Frame { msec: 2048 - hash: "f87d1f15df169e08cdd3dff50d596492" + hash: "f2fd02bca5f5bf26013957e11d3f11ce" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2064 - hash: "f87d1f15df169e08cdd3dff50d596492" + hash: "f2fd02bca5f5bf26013957e11d3f11ce" } Frame { msec: 2080 - hash: "f87d1f15df169e08cdd3dff50d596492" + hash: "f2fd02bca5f5bf26013957e11d3f11ce" } Key { type: 6 @@ -726,19 +726,19 @@ VisualTest { } Frame { msec: 2096 - hash: "a50ab62d526aef826ad883f712a22325" + hash: "550f7f60df621c951ce7d5271aabc41f" } Frame { msec: 2112 - hash: "a50ab62d526aef826ad883f712a22325" + hash: "550f7f60df621c951ce7d5271aabc41f" } Frame { msec: 2128 - hash: "a50ab62d526aef826ad883f712a22325" + hash: "550f7f60df621c951ce7d5271aabc41f" } Frame { msec: 2144 - hash: "a50ab62d526aef826ad883f712a22325" + hash: "550f7f60df621c951ce7d5271aabc41f" } Key { type: 6 @@ -758,19 +758,19 @@ VisualTest { } Frame { msec: 2160 - hash: "f0c34703a0b5a0631654482fbc785b57" + hash: "d2aca851dde9f96747d3f54fb831144a" } Frame { msec: 2176 - hash: "f0c34703a0b5a0631654482fbc785b57" + hash: "d2aca851dde9f96747d3f54fb831144a" } Frame { msec: 2192 - hash: "f0c34703a0b5a0631654482fbc785b57" + hash: "d2aca851dde9f96747d3f54fb831144a" } Frame { msec: 2208 - hash: "f0c34703a0b5a0631654482fbc785b57" + hash: "d2aca851dde9f96747d3f54fb831144a" } Key { type: 6 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2224 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Key { type: 7 @@ -794,23 +794,23 @@ VisualTest { } Frame { msec: 2240 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Frame { msec: 2256 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Frame { msec: 2272 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Frame { msec: 2288 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Frame { msec: 2304 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Key { type: 7 @@ -822,11 +822,11 @@ VisualTest { } Frame { msec: 2320 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Frame { msec: 2336 - hash: "0921766e0d224b70d2c3f9f282c51143" + hash: "9ed75a4dc5b88fe1c1531833db1dd364" } Key { type: 6 @@ -838,27 +838,27 @@ VisualTest { } Frame { msec: 2352 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2368 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2384 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2400 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2416 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2432 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Key { type: 7 @@ -870,19 +870,19 @@ VisualTest { } Frame { msec: 2448 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2464 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2480 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Frame { msec: 2496 - hash: "91b44cdde36433cac6644c476e34d4f9" + hash: "39079b642f00ea767114d5a831be939a" } Key { type: 6 @@ -894,15 +894,15 @@ VisualTest { } Frame { msec: 2512 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2528 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2544 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Key { type: 7 @@ -914,130 +914,130 @@ VisualTest { } Frame { msec: 2560 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2576 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2592 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2608 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2624 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2640 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2656 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2672 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2688 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2704 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2720 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2736 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2752 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2768 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2784 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2800 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2816 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2832 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2848 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2864 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2880 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2896 - hash: "34d00f787b814ad82c025c77d6be51a2" + image: "echoMode.3.png" } Frame { msec: 2912 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2928 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2944 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2960 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2976 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 2992 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 3008 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 3024 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 3040 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } Frame { msec: 3056 - hash: "34d00f787b814ad82c025c77d6be51a2" + hash: "92035cf4d7df9e637567c7834f23b030" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png index 654a26d..4c04a1b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png 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 c523060..74ee95f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml @@ -10,98 +10,98 @@ VisualTest { } Frame { msec: 32 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 48 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 64 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 80 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 96 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 112 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 128 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 144 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 160 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 176 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 192 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 208 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 224 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 240 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 256 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 272 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 288 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 304 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 320 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 336 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 352 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 368 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 384 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } Frame { msec: 400 - hash: "09298802dfc053e2bb1b3bb2192ca5b2" + hash: "93758371bdc69b81077989e911f62fb0" } } 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 e75900a..fb0eb85 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png index 81798cc..6408df3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png index 3e37ebb..6e7b717 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png new file mode 100644 index 0000000..7829e03 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png index 313fcc2..6408df3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png index dc3abe6..9bcd6a7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png index 62b464a..04a1e66 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png index ee26c35..716f59b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png index 2ea9142..f6b9fce 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png index fb0be3c..61430e8 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png index 0122645..be9691f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png index 24da450..e2c0a7d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.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 3c7eb2c..d401d86 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml @@ -10,231 +10,231 @@ VisualTest { } Frame { msec: 32 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 48 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 64 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 80 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 96 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 112 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 128 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 144 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 160 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 176 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 192 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 208 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 224 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 240 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 256 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 272 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 288 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 304 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 320 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 336 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 352 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 368 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 384 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 400 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 416 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 432 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 448 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 464 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 480 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 496 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 512 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 528 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 544 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 560 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 576 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 592 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 608 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 624 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 640 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 656 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 672 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 688 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 704 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 720 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 736 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 752 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 768 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 784 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 800 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 816 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 832 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 848 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 864 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 880 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 896 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 912 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Frame { msec: 928 - hash: "9d5b9f785409527b8f315fef560a4688" + hash: "2e747d3e26cc85e4c36c42097ab3f379" } Mouse { type: 2 @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 944 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "227431895322480615fb61a635305230" } Mouse { type: 3 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 960 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "227431895322480615fb61a635305230" } Mouse { type: 4 @@ -270,27 +270,27 @@ VisualTest { } Frame { msec: 976 - hash: "957c85bfa6586d5d92aa3689c178944f" + image: "usingLineEdit.1.png" } Frame { msec: 992 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1008 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1024 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1040 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1056 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Mouse { type: 3 @@ -302,79 +302,79 @@ VisualTest { } Frame { msec: 1072 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1088 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1104 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1120 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1136 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1152 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1168 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1184 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1200 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1216 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1232 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1248 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1264 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1280 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1296 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1312 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1328 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1344 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1360 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Key { type: 6 @@ -386,159 +386,159 @@ VisualTest { } Frame { msec: 1376 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1392 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1408 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1424 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1440 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1456 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1472 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1488 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1504 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1520 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1536 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1552 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1568 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1584 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1600 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1616 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1632 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1648 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1664 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1680 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1696 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1712 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1728 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1744 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1760 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1776 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1792 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1808 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1824 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1840 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1856 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1872 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1888 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1904 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1920 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1936 - hash: "957c85bfa6586d5d92aa3689c178944f" + image: "usingLineEdit.2.png" } Frame { msec: 1952 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1968 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 1984 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Key { type: 6 @@ -550,35 +550,35 @@ VisualTest { } Frame { msec: 2000 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2016 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2032 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2048 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2064 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2080 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2096 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2112 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Key { type: 7 @@ -598,95 +598,95 @@ VisualTest { } Frame { msec: 2128 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2144 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2160 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2176 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2192 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2208 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2224 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2240 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2256 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2272 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2288 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2304 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2320 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2336 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2352 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2368 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2384 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2400 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2416 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2432 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2448 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2464 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Frame { msec: 2480 - hash: "957c85bfa6586d5d92aa3689c178944f" + hash: "29ccc1cc5ae395d91c92ed4645d3b376" } Key { type: 6 @@ -698,27 +698,27 @@ VisualTest { } Frame { msec: 2496 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2512 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2528 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2544 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2560 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2576 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Key { type: 7 @@ -730,55 +730,55 @@ VisualTest { } Frame { msec: 2592 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2608 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2624 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2640 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2656 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2672 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2688 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2704 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2720 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2736 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2752 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2768 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2784 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Key { type: 6 @@ -790,111 +790,111 @@ VisualTest { } Frame { msec: 2800 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2816 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2832 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2848 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2864 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2880 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2896 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + image: "usingLineEdit.3.png" } Frame { msec: 2912 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2928 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2944 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2960 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2976 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 2992 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3008 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3024 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3040 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3056 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3072 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3088 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3104 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3120 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3136 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3152 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3168 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3184 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3200 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Frame { msec: 3216 - hash: "ebd6e6bbd0edaffed688dd5fa2328393" + hash: "62afc4e3874da1bcd7e86860bbf6db20" } Key { type: 6 @@ -906,31 +906,31 @@ VisualTest { } Frame { msec: 3232 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3248 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3264 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3280 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3296 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3312 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3328 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Key { type: 7 @@ -942,59 +942,59 @@ VisualTest { } Frame { msec: 3344 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3360 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3376 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3392 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3408 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3424 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3440 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3456 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3472 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3488 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3504 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3520 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3536 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Frame { msec: 3552 - hash: "923335b8fdb038fe10c8c557845c2ae1" + hash: "dc7187f95e9f178cd5d5a0c4e0d637c3" } Key { type: 6 @@ -1006,35 +1006,35 @@ VisualTest { } Frame { msec: 3568 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3584 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3600 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3616 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3632 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3648 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3664 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3680 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Key { type: 7 @@ -1046,131 +1046,131 @@ VisualTest { } Frame { msec: 3696 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3712 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3728 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3744 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3760 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3776 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3792 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3808 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3824 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3840 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3856 - hash: "3e9cbf56be37f593e907759285ddebdb" + image: "usingLineEdit.4.png" } Frame { msec: 3872 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3888 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3904 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3920 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3936 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3952 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3968 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 3984 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4000 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4016 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4032 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4048 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4064 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4080 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4096 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4112 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4128 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4144 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4160 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4176 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4192 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Key { type: 7 @@ -1182,131 +1182,131 @@ VisualTest { } Frame { msec: 4208 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4224 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4240 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4256 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4272 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4288 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4304 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4320 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4336 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4352 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4368 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4384 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4400 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4416 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4432 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4448 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4464 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4480 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4496 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4512 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4528 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4544 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4560 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4576 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4592 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4608 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4624 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4640 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4656 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4672 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4688 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Frame { msec: 4704 - hash: "3e9cbf56be37f593e907759285ddebdb" + hash: "942d2dde9d40eb0864831831b9056525" } Mouse { type: 2 @@ -1318,27 +1318,27 @@ VisualTest { } Frame { msec: 4720 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4736 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4752 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4768 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4784 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4800 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Mouse { type: 3 @@ -1350,143 +1350,143 @@ VisualTest { } Frame { msec: 4816 - hash: "39ce4d31df138a329a21056b8d397fd7" + image: "usingLineEdit.5.png" } Frame { msec: 4832 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4848 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4864 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4880 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4896 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4912 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4928 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4944 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4960 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4976 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 4992 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5008 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5024 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5040 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5056 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5072 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5088 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5104 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5120 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5136 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5152 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5168 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5184 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5200 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5216 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5232 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5248 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5264 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5280 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5296 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5312 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5328 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5344 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Frame { msec: 5360 - hash: "39ce4d31df138a329a21056b8d397fd7" + hash: "9103b19d12565b6d28380f48acfce3c3" } Key { type: 6 @@ -1498,67 +1498,67 @@ VisualTest { } Frame { msec: 5376 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5392 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5408 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5424 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5440 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5456 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5472 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5488 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5504 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5520 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5536 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5552 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5568 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5584 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5600 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Frame { msec: 5616 - hash: "ed58b79d6459243c991a2f941279f88e" + hash: "3c6258003fba9b4a61bde3a5eb2394d5" } Key { type: 7 @@ -1578,11 +1578,11 @@ VisualTest { } Frame { msec: 5632 - hash: "c5d53d11b73e52746d8cdc7de15198cb" + hash: "f2c1bfd1a4ffb5bc0a5a354707a8ecf8" } Frame { msec: 5648 - hash: "c5d53d11b73e52746d8cdc7de15198cb" + hash: "f2c1bfd1a4ffb5bc0a5a354707a8ecf8" } Key { type: 7 @@ -1602,11 +1602,11 @@ VisualTest { } Frame { msec: 5664 - hash: "ba3ef31e650737ec5b7477baa4ab5ecf" + hash: "9f4fc35d1b6f5984972da9f819a4031e" } Frame { msec: 5680 - hash: "ba3ef31e650737ec5b7477baa4ab5ecf" + hash: "9f4fc35d1b6f5984972da9f819a4031e" } Key { type: 7 @@ -1626,11 +1626,11 @@ VisualTest { } Frame { msec: 5696 - hash: "59098eca4502479da33d40ec82896330" + hash: "68e84d0e6c0febe00cbc8ff13e7efae1" } Frame { msec: 5712 - hash: "59098eca4502479da33d40ec82896330" + hash: "68e84d0e6c0febe00cbc8ff13e7efae1" } Key { type: 7 @@ -1650,11 +1650,11 @@ VisualTest { } Frame { msec: 5728 - hash: "9c1888b9575771f653d672c19ab4083f" + hash: "f0c61e706be86d31f124d6405c14c5b4" } Frame { msec: 5744 - hash: "9c1888b9575771f653d672c19ab4083f" + hash: "f0c61e706be86d31f124d6405c14c5b4" } Key { type: 7 @@ -1674,11 +1674,11 @@ VisualTest { } Frame { msec: 5760 - hash: "48bb05f44207f641b573d43043882aa2" + hash: "dbca3c9292e2a6efac887a33b735607f" } Frame { msec: 5776 - hash: "48bb05f44207f641b573d43043882aa2" + image: "usingLineEdit.6.png" } Key { type: 7 @@ -1698,11 +1698,11 @@ VisualTest { } Frame { msec: 5792 - hash: "f5cb70509c060343a8c9b57d26ecf4ea" + hash: "6cb5d4a9c79ac3dc6522c5a1022b2e6e" } Frame { msec: 5808 - hash: "f5cb70509c060343a8c9b57d26ecf4ea" + hash: "6cb5d4a9c79ac3dc6522c5a1022b2e6e" } Key { type: 7 @@ -1722,11 +1722,11 @@ VisualTest { } Frame { msec: 5824 - hash: "5bdfe389421df56140d27a21bbcc10d4" + hash: "71d67363467f3053393382b887f43401" } Frame { msec: 5840 - hash: "5bdfe389421df56140d27a21bbcc10d4" + hash: "71d67363467f3053393382b887f43401" } Key { type: 7 @@ -1738,7 +1738,7 @@ VisualTest { } Frame { msec: 5856 - hash: "5bdfe389421df56140d27a21bbcc10d4" + hash: "71d67363467f3053393382b887f43401" } Key { type: 6 @@ -1750,11 +1750,11 @@ VisualTest { } Frame { msec: 5872 - hash: "0f48c779e033240e87675b43cfca02c5" + hash: "db9175c9b81cb4b43f6d4d80549a5ae1" } Frame { msec: 5888 - hash: "0f48c779e033240e87675b43cfca02c5" + hash: "db9175c9b81cb4b43f6d4d80549a5ae1" } Key { type: 7 @@ -1774,7 +1774,7 @@ VisualTest { } Frame { msec: 5904 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Key { type: 7 @@ -1786,39 +1786,39 @@ VisualTest { } Frame { msec: 5920 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 5936 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 5952 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 5968 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 5984 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6000 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6016 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6032 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6048 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Key { type: 6 @@ -1830,27 +1830,27 @@ VisualTest { } Frame { msec: 6064 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6080 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6096 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6112 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6128 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Frame { msec: 6144 - hash: "f5e148d32ec832bb9c4fb49016da7903" + hash: "535d1bbe1d2147d70bec0b7d932eff41" } Key { type: 6 @@ -1862,67 +1862,67 @@ VisualTest { } Frame { msec: 6160 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6176 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6192 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6208 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6224 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6240 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6256 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6272 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6288 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6304 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6320 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6336 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6352 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6368 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6384 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Frame { msec: 6400 - hash: "ac4c53142eea27d7148c74de76cdc4d4" + hash: "63132fa980a9fdcce415af1503f34ca6" } Key { type: 7 @@ -1942,11 +1942,11 @@ VisualTest { } Frame { msec: 6416 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6432 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Key { type: 7 @@ -1966,11 +1966,11 @@ VisualTest { } Frame { msec: 6448 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6464 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Key { type: 7 @@ -1998,83 +1998,83 @@ VisualTest { } Frame { msec: 6480 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6496 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6512 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6528 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6544 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6560 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6576 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6592 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6608 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6624 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6640 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6656 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6672 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6688 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6704 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6720 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6736 - hash: "ecfa95feb59486098b758894cba272c8" + image: "usingLineEdit.7.png" } Frame { msec: 6752 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6768 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6784 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Key { type: 6 @@ -2086,7 +2086,7 @@ VisualTest { } Frame { msec: 6800 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Key { type: 7 @@ -2098,39 +2098,39 @@ VisualTest { } Frame { msec: 6816 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6832 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6848 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6864 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6880 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6896 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6912 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6928 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Frame { msec: 6944 - hash: "ecfa95feb59486098b758894cba272c8" + hash: "cf2ccad24e42d8764c1395e076f3a0df" } Key { type: 6 @@ -2142,19 +2142,19 @@ VisualTest { } Frame { msec: 6960 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 6976 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 6992 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 7008 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Key { type: 7 @@ -2166,23 +2166,23 @@ VisualTest { } Frame { msec: 7024 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 7040 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 7056 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 7072 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Frame { msec: 7088 - hash: "012fbe791afb6bb8b97091fbec1b0add" + hash: "43217b3192aea23b17e2a2e7d820def8" } Key { type: 6 @@ -2194,19 +2194,19 @@ VisualTest { } Frame { msec: 7104 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7120 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7136 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7152 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Key { type: 7 @@ -2218,31 +2218,31 @@ VisualTest { } Frame { msec: 7168 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7184 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7200 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7216 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7232 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7248 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Frame { msec: 7264 - hash: "d1246ecb1e587b9618d4affb6303581b" + hash: "02dceb1b71d82bfbea5fcfb630fef22d" } Key { type: 6 @@ -2254,23 +2254,23 @@ VisualTest { } Frame { msec: 7280 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7296 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7312 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7328 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7344 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Key { type: 7 @@ -2282,47 +2282,47 @@ VisualTest { } Frame { msec: 7360 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7376 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7392 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7408 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7424 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7440 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7456 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7472 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7488 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7504 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7520 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Key { type: 7 @@ -2334,247 +2334,247 @@ VisualTest { } Frame { msec: 7536 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7552 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7568 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7584 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7600 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7616 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7632 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7648 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7664 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7680 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7696 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + image: "usingLineEdit.8.png" } Frame { msec: 7712 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7728 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7744 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7760 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7776 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7792 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7808 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7824 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7840 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7856 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7872 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7888 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7904 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7920 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7936 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7952 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7968 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 7984 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8000 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8016 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8032 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8048 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8064 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8080 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8096 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8112 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8128 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8144 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8160 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8176 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8192 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8208 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8224 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8240 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8256 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8272 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8288 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8304 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8320 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8336 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8352 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8368 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8384 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8400 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8416 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8432 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8448 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8464 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8480 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Frame { msec: 8496 - hash: "28b1455bb7b150afb4bec88f3328a1f6" + hash: "cff8ff96fe5f67faac7a04805d2a945b" } Mouse { type: 2 @@ -2586,19 +2586,19 @@ VisualTest { } Frame { msec: 8512 - hash: "edb037dfb1fe973df3896e4a2d649b8c" + hash: "b901d339089fccecd217f562e3b0253a" } Frame { msec: 8528 - hash: "edb037dfb1fe973df3896e4a2d649b8c" + hash: "b901d339089fccecd217f562e3b0253a" } Frame { msec: 8544 - hash: "edb037dfb1fe973df3896e4a2d649b8c" + hash: "b901d339089fccecd217f562e3b0253a" } Frame { msec: 8560 - hash: "edb037dfb1fe973df3896e4a2d649b8c" + hash: "b901d339089fccecd217f562e3b0253a" } Mouse { type: 5 @@ -2618,7 +2618,7 @@ VisualTest { } Frame { msec: 8576 - hash: "edb037dfb1fe973df3896e4a2d649b8c" + hash: "b901d339089fccecd217f562e3b0253a" } Mouse { type: 5 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 8592 - hash: "56e3c2d792e204e7d9758263edb6ab24" + hash: "e1349a4271e99bb99b46271fd4a3190e" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 8608 - hash: "74b47cf865838cdb3b29cd2104d990fe" + hash: "e1349a4271e99bb99b46271fd4a3190e" } Mouse { type: 5 @@ -2662,7 +2662,7 @@ VisualTest { } Frame { msec: 8624 - hash: "b7f624c97fc369c66314ecbb86549686" + hash: "69fafd9730dc1bb6fdb5485a2b16c025" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 8640 - hash: "b7f624c97fc369c66314ecbb86549686" + hash: "69fafd9730dc1bb6fdb5485a2b16c025" } Mouse { type: 5 @@ -2694,7 +2694,7 @@ VisualTest { } Frame { msec: 8656 - hash: "b7f624c97fc369c66314ecbb86549686" + image: "usingLineEdit.9.png" } Mouse { type: 5 @@ -2714,7 +2714,7 @@ VisualTest { } Frame { msec: 8672 - hash: "51219dfa7fc899bdba40d50b90ca3ca6" + hash: "2271dcb95090d595070fd1fcde1b8792" } Mouse { type: 5 @@ -2726,7 +2726,7 @@ VisualTest { } Frame { msec: 8688 - hash: "51219dfa7fc899bdba40d50b90ca3ca6" + hash: "2271dcb95090d595070fd1fcde1b8792" } Mouse { type: 5 @@ -2746,7 +2746,7 @@ VisualTest { } Frame { msec: 8704 - hash: "51219dfa7fc899bdba40d50b90ca3ca6" + hash: "2271dcb95090d595070fd1fcde1b8792" } Mouse { type: 5 @@ -2766,7 +2766,7 @@ VisualTest { } Frame { msec: 8720 - hash: "51219dfa7fc899bdba40d50b90ca3ca6" + hash: "2271dcb95090d595070fd1fcde1b8792" } Mouse { type: 5 @@ -2786,7 +2786,7 @@ VisualTest { } Frame { msec: 8736 - hash: "9320132e49323d536d435ce4f2263502" + hash: "0bc5d6855feb4174bdf64b95ff9f7df2" } Mouse { type: 5 @@ -2806,7 +2806,7 @@ VisualTest { } Frame { msec: 8752 - hash: "9320132e49323d536d435ce4f2263502" + hash: "0bc5d6855feb4174bdf64b95ff9f7df2" } Mouse { type: 5 @@ -2826,7 +2826,7 @@ VisualTest { } Frame { msec: 8768 - hash: "9320132e49323d536d435ce4f2263502" + hash: "0bc5d6855feb4174bdf64b95ff9f7df2" } Mouse { type: 5 @@ -2846,7 +2846,7 @@ VisualTest { } Frame { msec: 8784 - hash: "ad318ee661054ed3b628c312467dc789" + hash: "0bc5d6855feb4174bdf64b95ff9f7df2" } Mouse { type: 5 @@ -2866,7 +2866,7 @@ VisualTest { } Frame { msec: 8800 - hash: "ad318ee661054ed3b628c312467dc789" + hash: "fcd2c706258d7f84245d7f4c4f578711" } Mouse { type: 5 @@ -2886,7 +2886,7 @@ VisualTest { } Frame { msec: 8816 - hash: "ad318ee661054ed3b628c312467dc789" + hash: "fcd2c706258d7f84245d7f4c4f578711" } Mouse { type: 5 @@ -2906,7 +2906,7 @@ VisualTest { } Frame { msec: 8832 - hash: "6916d64662dd8accaa2c70cbd9b94af9" + hash: "95fbe459d9d4b9304f7743ed2955761a" } Mouse { type: 5 @@ -2926,7 +2926,7 @@ VisualTest { } Frame { msec: 8848 - hash: "dd995b598e90d482291b94f9cbebace9" + hash: "38618228457b1b8a5b5572f95cefa3c0" } Mouse { type: 5 @@ -2946,7 +2946,7 @@ VisualTest { } Frame { msec: 8864 - hash: "8fb2e565879fdb7ef5ca53a142c1ea45" + hash: "fabf4dcd599440c0aed8f53f3775bfea" } Mouse { type: 5 @@ -2966,7 +2966,7 @@ VisualTest { } Frame { msec: 8880 - hash: "6cdab9c68965444420401bb95c2d059b" + hash: "4f93faf3f05bf4a0f93806a57249f264" } Mouse { type: 5 @@ -2986,7 +2986,7 @@ VisualTest { } Frame { msec: 8896 - hash: "d11156abb2ef56ef6b8c4e78e2391d8a" + hash: "3ebbfb29f0dd1f8466bf7f05f6e28c84" } Mouse { type: 5 @@ -3006,7 +3006,7 @@ VisualTest { } Frame { msec: 8912 - hash: "2390c7bfd983c14a6ff4c3573741e2fa" + hash: "119df59fa65d757270027302fcb54a4a" } Mouse { type: 5 @@ -3026,7 +3026,7 @@ VisualTest { } Frame { msec: 8928 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "4fe3e6954d29a485220979dc5a41d22f" } Mouse { type: 5 @@ -3046,7 +3046,7 @@ VisualTest { } Frame { msec: 8944 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3066,11 +3066,11 @@ VisualTest { } Frame { msec: 8960 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 8976 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3090,7 +3090,7 @@ VisualTest { } Frame { msec: 8992 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3102,55 +3102,55 @@ VisualTest { } Frame { msec: 9008 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9024 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9040 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9056 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9072 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9088 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9104 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9120 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9136 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9152 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9168 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9184 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Frame { msec: 9200 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3162,7 +3162,7 @@ VisualTest { } Frame { msec: 9216 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3174,7 +3174,7 @@ VisualTest { } Frame { msec: 9232 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3194,7 +3194,7 @@ VisualTest { } Frame { msec: 9248 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3214,7 +3214,7 @@ VisualTest { } Frame { msec: 9264 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3234,7 +3234,7 @@ VisualTest { } Frame { msec: 9280 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3254,7 +3254,7 @@ VisualTest { } Frame { msec: 9296 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3274,7 +3274,7 @@ VisualTest { } Frame { msec: 9312 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3294,7 +3294,7 @@ VisualTest { } Frame { msec: 9328 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3314,7 +3314,7 @@ VisualTest { } Frame { msec: 9344 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3334,7 +3334,7 @@ VisualTest { } Frame { msec: 9360 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "a55b441971f1964165ecb5204138de6a" } Mouse { type: 5 @@ -3354,7 +3354,7 @@ VisualTest { } Frame { msec: 9376 - hash: "e7442142350b9fdaf7fc7e763cafbaf5" + hash: "fb89eb81e839415d143584bfa5a173bb" } Mouse { type: 5 @@ -3374,7 +3374,7 @@ VisualTest { } Frame { msec: 9392 - hash: "934022d70c2d094d6463d895803f2a79" + hash: "fb89eb81e839415d143584bfa5a173bb" } Mouse { type: 5 @@ -3394,7 +3394,7 @@ VisualTest { } Frame { msec: 9408 - hash: "934022d70c2d094d6463d895803f2a79" + hash: "fb89eb81e839415d143584bfa5a173bb" } Mouse { type: 5 @@ -3414,7 +3414,7 @@ VisualTest { } Frame { msec: 9424 - hash: "48caf4c2d3a5a6058b1ffa221ee77d83" + hash: "d1f1478814752c8c8174b13cb8004840" } Mouse { type: 5 @@ -3434,7 +3434,7 @@ VisualTest { } Frame { msec: 9440 - hash: "8e22c6013721d350acf1635f1c00488d" + hash: "ab1fc96781b13ab2d1529733314b06b0" } Mouse { type: 5 @@ -3454,7 +3454,7 @@ VisualTest { } Frame { msec: 9456 - hash: "c8dd72bfeec38d825dc7832f8bf7116d" + hash: "ab1fc96781b13ab2d1529733314b06b0" } Mouse { type: 5 @@ -3474,7 +3474,7 @@ VisualTest { } Frame { msec: 9472 - hash: "f3e934f22fead73fd52ab26d4f3fd480" + hash: "6611c3444e8e1c580f9520729f72e3f1" } Mouse { type: 5 @@ -3494,7 +3494,7 @@ VisualTest { } Frame { msec: 9488 - hash: "7fc03d3341860a984be91feec0b67da2" + hash: "6611c3444e8e1c580f9520729f72e3f1" } Mouse { type: 5 @@ -3514,7 +3514,7 @@ VisualTest { } Frame { msec: 9504 - hash: "7fc03d3341860a984be91feec0b67da2" + hash: "ffcd54ddae6c10f13719a219991676f8" } Mouse { type: 5 @@ -3534,7 +3534,7 @@ VisualTest { } Frame { msec: 9520 - hash: "a1eacc5be14a2c411660662dd9e78b2f" + hash: "ffcd54ddae6c10f13719a219991676f8" } Mouse { type: 5 @@ -3546,7 +3546,7 @@ VisualTest { } Frame { msec: 9536 - hash: "a1eacc5be14a2c411660662dd9e78b2f" + hash: "ffcd54ddae6c10f13719a219991676f8" } Mouse { type: 5 @@ -3566,7 +3566,7 @@ VisualTest { } Frame { msec: 9552 - hash: "a1eacc5be14a2c411660662dd9e78b2f" + hash: "c238beb854cf7fc10b6e66da121cce67" } Mouse { type: 5 @@ -3586,7 +3586,7 @@ VisualTest { } Frame { msec: 9568 - hash: "6808d46fa17f9e359c38aeca72466c97" + hash: "c238beb854cf7fc10b6e66da121cce67" } Mouse { type: 5 @@ -3606,7 +3606,7 @@ VisualTest { } Frame { msec: 9584 - hash: "0b4b632291769b48d942f5aea91a8ae5" + hash: "f14cf91c575fc535a78f9b5ed8cb0e77" } Mouse { type: 5 @@ -3626,7 +3626,7 @@ VisualTest { } Frame { msec: 9600 - hash: "0b4b632291769b48d942f5aea91a8ae5" + hash: "92f069682e3da947d3dc933710651f89" } Mouse { type: 5 @@ -3638,7 +3638,7 @@ VisualTest { } Frame { msec: 9616 - hash: "0b4b632291769b48d942f5aea91a8ae5" + image: "usingLineEdit.10.png" } Mouse { type: 5 @@ -3658,7 +3658,7 @@ VisualTest { } Frame { msec: 9632 - hash: "d730471882eacaf3280295d902c3927f" + hash: "92f069682e3da947d3dc933710651f89" } Mouse { type: 5 @@ -3678,7 +3678,7 @@ VisualTest { } Frame { msec: 9648 - hash: "d730471882eacaf3280295d902c3927f" + hash: "92f069682e3da947d3dc933710651f89" } Mouse { type: 5 @@ -3698,7 +3698,7 @@ VisualTest { } Frame { msec: 9664 - hash: "f2a17005ff90345b440475a772277495" + hash: "4ca308a9d8f3bb87716572c68fad7040" } Mouse { type: 5 @@ -3718,7 +3718,7 @@ VisualTest { } Frame { msec: 9680 - hash: "62edb249cc9fcb08e5426f9acd54ad36" + hash: "4881497fb4545083332f9df690c318ca" } Mouse { type: 5 @@ -3738,7 +3738,7 @@ VisualTest { } Frame { msec: 9696 - hash: "ef6497718983eb548ec2aa43781d2555" + hash: "a71d94653ec839a0f1f135f3c83653d4" } Mouse { type: 5 @@ -3758,7 +3758,7 @@ VisualTest { } Frame { msec: 9712 - hash: "d5b90efb68335fc4aa1fc222c67d1f53" + hash: "547567cd4c4c265a6f9684c8af537825" } Mouse { type: 5 @@ -3778,7 +3778,7 @@ VisualTest { } Frame { msec: 9728 - hash: "a8cbbbe9cffd27002e8a1b3851b23bb0" + hash: "b6776260aa3bf44338ba6ac694b855d3" } Mouse { type: 5 @@ -3798,7 +3798,7 @@ VisualTest { } Frame { msec: 9744 - hash: "a448d8d01e84961098d6b86319013d5f" + hash: "190e18262e86e3341e0131cfe0d15edc" } Mouse { type: 5 @@ -3818,7 +3818,7 @@ VisualTest { } Frame { msec: 9760 - hash: "afa98074edfb7b0e904f5645f592efae" + hash: "3b6059bba0a5092d3667bf2b1c1b6c71" } Mouse { type: 5 @@ -3838,7 +3838,7 @@ VisualTest { } Frame { msec: 9776 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3858,7 +3858,7 @@ VisualTest { } Frame { msec: 9792 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3870,7 +3870,7 @@ VisualTest { } Frame { msec: 9808 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3882,7 +3882,7 @@ VisualTest { } Frame { msec: 9824 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3894,7 +3894,7 @@ VisualTest { } Frame { msec: 9840 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3906,11 +3906,11 @@ VisualTest { } Frame { msec: 9856 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 9872 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3922,7 +3922,7 @@ VisualTest { } Frame { msec: 9888 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3934,7 +3934,7 @@ VisualTest { } Frame { msec: 9904 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3946,7 +3946,7 @@ VisualTest { } Frame { msec: 9920 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3958,11 +3958,11 @@ VisualTest { } Frame { msec: 9936 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 9952 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3974,7 +3974,7 @@ VisualTest { } Frame { msec: 9968 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9984 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -3998,11 +3998,11 @@ VisualTest { } Frame { msec: 10000 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10016 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 5 @@ -4014,59 +4014,59 @@ VisualTest { } Frame { msec: 10032 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10048 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10064 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10080 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10096 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10112 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10128 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10144 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10160 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10176 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10192 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10208 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10224 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10240 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Mouse { type: 3 @@ -4078,258 +4078,258 @@ VisualTest { } Frame { msec: 10256 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10272 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10288 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10304 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10320 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10336 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10352 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10368 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10384 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10400 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10416 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10432 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10448 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10464 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10480 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10496 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10512 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10528 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10544 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10560 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10576 - hash: "020ac5797abe98f97c4839afc67aac18" + image: "usingLineEdit.11.png" } Frame { msec: 10592 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10608 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10624 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10640 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10656 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10672 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10688 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10704 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10720 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10736 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10752 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10768 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10784 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10800 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10816 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10832 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10848 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10864 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10880 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10896 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10912 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10928 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10944 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10960 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10976 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 10992 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11008 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11024 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11040 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11056 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11072 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11088 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11104 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11120 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11136 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11152 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11168 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11184 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11200 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11216 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11232 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11248 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } Frame { msec: 11264 - hash: "020ac5797abe98f97c4839afc67aac18" + hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" } } diff --git a/tests/auto/declarative/qmlvisual/rect/GradientRect.qml b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml index dea5377..5ac7dcf 100644 --- a/tests/auto/declarative/qmlvisual/rect/GradientRect.qml +++ b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml @@ -9,11 +9,11 @@ Item { property int borderWidth property bool smooth: false - width: 80; height: 80 + width: 40; height: 40 Item { anchors.centerIn: parent; rotation: rect.rotation; Rectangle { - anchors.centerIn: parent; width: 80; height: 80 + anchors.centerIn: parent; width: 40; height: 40 border.color: rect.border; border.width: rect.border != Qt.rgba(0,0,0,0) ? 2 : 0 radius: rect.radius; smooth: rect.smooth gradient: Gradient { diff --git a/tests/auto/declarative/qmlvisual/rect/MyRect.qml b/tests/auto/declarative/qmlvisual/rect/MyRect.qml index a595f7d..99226d3 100644 --- a/tests/auto/declarative/qmlvisual/rect/MyRect.qml +++ b/tests/auto/declarative/qmlvisual/rect/MyRect.qml @@ -9,11 +9,11 @@ Item { property int borderWidth property bool smooth: false - width: 80; height: 80 + width: 40; height: 40 Item { anchors.centerIn: parent; rotation: rect.rotation; Rectangle { - anchors.centerIn: parent; width: 80; height: 80 + anchors.centerIn: parent; width: 40; height: 40 color: rect.color; border.color: rect.border; border.width: rect.border != Qt.rgba(0,0,0,0) ? 2 : 0 radius: rect.radius; smooth: rect.smooth } diff --git a/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png index 391e760..1dc9372 100644 Binary files a/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png and b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png differ diff --git a/tests/auto/declarative/qmlvisual/rect/rect-painting.qml b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml index 3c5d90c..2de414d 100644 --- a/tests/auto/declarative/qmlvisual/rect/rect-painting.qml +++ b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml @@ -1,7 +1,7 @@ import QtQuick 1.0 Rectangle { - width: 900; height: 500 + width: 450; height: 250 color: "white" Rectangle { @@ -14,7 +14,7 @@ Rectangle { Grid { anchors.centerIn: parent - columns: 8; rows:4; spacing: 30 + columns: 8; rows:4; spacing: 15 MyRect { color: "lightsteelblue" } MyRect { color: "lightsteelblue"; border: "gray" } -- cgit v0.12 From 742b9679cc9fe2d2183b383428642600425920eb Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 16 Nov 2010 17:38:45 +1000 Subject: Remove some excess pngs These are no longer used by these tests Task-number: QTBUG-14792 --- .../parallelAnimation/data/parallelAnimation.0.png | Bin 774 -> 0 bytes .../parallelAnimation/data/parallelAnimation.1.png | Bin 762 -> 0 bytes .../parallelAnimation/data/parallelAnimation.2.png | Bin 773 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.0.png | Bin 3742 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.1.png | Bin 3727 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.2.png | Bin 3742 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.3.png | Bin 3628 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.4.png | Bin 3610 -> 0 bytes .../animation/parentAnimation/data/parentAnimation.5.png | Bin 3742 -> 0 bytes .../qdeclarativeflickable/data/flickable-vertical.10.png | Bin 1966 -> 0 bytes .../qdeclarativeflickable/data/flickable-vertical.11.png | Bin 1966 -> 0 bytes .../qdeclarativeflickable/data/flickable-vertical.12.png | Bin 1966 -> 0 bytes .../qdeclarativeflickable/data/flickable-vertical.13.png | Bin 1972 -> 0 bytes .../qdeclarativeflickable/data/flickable-vertical.9.png | Bin 2002 -> 0 bytes .../qdeclarativepathview/data/test-pathview-2.6.png | Bin 2286 -> 0 bytes 15 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png delete mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png deleted file mode 100644 index 82c18d7..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png deleted file mode 100644 index b9a3b89..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png deleted file mode 100644 index 789615b..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png deleted file mode 100644 index 7d41abc..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png deleted file mode 100644 index 16b95ab..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png deleted file mode 100644 index 7d41abc..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png deleted file mode 100644 index 800bf12..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png deleted file mode 100644 index d0155bb..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png deleted file mode 100644 index 7d41abc..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png deleted file mode 100644 index d525858..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png deleted file mode 100644 index d525858..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png deleted file mode 100644 index d525858..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png deleted file mode 100644 index 167703b..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png deleted file mode 100644 index 593cf12..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png deleted file mode 100644 index 2c6c5f9..0000000 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png and /dev/null differ -- cgit v0.12 From 07b9a2f2f74a42c83ac95f144392437001a455bb Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 16 Nov 2010 18:25:06 +1000 Subject: Fix regression due to 6cf397f7ac35a058096528a7ad8bfaf623b30747 PathView needed to update internal item count when delegate was set. VDM::count() didn't call into the internal VDM when querying count. Task-number: QTBUG-14781 Reviewed-by: Alan Alpert --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 1 + src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index e6eaa2f..7c79afe 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1011,6 +1011,7 @@ void QDeclarativePathView::setDelegate(QDeclarativeComponent *delegate) } if (QDeclarativeVisualDataModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(delegate); + d->modelCount = dataModel->count(); d->regenerate(); emit delegateChanged(); } diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 9601db0..4fe6c4c 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_visualItemModel) + return d->m_visualItemModel->count(); if (!d->m_delegate) return 0; return d->modelCount(); -- cgit v0.12 From 7ecf74a178d55c8d1b09265432258dfd2881c648 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 16 Nov 2010 18:46:50 +1000 Subject: Added missing symbols in QtCore and QtGui def files needed by fix made to QT-4077 --- src/s60installs/bwins/QtCoreu.def | 4 +++- src/s60installs/eabi/QtGuiu.def | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index f4e3a28..6ecb403 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -2960,7 +2960,7 @@ EXPORTS ?qvsnprintf@@YAHPADIPBD0@Z @ 2959 NONAME ; int qvsnprintf(char *, unsigned int, char const *, char *) ?raiseError@QXmlStreamReader@@QAEXABVQString@@@Z @ 2960 NONAME ; void QXmlStreamReader::raiseError(class QString const &) ?rangeContains@QXmlUtils@@CA_NPBVQXmlCharRange@@0VQChar@@@Z @ 2961 NONAME ; bool QXmlUtils::rangeContains(class QXmlCharRange const *, class QXmlCharRange const *, class QChar) - ?reactivateDeferredActiveObjects@QEventDispatcherSymbian@@QAEXXZ @ 2962 NONAME ; void QEventDispatcherSymbian::reactivateDeferredActiveObjects(void) + ?reactivateDeferredActiveObjects@QEventDispatcherSymbian@@QAEXXZ @ 2962 NONAME ABSENT ; void QEventDispatcherSymbian::reactivateDeferredActiveObjects(void) ?reactivateSocketNotifier@QEventDispatcherSymbian@@QAEXPAVQSocketNotifier@@@Z @ 2963 NONAME ; void QEventDispatcherSymbian::reactivateSocketNotifier(class QSocketNotifier *) ?read@QAbstractFileEngine@@UAE_JPAD_J@Z @ 2964 NONAME ; long long QAbstractFileEngine::read(char *, long long) ?read@QFSFileEngine@@UAE_JPAD_J@Z @ 2965 NONAME ; long long QFSFileEngine::read(char *, long long) @@ -4484,4 +4484,6 @@ EXPORTS ?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4483 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void) ?qt_symbian_SetupThreadHeap@@YAHHAAUSStdEpocThreadCreateInfo@@@Z @ 4484 NONAME ; int qt_symbian_SetupThreadHeap(int, struct SStdEpocThreadCreateInfo &) ?objectNameChanged@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@@ZA @ 4485 NONAME ; void (*QAbstractDeclarativeData::objectNameChanged)(class QAbstractDeclarativeData *, class QObject *) + ?queueDeferredActiveObjectsCompletion@QEventDispatcherSymbian@@QAEXXZ @ 4486 NONAME ; void QEventDispatcherSymbian::queueDeferredActiveObjectsCompletion(void) + ?reactivateDeferredActiveObjects@QEventDispatcherSymbian@@UAEXXZ @ 4487 NONAME ; void QEventDispatcherSymbian::reactivateDeferredActiveObjects(void) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 75bb026..54768a1 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12104,4 +12104,5 @@ EXPORTS _ZN15QStaticTextItem13setFontEngineEP11QFontEngine @ 12103 NONAME _ZN15QStaticTextItemD1Ev @ 12104 NONAME _ZN15QStaticTextItemD2Ev @ 12105 NONAME + _ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME -- cgit v0.12 From ce06345c23d0f66bfa9cb5da1279a9efcb002474 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Tue, 16 Nov 2010 12:53:13 +0100 Subject: Doc: fix a typo in QML/Qt UI integration Reviewed-by: Geir Vattekar --- doc/src/declarative/integrating.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/declarative/integrating.qdoc b/doc/src/declarative/integrating.qdoc index 682f792..7028585 100644 --- a/doc/src/declarative/integrating.qdoc +++ b/doc/src/declarative/integrating.qdoc @@ -47,7 +47,7 @@ qmlView->setSource(QUrl::fromLocalFile("myqml.qml")); QWidget *widget = myExistingWidget(); QVBoxLayout *layout = new QVBoxLayout(widget); -widget->addWidget(qmlView); +layout->addWidget(qmlView); \endcode The one drawback to this approach is that QDeclarativeView is slower to initialize -- cgit v0.12 From 515fd562d87290c3fc0eb45817434dd0744d346e Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 15 Nov 2010 14:15:25 +0200 Subject: Use include(original mkspec) instead of copying of mkspec to default Having QMAKESPEC_ORIGINAL at the end of the default qmake.conf sets the mkspec too late for scope checks in symbian-mmp.conf and related files. Fixed by changing how default mkspec is handled: it is no longer simply copied over to mkspecs/default by configure but rather included with include statement in the generated mkspecs/default/qmake.conf after setting of QMAKESPEC_ORIGINAL value. This should also fix any issues with relative includes in mkspecs used as default that are not on same level as mkspecs/default folder. Task-number: QTBUG-15159 Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- tools/configure/configureapp.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 3808c4e..3c12eb9 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3227,7 +3227,8 @@ void Configure::generateConfigfiles() } // Copy configured mkspec to default directory, but remove the old one first, if there is any - QString defSpec = buildPath + "/mkspecs/default"; + QString mkspecsPath = buildPath + "/mkspecs"; + QString defSpec = mkspecsPath + "/default"; QFileInfo defSpecInfo(defSpec); if (defSpecInfo.exists()) { if (!Environment::rmdir(defSpec)) { @@ -3237,21 +3238,22 @@ void Configure::generateConfigfiles() } } - QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"]; - QString pltSpec = sourcePath + "/mkspecs/" + spec; - if (!Environment::cpdir(pltSpec, defSpec)) { - cout << "Couldn't update default mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl; + QDir mkspecsDir(mkspecsPath); + if (!mkspecsDir.mkdir("default")) { + cout << "Couldn't create default mkspec dir!" << endl; dictionary["DONE"] = "error"; return; } + QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"]; + QString pltSpec = sourcePath + "/mkspecs/" + spec; outName = defSpec + "/qmake.conf"; - ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL); QFile qmakeConfFile(outName); - if (qmakeConfFile.open(QFile::Append | QFile::WriteOnly | QFile::Text)) { + if (qmakeConfFile.open(QFile::WriteOnly | QFile::Text)) { QTextStream qmakeConfStream; qmakeConfStream.setDevice(&qmakeConfFile); - qmakeConfStream << endl << "QMAKESPEC_ORIGINAL=" << pltSpec << endl; + qmakeConfStream << "QMAKESPEC_ORIGINAL=" << pltSpec << endl << endl; + qmakeConfStream << "include(" << pltSpec << "/qmake.conf)" << endl; qmakeConfStream.flush(); qmakeConfFile.close(); } -- cgit v0.12 From a40e77495612db0b89730debbacc585a22d0eb3a Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 16 Nov 2010 13:27:57 +0100 Subject: Fix possible missing glyphs in text when using GL engine If you create/destroy gl contexts a lot, you may sometimes get a new context with the same pointer as a destroyed context. When you look up the glyph cache in the font engine using the context pointer as a key, you will then get a glyph cache which contains no valid data. We need to reset the glyph cache completely in this case and set up bindings for the new context so that the glyph cache can be repopulated and reused. Note that there is a different solution for this in Qt 4.8, so this is temporary solution for the Qt 4.7.x series. Task-number: QT-4162 Reviewed-by: Fabien Freling --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 2 ++ src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 9 ++++++++- src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h | 15 ++++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 1dcb773..73915cb 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1479,6 +1479,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp if (!cache || cache->cacheType() != glyphType) { cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform()); staticTextItem->fontEngine()->setGlyphCache(ctx, cache); + } else if (cache->context() == 0) { // Old context has been destroyed, new context has same ptr value + cache->setContext(ctx); } bool recreateVertexArrays = false; diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 919c542..28e8c40 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -54,11 +54,18 @@ extern Q_GUI_EXPORT bool qt_cleartype_enabled; QGLTextureGlyphCache::QGLTextureGlyphCache(QGLContext *context, QFontEngineGlyphCache::Type type, const QTransform &matrix) : QImageTextureGlyphCache(type, matrix) - , ctx(context) + , ctx(0) , m_width(0) , m_height(0) , m_filterMode(Nearest) { + setContext(context); +} + +void QGLTextureGlyphCache::setContext(QGLContext *context) +{ + ctx = context; + // broken FBO readback is a bug in the SGX 1.3 and 1.4 drivers for the N900 where // copying between FBO's is broken if the texture is either GL_ALPHA or POT. The // workaround is to use a system-memory copy of the glyph cache for this device. diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h index e22146d..fa2b091 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h @@ -90,6 +90,9 @@ public: FilterMode filterMode() const { return m_filterMode; } void setFilterMode(FilterMode m) { m_filterMode = m; } + void setContext(QGLContext *context); + QGLContext *context() const { return ctx; } + public Q_SLOTS: void contextDestroyed(const QGLContext *context) { if (context == ctx) { @@ -98,10 +101,20 @@ public Q_SLOTS: // the context may not be current, so we cannot directly // destroy the fbo and texture here, but since the context // is about to be destroyed, the GL server will do the - // clean up for us anyway + // clean up for us anyway. We reset everything, so that the + // glyph cache object can be reused later by setting a new + // context on it. m_fbo = 0; m_texture = 0; ctx = 0; + m_width = 0; + m_height = 0; + m_w = 0; + m_h = 0; + m_cx = 0; + m_cy = 0; + m_currentRowHeight = 0; + coords.clear(); } else { // since the context holding the texture is shared, and // about to be destroyed, we have to transfer ownership -- cgit v0.12 From e963a1365d495649a1c8930f4776c78781218881 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Tue, 16 Nov 2010 21:47:14 +0100 Subject: Doc: Fixing typo --- src/gui/graphicsview/qgraphicstransform.cpp | 2 +- src/gui/kernel/qapplication_win.cpp | 4 ++-- src/gui/kernel/qclipboard_mac.cpp | 2 +- src/gui/kernel/qevent.cpp | 2 +- src/gui/kernel/qgesturemanager.cpp | 2 +- src/gui/kernel/qgesturemanager_p.h | 2 +- src/gui/kernel/qguiplatformplugin.cpp | 2 +- src/gui/kernel/qkeymapper_mac.cpp | 2 +- src/gui/kernel/qkeysequence.cpp | 2 +- src/gui/kernel/qwidget.cpp | 4 ++-- src/gui/kernel/qwidget_s60.cpp | 2 +- src/gui/kernel/qx11embed_x11.cpp | 2 +- src/gui/util/qundostack.cpp | 2 +- src/network/ssl/qsslsocket_openssl.cpp | 2 +- src/plugins/bearer/symbian/symbianengine.cpp | 2 +- src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 2 +- src/script/api/qscriptcontextinfo.cpp | 2 +- src/xmlpatterns/expr/qarithmeticexpression_p.h | 2 +- tests/auto/collections/tst_collections.cpp | 2 +- tools/assistant/tools/assistant/helpenginewrapper.cpp | 2 +- 20 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp index 1f155c6..d495da2 100644 --- a/src/gui/graphicsview/qgraphicstransform.cpp +++ b/src/gui/graphicsview/qgraphicstransform.cpp @@ -54,7 +54,7 @@ instances to one QGraphicsItem. Each QGraphicsTransform is applied in order, one at a time, to the QGraphicsItem it's assigned to. - QGraphicsTransform is particularily useful for animations. Whereas + QGraphicsTransform is particularly useful for animations. Whereas QGraphicsItem::setTransform() lets you assign any transform directly to an item, there is no direct way to interpolate between two different transformations (e.g., when transitioning between two states, each for diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 78028eb..10c4ed6 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -3269,7 +3269,7 @@ bool QETWidget::translateMouseEvent(const MSG &msg) if (type == QEvent::MouseButtonPress && QApplication::activePopupWidget() != activePopupWidget && replayPopupMouseEvent) { - // the popup dissappeared. Replay the event + // the popup disappeared. Replay the event QWidget* w = QApplication::widgetAt(gpos.x, gpos.y); if (w && !QApplicationPrivate::isBlockedByModal(w)) { Q_ASSERT(w->testAttribute(Qt::WA_WState_Created)); @@ -3506,7 +3506,7 @@ static void tabletInit(const quint64 uniqueId, const UINT csr_type, HCTX hTab) } #endif // QT_NO_TABLETEVENT -// Update the "dynamic" informations of a cursor device (pen, airbrush, etc). +// Update the "dynamic" information of a cursor device (pen, airbrush, etc). // The dynamic information is the information of QTabletDeviceData that can change // in time (eraser or pen if a device is turned around). #ifndef QT_NO_TABLETEVENT diff --git a/src/gui/kernel/qclipboard_mac.cpp b/src/gui/kernel/qclipboard_mac.cpp index 49a6cc8..482a3a3 100644 --- a/src/gui/kernel/qclipboard_mac.cpp +++ b/src/gui/kernel/qclipboard_mac.cpp @@ -623,7 +623,7 @@ QMacPasteboard::sync() const #ifdef DEBUG_PASTEBOARD if(fromGlobal) - qDebug("Pasteboard: Syncronize!"); + qDebug("Pasteboard: Synchronize!"); #endif return fromGlobal; } diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index eade02e..7fdb926 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -1970,7 +1970,7 @@ void QInputMethodEvent::setCommitString(const QString &commitString, int replace is usually given by a wheel on 4D mouse. If the device does not support a Z-axis, pass zero here. - The \a tangentialPressure paramater contins the tangential pressure of an air + The \a tangentialPressure parameter contins the tangential pressure of an air brush. If the device does not support tangential pressure, pass 0 here. \a rotation contains the device's rotation in degrees. 4D mice support diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 9519447..46450b1 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -189,7 +189,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type) { // if the widget is being deleted we should be careful not to - // create a new state, as it will create QWeakPointer which doesnt work + // create a new state, as it will create QWeakPointer which doesn't work // from the destructor. if (object->isWidgetType()) { if (static_cast(object)->d_func()->data.in_destructor) diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h index a5a3482..92310f5 100644 --- a/src/gui/kernel/qgesturemanager_p.h +++ b/src/gui/kernel/qgesturemanager_p.h @@ -101,7 +101,7 @@ private: NotGesture, MaybeGesture // this means timers are up and waiting for some // more events, and input events are handled by - // gesture recognizer explicitely + // gesture recognizer explicitly } state; struct ObjectGesture diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp index 2dd251b..c80c6d3 100644 --- a/src/gui/kernel/qguiplatformplugin.cpp +++ b/src/gui/kernel/qguiplatformplugin.cpp @@ -187,7 +187,7 @@ QString QGuiPlatformPlugin::styleName() #endif } -/* return an aditional default palette (only work on X11) */ +/* return an additional default palette (only work on X11) */ QPalette QGuiPlatformPlugin::palette() { #ifdef Q_WS_X11 diff --git a/src/gui/kernel/qkeymapper_mac.cpp b/src/gui/kernel/qkeymapper_mac.cpp index 300e5ca..b8f08bf 100644 --- a/src/gui/kernel/qkeymapper_mac.cpp +++ b/src/gui/kernel/qkeymapper_mac.cpp @@ -765,7 +765,7 @@ bool QKeyMapperPrivate::translateKeyEvent(QWidget *widget, EventHandlerCallRef e &handled_event) == false) return handled_event; QString text(ourChar); - /* This is actually wrong - but unfortunatly it is the best that can be + /* This is actually wrong - but unfortunately it is the best that can be done for now because of the Control/Meta mapping problems */ if (modifiers & (Qt::ControlModifier | Qt::MetaModifier) && !qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) { diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index 50b2354..bf3eddd 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -1105,7 +1105,7 @@ QKeySequence QKeySequence::mnemonic(const QString &text) #else found = true; } else { - qWarning("QKeySequence::mnemonic: \"%s\" contains multiple occurences of '&'", qPrintable(text)); + qWarning("QKeySequence::mnemonic: \"%s\" contains multiple occurrences of '&'", qPrintable(text)); #endif } } diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index e22ec55..39c734e 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -8836,7 +8836,7 @@ void QWidget::mousePressEvent(QMouseEvent *event) QWidget* w; while ((w = QApplication::activePopupWidget()) && w != this){ w->close(); - if (QApplication::activePopupWidget() == w) // widget does not want to dissappear + if (QApplication::activePopupWidget() == w) // widget does not want to disappear w->hide(); // hide at least } if (!rect().contains(event->pos())){ @@ -9305,7 +9305,7 @@ void QWidget::setInputMethodHints(Qt::InputMethodHints hints) #ifndef QT_NO_IM Q_D(QWidget); d->imHints = hints; - // Optimisation to update input context only it has already been created. + // Optimization to update input context only it has already been created. if (d->ic || qApp->d_func()->inputContext) { QInputContext *ic = inputContext(); if (ic) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index cf4bdf1..97917ba 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -57,7 +57,7 @@ #include #endif -// This is necessary in order to be able to perform delayed invokation on slots +// This is necessary in order to be able to perform delayed invocation on slots // which take arguments of type WId. One example is // QWidgetPrivate::_q_delayedDestroy, which is used to delay destruction of // CCoeControl objects until after the CONE event handler has finished running. diff --git a/src/gui/kernel/qx11embed_x11.cpp b/src/gui/kernel/qx11embed_x11.cpp index 9f1b1f8..e6e3bfb 100644 --- a/src/gui/kernel/qx11embed_x11.cpp +++ b/src/gui/kernel/qx11embed_x11.cpp @@ -1136,7 +1136,7 @@ void QX11EmbedContainer::paintEvent(QPaintEvent *) /*! \internal - Returns wether or not the windows' embedded flag is set. + Returns whether or not the windows' embedded flag is set. */ bool QX11EmbedContainerPrivate::isEmbedded() const { diff --git a/src/gui/util/qundostack.cpp b/src/gui/util/qundostack.cpp index 919ac3c..04cfca9 100644 --- a/src/gui/util/qundostack.cpp +++ b/src/gui/util/qundostack.cpp @@ -441,7 +441,7 @@ bool QUndoStackPrivate::checkUndoLimit() /*! Constructs an empty undo stack with the parent \a parent. The - stack will initally be in the clean state. If \a parent is a + stack will initially be in the clean state. If \a parent is a QUndoGroup object, the stack is automatically added to the group. \sa push() diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 70ef7ba..0479d83 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -728,7 +728,7 @@ void CSymbianCertificateRetriever::RunL() if (iStatus.Int() == KErrNone) iCertificates->append(iCertificateData); else - qWarning() << "CSymbianCertificateRetriever: failed to retreive a certificate, error " << iStatus.Int(); + qWarning() << "CSymbianCertificateRetriever: failed to retrieve a certificate, error " << iStatus.Int(); GetCertificateL(); break; } diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp index 33fa508..f025d86 100644 --- a/src/plugins/bearer/symbian/symbianengine.cpp +++ b/src/plugins/bearer/symbian/symbianengine.cpp @@ -981,7 +981,7 @@ void SymbianEngine::RunL() QMutexLocker locker(&mutex); if (iStatus != KErrCancel) { - // By default, start relistening notifications. Stop only if interesting event occured. + // By default, start relistening notifications. Stop only if interesting event occurred. iWaitingCommsDatabaseNotifications = true; RDbNotifier::TEvent event = STATIC_CAST(RDbNotifier::TEvent, iStatus.Int()); switch (event) { diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 063af13..507f70b 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -83,7 +83,7 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { // Long story short: without this it's possible to hit an - // unitialized paintDevice due to a Qt bug too complex to even + // uninitialized paintDevice due to a Qt bug too complex to even // explain here... not to mention fix without going crazy. // MDK QGLShareContextScope ctx(qt_gl_share_widget()->context()); diff --git a/src/script/api/qscriptcontextinfo.cpp b/src/script/api/qscriptcontextinfo.cpp index a90e014..8528dec 100644 --- a/src/script/api/qscriptcontextinfo.cpp +++ b/src/script/api/qscriptcontextinfo.cpp @@ -177,7 +177,7 @@ QScriptContextInfoPrivate::QScriptContextInfoPrivate(const QScriptContext *conte fileName = source->url(); } - // Get the others informations: + // Get the others information: JSC::JSObject *callee = frame->callee(); if (callee && callee->inherits(&JSC::InternalFunction::info)) functionName = JSC::asInternalFunction(callee)->name(frame); diff --git a/src/xmlpatterns/expr/qarithmeticexpression_p.h b/src/xmlpatterns/expr/qarithmeticexpression_p.h index 66c1f13..6ff8219 100644 --- a/src/xmlpatterns/expr/qarithmeticexpression_p.h +++ b/src/xmlpatterns/expr/qarithmeticexpression_p.h @@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE namespace QPatternist { /** - * @short Implements arithmetics, such as multiplication and substraction. + * @short Implements arithmetics, such as multiplication and subtraction. * * * Optimizations: there's some operator/value combos that are no ops. For diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp index f81535e..43e1a52 100644 --- a/tests/auto/collections/tst_collections.cpp +++ b/tests/auto/collections/tst_collections.cpp @@ -1222,7 +1222,7 @@ void tst_Collections::vector() } } - // this used to trigger an unitialized read in valgrind + // this used to trigger an uninitialized read in valgrind QVector foo; foo.resize(144); diff --git a/tools/assistant/tools/assistant/helpenginewrapper.cpp b/tools/assistant/tools/assistant/helpenginewrapper.cpp index a53a9ee..748ad2c 100644 --- a/tools/assistant/tools/assistant/helpenginewrapper.cpp +++ b/tools/assistant/tools/assistant/helpenginewrapper.cpp @@ -144,7 +144,7 @@ HelpEngineWrapper::HelpEngineWrapper(const QString &collectionFile) /* * Otherwise we will waste time if several new docs are found, - * because we will start to index them, only to be interupted + * because we will start to index them, only to be interrupted * by the next request. Also, there is a nasty SQLITE bug that will * cause the application to hang for minutes in that case. * This call is reverted by initalDocSetupDone(), which must be -- cgit v0.12 From 0f6ec93b4d1b945064dd53df96a7d92170e09627 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 17 Nov 2010 10:38:53 +1000 Subject: Update visuals for X11 Text visual tests may be dependant on the specific version of libfreetype. Comparison images have been regenerated with the specific version that the test machines use. Task-number: QTBUG-14792 --- .../baseline/data-X11/parentanchor.0.png | Bin 1313 -> 1313 bytes .../baseline/data-X11/parentanchor.qml | 60 +- .../qdeclarativetext/bugs/data-X11/QTBUG-14469.qml | 172 ++--- .../qdeclarativetext/elide/data-X11/elide.0.png | Bin 481 -> 483 bytes .../qdeclarativetext/elide/data-X11/elide.1.png | Bin 481 -> 483 bytes .../qdeclarativetext/elide/data-X11/elide.qml | 130 ++-- .../qdeclarativetext/elide/data-X11/elide2.0.png | Bin 1187 -> 1189 bytes .../qdeclarativetext/elide/data-X11/elide2.1.png | Bin 1066 -> 1068 bytes .../qdeclarativetext/elide/data-X11/elide2.qml | 194 ++--- .../elide/data-X11/multilength.0.png | Bin 742 -> 747 bytes .../elide/data-X11/multilength.1.png | Bin 810 -> 814 bytes .../elide/data-X11/multilength.2.png | Bin 805 -> 809 bytes .../elide/data-X11/multilength.3.png | Bin 529 -> 527 bytes .../elide/data-X11/multilength.4.png | Bin 528 -> 526 bytes .../elide/data-X11/multilength.qml | 552 +++++++------- .../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 13221 -> 13169 bytes .../font/data-X11/plaintext2.0.png | Bin 1510 -> 1503 bytes .../qdeclarativetext/font/data-X11/richtext.0.png | Bin 9415 -> 9297 bytes .../qdeclarativetext/font/data-X11/richtext2.0.png | Bin 10671 -> 10626 bytes .../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 692 -> 688 bytes .../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 696 -> 693 bytes .../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 699 -> 695 bytes .../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 698 -> 694 bytes .../qdeclarativetextedit/data-X11/qt-669.4.png | Bin 692 -> 688 bytes .../qdeclarativetextedit/data-X11/qt-669.qml | 528 ++++++------- .../qdeclarativetextedit/data-X11/wrap.0.png | Bin 3481 -> 3493 bytes .../qdeclarativetextedit/data-X11/wrap.1.png | Bin 3606 -> 3617 bytes .../qdeclarativetextedit/data-X11/wrap.2.png | Bin 3676 -> 3688 bytes .../qdeclarativetextedit/data-X11/wrap.3.png | Bin 3754 -> 3766 bytes .../qdeclarativetextedit/data-X11/wrap.4.png | Bin 3828 -> 3839 bytes .../qdeclarativetextedit/data-X11/wrap.5.png | Bin 3927 -> 3940 bytes .../qdeclarativetextedit/data-X11/wrap.6.png | Bin 3930 -> 3943 bytes .../qdeclarativetextedit/data-X11/wrap.7.png | Bin 3930 -> 3943 bytes .../qdeclarativetextedit/data-X11/wrap.qml | 842 ++++++++++----------- .../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 342 -> 339 bytes .../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 445 -> 446 bytes .../qdeclarativetextinput/data-X11/echoMode.3.png | Bin 508 -> 510 bytes .../qdeclarativetextinput/data-X11/echoMode.qml | 270 +++---- .../qdeclarativetextinput/data-X11/hAlign.0.png | Bin 3685 -> 3661 bytes .../qdeclarativetextinput/data-X11/hAlign.qml | 48 +- .../data-X11/usingLineEdit.qml | 12 +- 41 files changed, 1404 insertions(+), 1404 deletions(-) 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 index 823199c..d85498b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png 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 4bf0697..26cd97b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml @@ -10,122 +10,122 @@ VisualTest { } Frame { msec: 32 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 48 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 64 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 80 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 96 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 112 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 128 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 144 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 160 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 176 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 192 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 208 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 224 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 240 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 256 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 272 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 288 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 304 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 320 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 336 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 352 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 368 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 384 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 400 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 416 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 432 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 448 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 464 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 480 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } Frame { msec: 496 - hash: "7e082fa05e000cc20fcda7cb61d98edd" + hash: "8e36621abce059cb8579dd04b28e8d58" } } 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 01ec5d6..b770836 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 @@ -58,227 +58,227 @@ VisualTest { } Frame { msec: 224 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 240 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 256 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 272 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 288 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 304 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 320 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 336 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 352 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 368 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 384 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 400 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 416 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 432 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 448 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 464 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 480 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 496 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 512 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 528 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 544 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 560 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 576 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 592 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 608 - hash: "51cd7a5bc24cdb50832066cc04cae313" + hash: "75f26b0bbb2663bcadcedce260ef848a" } Frame { msec: 624 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 640 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 656 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 672 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 688 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 704 - hash: "bac094de06155c73e4d2d9e2fd99b038" + hash: "6a8c8c0b7727e5e3063d93de59c7f0a2" } Frame { msec: 720 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 736 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 752 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 768 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 784 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 800 - hash: "3159c438d2cb58e31b4b458ba417f794" + hash: "d5bb5dd464f38af1790e0109033eb8ad" } Frame { msec: 816 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 832 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 848 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 864 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 880 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 896 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 912 - hash: "a4f9c320c8aa558c66dd25d132bb5834" + hash: "8535be394c177dbdcb0435e35680e776" } Frame { msec: 928 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + hash: "0ec4eba50495b474faf3feca4be64f7b" } Frame { msec: 944 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + hash: "0ec4eba50495b474faf3feca4be64f7b" } Frame { msec: 960 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + hash: "0ec4eba50495b474faf3feca4be64f7b" } Frame { msec: 976 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + image: "QTBUG-14469.1.png" } Frame { msec: 992 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + hash: "0ec4eba50495b474faf3feca4be64f7b" } Frame { msec: 1008 - hash: "b1a283365bbffbc0ddaa4aa661e52add" + hash: "0ec4eba50495b474faf3feca4be64f7b" } Frame { msec: 1024 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1040 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1056 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1072 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1088 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1104 - hash: "57ba00590bed6fe1b0f8fc3e54b9637e" + hash: "43993c686f4c10e91177297d8bb6eae9" } Frame { msec: 1120 @@ -306,55 +306,55 @@ VisualTest { } Frame { msec: 1216 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1232 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1248 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1264 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1280 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1296 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1312 - hash: "bc81044e90cc001fc351a1518ba4b41e" + hash: "5f18ee7410e2d0b4d739abcec1b14bb4" } Frame { msec: 1328 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1344 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1360 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1376 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1392 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1408 - hash: "18386b56e44b1f3981b3aa8fe980410b" + hash: "34ebe59f64ebc72fc2bf22af4118ec1f" } Frame { msec: 1424 @@ -406,70 +406,70 @@ VisualTest { } Frame { msec: 1616 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1632 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1648 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1664 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1680 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1696 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1712 - hash: "449c6b632a3b85462fe3947a071ffa91" + hash: "834338b693368e154163f806f49d5ba3" } Frame { msec: 1728 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1744 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1760 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1776 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1792 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1808 - hash: "9c804e5eec3b31acd55a510d301cc419" + hash: "4b79bd737312a5aa026b73c07bfd840c" } Frame { msec: 1824 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 1840 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 1856 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } Frame { msec: 1872 - hash: "799c7a637b061686c1456c9c535594d3" + hash: "daa67aed3e94e9e8823e8bed04aee960" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png index 53d3c12..16202c4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png index 53d3c12..16202c4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png differ 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 7aadc15..c911b0a9 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 48 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 64 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 80 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 96 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 112 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 128 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 144 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 160 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 176 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 192 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 208 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 224 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 240 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 256 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 272 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 288 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 304 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 320 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 336 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 352 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 368 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 384 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 400 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 416 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 432 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 448 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 464 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 480 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 496 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 512 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 528 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 544 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 560 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 576 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 592 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 608 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 624 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 640 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 656 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 672 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 688 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 704 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 720 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 736 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 752 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 768 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 784 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 800 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 816 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 832 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 848 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 864 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 880 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 896 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 912 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 928 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 944 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 960 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 976 @@ -251,29 +251,29 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 } Frame { msec: 992 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 1008 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 1024 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 1040 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } Frame { msec: 1056 - hash: "40d4596fcecc4e6a214decccc581a75f" + hash: "bfcbea92ed5278c01642fd3cd6d3175c" } } 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 2f4c84a..38b9668 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png index ae786a2..801ec2b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.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 6e9057c..5275c05 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 48 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 64 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 80 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 96 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 112 - hash: "716f5d150bd8757952d7b4ba327fb8bd" + hash: "0922fd48af050774d53e0b3815d57d8e" } Frame { msec: 128 - hash: "8ec55fba2017a56c641c7baca5345b8b" + hash: "6ed734d7092a34e440628dc70db97ac5" } Frame { msec: 144 - hash: "8ec55fba2017a56c641c7baca5345b8b" + hash: "6ed734d7092a34e440628dc70db97ac5" } Frame { msec: 160 - hash: "8ec55fba2017a56c641c7baca5345b8b" + hash: "6ed734d7092a34e440628dc70db97ac5" } Frame { msec: 176 - hash: "8ec55fba2017a56c641c7baca5345b8b" + hash: "6ed734d7092a34e440628dc70db97ac5" } Frame { msec: 192 - hash: "79dc1645a5486ddfa3d957f3bd4ffbda" + hash: "a74b735016141dccf2c84fe9ee1e3ab2" } Frame { msec: 208 - hash: "79dc1645a5486ddfa3d957f3bd4ffbda" + hash: "a74b735016141dccf2c84fe9ee1e3ab2" } Frame { msec: 224 - hash: "79dc1645a5486ddfa3d957f3bd4ffbda" + hash: "a74b735016141dccf2c84fe9ee1e3ab2" } Frame { msec: 240 - hash: "79dc1645a5486ddfa3d957f3bd4ffbda" + hash: "a74b735016141dccf2c84fe9ee1e3ab2" } Frame { msec: 256 - hash: "476eae8ca9f6698cf67e2d20c5c24b66" + hash: "047416b9368fb352b7da1e073d863e96" } Frame { msec: 272 - hash: "476eae8ca9f6698cf67e2d20c5c24b66" + hash: "047416b9368fb352b7da1e073d863e96" } Frame { msec: 288 - hash: "476eae8ca9f6698cf67e2d20c5c24b66" + hash: "047416b9368fb352b7da1e073d863e96" } Frame { msec: 304 - hash: "476eae8ca9f6698cf67e2d20c5c24b66" + hash: "047416b9368fb352b7da1e073d863e96" } Frame { msec: 320 - hash: "bef1a9585daf30f1739a190ffa2e4b46" + hash: "f2d62e8675b8bba924b27db689c9cd7f" } Frame { msec: 336 - hash: "bef1a9585daf30f1739a190ffa2e4b46" + hash: "f2d62e8675b8bba924b27db689c9cd7f" } Frame { msec: 352 - hash: "bef1a9585daf30f1739a190ffa2e4b46" + hash: "f2d62e8675b8bba924b27db689c9cd7f" } Frame { msec: 368 - hash: "bef1a9585daf30f1739a190ffa2e4b46" + hash: "f2d62e8675b8bba924b27db689c9cd7f" } Frame { msec: 384 - hash: "bef1a9585daf30f1739a190ffa2e4b46" + hash: "f2d62e8675b8bba924b27db689c9cd7f" } Frame { msec: 400 - hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" + hash: "9498a80d60ab24d82ffb935979e1cf1b" } Frame { msec: 416 - hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" + hash: "9498a80d60ab24d82ffb935979e1cf1b" } Frame { msec: 432 - hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" + hash: "9498a80d60ab24d82ffb935979e1cf1b" } Frame { msec: 448 - hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f" + hash: "9498a80d60ab24d82ffb935979e1cf1b" } Frame { msec: 464 - hash: "2fe675a360e61452c31dda42070c137f" + hash: "ee3cb45a15460f4235fc22ca97e0303d" } Frame { msec: 480 - hash: "2fe675a360e61452c31dda42070c137f" + hash: "ee3cb45a15460f4235fc22ca97e0303d" } Frame { msec: 496 - hash: "2fe675a360e61452c31dda42070c137f" + hash: "ee3cb45a15460f4235fc22ca97e0303d" } Frame { msec: 512 - hash: "2fe675a360e61452c31dda42070c137f" + hash: "ee3cb45a15460f4235fc22ca97e0303d" } Frame { msec: 528 - hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" + hash: "94464db418aec12b451e9dc106deec73" } Frame { msec: 544 - hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" + hash: "94464db418aec12b451e9dc106deec73" } Frame { msec: 560 - hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" + hash: "94464db418aec12b451e9dc106deec73" } Frame { msec: 576 - hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" + hash: "94464db418aec12b451e9dc106deec73" } Frame { msec: 592 - hash: "0f1bac7c35b9f5bdbce10fb577c9cf28" + hash: "94464db418aec12b451e9dc106deec73" } Frame { msec: 608 - hash: "c79f68e9481f91f6f6a6816a655efc24" + hash: "22b23a55986e912cf38239d5e68f0c4a" } Frame { msec: 624 - hash: "c79f68e9481f91f6f6a6816a655efc24" + hash: "22b23a55986e912cf38239d5e68f0c4a" } Frame { msec: 640 - hash: "c79f68e9481f91f6f6a6816a655efc24" + hash: "22b23a55986e912cf38239d5e68f0c4a" } Frame { msec: 656 - hash: "c79f68e9481f91f6f6a6816a655efc24" + hash: "22b23a55986e912cf38239d5e68f0c4a" } Frame { msec: 672 - hash: "9a189e9d9249fb04fd98c4e91aba1cb5" + hash: "3836d0aaf354d147dc6ffe3ace184ba5" } Frame { msec: 688 - hash: "9a189e9d9249fb04fd98c4e91aba1cb5" + hash: "3836d0aaf354d147dc6ffe3ace184ba5" } Frame { msec: 704 - hash: "9a189e9d9249fb04fd98c4e91aba1cb5" + hash: "3836d0aaf354d147dc6ffe3ace184ba5" } Frame { msec: 720 - hash: "9a189e9d9249fb04fd98c4e91aba1cb5" + hash: "3836d0aaf354d147dc6ffe3ace184ba5" } Frame { msec: 736 - hash: "9a189e9d9249fb04fd98c4e91aba1cb5" + hash: "3836d0aaf354d147dc6ffe3ace184ba5" } Frame { msec: 752 - hash: "42c1ac48858ab5901601dc5a950a398f" + hash: "20ccea5bc4c15401a7c660b1801488dd" } Frame { msec: 768 - hash: "42c1ac48858ab5901601dc5a950a398f" + hash: "20ccea5bc4c15401a7c660b1801488dd" } Frame { msec: 784 - hash: "42c1ac48858ab5901601dc5a950a398f" + hash: "20ccea5bc4c15401a7c660b1801488dd" } Frame { msec: 800 - hash: "42c1ac48858ab5901601dc5a950a398f" + hash: "20ccea5bc4c15401a7c660b1801488dd" } Frame { msec: 816 - hash: "f05bf4e3cc562c5a900fb389a7c093de" + hash: "31ffa9cfd6f60a33ed3b052e45ee5080" } Frame { msec: 832 - hash: "f05bf4e3cc562c5a900fb389a7c093de" + hash: "31ffa9cfd6f60a33ed3b052e45ee5080" } Frame { msec: 848 - hash: "f05bf4e3cc562c5a900fb389a7c093de" + hash: "31ffa9cfd6f60a33ed3b052e45ee5080" } Frame { msec: 864 - hash: "f05bf4e3cc562c5a900fb389a7c093de" + hash: "31ffa9cfd6f60a33ed3b052e45ee5080" } Frame { msec: 880 - hash: "1b5d1234aa02009ec447ac8fefc403bb" + hash: "7138b38fcff27e85aaf3179c6e81ac69" } Frame { msec: 896 - hash: "1b5d1234aa02009ec447ac8fefc403bb" + hash: "7138b38fcff27e85aaf3179c6e81ac69" } Frame { msec: 912 - hash: "1b5d1234aa02009ec447ac8fefc403bb" + hash: "7138b38fcff27e85aaf3179c6e81ac69" } Frame { msec: 928 - hash: "1b5d1234aa02009ec447ac8fefc403bb" + hash: "7138b38fcff27e85aaf3179c6e81ac69" } Frame { msec: 944 - hash: "1b5d1234aa02009ec447ac8fefc403bb" + hash: "7138b38fcff27e85aaf3179c6e81ac69" } Frame { msec: 960 - hash: "ec7cfc539d7bde448c631da211de8f44" + hash: "78854022288d4cd50bb9141896403d35" } Frame { msec: 976 @@ -250,151 +250,151 @@ VisualTest { } Frame { msec: 992 - hash: "ec7cfc539d7bde448c631da211de8f44" + hash: "78854022288d4cd50bb9141896403d35" } Frame { msec: 1008 - hash: "ec7cfc539d7bde448c631da211de8f44" + hash: "78854022288d4cd50bb9141896403d35" } Frame { msec: 1024 - hash: "646394dd534a32bc3a066e606cc485f3" + hash: "8730d8adb4029b157e39b90e3cb2b879" } Frame { msec: 1040 - hash: "646394dd534a32bc3a066e606cc485f3" + hash: "8730d8adb4029b157e39b90e3cb2b879" } Frame { msec: 1056 - hash: "646394dd534a32bc3a066e606cc485f3" + hash: "8730d8adb4029b157e39b90e3cb2b879" } Frame { msec: 1072 - hash: "646394dd534a32bc3a066e606cc485f3" + hash: "8730d8adb4029b157e39b90e3cb2b879" } Frame { msec: 1088 - hash: "6b66b968aaed1896e2e9fafe27bba50f" + hash: "9edb542976d1acd86be3d516276dee1f" } Frame { msec: 1104 - hash: "6b66b968aaed1896e2e9fafe27bba50f" + hash: "9edb542976d1acd86be3d516276dee1f" } Frame { msec: 1120 - hash: "6b66b968aaed1896e2e9fafe27bba50f" + hash: "9edb542976d1acd86be3d516276dee1f" } Frame { msec: 1136 - hash: "6b66b968aaed1896e2e9fafe27bba50f" + hash: "9edb542976d1acd86be3d516276dee1f" } Frame { msec: 1152 - hash: "6b66b968aaed1896e2e9fafe27bba50f" + hash: "9edb542976d1acd86be3d516276dee1f" } Frame { msec: 1168 - hash: "869f75182b9a4b452da1689a5921085f" + hash: "1a394542b01712fbd67b78a69733b324" } Frame { msec: 1184 - hash: "869f75182b9a4b452da1689a5921085f" + hash: "1a394542b01712fbd67b78a69733b324" } Frame { msec: 1200 - hash: "869f75182b9a4b452da1689a5921085f" + hash: "1a394542b01712fbd67b78a69733b324" } Frame { msec: 1216 - hash: "869f75182b9a4b452da1689a5921085f" + hash: "1a394542b01712fbd67b78a69733b324" } Frame { msec: 1232 - hash: "b2017890ac543b9224e85a44157d9fbb" + hash: "4825f9a6679fdee8efe89507d384c07c" } Frame { msec: 1248 - hash: "b2017890ac543b9224e85a44157d9fbb" + hash: "4825f9a6679fdee8efe89507d384c07c" } Frame { msec: 1264 - hash: "b2017890ac543b9224e85a44157d9fbb" + hash: "4825f9a6679fdee8efe89507d384c07c" } Frame { msec: 1280 - hash: "b2017890ac543b9224e85a44157d9fbb" + hash: "4825f9a6679fdee8efe89507d384c07c" } Frame { msec: 1296 - hash: "b2017890ac543b9224e85a44157d9fbb" + hash: "4825f9a6679fdee8efe89507d384c07c" } Frame { msec: 1312 - hash: "acac3eb92619e01b3470511cef1a91c8" + hash: "0ed5382fd2e370bad934647d7abf293f" } Frame { msec: 1328 - hash: "acac3eb92619e01b3470511cef1a91c8" + hash: "0ed5382fd2e370bad934647d7abf293f" } Frame { msec: 1344 - hash: "acac3eb92619e01b3470511cef1a91c8" + hash: "0ed5382fd2e370bad934647d7abf293f" } Frame { msec: 1360 - hash: "acac3eb92619e01b3470511cef1a91c8" + hash: "0ed5382fd2e370bad934647d7abf293f" } Frame { msec: 1376 - hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" + hash: "6206435ab4d05d5d5f84b362d45c30f9" } Frame { msec: 1392 - hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" + hash: "6206435ab4d05d5d5f84b362d45c30f9" } Frame { msec: 1408 - hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" + hash: "6206435ab4d05d5d5f84b362d45c30f9" } Frame { msec: 1424 - hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1" + hash: "6206435ab4d05d5d5f84b362d45c30f9" } Frame { msec: 1440 - hash: "481f661e2613242d253498e467c91105" + hash: "b0eb92df767e7cb61cc69d7363041263" } Frame { msec: 1456 - hash: "481f661e2613242d253498e467c91105" + hash: "b0eb92df767e7cb61cc69d7363041263" } Frame { msec: 1472 - hash: "481f661e2613242d253498e467c91105" + hash: "b0eb92df767e7cb61cc69d7363041263" } Frame { msec: 1488 - hash: "481f661e2613242d253498e467c91105" + hash: "b0eb92df767e7cb61cc69d7363041263" } Frame { msec: 1504 - hash: "481f661e2613242d253498e467c91105" + hash: "b0eb92df767e7cb61cc69d7363041263" } Frame { msec: 1520 - hash: "4c342918351f0165ce63129afbd60074" + hash: "0306262c9594536e0eecf3d67e5910cf" } Frame { msec: 1536 - hash: "4c342918351f0165ce63129afbd60074" + hash: "0306262c9594536e0eecf3d67e5910cf" } Frame { msec: 1552 - hash: "4c342918351f0165ce63129afbd60074" + hash: "0306262c9594536e0eecf3d67e5910cf" } Frame { msec: 1568 - hash: "4c342918351f0165ce63129afbd60074" + hash: "0306262c9594536e0eecf3d67e5910cf" } Frame { msec: 1584 @@ -443,7 +443,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/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png index bf41ce8..730925e 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png index 683a452..ddd6cc5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png index 6b4a280..4679774 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png index ddf5431..51018b4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png index 7e56a3c..f5ed905 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.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 7b17ab2..faf7240 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "b5dfa53607ab952a07d77b4d6bd53a4a" + hash: "12cd5401549bc43283d6c46964528b9b" } Frame { msec: 48 - hash: "c9b99388f7570a65162026739c365edd" + hash: "ae042a0f3c6e32550288a9b0e6a0ce0d" } Frame { msec: 64 - hash: "6f612fe36fa8028a75f6149390bd3585" + hash: "9124b4e5f5dd374e44f3f57fe3d6809b" } Frame { msec: 80 - hash: "efada1cf68ff7dae90962e7540c79b53" + hash: "54dabe45069a00c8759bb5560c9b269f" } Frame { msec: 96 - hash: "f42b6952937376ae34f7ef493e86aee6" + hash: "0d908ef6e3ea15455e35a9ebbc90c735" } Frame { msec: 112 - hash: "008b0419f3ec6dbb16220a8e484a1ec8" + hash: "de5fcf719cd096b99a531e7af9b26e35" } Frame { msec: 128 - hash: "ecb3c1cb02f7a01d4343dad1a066fa6f" + hash: "d48ccb7c22c2606ef814cd5abd3888f3" } Frame { msec: 144 - hash: "ce5adf6c5c4d5e385ce7e461e380b00e" + hash: "2ec7418477158ee60afe123fa2b7ce4b" } Frame { msec: 160 - hash: "79b8fefae0ac2784391c15c0221bd99d" + hash: "418d6d46726c688bee6f415eb2ff2e43" } Frame { msec: 176 - hash: "259da9a4c2bb9c89d16dd1943645e836" + hash: "e754141341d9f81366f21820e46bd1ca" } Frame { msec: 192 - hash: "40ee5004fed2af60ab5fc4983bd2dacd" + hash: "89b4b5f7563bfdb5d1e636a5462e0d8e" } Frame { msec: 208 - hash: "935314bef478d43e30b6cbdcb33ba72b" + hash: "46c3a7d4700a9599d474b7de1ab44a18" } Frame { msec: 224 - hash: "9860af14b459925078467f334bf41e42" + hash: "c50698470bc6c1ea04633b9e819a2d4d" } Frame { msec: 240 - hash: "d9955eabd55559d7bef3f4cd96b42a35" + hash: "dc7d5345363cad6ee007f162f9ea75e2" } Frame { msec: 256 - hash: "7fa3de8afdeb61c6e2e87cde2e96152f" + hash: "3b9ccb93f6375ea401c1fc3bcdf847d5" } Frame { msec: 272 - hash: "0deea16d1f6d18f1e9c57546b485fe75" + hash: "6d034da407af9e27ce70e9dbfee3bb38" } Frame { msec: 288 - hash: "231a71ad0981525d9eb15643bc397130" + hash: "3bce938e5db4c2295cd25a6e2b33738c" } Frame { msec: 304 - hash: "119e67ab3b30bd9a716ad81bbb10d626" + hash: "68266f4f9da256b9df499285ebb842fb" } Frame { msec: 320 - hash: "4f29d912920ab6b8973a2c392a19ea53" + hash: "a9c912fd159baadc4afcd963f857e91b" } Frame { msec: 336 - hash: "8544592eb1d48a55cfd0e274c05622cb" + hash: "85cb9086774297b2772e71229f7d84fc" } Frame { msec: 352 - hash: "eca3de3a1f3e388a0029ea03327e4b21" + hash: "585e6f2d28ec70d10741a52fb68d718c" } Frame { msec: 368 - hash: "7672135d842f0f6f3a06c19e320b9431" + hash: "bfd552ccaccc569d2478ac4d92fe2eb0" } Frame { msec: 384 - hash: "49b5720ebbb03a9c61aebdc6eaf6b2a8" + hash: "748d57dff4cdc09a842353e51de41e5a" } Frame { msec: 400 - hash: "7d2ddf271385fef343412c43a41d88da" + hash: "e0012622a4ef1d5b2090c02020b676c2" } Frame { msec: 416 - hash: "3df6034ff296ab1242146ba7298a9dd8" + hash: "8e4d4a808564a8ba80578600104f230d" } Frame { msec: 432 - hash: "5a52202453c359370c017a397cbc6f20" + hash: "d92e44d8e1f7651a9d256e9e4f3e8168" } Frame { msec: 448 - hash: "649d58d817e37e7b14d3080998dbc126" + hash: "d99b016a0dfdb332dbb1a2c10f53bc05" } Frame { msec: 464 - hash: "f00b682156bde560b571e0044eff150a" + hash: "3ce4357881a34f4c9e2f0d684218e253" } Frame { msec: 480 - hash: "0e5ce3806c60e7a67e72ee9f4c334454" + hash: "07ee4bb59f7ee591bd7a6f117d9f1aa6" } Frame { msec: 496 - hash: "9d8c0e6a6a66560752abc68de10a6ec0" + hash: "f66ce51f2eece9f0fa89c41340245976" } Frame { msec: 512 - hash: "ffd81c8901cdf67ec3fa574b606eba89" + hash: "a9d2b2d4f6ae5e071897d17469a5bad3" } Frame { msec: 528 - hash: "56b7098e63f8cc1d8957829e7779ae73" + hash: "55db2dbd65cae186d59cb2edb5841880" } Frame { msec: 544 - hash: "7d7417b2b2c07c93bf5d951fddf4363b" + hash: "576297445ee3f89994538fcd8c8b102c" } Frame { msec: 560 - hash: "a2dd725545042e9b6a366d809d2cfc4f" + hash: "6ca41b83b8ff27f97c71a23d1c7f9765" } Frame { msec: 576 - hash: "8fd5ccba4b997a96f7773936afc4fc92" + hash: "7e41ef79cae5966821106df39f6a748d" } Frame { msec: 592 - hash: "85f29eae877f93c4617a37b5c445c605" + hash: "9e8b750bbb3680f90d6bbddb6e394d5e" } Frame { msec: 608 - hash: "a8eb3ebef75081964a6beba533eba89b" + hash: "9a61dddcc33ff2b778097b5edb706912" } Frame { msec: 624 - hash: "8c3e3f4833419e7df6de0c9443390751" + hash: "395d015e538dde494059df392379ba26" } Frame { msec: 640 - hash: "537f3d9760f6cc0c07452ea3f334a008" + hash: "d1db5dc62ca702f4241e45811aebe6f3" } Frame { msec: 656 - hash: "93a1851ca2afb595ad684a7f613e860c" + hash: "18f1a038041bd8a51f3375ca64084251" } Frame { msec: 672 - hash: "fd353e60da99a884f60a2d1ab6e4be46" + hash: "6c0f6360156cb806a8b30cafc69013af" } Frame { msec: 688 - hash: "21cff9dcfa9e7bb4a44d75338e314d0e" + hash: "69525e71fe8fe9847ff956e40c2c45ec" } Frame { msec: 704 - hash: "64153f5d57b7191f5e957f22dcdff6d3" + hash: "ac7ae453f35a05e760976df6d91206e2" } Frame { msec: 720 - hash: "211d8e9b6427129e4b9292fc862edfb6" + hash: "c96358482f0900a906b2fc4742981e3a" } Frame { msec: 736 - hash: "35f96f202391dc805b0bbb45d7efb1bf" + hash: "2cccb8f6a63f21d01cd3b61a97730bf8" } Frame { msec: 752 - hash: "0336a1ba71d4bf7b4cbf98812ba1ae9c" + hash: "bf01c0cb968768199f3158e6cefcb09f" } Frame { msec: 768 - hash: "c5ec3a61d64228efe448b0d5c0004baa" + hash: "0ac63c33649462f06979de77c042476c" } Frame { msec: 784 - hash: "9154774bce1d89b84c0f525e282bc95d" + hash: "61931edba8d1abcdc07bb43e17446f4e" } Frame { msec: 800 - hash: "8d07794b2b17971ff69ff7961c441765" + hash: "e8122f997a4076055d8addda88c4ad6e" } Frame { msec: 816 - hash: "086c711c3794f8ad8d634ed6483f3caf" + hash: "cc7e654138605c25cb21aa8966361cf4" } Frame { msec: 832 - hash: "af591122aee8c949957ae19136505a57" + hash: "177aaec34c677b21798de1e024860490" } Frame { msec: 848 - hash: "c84db4548f53ae95023e56fad3c4aea3" + hash: "d0fe9544e55f6876908d9c118366f038" } Frame { msec: 864 - hash: "d7a7bb5cfb91923db8d72d9a12f0016c" + hash: "f713b7e11bf61a0f0a06e6aedb36b7f1" } Frame { msec: 880 - hash: "7171788040f36bf1c878678906a84290" + hash: "b703bd46b9f355711318882194f28d52" } Frame { msec: 896 - hash: "d2016d9ba6b29c7dfb5d64e506e7f980" + hash: "047dad73e6c845704f3de6b317ce9290" } Frame { msec: 912 - hash: "75945e6719cea6aaf021fcd28dfe4da0" + hash: "8c48b0963af8d71fc245373083c14a93" } Frame { msec: 928 - hash: "e203a20fc8dda077ff217ac74895b8f6" + hash: "d11944e0d9035b6eff85ca9fc5adc2c0" } Frame { msec: 944 - hash: "1acb696745e0ead2f8c9d807787ce225" + hash: "d650943a979c7bf52fff77063406c46d" } Frame { msec: 960 - hash: "b8d60fcd3e262dc33d623a741fdafb0b" + hash: "13d533b5b3b01be7dbad7b8403ce1c24" } Frame { msec: 976 @@ -250,239 +250,239 @@ VisualTest { } Frame { msec: 992 - hash: "0acda3300bec26515f7ddfd33af6ca84" + hash: "ba51fa05accf637b31328ab0a11e4b61" } Frame { msec: 1008 - hash: "12f5c647778c868638845fd66c825f51" + hash: "25c783c07b5eb03c351274c3b6494e24" } Frame { msec: 1024 - hash: "e87432496a570b68c18d563fd3e55b7c" + hash: "5665113db0b932b07ac707875e5d77e6" } Frame { msec: 1040 - hash: "332a165345a53198ec22a69e12a7cd6c" + hash: "aceeb64e5935f1889828f3487767db3e" } Frame { msec: 1056 - hash: "92f7d768af912807dca6ad16006d84e9" + hash: "7c66c51a9fd694940a93a7acf036e6d3" } Frame { msec: 1072 - hash: "50c330c7e9ed8f08e4b496b322fed388" + hash: "8b699d11b0a8c7df7df448f5c27a0bc2" } Frame { msec: 1088 - hash: "554317004bc31ba56c970fac294577df" + hash: "c592cebdfadf68eecbddb0add92afa42" } Frame { msec: 1104 - hash: "3c6391b4296451f1ca1db737e4d928c3" + hash: "e175f718809eea5b38a1de46f061871f" } Frame { msec: 1120 - hash: "8274fa399e0b132582389c909775e8cb" + hash: "3182ba22228e8cd056db81eea4678b5d" } Frame { msec: 1136 - hash: "f66504b79f0415652f4c6720a2643afe" + hash: "e09776f37769f34bd2d856c6af3a1e53" } Frame { msec: 1152 - hash: "53ce26d4f839451868c70133c3f0dff2" + hash: "085f9dd2539b950d9f62bdcdf4f3b172" } Frame { msec: 1168 - hash: "715b6a5090e0a947cbbd5f8902088177" + hash: "3c290084b9c251e039aef4df8581ed31" } Frame { msec: 1184 - hash: "3715a52358febdbfa4aeefe56b4b173e" + hash: "893f5dc3cd01ace8d31ebc63e0d7e132" } Frame { msec: 1200 - hash: "d89459730ea136a34135fded35bc2247" + hash: "5cadde434641daffa52965659a4a056f" } Frame { msec: 1216 - hash: "ba8471a6c2449a05dfe411b86a38ff35" + hash: "741d34abca5ba1a2e5678f3ca272dbd3" } Frame { msec: 1232 - hash: "5c477b14e0ff59e5d7db360005deaea7" + hash: "96dd3f940c637b085026e224021239bd" } Frame { msec: 1248 - hash: "becdcaa9d4f78d94e3f3af87467798bd" + hash: "df8334c4ce1ca5f2317a771e787aea96" } Frame { msec: 1264 - hash: "2b1f5c5c6a9f26e6b359cf786591d480" + hash: "aeef63be208b75c9246248025c977b75" } Frame { msec: 1280 - hash: "9b1cbb944a941fd2869ac193e9701582" + hash: "8722a8e9b1cca4cf20ec31da27f38614" } Frame { msec: 1296 - hash: "e1c67be1ec2030529335c02099a3d9cc" + hash: "bdc1392f8e1a55e7c970502785024a89" } Frame { msec: 1312 - hash: "4f4ecadaa0afad0e38530067ee7688b9" + hash: "ed2be797ca3d623ca532fea7ca5b1f2c" } Frame { msec: 1328 - hash: "13f13cb8ea96d764c93ab43f538af2a7" + hash: "bb79d75488df131bf5443371c6b4464f" } Frame { msec: 1344 - hash: "cd33ccd1ac45f1f83cf93cfbdefa415a" + hash: "0b7dd91d5bc8290d4be1a0af6b2756c2" } Frame { msec: 1360 - hash: "8c84a3842a8da763c4b398e49a13831f" + hash: "4f1c88a745105934fb94a6a3e3620602" } Frame { msec: 1376 - hash: "3b47b3c27171032450a421ae8ecc786d" + hash: "c5a3b476c66e9b6a33f93d5114303669" } Frame { msec: 1392 - hash: "524517523cb15d7886c6dbfa8724ea95" + hash: "3104791545798f8e43ca976c893d078f" } Frame { msec: 1408 - hash: "3ae90a6ed20fe62da9fb81b51d6d9a1e" + hash: "3c8c329b4c757ab37054cbcc93840a75" } Frame { msec: 1424 - hash: "70c0880f0d0d1deefc22baebbeda06c3" + hash: "36b1fc7d93664005449d818dd063c8e7" } Frame { msec: 1440 - hash: "d97f6cda6df39ffe1db076204191bba6" + hash: "25927d84d7394e912977d25ddf555ddf" } Frame { msec: 1456 - hash: "d170a0b8339bd0c29b664403ce8b3286" + hash: "6f226e26d6a40b3688923fb833ce0fd9" } Frame { msec: 1472 - hash: "fd962a3a4e2fbe03f6730136cdc2a824" + hash: "75aaa5301fc8d716371d9fcec6491e81" } Frame { msec: 1488 - hash: "75bcbfc7d7bf3139538347b17b41cf12" + hash: "fb87bcb1b620d48d6bfa6eeb94025907" } Frame { msec: 1504 - hash: "0fcba8fa11a2f3fc7ebcefee6e9dafcd" + hash: "88231c28ef82974f8eb47060e64176d0" } Frame { msec: 1520 - hash: "621f80511b2ce7106b1d285045f505ca" + hash: "06db390a17fc2fa4a93012a168801d05" } Frame { msec: 1536 - hash: "be6896d8de4bbb8b7ef9e1d34f6f7f32" + hash: "41400211939574696e04bcd615130f34" } Frame { msec: 1552 - hash: "a770cffe72c2791d6d76c16926f98f2f" + hash: "ca979c24603d8cd31583c1670f15b1a9" } Frame { msec: 1568 - hash: "7e8222f9831e235c7d044b5188a20dd1" + hash: "515a32b5c4567c8dec3004c41214daa1" } Frame { msec: 1584 - hash: "a740dfb5ae432712abb4f5f9479a22fa" + hash: "d4fbe8e354db8b1b5fc543daf7007fdb" } Frame { msec: 1600 - hash: "a731135b3ac067712081b959f27d8784" + hash: "ec6351064566a120836cb115bb81e46a" } Frame { msec: 1616 - hash: "c6cdb85a28bdc970cf2a30f0e2cef763" + hash: "74dcd99e1ba3e5e8447d2695e4c4acd9" } Frame { msec: 1632 - hash: "4c901d5879cd4e1602b4f3560745f0b1" + hash: "7a751f44c384b87b0c2f633932587795" } Frame { msec: 1648 - hash: "ef64a09b2bd30a6c618ac59a8cacd628" + hash: "04e45b241cf498777835f74feeea0c15" } Frame { msec: 1664 - hash: "816f55f5b0b8e3baa52e274ae737ee30" + hash: "66096d2ef700bb64771fa192219e034a" } Frame { msec: 1680 - hash: "90db19b8b2d820d36d7a45518f730014" + hash: "1dd2437b0f63a8acaa8c62819d7de10e" } Frame { msec: 1696 - hash: "f94248d3df175536a4a6b88722763d75" + hash: "89e6b25fc16c5d1eba04cd0f7bd2f910" } Frame { msec: 1712 - hash: "d1aa57e0666a7d9b5b0dc7b021a1387c" + hash: "7cd23dbc40340bc3652255d4a65ce7ec" } Frame { msec: 1728 - hash: "77b17a540862f5ec6b2256408fd3637f" + hash: "5f94c6ba73d2dbeb8ec90b17cb7fab6f" } Frame { msec: 1744 - hash: "e9b9a37996f5825006565f5b56e755ea" + hash: "e8e01bc97bbd349e2f64a59d13ca25a3" } Frame { msec: 1760 - hash: "1ce712e1755047d17d5cf3c97cff1c96" + hash: "a0cf054ef1005191637173a22e325891" } Frame { msec: 1776 - hash: "95c21bab93788ed45280e61c51173a99" + hash: "fa8b35c0141049d691735b26eb9410ac" } Frame { msec: 1792 - hash: "6f62ae9bba2b1d2ea67f13d63157bd7c" + hash: "c55b4d3a3ee530480d0a0e0aa52f340f" } Frame { msec: 1808 - hash: "b5f11412bdb100f88a1f29aa577316e5" + hash: "b2639e3e32e513c991525a87448e805d" } Frame { msec: 1824 - hash: "d4e2468ed0935687e370fcf70059f57f" + hash: "d66f25378bbec3eca675a90795567825" } Frame { msec: 1840 - hash: "e7b5970ef9f327a8e7905f1a16c3f1a3" + hash: "13bb009108dfcdc861a16ab33a3c4f3a" } Frame { msec: 1856 - hash: "c5b9694fe2d7952d6ef03ff5febec00b" + hash: "3a09ccaf62d8929def529260da98dc7a" } Frame { msec: 1872 - hash: "0604da4b328d80162fd88bdfcf2a8a68" + hash: "79564d7447732fcfdbb81ff2bcd85a4f" } Frame { msec: 1888 - hash: "cbeffb3c86fcd7b52672382d6a186692" + hash: "149c65ef5ec18af4fd264fa284bfa027" } Frame { msec: 1904 - hash: "deb96a6469b351f5e70d3032ad250df9" + hash: "e5370728e870ac9f907aafbd17526631" } Frame { msec: 1920 - hash: "d4bcb6da72c0b7f2e0e55be917eb5720" + hash: "98034cff5b93c905bbc53cf9582bc4be" } Frame { msec: 1936 @@ -490,239 +490,239 @@ VisualTest { } Frame { msec: 1952 - hash: "c044b96932667fd56ca8c87ec70791a3" + hash: "05c3a8016110ad576c349964af3d4d05" } Frame { msec: 1968 - hash: "f197116b796c3647986337515c04a812" + hash: "91caa4f007dfd1ab7994a11bf4b4fa94" } Frame { msec: 1984 - hash: "3d06fad059276fd5f8f58faeac482d52" + hash: "d1fb233313ef6e7be742a504e171f6c0" } Frame { msec: 2000 - hash: "841ab0655e2bd498d51605fd37607378" + hash: "0e20bbd3c80189a6d8ea23205bf7b278" } Frame { msec: 2016 - hash: "5968dd4f704d72f264704ae6d6a416cf" + hash: "6f2b8de20e5800bda7a533353bb5805a" } Frame { msec: 2032 - hash: "5daf3758175963e409ad7ea18d40a894" + hash: "e25e8c3e7df20b0b7e8f25fba5d2608a" } Frame { msec: 2048 - hash: "37750cd0aca54fc6fa6651213a4a8aa0" + hash: "8802faef3121ac361b448b42b89d2176" } Frame { msec: 2064 - hash: "b64411f26c1bde823daa4caf96402887" + hash: "567c710da8f36b51192a8994611a50a8" } Frame { msec: 2080 - hash: "cf6d68046e9b7cc39305bfbdbd64a6eb" + hash: "d45309aabf9c510234276c28ef4e3c35" } Frame { msec: 2096 - hash: "47f89ab15314ce63dc3828aa4ae16d54" + hash: "ef698cc1ea8eee480c57f38a8f704e6b" } Frame { msec: 2112 - hash: "a7116055b3b33ad02bae75f2db016314" + hash: "5301682074b5343d18748cf6e7bada1c" } Frame { msec: 2128 - hash: "0a0443c4927d3d8d3373c311b89ead0d" + hash: "dd5220c0d94b747cd462e35e41945ae8" } Frame { msec: 2144 - hash: "6be5e906e9127471bb11e98ba9d68d4c" + hash: "0d1c246956283f80eff128bbb5241e03" } Frame { msec: 2160 - hash: "759c0e5e8a435846bf4471075df9ce1b" + hash: "7b57a3c6ee9b8ae316e2a2d7a1ab630d" } Frame { msec: 2176 - hash: "b7648957a2fdcca31b863907ea5cbc4f" + hash: "61780d8d53f21b275f9ee795c5519cbf" } Frame { msec: 2192 - hash: "7e9ead6f87c989160681fe87eb44224b" + hash: "1876746b0b6bdc40c808c3afb0ad00e8" } Frame { msec: 2208 - hash: "f7ab3534218320a49b8cc14b39d23a38" + hash: "6f7e9a1d8240b037501b486245eb5c33" } Frame { msec: 2224 - hash: "44ac6d8e7fd3facac856b532bea9b0dd" + hash: "8a5f3d8d9e0147072690740d567f8a2a" } Frame { msec: 2240 - hash: "238d68eb27eaacddcf428706fca95cad" + hash: "2ea7f42b92e407b50ebf82c841e77f7f" } Frame { msec: 2256 - hash: "8568076d97d416810f1e91acd33bbba0" + hash: "7ce3e829b75be2f2f72952c614748b51" } Frame { msec: 2272 - hash: "3649d85321ac7674d8c3dd77815aaf32" + hash: "112cbf9bf521c2fb0f0573081feb6051" } Frame { msec: 2288 - hash: "0c6dab9f7d575265d554093b88ee7e17" + hash: "c6d16bde84f714d3f14a105deb68e989" } Frame { msec: 2304 - hash: "6387cb408d048d7b139f3d9aed2f14d6" + hash: "f1e3f7416233bc8b3bce90672185cbd2" } Frame { msec: 2320 - hash: "de2fa29a82cec9d9f22d50bba257f5de" + hash: "009fd4bfc354c91f3766bcf32732b027" } Frame { msec: 2336 - hash: "ba77a0dc547202e129e899998c7e0909" + hash: "67220a780fc2cd8e9fbd314c5f000f7c" } Frame { msec: 2352 - hash: "0acde6d2435444611f7d5fc67d336d4b" + hash: "c306d1be1dc40fb115b583a83497fbb0" } Frame { msec: 2368 - hash: "1032d38e48cc3485c7a50bcf3ae949d0" + hash: "f6bedbbffec4447da8fda2d75169644c" } Frame { msec: 2384 - hash: "571649ca193507216f344405d8cb9636" + hash: "be4f28bd814ce3688bd7a28a2dc71606" } Frame { msec: 2400 - hash: "968aa311380ef783852b4a642d61d0c3" + hash: "130ec2ff6e06927a02df769743de19b5" } Frame { msec: 2416 - hash: "b440b4f5f2cb4a061b69e9a99bca0417" + hash: "34ffeec40133a30903809a30d9108887" } Frame { msec: 2432 - hash: "c1a2c2fd58f52c6a6f3e5dc2c1e9e8cf" + hash: "133a89cf6c784106066b96f51e43f43a" } Frame { msec: 2448 - hash: "2eab036693343475b799188c98f18bad" + hash: "6336801efb0d62e5b790ff67b76754a5" } Frame { msec: 2464 - hash: "9b0e2eb4c5ed398dfe5ac82c83d38065" + hash: "04d50179982fdf346a33e346eeb9eb62" } Frame { msec: 2480 - hash: "d6459b44113b2514a036a39449579918" + hash: "5432d629a9bce20e041841d79acf91ab" } Frame { msec: 2496 - hash: "99e24ed5413be65aee179d7fdd0aa473" + hash: "afbdef35aae3d79f0ba992a34c46b1dc" } Frame { msec: 2512 - hash: "43c7a5fe622eee2202ab1061155da474" + hash: "18a051efc4bf47515d2220549970fa69" } Frame { msec: 2528 - hash: "78bc6de01b343c19ce11bcb5ce5db091" + hash: "a0cde51080347ba164227c8a40cf37c1" } Frame { msec: 2544 - hash: "77463f64f99952f37467b4cae5a75a73" + hash: "b2eeabc7208b7a3f9e5a7d16f984be86" } Frame { msec: 2560 - hash: "39181ec3e10fba5d73221e3ef725661d" + hash: "ee5c97a5bd22b22a4e18998b6d056517" } Frame { msec: 2576 - hash: "f23732daf5b25cbfa79256ad21739537" + hash: "84f4575d2c4ba3a91ef72cb8caf64e63" } Frame { msec: 2592 - hash: "171b8149512f9a1fc44c4076ae8e6891" + hash: "bd14115e10086864de3ab6a7bc13f9a2" } Frame { msec: 2608 - hash: "1c30c5284764d3aba948f417dc67ea95" + hash: "9b3672f731fad142ae7e3621a325cf21" } Frame { msec: 2624 - hash: "5b40de40cc84f75a3038a2adafea6688" + hash: "17d1887942d2b7297b6f3a2545ec8bf2" } Frame { msec: 2640 - hash: "11e918309ac265c0dddc34b05ddd2beb" + hash: "c5c8b41e74b90fcb9d4da432fa01e361" } Frame { msec: 2656 - hash: "a18c91eae3fd3154c12e46717248577a" + hash: "a2992b652305077906db9dcbb90c1a23" } Frame { msec: 2672 - hash: "839199f3940822a38fc2b44161ee0840" + hash: "bfb30aa4caa43833eca59ceaaca04084" } Frame { msec: 2688 - hash: "8b62f8b4c353981788111a9434995a18" + hash: "cbb06915ae6176ef52fdb518fb5a12de" } Frame { msec: 2704 - hash: "db7ee2d5e4905959c836d5162bd241c0" + hash: "a894d34c39b274149a9391a5956f0666" } Frame { msec: 2720 - hash: "cb770a4cd0f56108ef703147e74338ae" + hash: "7dcc1008d2287ca15f726854e5e204f2" } Frame { msec: 2736 - hash: "bdaaedef0c17b19cc283eba699799073" + hash: "811db22f9a25dd594f59d97adb41b9ce" } Frame { msec: 2752 - hash: "8a7f5f87493ba387c14056f9a598e320" + hash: "6535cb3f4cf2839158f172bd0c1baf88" } Frame { msec: 2768 - hash: "3974497b297fa233f3821abba2bdd6ce" + hash: "1919a3d079c06fbb00b6a23d4a47951a" } Frame { msec: 2784 - hash: "41a5744b7747765764829328217e80ea" + hash: "69f3525379f7628c4435d2681a2a0bb8" } Frame { msec: 2800 - hash: "4d380bb823659cdfc1d3517234144b72" + hash: "4ce4253e733c24a1a988de018916d0b2" } Frame { msec: 2816 - hash: "4699cc1dad5c6d5c84137ee5c5db52a4" + hash: "7610bee04c98b9af5e6ae34f4a1a4a09" } Frame { msec: 2832 - hash: "22a34c810c640b378708079761d16c9b" + hash: "5e2a2c16c0a218afc3eb9095f3432f41" } Frame { msec: 2848 - hash: "0c76a943b24dc9538416b05a678c7c94" + hash: "0124a41ff860d31b3e36973226db2916" } Frame { msec: 2864 - hash: "575a20b793f899d50a95121708263283" + hash: "a1126e1d8cce43dfb571803a62f790de" } Frame { msec: 2880 - hash: "830757417bbff5d6950177aa3617516a" + hash: "6eee371fe5cc8b052ca49bb5e3509307" } Frame { msec: 2896 @@ -730,239 +730,239 @@ VisualTest { } Frame { msec: 2912 - hash: "1b83db1121bb3436621d3f22758af76d" + hash: "331bcae7bd6aeaede3556cf926bd1a0c" } Frame { msec: 2928 - hash: "b2a6d502e9ed62f67c29b8ae7b857116" + hash: "a7561f3a6ce4fee43e4b06dfe5ee7844" } Frame { msec: 2944 - hash: "e9e06068090c076021e508772ae85b5a" + hash: "712e52e72cc01ae29cd7e736a78f94b3" } Frame { msec: 2960 - hash: "5c7288791d73792b914e99a38b7b455c" + hash: "d34a4414fca4ef7a2cce288d438bfcc1" } Frame { msec: 2976 - hash: "ad2b35c647da055a1088e476f250ea78" + hash: "1c2c5241aee7efcc9a6adcbe01f56609" } Frame { msec: 2992 - hash: "7cc9bbd4a2ed2ba1646b10a68c11241f" + hash: "90a8547113c36002f62405aac41de5b1" } Frame { msec: 3008 - hash: "f633c12a9d078c4a1405ee399bd75e6f" + hash: "5726801ea37dcfd2c087c9523b360b55" } Frame { msec: 3024 - hash: "e4638bb2b40ed7c31630412010bccef1" + hash: "a371d1f9ef687f50d433b0efb6bb57c9" } Frame { msec: 3040 - hash: "76fdd98f79c08d9211c42b79f953315a" + hash: "75e0e2728e2160dcc012a21c759c62d0" } Frame { msec: 3056 - hash: "df754dffbe6429aa7222e7a37d1956c5" + hash: "428e6d8adbd0e85790365d7537dc37c8" } Frame { msec: 3072 - hash: "68edef9b10728f0785cc74dfe92c3e03" + hash: "798babedde2192b4ac9becc5bae3ea62" } Frame { msec: 3088 - hash: "627ac43eb191db77345ab1a08bfd7e7a" + hash: "39745e87e8e96993fccfed6710c3c14f" } Frame { msec: 3104 - hash: "c38698cc4c2de1eb96855f0b6398fd7f" + hash: "08624110f2bba4e676b4a339ead23f78" } Frame { msec: 3120 - hash: "6264db59fa7dd4498cedac94b856d90e" + hash: "1d45fc90eb70a3c21d503284637355de" } Frame { msec: 3136 - hash: "b550d8181dbf88c5079e2fb6310f0309" + hash: "37c6eed126e265f4a60a1bc92879e18e" } Frame { msec: 3152 - hash: "6ffecf31343192ae352c42c6ba978fd3" + hash: "a25f2accf6e19eb293a5540efa9447ec" } Frame { msec: 3168 - hash: "445e7056bfb7726fcf1b0b6411400ec0" + hash: "5212d86075595cb1a9c47cf683ac411a" } Frame { msec: 3184 - hash: "9648c06d3a89c054587fa1e86c727fd0" + hash: "8f43028def9e949ca3a15fdec9932a59" } Frame { msec: 3200 - hash: "8d0af1ad33c06cfceaba1a0ca84cf0a0" + hash: "90b55602b8aa530d634db72c202f2d75" } Frame { msec: 3216 - hash: "f8f0c27738b186f17a9dd106481e85c5" + hash: "f5a84978918f8987b49ce500959d81ef" } Frame { msec: 3232 - hash: "44e5893cd28e2d70afbfbb779f2dd154" + hash: "588382357311925157e12ae7a576426c" } Frame { msec: 3248 - hash: "dc0d1baafa24423402caf63d6fcd6189" + hash: "ce3e9a93f60579f77f6503637cb316d0" } Frame { msec: 3264 - hash: "12c17a563b37bf633dce6fc6793d1cd9" + hash: "63c2ba78f5a81375fe79c5b2b2030b55" } Frame { msec: 3280 - hash: "a8647172101b59753ea6aa40ec4570dc" + hash: "7dceb950e0cae31bddeca1d279a688f3" } Frame { msec: 3296 - hash: "e21afb74f793bef8c1b03d252b5700a8" + hash: "c6681bcf60562b16eb515f6b0bfdc751" } Frame { msec: 3312 - hash: "2e10ccbdee088b17172a479a8a859d56" + hash: "cd2b41f01af6b80622158bf38a13c609" } Frame { msec: 3328 - hash: "f111c24e1e8d643543519fd703811f24" + hash: "69401bc38be274791a26f6ea161eb296" } Frame { msec: 3344 - hash: "dd9aeec2ed05f9c68e1726a91e90e127" + hash: "425238342219c4fc66c4a0a8b16c5345" } Frame { msec: 3360 - hash: "043923ed2dee91815d0dce6cd38834e9" + hash: "a501082add225fa59f468808d34d1c16" } Frame { msec: 3376 - hash: "07e0dbb223355b2921eb0597235ee820" + hash: "58bba6d1eb3166e7ac9bfe36cd9a4fa9" } Frame { msec: 3392 - hash: "0fba3e9a08d83405df35c632f9dc051e" + hash: "293df1a2bdd526e97d5783f46f74262c" } Frame { msec: 3408 - hash: "a0a5a515ec395bdf4912ab24c8780339" + hash: "6808ee202e8eae3c72474126b59aa0dc" } Frame { msec: 3424 - hash: "4e04e0246eb952cfae716214084cc1ed" + hash: "7ef977f275851649324e333d58777156" } Frame { msec: 3440 - hash: "e7e989234e360e7c0cb44e7be4d654e8" + hash: "12007edff45f9cc21a2f633052e4b9d6" } Frame { msec: 3456 - hash: "139b3309ac9e25b2165342bfb202169f" + hash: "bc1d362d3a42ab3610136727605222dc" } Frame { msec: 3472 - hash: "b4008ee73b92abad9c5fd7c83cb864cf" + hash: "6bfead8d9644f5abdd3b896714521002" } Frame { msec: 3488 - hash: "b801a917995bd41eee2f4e4fed3006c5" + hash: "341c311e4b08d69a053c1faffc208838" } Frame { msec: 3504 - hash: "a0ea151cd2a2056a45ff5428239b37f4" + hash: "54e4c8001d06c7c48180865598f5f5df" } Frame { msec: 3520 - hash: "01df418b5ba99271d3a2e8807de78899" + hash: "e69c142bf2a6cf85194de5df91e54886" } Frame { msec: 3536 - hash: "047fd42df7a5ba0f939930c2021df5fe" + hash: "fb9fda1e790c64aea264a6af0020ce33" } Frame { msec: 3552 - hash: "4336498cee8b516e79297a073257e008" + hash: "74c27a13090e8eb78bc157daff840e07" } Frame { msec: 3568 - hash: "ce404ce21bc91ff8dc61bd95b9e1d5ac" + hash: "f9a8c1764b0a1625ce336e80a91db00e" } Frame { msec: 3584 - hash: "06b5c263105ec574f10e70002c29adee" + hash: "11fd6f7cee3971ebce744f20da77139f" } Frame { msec: 3600 - hash: "6a224a56bbeaeb703afa0c2a7f2daf7d" + hash: "6cea030cfc1c53772f14d760d046d7f8" } Frame { msec: 3616 - hash: "65259fcbdb9edfefc4fcbd1ab5f62542" + hash: "599cf14ec73f6812ffb49312d3d8f742" } Frame { msec: 3632 - hash: "93be4111a6aa21d85ab354bbd41e5b31" + hash: "879798ae161f1550096abdfa113e3eac" } Frame { msec: 3648 - hash: "2e4edcdc4807466620c9671d329a0977" + hash: "4cc9b679554a2a8b809a88504c17f86a" } Frame { msec: 3664 - hash: "e3232d08b83e3e9917b6f4eabc86df72" + hash: "943bca80ab42c1856aa095add705a3fe" } Frame { msec: 3680 - hash: "f27caa5d738b4778d4343f7b197c5dac" + hash: "0386a55ebc0cd32b4b7727eac2908a59" } Frame { msec: 3696 - hash: "dcf3032bc798daf1dc6bb7d608e2dffb" + hash: "74ed8ea60f1c1b3fb097eb7f5bca43e8" } Frame { msec: 3712 - hash: "9f2d4ba31ab4ec10b43b7de19197994e" + hash: "225f78966947d20268f1bea32093c0c9" } Frame { msec: 3728 - hash: "4bf6419de081524ecdeb4c07b376f06d" + hash: "d2ed6af6fbdfbdcd9c82a588b72c5f6b" } Frame { msec: 3744 - hash: "3fdd8166873e768e1346e52a1b4a6554" + hash: "3c0e45078e5223335a4204fb8904d116" } Frame { msec: 3760 - hash: "7b25b2f1b2694a87095fba46d505684f" + hash: "58ad3d7030b079cdedf1a84d6c6a59fc" } Frame { msec: 3776 - hash: "d8246057d4b0306747ba449d5247dd21" + hash: "2c8ce9f237a2c373584b661defe84e7f" } Frame { msec: 3792 - hash: "e45c06fbf48923393f672381f0256513" + hash: "c2f2ae8c7481036ddda01776db61ef0a" } Frame { msec: 3808 - hash: "fef8f1bf977d6567eebe14ccafd36853" + hash: "7236e9d1e086479acd5047070a4ae700" } Frame { msec: 3824 - hash: "04152eab971eac3fbba26f15ba09d329" + hash: "7f95776ac1804971cc939f8f1f0fee70" } Frame { msec: 3840 - hash: "5039cb5183587fe46ef30c5d0f8c9584" + hash: "d6d76b50b7d2ec522a51d2512a5aeff8" } Frame { msec: 3856 @@ -970,99 +970,99 @@ VisualTest { } Frame { msec: 3872 - hash: "5d62550ba4502c3eae3f62ce5b8e9374" + hash: "29b8b535c9321752a68b17400c7133ac" } Frame { msec: 3888 - hash: "859ab80ee7d563a158970d1f3360c7dd" + hash: "846f4f5718bce8dc7a333d8603bfe729" } Frame { msec: 3904 - hash: "4f900b694d6e552c9287472ca58be35a" + hash: "b285f6a417bfb46add698f4193b39552" } Frame { msec: 3920 - hash: "6b3aa5a3071ea5ec911bae3dee02a496" + hash: "b79708e4aa2b05a1c285dd075127460d" } Frame { msec: 3936 - hash: "d1b1536b5162e5367db66bb21ccebdcd" + hash: "0cdded9c7796292cd38a3bc2fdc65597" } Frame { msec: 3952 - hash: "8c8dd0b84be58a3257dbd0210a7b21ab" + hash: "6f8855c20666a58bbf4ade762403180e" } Frame { msec: 3968 - hash: "f96cb092836d67c81fdfd3668005e912" + hash: "1a7979b578c8b330099a5e840d5d2bd8" } Frame { msec: 3984 - hash: "7b06694d2fd4dd2def94b11a1e46a391" + hash: "30fb74a2bf4e1ec57332713994e405cd" } Frame { msec: 4000 - hash: "cef499e6c1665d2bd4a4322d4334234a" + hash: "1c7df42f90a867350adca840106d3ba1" } Frame { msec: 4016 - hash: "664503d5cef2676e287c363a488e91f1" + hash: "5509a232afe047f365465ef8fd9f0af0" } Frame { msec: 4032 - hash: "cefa44e348ea0d6955a71c7eb0a9b45c" + hash: "2149d59ffd7c07bdc0bcb2d8ad9b1ca3" } Frame { msec: 4048 - hash: "0ee5684bf4d5b54c5bc9aeefcb98a3d1" + hash: "4b8848019eaf4af67db4db09b98b183e" } Frame { msec: 4064 - hash: "fb6667f1c516187cfb93774469ea8165" + hash: "e3f6f9db89bd81ce68f8dfd401f1baa8" } Frame { msec: 4080 - hash: "fba776d4d3056bf64e335de876e118be" + hash: "6e8d991c83094c89025148bc0943e554" } Frame { msec: 4096 - hash: "a49aa08c4bd8a1ae9420e0962cf77e01" + hash: "ed4d8bde61581cdcf6128c65d427846c" } Frame { msec: 4112 - hash: "bff31d464ae9fc68adf0c8072b637592" + hash: "c63d0baaa43c4f6a0f0150ecf268b06d" } Frame { msec: 4128 - hash: "23bd0afacb2d9bd009c9b5006dc6adf1" + hash: "b36c6a0092f400bb99b2c68a0ba4e6ce" } Frame { msec: 4144 - hash: "d918e94e5be77741d1172fbf960db07e" + hash: "b4b1059c1e00ee77fda538f9e71a6206" } Frame { msec: 4160 - hash: "9abce75f201e20a730e79a672bf837e8" + hash: "e7c36e10dee12ea2d22d7c17cde9d8ca" } Frame { msec: 4176 - hash: "aae93f5e2a2c6e06dbe78bea4e6b1283" + hash: "78d070c37bbc707e38db98896f997349" } Frame { msec: 4192 - hash: "66cba82f479ae6536800b05f6d694884" + hash: "e56cb5fbb7713a66ef1f1577eff20db8" } Frame { msec: 4208 - hash: "d79d43b820c4a53735cfb84288dd5efd" + hash: "17e466af39cdde893cf93fa38392bb90" } Frame { msec: 4224 - hash: "fe0237b64a2ef664ce2c3028b730fdc4" + hash: "75bf32afe1071794bba58623d7165a22" } Frame { msec: 4240 - hash: "771b02756dadb0a1f268166138f7cad4" + hash: "6de50f6748021b99731f6cb25d6d6ec3" } Frame { msec: 4256 @@ -1258,66 +1258,66 @@ VisualTest { } Frame { msec: 5024 - hash: "c95868a45ccb031ea1d440bedd1fc33f" + hash: "f803bd7bdc97bb8bbb5103a54901d756" } Frame { msec: 5040 - hash: "eb78d75fbf3ef0b88c072f69ac3f490d" + hash: "de956b3223e24a615713c35faa403128" } Frame { msec: 5056 - hash: "6f612fe36fa8028a75f6149390bd3585" + hash: "9124b4e5f5dd374e44f3f57fe3d6809b" } Frame { msec: 5072 - hash: "7906071fe656ccf18d24c100950b6a7a" + hash: "5b8313c622796aa87248b38ab336bcf8" } Frame { msec: 5088 - hash: "064a0b9a0adb235fd52a6d53b65c9d1c" + hash: "de6477fc7e6b8f14a7a51f9cf762ee79" } Frame { msec: 5104 - hash: "f42b6952937376ae34f7ef493e86aee6" + hash: "0d908ef6e3ea15455e35a9ebbc90c735" } Frame { msec: 5120 - hash: "3444491cc10b0ae2f298ac3aefcda77c" + hash: "bd1d7ad510cd5e04283f6167a5a8e2df" } Frame { msec: 5136 - hash: "ce5adf6c5c4d5e385ce7e461e380b00e" + hash: "2ec7418477158ee60afe123fa2b7ce4b" } Frame { msec: 5152 - hash: "6b6c1a422f778935b400c9a170439ec4" + hash: "04c671070b1eba13380aa2fbb672d3a1" } Frame { msec: 5168 - hash: "fdaff741a826c10cb9799adc70d92145" + hash: "ce031ba5b388dfaff34674eb71f790f2" } Frame { msec: 5184 - hash: "259da9a4c2bb9c89d16dd1943645e836" + hash: "e754141341d9f81366f21820e46bd1ca" } Frame { msec: 5200 - hash: "fd2903f4b3d7086981a89e87e460a7ba" + hash: "acf56542617bc742ad729709645ac919" } Frame { msec: 5216 - hash: "9860af14b459925078467f334bf41e42" + hash: "c50698470bc6c1ea04633b9e819a2d4d" } Frame { msec: 5232 - hash: "ae2b8b255d48c12a954f02c63e0d5aa4" + hash: "c156d3540c3cf6d406b72696fd6e9148" } Frame { msec: 5248 - hash: "c33e9369e76654433e97b2b72cca7911" + hash: "82a04f09cd35db0dbf012797625368e4" } Frame { msec: 5264 - hash: "7fa3de8afdeb61c6e2e87cde2e96152f" + hash: "3b9ccb93f6375ea401c1fc3bcdf847d5" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png index 688de40..f2a0225 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png index 4177b9e..1ab1eb5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png index 36e5d35..68921f6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png index 34f8e38..c9450c7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png differ 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 19a7ea1..59fc0fc 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 e25493f..2747b50 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 5800e13..74efe73 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 29e8168..02f6e17 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.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png index 19a7ea1..59fc0fc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.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 955ebbd..760a831 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml @@ -10,95 +10,95 @@ VisualTest { } Frame { msec: 32 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 48 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 64 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 80 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 96 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 112 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 128 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 144 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 160 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 176 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 192 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 208 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 224 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 240 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 256 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 272 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 288 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 304 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 320 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 336 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 352 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 368 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 384 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Key { type: 6 @@ -110,15 +110,15 @@ VisualTest { } Frame { msec: 400 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 416 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 432 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Key { type: 7 @@ -130,27 +130,27 @@ VisualTest { } Frame { msec: 448 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 464 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 480 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 496 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 512 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 528 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Key { type: 6 @@ -162,15 +162,15 @@ VisualTest { } Frame { msec: 544 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 560 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 576 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Key { type: 7 @@ -182,27 +182,27 @@ VisualTest { } Frame { msec: 592 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 608 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 624 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 640 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 656 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 672 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Key { type: 6 @@ -214,19 +214,19 @@ VisualTest { } Frame { msec: 688 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 704 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 720 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 736 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Key { type: 7 @@ -238,23 +238,23 @@ VisualTest { } Frame { msec: 752 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 768 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 784 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 800 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 816 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Key { type: 6 @@ -266,19 +266,19 @@ VisualTest { } Frame { msec: 832 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 848 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 864 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 880 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Key { type: 7 @@ -290,19 +290,19 @@ VisualTest { } Frame { msec: 896 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 912 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 928 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 944 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Key { type: 6 @@ -314,7 +314,7 @@ VisualTest { } Frame { msec: 960 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 976 @@ -322,11 +322,11 @@ VisualTest { } Frame { msec: 992 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 1008 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Key { type: 7 @@ -338,23 +338,23 @@ VisualTest { } Frame { msec: 1024 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 1040 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 1056 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 1072 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 1088 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 1104 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1120 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1136 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Key { type: 7 @@ -386,23 +386,23 @@ VisualTest { } Frame { msec: 1152 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1168 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1184 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1200 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 1216 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Key { type: 6 @@ -414,19 +414,19 @@ VisualTest { } Frame { msec: 1232 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1248 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1264 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1280 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Key { type: 7 @@ -438,19 +438,19 @@ VisualTest { } Frame { msec: 1296 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1312 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1328 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 1344 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Key { type: 6 @@ -462,19 +462,19 @@ VisualTest { } Frame { msec: 1360 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1376 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1392 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1408 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Key { type: 7 @@ -486,23 +486,23 @@ VisualTest { } Frame { msec: 1424 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1440 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1456 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1472 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1488 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Key { type: 6 @@ -514,15 +514,15 @@ VisualTest { } Frame { msec: 1504 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1520 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1536 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Key { type: 7 @@ -534,79 +534,79 @@ VisualTest { } Frame { msec: 1552 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1568 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1584 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1600 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1616 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1632 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1648 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1664 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1680 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1696 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1712 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1728 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1744 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1760 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1776 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1792 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1808 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1824 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Frame { msec: 1840 - hash: "79ad12250ec5379ed79ad01604968fe0" + hash: "64f5712c1f96345f2a2ad103e6fbd734" } Key { type: 6 @@ -618,23 +618,23 @@ VisualTest { } Frame { msec: 1856 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1872 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1888 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1904 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1920 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1936 @@ -642,15 +642,15 @@ VisualTest { } Frame { msec: 1952 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1968 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 1984 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Key { type: 7 @@ -662,23 +662,23 @@ VisualTest { } Frame { msec: 2000 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 2016 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 2032 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 2048 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Frame { msec: 2064 - hash: "0a110e257ae412b8440a17be98a6b7f5" + hash: "7f895d1255301397298cd6b92282e4f7" } Key { type: 6 @@ -690,23 +690,23 @@ VisualTest { } Frame { msec: 2080 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2096 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2112 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2128 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2144 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Key { type: 7 @@ -718,23 +718,23 @@ VisualTest { } Frame { msec: 2160 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2176 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2192 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2208 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Frame { msec: 2224 - hash: "162c39ecb50d0a2a03953cca07c493ff" + hash: "6ec9e863238467c249f62bdd38b68490" } Key { type: 6 @@ -746,11 +746,11 @@ VisualTest { } Frame { msec: 2240 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 2256 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Key { type: 7 @@ -762,23 +762,23 @@ VisualTest { } Frame { msec: 2272 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 2288 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 2304 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 2320 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Frame { msec: 2336 - hash: "0386e92fe3ea2eda40b6f785419cf9f7" + hash: "fe998f3c7c780fddfa6a595936d2e78e" } Key { type: 6 @@ -790,15 +790,15 @@ VisualTest { } Frame { msec: 2352 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2368 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2384 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Key { type: 7 @@ -810,55 +810,55 @@ VisualTest { } Frame { msec: 2400 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2416 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2432 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2448 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2464 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2480 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2496 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2512 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2528 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2544 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2560 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2576 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Frame { msec: 2592 - hash: "671d2393c31db71d33cd29482294b855" + hash: "a7415d0abcc670ba02c2a00b3b5fc647" } Key { type: 6 @@ -870,23 +870,23 @@ VisualTest { } Frame { msec: 2608 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2624 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2640 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2656 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2672 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Key { type: 7 @@ -898,23 +898,23 @@ VisualTest { } Frame { msec: 2688 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2704 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2720 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2736 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Frame { msec: 2752 - hash: "59923f379655d063d27641c88064c071" + hash: "9eda76efdd179847e89b9e96ead51e4a" } Key { type: 6 @@ -926,15 +926,15 @@ VisualTest { } Frame { msec: 2768 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 2784 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 2800 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Key { type: 7 @@ -946,19 +946,19 @@ VisualTest { } Frame { msec: 2816 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 2832 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 2848 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Frame { msec: 2864 - hash: "5815bbb03307e196fa567ae273366394" + hash: "1bcb9bc9d6606329ad5376ea6f608bf8" } Key { type: 6 @@ -970,7 +970,7 @@ VisualTest { } Frame { msec: 2880 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 2896 @@ -978,11 +978,11 @@ VisualTest { } Frame { msec: 2912 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 2928 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Key { type: 7 @@ -994,23 +994,23 @@ VisualTest { } Frame { msec: 2944 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 2960 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 2976 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 2992 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Frame { msec: 3008 - hash: "7f418dcd1c4ef954cbb66e16361b8871" + hash: "1465f1f32ba4a6180ab3460298febe26" } Key { type: 6 @@ -1022,23 +1022,23 @@ VisualTest { } Frame { msec: 3024 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3040 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3056 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3072 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3088 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Key { type: 7 @@ -1050,155 +1050,155 @@ VisualTest { } Frame { msec: 3104 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3120 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3136 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3152 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3168 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3184 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3200 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3216 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3232 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3248 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3264 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3280 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3296 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3312 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3328 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3344 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3360 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3376 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3392 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3408 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3424 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3440 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3456 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3472 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3488 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3504 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3520 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3536 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3552 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3568 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3584 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3600 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3616 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3632 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3648 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3664 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3680 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Frame { msec: 3696 - hash: "ff9e0c6cfbbbd68708698875037ac3d3" + hash: "89f3a1c5080d5d742e4455a8818a715c" } Key { type: 6 @@ -1210,27 +1210,27 @@ VisualTest { } Frame { msec: 3712 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3728 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3744 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3760 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3776 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3792 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Key { type: 7 @@ -1242,15 +1242,15 @@ VisualTest { } Frame { msec: 3808 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3824 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3840 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3856 @@ -1258,114 +1258,114 @@ VisualTest { } Frame { msec: 3872 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3888 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3904 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3920 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3936 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3952 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3968 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 3984 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4000 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4016 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4032 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4048 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4064 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4080 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4096 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4112 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4128 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4144 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4160 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4176 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4192 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4208 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4224 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4240 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4256 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4272 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4288 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } Frame { msec: 4304 - hash: "5efa0360e73361a50a5fb4e2b7a650b5" + hash: "0051b27d72a917e2af72c4b953877d42" } } 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 da3b971..d63f753 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 8ea0787..bb7daa3 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 33328db..bcad242 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 222ba53..7be45e7 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 970e73d..42f7f51 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 4dc64a1..147632a 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 99d451c..d624a71 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.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png index 99d451c..d624a71 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.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 13834f0..72f68e7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml @@ -18,7 +18,7 @@ VisualTest { } Frame { msec: 32 - hash: "ca07773bf0df96be1f23d13c4d6e2bfd" + hash: "3e34b9a8c5df08caa18f37289c25138f" } Key { type: 7 @@ -30,11 +30,11 @@ VisualTest { } Frame { msec: 48 - hash: "ca07773bf0df96be1f23d13c4d6e2bfd" + hash: "3e34b9a8c5df08caa18f37289c25138f" } Frame { msec: 64 - hash: "ca07773bf0df96be1f23d13c4d6e2bfd" + hash: "3e34b9a8c5df08caa18f37289c25138f" } Key { type: 7 @@ -46,11 +46,11 @@ VisualTest { } Frame { msec: 80 - hash: "ca07773bf0df96be1f23d13c4d6e2bfd" + hash: "3e34b9a8c5df08caa18f37289c25138f" } Frame { msec: 96 - hash: "ca07773bf0df96be1f23d13c4d6e2bfd" + hash: "3e34b9a8c5df08caa18f37289c25138f" } Key { type: 6 @@ -62,15 +62,15 @@ VisualTest { } Frame { msec: 112 - hash: "fc223de2e1f35db08d9689bc41f02304" + hash: "4242081446f2a3122bbd4f8c03a67e5c" } Frame { msec: 128 - hash: "fc223de2e1f35db08d9689bc41f02304" + hash: "4242081446f2a3122bbd4f8c03a67e5c" } Frame { msec: 144 - hash: "fc223de2e1f35db08d9689bc41f02304" + hash: "4242081446f2a3122bbd4f8c03a67e5c" } Key { type: 6 @@ -82,15 +82,15 @@ VisualTest { } Frame { msec: 160 - hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" + hash: "79c4a9defe89f99b3f6b3c25bd81fc7e" } Frame { msec: 176 - hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" + hash: "79c4a9defe89f99b3f6b3c25bd81fc7e" } Frame { msec: 192 - hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" + hash: "79c4a9defe89f99b3f6b3c25bd81fc7e" } Key { type: 7 @@ -102,11 +102,11 @@ VisualTest { } Frame { msec: 208 - hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" + hash: "79c4a9defe89f99b3f6b3c25bd81fc7e" } Frame { msec: 224 - hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd" + hash: "79c4a9defe89f99b3f6b3c25bd81fc7e" } Key { type: 6 @@ -118,7 +118,7 @@ VisualTest { } Frame { msec: 240 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Key { type: 7 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 256 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Frame { msec: 272 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Frame { msec: 288 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Frame { msec: 304 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Key { type: 7 @@ -154,11 +154,11 @@ VisualTest { } Frame { msec: 320 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Frame { msec: 336 - hash: "c017468afd522089b5c9f42dd61be1b4" + hash: "0bee22de7793974cadec12dfb5df16aa" } Key { type: 6 @@ -170,19 +170,19 @@ VisualTest { } Frame { msec: 352 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 368 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 384 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 400 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Key { type: 7 @@ -194,19 +194,19 @@ VisualTest { } Frame { msec: 416 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 432 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 448 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Frame { msec: 464 - hash: "84b1f1bf26af0da07006bb102d22693f" + hash: "07393d1c1bb6da436700881ebcd38195" } Key { type: 6 @@ -218,19 +218,19 @@ VisualTest { } Frame { msec: 480 - hash: "a16f5aa01bd07de4ef7f868b7b6116f7" + hash: "b12a4550ae068d157d340c008047d6f1" } Frame { msec: 496 - hash: "a16f5aa01bd07de4ef7f868b7b6116f7" + hash: "b12a4550ae068d157d340c008047d6f1" } Frame { msec: 512 - hash: "a16f5aa01bd07de4ef7f868b7b6116f7" + hash: "b12a4550ae068d157d340c008047d6f1" } Frame { msec: 528 - hash: "a16f5aa01bd07de4ef7f868b7b6116f7" + hash: "b12a4550ae068d157d340c008047d6f1" } Key { type: 6 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 544 - hash: "e25e16d0d7b223b243d466630b901f68" + hash: "f291de0963549b92d607f38d2d08c551" } Frame { msec: 560 - hash: "e25e16d0d7b223b243d466630b901f68" + hash: "f291de0963549b92d607f38d2d08c551" } Frame { msec: 576 - hash: "e25e16d0d7b223b243d466630b901f68" + hash: "f291de0963549b92d607f38d2d08c551" } Frame { msec: 592 - hash: "e25e16d0d7b223b243d466630b901f68" + hash: "f291de0963549b92d607f38d2d08c551" } Frame { msec: 608 - hash: "e25e16d0d7b223b243d466630b901f68" + hash: "f291de0963549b92d607f38d2d08c551" } Key { type: 7 @@ -286,19 +286,19 @@ VisualTest { } Frame { msec: 624 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Frame { msec: 640 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Frame { msec: 656 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Frame { msec: 672 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Key { type: 7 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 688 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Frame { msec: 704 - hash: "a53520edb9c117aa53abc42fce3505be" + hash: "b7eedae59cc521aa8222596cd97bf129" } Key { type: 6 @@ -326,23 +326,23 @@ VisualTest { } Frame { msec: 720 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Frame { msec: 736 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Frame { msec: 752 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Frame { msec: 768 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Frame { msec: 784 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Key { type: 7 @@ -354,7 +354,7 @@ VisualTest { } Frame { msec: 800 - hash: "a7ef30038b24e8bf946bdd38aaac6430" + hash: "98ef281d984841075f2fc82cebcba3a9" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 816 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Frame { msec: 832 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Frame { msec: 848 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Key { type: 7 @@ -386,15 +386,15 @@ VisualTest { } Frame { msec: 864 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Frame { msec: 880 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Frame { msec: 896 - hash: "026b29fc03bd22e15ff725d34dee91eb" + hash: "e7b8f24ba55765e2fc1f386d510b402f" } Key { type: 6 @@ -406,19 +406,19 @@ VisualTest { } Frame { msec: 912 - hash: "2b1cef34dff32e36e3c44f2ffb2be66e" + hash: "38a3062cb4f23993416f83ff6acbe189" } Frame { msec: 928 - hash: "2b1cef34dff32e36e3c44f2ffb2be66e" + hash: "38a3062cb4f23993416f83ff6acbe189" } Frame { msec: 944 - hash: "2b1cef34dff32e36e3c44f2ffb2be66e" + hash: "38a3062cb4f23993416f83ff6acbe189" } Frame { msec: 960 - hash: "2b1cef34dff32e36e3c44f2ffb2be66e" + hash: "38a3062cb4f23993416f83ff6acbe189" } Frame { msec: 976 @@ -426,7 +426,7 @@ VisualTest { } Frame { msec: 992 - hash: "2b1cef34dff32e36e3c44f2ffb2be66e" + hash: "38a3062cb4f23993416f83ff6acbe189" } Key { type: 6 @@ -446,23 +446,23 @@ VisualTest { } Frame { msec: 1008 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1024 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1040 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1056 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1072 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Key { type: 7 @@ -474,31 +474,31 @@ VisualTest { } Frame { msec: 1088 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1104 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1120 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1136 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1152 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1168 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Frame { msec: 1184 - hash: "f619bc4148876effc459127009d4cc3a" + hash: "daef9995a008f0ca672adc98315a6b9f" } Key { type: 6 @@ -510,23 +510,23 @@ VisualTest { } Frame { msec: 1200 - hash: "c7fbee3129141e8493b7bc4f85fdc2d0" + hash: "da27d35f241ccc7c1ee2832e491fa726" } Frame { msec: 1216 - hash: "c7fbee3129141e8493b7bc4f85fdc2d0" + hash: "da27d35f241ccc7c1ee2832e491fa726" } Frame { msec: 1232 - hash: "c7fbee3129141e8493b7bc4f85fdc2d0" + hash: "da27d35f241ccc7c1ee2832e491fa726" } Frame { msec: 1248 - hash: "c7fbee3129141e8493b7bc4f85fdc2d0" + hash: "da27d35f241ccc7c1ee2832e491fa726" } Frame { msec: 1264 - hash: "c7fbee3129141e8493b7bc4f85fdc2d0" + hash: "da27d35f241ccc7c1ee2832e491fa726" } Key { type: 7 @@ -546,11 +546,11 @@ VisualTest { } Frame { msec: 1280 - hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed" + hash: "7136f5cfcca4a86b8764667895efa813" } Frame { msec: 1296 - hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed" + hash: "7136f5cfcca4a86b8764667895efa813" } Key { type: 6 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1312 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1328 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1344 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Key { type: 7 @@ -582,11 +582,11 @@ VisualTest { } Frame { msec: 1360 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1376 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1392 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1408 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1424 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Frame { msec: 1440 - hash: "147efa341e4dc39cdd555c2c81e5c603" + hash: "b99aec3d97f4442378a18ac88d50b97d" } Key { type: 6 @@ -622,23 +622,23 @@ VisualTest { } Frame { msec: 1456 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Frame { msec: 1472 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Frame { msec: 1488 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Frame { msec: 1504 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Frame { msec: 1520 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Key { type: 7 @@ -650,11 +650,11 @@ VisualTest { } Frame { msec: 1536 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Frame { msec: 1552 - hash: "d5b19a6d767a08f488cc8fc5c427a2dd" + hash: "c32293903502fd1964cfbc10515b2ef7" } Key { type: 6 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1568 - hash: "bf6265ca859f700fb07f8b992255787d" + hash: "47371eb93a2a8fac7afb53990fac9130" } Frame { msec: 1584 - hash: "bf6265ca859f700fb07f8b992255787d" + hash: "47371eb93a2a8fac7afb53990fac9130" } Frame { msec: 1600 - hash: "bf6265ca859f700fb07f8b992255787d" + hash: "47371eb93a2a8fac7afb53990fac9130" } Frame { msec: 1616 - hash: "bf6265ca859f700fb07f8b992255787d" + hash: "47371eb93a2a8fac7afb53990fac9130" } Frame { msec: 1632 - hash: "bf6265ca859f700fb07f8b992255787d" + hash: "47371eb93a2a8fac7afb53990fac9130" } Key { type: 6 @@ -702,23 +702,23 @@ VisualTest { } Frame { msec: 1648 - hash: "329e4cd26283eb08188d96b2b0325733" + hash: "5c22c2566b437497dd6fd908135ec39e" } Frame { msec: 1664 - hash: "329e4cd26283eb08188d96b2b0325733" + hash: "5c22c2566b437497dd6fd908135ec39e" } Frame { msec: 1680 - hash: "329e4cd26283eb08188d96b2b0325733" + hash: "5c22c2566b437497dd6fd908135ec39e" } Frame { msec: 1696 - hash: "329e4cd26283eb08188d96b2b0325733" + hash: "5c22c2566b437497dd6fd908135ec39e" } Frame { msec: 1712 - hash: "329e4cd26283eb08188d96b2b0325733" + hash: "5c22c2566b437497dd6fd908135ec39e" } Key { type: 6 @@ -730,15 +730,15 @@ VisualTest { } Frame { msec: 1728 - hash: "7b5ac2afafbbaf1e13c70a11461820ad" + hash: "29b4e69de4c83ccdee6ef116ab3785ee" } Frame { msec: 1744 - hash: "7b5ac2afafbbaf1e13c70a11461820ad" + hash: "29b4e69de4c83ccdee6ef116ab3785ee" } Frame { msec: 1760 - hash: "7b5ac2afafbbaf1e13c70a11461820ad" + hash: "29b4e69de4c83ccdee6ef116ab3785ee" } Key { type: 7 @@ -750,7 +750,7 @@ VisualTest { } Frame { msec: 1776 - hash: "7b5ac2afafbbaf1e13c70a11461820ad" + hash: "29b4e69de4c83ccdee6ef116ab3785ee" } Key { type: 6 @@ -762,11 +762,11 @@ VisualTest { } Frame { msec: 1792 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1808 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Key { type: 7 @@ -778,19 +778,19 @@ VisualTest { } Frame { msec: 1824 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1840 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1856 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1872 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Key { type: 7 @@ -802,15 +802,15 @@ VisualTest { } Frame { msec: 1888 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1904 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1920 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Frame { msec: 1936 @@ -818,7 +818,7 @@ VisualTest { } Frame { msec: 1952 - hash: "bcfa1aa48767f70541a70cb5f85792ba" + hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d" } Key { type: 6 @@ -830,27 +830,27 @@ VisualTest { } Frame { msec: 1968 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Frame { msec: 1984 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Frame { msec: 2000 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Frame { msec: 2016 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Frame { msec: 2032 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Frame { msec: 2048 - hash: "e89f7cf38b3b596298d6c649a1207469" + hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9" } Key { type: 6 @@ -862,7 +862,7 @@ VisualTest { } Frame { msec: 2064 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Key { type: 7 @@ -874,15 +874,15 @@ VisualTest { } Frame { msec: 2080 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2096 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2112 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Key { type: 7 @@ -894,27 +894,27 @@ VisualTest { } Frame { msec: 2128 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2144 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2160 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2176 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2192 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Frame { msec: 2208 - hash: "18e71331b42a115f7f9d5c09e235b944" + hash: "0f28c7855c7fde3390d16a2638e23bd0" } Key { type: 6 @@ -926,23 +926,23 @@ VisualTest { } Frame { msec: 2224 - hash: "3630abd7cc6ab303d08f30dea7b1eec1" + hash: "b56e002e5eddde0245f7ad4c75339968" } Frame { msec: 2240 - hash: "3630abd7cc6ab303d08f30dea7b1eec1" + hash: "b56e002e5eddde0245f7ad4c75339968" } Frame { msec: 2256 - hash: "3630abd7cc6ab303d08f30dea7b1eec1" + hash: "b56e002e5eddde0245f7ad4c75339968" } Frame { msec: 2272 - hash: "3630abd7cc6ab303d08f30dea7b1eec1" + hash: "b56e002e5eddde0245f7ad4c75339968" } Frame { msec: 2288 - hash: "3630abd7cc6ab303d08f30dea7b1eec1" + hash: "b56e002e5eddde0245f7ad4c75339968" } Key { type: 6 @@ -954,7 +954,7 @@ VisualTest { } Frame { msec: 2304 - hash: "83e7b8c680cda95ec0a669b8030a3efd" + hash: "0bdd50e3c8b382b464c82d791ae6c1e5" } Key { type: 7 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 2320 - hash: "83e7b8c680cda95ec0a669b8030a3efd" + hash: "0bdd50e3c8b382b464c82d791ae6c1e5" } Frame { msec: 2336 - hash: "83e7b8c680cda95ec0a669b8030a3efd" + hash: "0bdd50e3c8b382b464c82d791ae6c1e5" } Frame { msec: 2352 - hash: "83e7b8c680cda95ec0a669b8030a3efd" + hash: "0bdd50e3c8b382b464c82d791ae6c1e5" } Key { type: 6 @@ -986,11 +986,11 @@ VisualTest { } Frame { msec: 2368 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Frame { msec: 2384 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Key { type: 7 @@ -1002,15 +1002,15 @@ VisualTest { } Frame { msec: 2400 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Frame { msec: 2416 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Frame { msec: 2432 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Key { type: 7 @@ -1022,15 +1022,15 @@ VisualTest { } Frame { msec: 2448 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Frame { msec: 2464 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Frame { msec: 2480 - hash: "cc826833607ae754e633d21ca67a6b5a" + hash: "b61b475b84c6e6a149f6262fc560b741" } Key { type: 6 @@ -1042,19 +1042,19 @@ VisualTest { } Frame { msec: 2496 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2512 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2528 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2544 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 2560 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2576 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2592 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2608 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2624 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Frame { msec: 2640 - hash: "2b4c812fac4e84909cc8fc70d8966a27" + hash: "1acd6152f317a6c8f6aca52ccf62a8c6" } Key { type: 6 @@ -1098,19 +1098,19 @@ VisualTest { } Frame { msec: 2656 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Frame { msec: 2672 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Frame { msec: 2688 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Frame { msec: 2704 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Key { type: 7 @@ -1122,15 +1122,15 @@ VisualTest { } Frame { msec: 2720 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Frame { msec: 2736 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Frame { msec: 2752 - hash: "c1aabf4b43cbae0d7654ba78fc870fdd" + hash: "90ab887de5fbf34f4d45e13c4b211490" } Key { type: 6 @@ -1142,23 +1142,23 @@ VisualTest { } Frame { msec: 2768 - hash: "a707dd726c777a661e4f12d27a75cf63" + hash: "fc91281749bf1a844a19f20d87a17126" } Frame { msec: 2784 - hash: "a707dd726c777a661e4f12d27a75cf63" + hash: "fc91281749bf1a844a19f20d87a17126" } Frame { msec: 2800 - hash: "a707dd726c777a661e4f12d27a75cf63" + hash: "fc91281749bf1a844a19f20d87a17126" } Frame { msec: 2816 - hash: "a707dd726c777a661e4f12d27a75cf63" + hash: "fc91281749bf1a844a19f20d87a17126" } Frame { msec: 2832 - hash: "a707dd726c777a661e4f12d27a75cf63" + hash: "fc91281749bf1a844a19f20d87a17126" } Key { type: 6 @@ -1178,15 +1178,15 @@ VisualTest { } Frame { msec: 2848 - hash: "bdaa69c1074f9820901ce31ea24383ca" + hash: "dcf6e510866fa20e54255c2c980d7b4b" } Frame { msec: 2864 - hash: "bdaa69c1074f9820901ce31ea24383ca" + hash: "dcf6e510866fa20e54255c2c980d7b4b" } Frame { msec: 2880 - hash: "bdaa69c1074f9820901ce31ea24383ca" + hash: "dcf6e510866fa20e54255c2c980d7b4b" } Frame { msec: 2896 @@ -1202,11 +1202,11 @@ VisualTest { } Frame { msec: 2912 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 2928 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Key { type: 7 @@ -1218,11 +1218,11 @@ VisualTest { } Frame { msec: 2944 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 2960 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Key { type: 7 @@ -1234,35 +1234,35 @@ VisualTest { } Frame { msec: 2976 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 2992 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3008 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3024 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3040 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3056 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3072 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Frame { msec: 3088 - hash: "f703f87031be4f9d7409fb145343c02b" + hash: "a26b06714f951084f2ee5ee4b4e67e43" } Key { type: 6 @@ -1274,23 +1274,23 @@ VisualTest { } Frame { msec: 3104 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3120 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3136 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3152 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3168 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Key { type: 7 @@ -1302,23 +1302,23 @@ VisualTest { } Frame { msec: 3184 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3200 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3216 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3232 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Frame { msec: 3248 - hash: "cb2660df955b757b00661a1acb5f22d2" + hash: "832c43553cea6d22b7664ef6f145d1c6" } Key { type: 6 @@ -1330,15 +1330,15 @@ VisualTest { } Frame { msec: 3264 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Frame { msec: 3280 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Frame { msec: 3296 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Key { type: 7 @@ -1350,15 +1350,15 @@ VisualTest { } Frame { msec: 3312 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Frame { msec: 3328 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Frame { msec: 3344 - hash: "8ea510d25195956fa42eabfe3bb9f230" + hash: "081c183901aadcc6406f4ad9f41efa7e" } Key { type: 6 @@ -1370,23 +1370,23 @@ VisualTest { } Frame { msec: 3360 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3376 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3392 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3408 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3424 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Key { type: 7 @@ -1398,15 +1398,15 @@ VisualTest { } Frame { msec: 3440 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3456 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Frame { msec: 3472 - hash: "26b58aef7b1f50a5d261718e8266a3fb" + hash: "9bd3c76a58f942880f40566cfbaa2e99" } Key { type: 6 @@ -1418,19 +1418,19 @@ VisualTest { } Frame { msec: 3488 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Frame { msec: 3504 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Frame { msec: 3520 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Frame { msec: 3536 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Key { type: 7 @@ -1442,11 +1442,11 @@ VisualTest { } Frame { msec: 3552 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Frame { msec: 3568 - hash: "012854de1c9d1a772994d02f52bdcd7c" + hash: "204a2ee8a33e5452d47d95ad4142d417" } Key { type: 6 @@ -1458,27 +1458,27 @@ VisualTest { } Frame { msec: 3584 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Frame { msec: 3600 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Frame { msec: 3616 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Frame { msec: 3632 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Frame { msec: 3648 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Frame { msec: 3664 - hash: "660a31e1c0d573f4155cfa8fe2323413" + hash: "4729d1f555fe604d4660f02673f9c5f3" } Key { type: 6 @@ -1490,7 +1490,7 @@ VisualTest { } Frame { msec: 3680 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Key { type: 7 @@ -1502,23 +1502,23 @@ VisualTest { } Frame { msec: 3696 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3712 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3728 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3744 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3760 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Key { type: 7 @@ -1530,23 +1530,23 @@ VisualTest { } Frame { msec: 3776 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3792 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3808 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3824 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3840 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3856 @@ -1554,15 +1554,15 @@ VisualTest { } Frame { msec: 3872 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3888 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Frame { msec: 3904 - hash: "bea00f5e628e40b679eb8829c16c6260" + hash: "2c0e0951ce4839b302a6e2735adc6c09" } Key { type: 6 @@ -1574,23 +1574,23 @@ VisualTest { } Frame { msec: 3920 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Frame { msec: 3936 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Frame { msec: 3952 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Frame { msec: 3968 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Frame { msec: 3984 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Key { type: 7 @@ -1602,11 +1602,11 @@ VisualTest { } Frame { msec: 4000 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Frame { msec: 4016 - hash: "c5c60cd10a1106161cde5f51dbdec5ad" + hash: "28c2ffe2ad35010dc077625cde7d21b6" } Key { type: 6 @@ -1618,15 +1618,15 @@ VisualTest { } Frame { msec: 4032 - hash: "41c26e6a4c911f9ecd082c4d3366806b" + hash: "6f206482adcd45a2b0d8d3c8b85f53c6" } Frame { msec: 4048 - hash: "41c26e6a4c911f9ecd082c4d3366806b" + hash: "6f206482adcd45a2b0d8d3c8b85f53c6" } Frame { msec: 4064 - hash: "41c26e6a4c911f9ecd082c4d3366806b" + hash: "6f206482adcd45a2b0d8d3c8b85f53c6" } Key { type: 7 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4080 - hash: "41c26e6a4c911f9ecd082c4d3366806b" + hash: "6f206482adcd45a2b0d8d3c8b85f53c6" } Key { type: 6 @@ -1650,19 +1650,19 @@ VisualTest { } Frame { msec: 4096 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Frame { msec: 4112 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Frame { msec: 4128 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Frame { msec: 4144 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Key { type: 7 @@ -1674,15 +1674,15 @@ VisualTest { } Frame { msec: 4160 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Frame { msec: 4176 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Frame { msec: 4192 - hash: "e212938ce981ed4e8d7a993468bc9377" + hash: "4685a786f36cb821a69b0ac059145a5f" } Key { type: 6 @@ -1694,23 +1694,23 @@ VisualTest { } Frame { msec: 4208 - hash: "55df0528a97d77d0a4b513aeedd34440" + hash: "d0efb89ee3e2d2b18429b57dcfe13f33" } Frame { msec: 4224 - hash: "55df0528a97d77d0a4b513aeedd34440" + hash: "d0efb89ee3e2d2b18429b57dcfe13f33" } Frame { msec: 4240 - hash: "55df0528a97d77d0a4b513aeedd34440" + hash: "d0efb89ee3e2d2b18429b57dcfe13f33" } Frame { msec: 4256 - hash: "55df0528a97d77d0a4b513aeedd34440" + hash: "d0efb89ee3e2d2b18429b57dcfe13f33" } Frame { msec: 4272 - hash: "55df0528a97d77d0a4b513aeedd34440" + hash: "d0efb89ee3e2d2b18429b57dcfe13f33" } Key { type: 6 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 4288 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Key { type: 7 @@ -1734,15 +1734,15 @@ VisualTest { } Frame { msec: 4304 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4320 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4336 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Key { type: 7 @@ -1754,23 +1754,23 @@ VisualTest { } Frame { msec: 4352 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4368 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4384 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4400 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Frame { msec: 4416 - hash: "2165091c97a891560bf3afab879e6dbc" + hash: "cbe0bb714b2e9b63af978f666292d8f0" } Key { type: 6 @@ -1782,15 +1782,15 @@ VisualTest { } Frame { msec: 4432 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4448 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4464 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Key { type: 7 @@ -1802,23 +1802,23 @@ VisualTest { } Frame { msec: 4480 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4496 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4512 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4528 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Frame { msec: 4544 - hash: "a3d7968e13768c4ec538fe9ba7edf142" + hash: "d15a45a86874daaff5f2e6afae43b2f4" } Key { type: 6 @@ -1830,19 +1830,19 @@ VisualTest { } Frame { msec: 4560 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4576 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4592 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4608 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Key { type: 7 @@ -1854,19 +1854,19 @@ VisualTest { } Frame { msec: 4624 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4640 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4656 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Frame { msec: 4672 - hash: "3b18ada8637d4024acfe88718765f71c" + hash: "b0c3ef9c5331af8768b23537d1d38311" } Key { type: 6 @@ -1878,19 +1878,19 @@ VisualTest { } Frame { msec: 4688 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Frame { msec: 4704 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Frame { msec: 4720 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Frame { msec: 4736 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Key { type: 7 @@ -1902,15 +1902,15 @@ VisualTest { } Frame { msec: 4752 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Frame { msec: 4768 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Frame { msec: 4784 - hash: "c419775870b0c5e41b5156c840e6a298" + hash: "3be1d2faec1ab5d3d1ab72c25db95059" } Key { type: 6 @@ -1922,7 +1922,7 @@ VisualTest { } Frame { msec: 4800 - hash: "81a744f02650728c7557a27c94056e64" + hash: "db999862fcf827930098b3f129ff567f" } Frame { msec: 4816 @@ -1938,19 +1938,19 @@ VisualTest { } Frame { msec: 4832 - hash: "81a744f02650728c7557a27c94056e64" + hash: "db999862fcf827930098b3f129ff567f" } Frame { msec: 4848 - hash: "81a744f02650728c7557a27c94056e64" + hash: "db999862fcf827930098b3f129ff567f" } Frame { msec: 4864 - hash: "81a744f02650728c7557a27c94056e64" + hash: "db999862fcf827930098b3f129ff567f" } Frame { msec: 4880 - hash: "81a744f02650728c7557a27c94056e64" + hash: "db999862fcf827930098b3f129ff567f" } Key { type: 6 @@ -1962,19 +1962,19 @@ VisualTest { } Frame { msec: 4896 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 4912 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 4928 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 4944 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Key { type: 7 @@ -1986,207 +1986,207 @@ VisualTest { } Frame { msec: 4960 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 4976 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 4992 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5008 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5024 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5040 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5056 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5072 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5088 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5104 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5120 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5136 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5152 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5168 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5184 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5200 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5216 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5232 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5248 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5264 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5280 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5296 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5312 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5328 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5344 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5360 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5376 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5392 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5408 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5424 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5440 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5456 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5472 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5488 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5504 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5520 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5536 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5552 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5568 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5584 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5600 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5616 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5632 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5648 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5664 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5680 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5696 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5712 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5728 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5744 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5760 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5776 @@ -2194,239 +2194,239 @@ VisualTest { } Frame { msec: 5792 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5808 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5824 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5840 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5856 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5872 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5888 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5904 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5920 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5936 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5952 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5968 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 5984 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6000 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6016 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6032 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6048 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6064 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6080 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6096 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6112 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6128 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6144 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6160 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6176 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6192 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6208 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6224 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6240 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6256 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6272 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6288 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6304 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6320 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6336 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6352 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6368 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6384 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6400 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6416 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6432 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6448 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6464 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6480 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6496 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6512 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6528 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6544 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6560 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6576 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6592 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6608 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6624 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6640 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6656 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6672 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6688 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6704 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6720 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6736 @@ -2434,34 +2434,34 @@ VisualTest { } Frame { msec: 6752 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6768 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6784 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6800 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6816 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6832 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6848 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } Frame { msec: 6864 - hash: "ed1520bf20159e60c6a75bbf07f3a6ee" + hash: "6557c4982e2c23d0ef5ec8a594df7277" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png index c9e17f9..914f1b1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png index 32a5600..dd2b946 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png index a63fd07..629b84b 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.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 c752f0f..211ca68 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 880 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 896 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Key { type: 7 @@ -294,19 +294,19 @@ VisualTest { } Frame { msec: 912 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 928 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 944 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 960 - hash: "24a0a2f12031b23a98d65178f0d6d58d" + hash: "a1c7aeece2891f3ca0103761ffa7f424" } Frame { msec: 976 @@ -322,19 +322,19 @@ VisualTest { } Frame { msec: 992 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1008 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1024 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1040 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Key { type: 7 @@ -346,51 +346,51 @@ VisualTest { } Frame { msec: 1056 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1072 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1088 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1104 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1120 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1136 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1152 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1168 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1184 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1200 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1216 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Frame { msec: 1232 - hash: "7dde2dd8afe7283dd0601b12831f8946" + hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75" } Key { type: 6 @@ -402,15 +402,15 @@ VisualTest { } Frame { msec: 1248 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Frame { msec: 1264 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Frame { msec: 1280 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Key { type: 7 @@ -422,15 +422,15 @@ VisualTest { } Frame { msec: 1296 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Frame { msec: 1312 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Frame { msec: 1328 - hash: "e098aa83b3287f67aba57e134e871d62" + hash: "b7cdd294253e065c06fabc60895a29c2" } Key { type: 6 @@ -442,39 +442,39 @@ VisualTest { } Frame { msec: 1344 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1360 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1376 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1392 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1408 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1424 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1440 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1456 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Frame { msec: 1472 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1488 - hash: "3f0a9e0cfd6937c943273bc1d39ce336" + hash: "d8669a3194f485aaef3a1421f7fd50f6" } Key { type: 6 @@ -498,19 +498,19 @@ VisualTest { } Frame { msec: 1504 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1520 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1536 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1552 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1584 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1600 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1616 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1632 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Frame { msec: 1648 - hash: "b78259d22dd86c1dd7ba722795e7e155" + hash: "b53fd36f58dc692856e6a789371aaf33" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "1402f8182c74124a1fb34ecd78fa4819" + hash: "98de66666f6ea1a87bd493db3f67a7c6" } Frame { msec: 1680 - hash: "1402f8182c74124a1fb34ecd78fa4819" + hash: "98de66666f6ea1a87bd493db3f67a7c6" } Frame { msec: 1696 - hash: "1402f8182c74124a1fb34ecd78fa4819" + hash: "98de66666f6ea1a87bd493db3f67a7c6" } Frame { msec: 1712 - hash: "1402f8182c74124a1fb34ecd78fa4819" + hash: "98de66666f6ea1a87bd493db3f67a7c6" } Frame { msec: 1728 - hash: "1402f8182c74124a1fb34ecd78fa4819" + hash: "98de66666f6ea1a87bd493db3f67a7c6" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Frame { msec: 1776 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Frame { msec: 1792 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Frame { msec: 1824 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Frame { msec: 1840 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Frame { msec: 1856 - hash: "93d5b02d77829aef8f8afa0f5a9e93d1" + hash: "696807419ef2b228dfb9d85dd79dd293" } Key { type: 6 @@ -638,19 +638,19 @@ VisualTest { } Frame { msec: 1872 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 1888 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 1904 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 1920 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Key { type: 7 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1952 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 1968 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 1984 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 2000 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Frame { msec: 2016 - hash: "1f3b2da0ad387187f202857ed9bb4934" + hash: "4c0a528609872cf65180d336bbca4231" } Key { type: 6 @@ -694,11 +694,11 @@ VisualTest { } Frame { msec: 2032 - hash: "f2fd02bca5f5bf26013957e11d3f11ce" + hash: "03b670f413abfa1811d4020de969b2ea" } Frame { msec: 2048 - hash: "f2fd02bca5f5bf26013957e11d3f11ce" + hash: "03b670f413abfa1811d4020de969b2ea" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2064 - hash: "f2fd02bca5f5bf26013957e11d3f11ce" + hash: "03b670f413abfa1811d4020de969b2ea" } Frame { msec: 2080 - hash: "f2fd02bca5f5bf26013957e11d3f11ce" + hash: "03b670f413abfa1811d4020de969b2ea" } Key { type: 6 @@ -726,19 +726,19 @@ VisualTest { } Frame { msec: 2096 - hash: "550f7f60df621c951ce7d5271aabc41f" + hash: "6d478c62fa5bb37f0178e94914473174" } Frame { msec: 2112 - hash: "550f7f60df621c951ce7d5271aabc41f" + hash: "6d478c62fa5bb37f0178e94914473174" } Frame { msec: 2128 - hash: "550f7f60df621c951ce7d5271aabc41f" + hash: "6d478c62fa5bb37f0178e94914473174" } Frame { msec: 2144 - hash: "550f7f60df621c951ce7d5271aabc41f" + hash: "6d478c62fa5bb37f0178e94914473174" } Key { type: 6 @@ -758,19 +758,19 @@ VisualTest { } Frame { msec: 2160 - hash: "d2aca851dde9f96747d3f54fb831144a" + hash: "2f9803e906ce38a6ade3874bbeb27216" } Frame { msec: 2176 - hash: "d2aca851dde9f96747d3f54fb831144a" + hash: "2f9803e906ce38a6ade3874bbeb27216" } Frame { msec: 2192 - hash: "d2aca851dde9f96747d3f54fb831144a" + hash: "2f9803e906ce38a6ade3874bbeb27216" } Frame { msec: 2208 - hash: "d2aca851dde9f96747d3f54fb831144a" + hash: "2f9803e906ce38a6ade3874bbeb27216" } Key { type: 6 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2224 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Key { type: 7 @@ -794,23 +794,23 @@ VisualTest { } Frame { msec: 2240 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Frame { msec: 2256 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Frame { msec: 2272 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Frame { msec: 2288 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Frame { msec: 2304 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Key { type: 7 @@ -822,11 +822,11 @@ VisualTest { } Frame { msec: 2320 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Frame { msec: 2336 - hash: "9ed75a4dc5b88fe1c1531833db1dd364" + hash: "d93582b0c7de46d5ff1c9959c158bfe7" } Key { type: 6 @@ -838,27 +838,27 @@ VisualTest { } Frame { msec: 2352 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2368 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2384 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2400 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2416 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2432 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Key { type: 7 @@ -870,19 +870,19 @@ VisualTest { } Frame { msec: 2448 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2464 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2480 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Frame { msec: 2496 - hash: "39079b642f00ea767114d5a831be939a" + hash: "8accfa30ddc59803d8f9d2f60dd6a891" } Key { type: 6 @@ -894,15 +894,15 @@ VisualTest { } Frame { msec: 2512 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2528 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2544 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Key { type: 7 @@ -914,87 +914,87 @@ VisualTest { } Frame { msec: 2560 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2576 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2592 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2608 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2624 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2640 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2656 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2672 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2688 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2704 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2720 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2736 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2752 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2768 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2784 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2800 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2816 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2832 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2848 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2864 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2880 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2896 @@ -1002,42 +1002,42 @@ VisualTest { } Frame { msec: 2912 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2928 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2944 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2960 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2976 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 2992 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 3008 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 3024 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 3040 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } Frame { msec: 3056 - hash: "92035cf4d7df9e637567c7834f23b030" + hash: "a444ce402f5dc0d892f66a88b8252301" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png index 4c04a1b..a12db0a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png 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 74ee95f..acc646c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml @@ -10,98 +10,98 @@ VisualTest { } Frame { msec: 32 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 48 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 64 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 80 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 96 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 112 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 128 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 144 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 160 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 176 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 192 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 208 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 224 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 240 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 256 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 272 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 288 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 304 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 320 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 336 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 352 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 368 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 384 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } Frame { msec: 400 - hash: "93758371bdc69b81077989e911f62fb0" + hash: "fe5a0e7ac7ea0796d8cf3e49b513669d" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml index d401d86..386c9d1 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml @@ -379,7 +379,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -583,7 +583,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -783,7 +783,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -1175,7 +1175,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -1823,7 +1823,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -2327,7 +2327,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 -- cgit v0.12 From bccc24cc6cdeb85e9c97d93ba83dd12e85133c35 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 17 Nov 2010 10:58:53 +1000 Subject: Remove pointSize from visual tests Too unstable Task-number: QTBUG-14792 --- .../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 13169 -> 13140 bytes .../qmlvisual/qdeclarativetext/font/plaintext.qml | 2 +- .../qmlvisual/qdeclarativetext/font/richtext.qml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png index f2a0225..56d98ff 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml index c1325f0..64ab65b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml @@ -15,7 +15,7 @@ Rectangle { text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: s.width; } TestText { - font.pointSize: 20 + font.pixelSize: 24 text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: s.width; } Grid{ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml index d0960c3..a748b68 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml @@ -14,7 +14,7 @@ Rectangle { text: s.text; font.pixelSize: 18 } TestText { - text: s.text; font.pointSize: 18 + text: s.text; font.pixelSize: 24 } TestText { text: s.text; color: "red"; smooth: true -- cgit v0.12 From 24c075c1a2d57c2a3158d251daad7b8578cc93e1 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Wed, 17 Nov 2010 15:36:21 +1000 Subject: Fix license text. Reviewed-by: Trust Me --- doc/src/declarative/whatsnew.qdoc | 10 +++++----- doc/src/snippets/code/doc_src_fdl.qdoc | 10 +++++----- src/xmlpatterns/parser/createTokenLookup.sh | 15 +++++++-------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/doc/src/declarative/whatsnew.qdoc b/doc/src/declarative/whatsnew.qdoc index f8d1d0e..df0e999 100644 --- a/doc/src/declarative/whatsnew.qdoc +++ b/doc/src/declarative/whatsnew.qdoc @@ -7,11 +7,11 @@ ** 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. +** 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 Free Documentation License ** Alternatively, this file may be used under the terms of the GNU Free diff --git a/doc/src/snippets/code/doc_src_fdl.qdoc b/doc/src/snippets/code/doc_src_fdl.qdoc index 3c15dfe..b55e663 100644 --- a/doc/src/snippets/code/doc_src_fdl.qdoc +++ b/doc/src/snippets/code/doc_src_fdl.qdoc @@ -7,11 +7,11 @@ ** 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. +** 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 Free Documentation License ** Alternatively, this file may be used under the terms of the GNU Free diff --git a/src/xmlpatterns/parser/createTokenLookup.sh b/src/xmlpatterns/parser/createTokenLookup.sh index e11a3ba..9339568 100755 --- a/src/xmlpatterns/parser/createTokenLookup.sh +++ b/src/xmlpatterns/parser/createTokenLookup.sh @@ -55,8 +55,8 @@ license=`cat < Date: Wed, 17 Nov 2010 10:55:08 +0100 Subject: Send QMeeGoSwitchEvent to toplevel widgets before switching graphics system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 926 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper.cpp | 17 ++++++ .../qmeegographicssystemhelper.pro | 4 +- .../qmeegoswitchevent.cpp | 58 +++++++++++++++++++ .../qmeegographicssystemhelper/qmeegoswitchevent.h | 65 ++++++++++++++++++++++ 4 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp create mode 100644 tools/qmeegographicssystemhelper/qmeegoswitchevent.h diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp index d348e70..b660eb3 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp @@ -46,6 +46,7 @@ #include #include #include "qmeegoruntime.h" +#include "qmeegoswitchevent.h" QString QMeeGoGraphicsSystemHelper::runningGraphicsSystemName() { @@ -81,8 +82,16 @@ void QMeeGoGraphicsSystemHelper::switchToMeeGo() if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime")) qWarning("Can't switch to meego - switching only supported with 'runtime' graphics system."); else { + QMeeGoSwitchEvent willSwitchEvent(QLatin1String("meego"), QMeeGoSwitchEvent::WillSwitch); + foreach (QWidget *widget, QApplication::topLevelWidgets()) + QCoreApplication::sendEvent(widget, &willSwitchEvent); + QApplication *app = static_cast(QCoreApplication::instance()); app->setGraphicsSystem(QLatin1String("meego")); + + QMeeGoSwitchEvent didSwitchEvent(QLatin1String("meego"), QMeeGoSwitchEvent::DidSwitch); + foreach (QWidget *widget, QApplication::topLevelWidgets()) + QCoreApplication::sendEvent(widget, &didSwitchEvent); } } @@ -94,8 +103,16 @@ void QMeeGoGraphicsSystemHelper::switchToRaster() if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime")) qWarning("Can't switch to raster - switching only supported with 'runtime' graphics system."); else { + QMeeGoSwitchEvent willSwitchEvent(QLatin1String("raster"), QMeeGoSwitchEvent::WillSwitch); + foreach (QWidget *widget, QApplication::topLevelWidgets()) + QCoreApplication::sendEvent(widget, &willSwitchEvent); + QApplication *app = static_cast(QCoreApplication::instance()); app->setGraphicsSystem(QLatin1String("raster")); + + QMeeGoSwitchEvent didSwitchEvent(QLatin1String("raster"), QMeeGoSwitchEvent::DidSwitch); + foreach (QWidget *widget, QApplication::topLevelWidgets()) + QCoreApplication::sendEvent(widget, &didSwitchEvent); } } diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro index 161a31b..360847e 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro @@ -6,5 +6,5 @@ include(../../src/qbase.pri) QT += gui INCLUDEPATH += '../../src/plugins/graphicssystems/meego' -HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h -SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegofencesync.cpp +HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegoswitchevent.h +SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegofencesync.cpp qmeegoswitchevent.cpp qmeegoswitchevent.h diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp new file mode 100644 index 0000000..b136ce8 --- /dev/null +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** 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 plugins 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 "qmeegoswitchevent.h" + +QMeeGoSwitchEvent::QMeeGoSwitchEvent(const QString &graphicsSystemName, QMeeGoSwitchEvent::State s) : QEvent((QEvent::Type) QMeeGoSwitchEvent::SwitchEvent) +{ + name = graphicsSystemName; + switchState = s; +} + +QString QMeeGoSwitchEvent::graphicsSystemName() const +{ + return name; +} + +QMeeGoSwitchEvent::State QMeeGoSwitchEvent::state() const +{ + return switchState; +} \ No newline at end of file diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h new file mode 100644 index 0000000..a67c6c4 --- /dev/null +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** 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 plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include + +class QMeeGoSwitchEvent : public QEvent +{ +public: + enum State { + WillSwitch, + DidSwitch + }; + + enum Type { + SwitchEvent = QEvent::User + 1024 + }; + + QMeeGoSwitchEvent(const QString &graphicsSystemName, State s); + QString graphicsSystemName() const; + State state() const; + + +private: + QString name; + State switchState; +}; -- cgit v0.12 From 0091dcee679c8787f80bc2ed49f263c801779987 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 17 Nov 2010 10:55:09 +0100 Subject: Documentation update for new switching events. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 926 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper.h | 6 +++++ .../qmeegographicssystemhelper/qmeegoswitchevent.h | 26 +++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h index 2baacbb..d47c829 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h @@ -102,6 +102,9 @@ public: When running with the 'runtime' graphics system, sets the currently active system to 'meego'. The window surface and all the resources are automatically migrated to OpenGL. Will fail if the active graphics system is not 'runtime'. + Calling this function will emit QMeeGoSwitchEvent to the top level widgets. + Two events will be emitted for each switch -- one before the switch (QMeeGoSwitchEvent::WillSwitch) + and one after the switch (QMeeGoSwitchEvent::DidSwitch). */ static void switchToMeeGo(); @@ -111,6 +114,9 @@ public: system to 'raster'. The window surface and the graphics resources (including the EGL shared image resources) are automatically migrated back to the CPU. All OpenGL resources (surface, context, cache, font cache) are automaticall anihilated. + Calling this function will emit QMeeGoSwitchEvent to the top level widgets. + Two events will be emitted for each switch -- one before the switch (QMeeGoSwitchEvent::WillSwitch) + and one after the switch (QMeeGoSwitchEvent::DidSwitch). */ static void switchToRaster(); diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h index a67c6c4..2d8371e 100644 --- a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h @@ -42,22 +42,46 @@ #include #include +//! A custom event representing a graphics system switch. +/*! + This event is sent two times -- before the actual switch and after the switch. + The current mode of the event can be detected by looking at the State of the + event. + + The end-user application can use the event to drop it's own allocated GL resources + when going to software mode. +*/ + class QMeeGoSwitchEvent : public QEvent { public: + + //! The state represented by this event. enum State { WillSwitch, DidSwitch }; + //! The event type id to use to detect this event. enum Type { SwitchEvent = QEvent::User + 1024 }; + //! Constructor for the event. + /*! + Creates a new event with the given name and the given state. + */ QMeeGoSwitchEvent(const QString &graphicsSystemName, State s); + + //! Returns the name of the target graphics system. + /*! + Depending on the state, the name represents the system we're about to swtich to, + or the system we just switched to. + */ QString graphicsSystemName() const; - State state() const; + //! Returns the state represented by this event. + State state() const; private: QString name; -- cgit v0.12 From d68b5355b36e31dbeec2474d8469646358e0cd87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 17 Nov 2010 10:58:57 +0100 Subject: Compile fix. Not sure why this worked before. Reviewed-by: Benjamin Poulain --- src/corelib/tools/qstring.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index d4a1248..92b54a0 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_ALWAYS_HAVE_NEON +#elif defined(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 -- cgit v0.12 From 6ad33e1ff7618704fd41549780d0d0c93778364e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 17 Nov 2010 13:01:38 +0100 Subject: Prevent crash in GL 2 engine when stroking null rectangle. Task-number: QTBUG-15320 Reviewed-by: Kim --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 3 +++ tests/auto/qgl/tst_qgl.cpp | 23 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 73915cb..37552ac 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1212,6 +1212,9 @@ void QGL2PaintEngineExPrivate::stroke(const QVectorPath &path, const QPen &pen) stroker.process(dashStroke, pen, clip); } + if (!stroker.vertexCount()) + return; + if (opaque) { prepareForDraw(opaque); setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, stroker.vertices()); diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index e38bf42..cc2cac9 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -97,6 +97,7 @@ private slots: void qglContextDefaultBindTexture(); void textureCleanup(); void threadImages(); + void nullRectCrash(); }; tst_QGL::tst_QGL() @@ -2375,6 +2376,28 @@ void tst_QGL::threadImages() delete widget; } +void tst_QGL::nullRectCrash() +{ + if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()) + QSKIP("QGLFramebufferObject not supported on this platform", SkipSingle); + + QGLWidget glw; + glw.makeCurrent(); + + QGLFramebufferObjectFormat fboFormat; + fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil); + + QGLFramebufferObject *fbo = new QGLFramebufferObject(128, 128, fboFormat); + + QPainter fboPainter(fbo); + + fboPainter.setPen(QPen(QColor(255, 127, 127, 127), 2)); + fboPainter.setBrush(QColor(127, 255, 127, 127)); + fboPainter.drawRect(QRectF()); + + fboPainter.end(); +} + class tst_QGLDummy : public QObject { Q_OBJECT -- cgit v0.12 From 62d1149357736a0dd9b8a439edb73c30f6d407ad Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Wed, 17 Nov 2010 13:22:50 +0100 Subject: tst_qnetworkreply: Fix ugly test Properly use the event loop. Signals have to be connected directly after using the get() method of QNetworkAccessManager. Else they might have already been emitted while the event loop was spinning. Reviewed-by: Peter Hartmann --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 41b3e0a..ddb7687 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -4130,8 +4130,23 @@ void tst_QNetworkReply::httpProxyCommands() QCOMPARE(receivedHeader, expectedCommand); } +class ProxyChangeHelper : public QObject { + Q_OBJECT +public: + ProxyChangeHelper() : QObject(), signalCount(0) {}; +public slots: + void finishedSlot() { + signalCount++; + if (signalCount == 2) + QMetaObject::invokeMethod(&QTestEventLoop::instance(), "exitLoop", Qt::QueuedConnection); + } +private: + int signalCount; +}; + void tst_QNetworkReply::proxyChange() { + ProxyChangeHelper helper; MiniHttpServer proxyServer( "HTTP/1.0 200 OK\r\nProxy-Connection: keep-alive\r\n" "Content-Length: 1\r\n\r\n1"); @@ -4141,30 +4156,15 @@ void tst_QNetworkReply::proxyChange() manager.setProxy(dummyProxy); QNetworkReplyPtr reply1 = manager.get(req); - QSignalSpy finishedspy(reply1, SIGNAL(finished())); + connect(reply1, SIGNAL(finished()), &helper, SLOT(finishedSlot())); manager.setProxy(QNetworkProxy()); QNetworkReplyPtr reply2 = manager.get(req); + connect(reply2, SIGNAL(finished()), &helper, SLOT(finishedSlot())); - connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); -#ifdef Q_OS_SYMBIAN - // we need more time as: - // 1. running from the emulator - // 2. not perfect POSIX implementation - // 3. embedded device QTestEventLoop::instance().enterLoop(20); -#else - QTestEventLoop::instance().enterLoop(10); -#endif QVERIFY(!QTestEventLoop::instance().timeout()); - if (finishedspy.count() == 0) { - // wait for the second reply as well - connect(reply1, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); - QTestEventLoop::instance().enterLoop(1); - QVERIFY(!QTestEventLoop::instance().timeout()); - } - // verify that the replies succeeded QCOMPARE(reply1->error(), QNetworkReply::NoError); QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); -- cgit v0.12 From 0b6adc944d7da5d4b943f1bd85666af82f1450de Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 17 Nov 2010 13:50:20 +0100 Subject: Doc: Updated the DirectFB documentation to reflect version changes. --- doc/src/platforms/emb-directfb-EmbLinux.qdoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/platforms/emb-directfb-EmbLinux.qdoc b/doc/src/platforms/emb-directfb-EmbLinux.qdoc index dbe6c14..bcc06dc 100644 --- a/doc/src/platforms/emb-directfb-EmbLinux.qdoc +++ b/doc/src/platforms/emb-directfb-EmbLinux.qdoc @@ -39,11 +39,11 @@ and generally chip vendors start out with the official version and implement their own plugins to optimize the operations their hardware supports. -We recommend using Qt 4.6 with DirectFB. DirectFB support was introduced -already into Qt for Embedded Linux as a labs project for Qt 4.3 and folded +We recommend using Qt 4.6 or later with DirectFB. Support for DirectFB was +introduced into Qt for Embedded Linux as a labs project for Qt 4.3 and folded into Qt as a screen driver for Qt 4.4, but not supported fully. In Qt 4.5, major changes were made to make it work with the optimized raster paint -engine. And in Qt 4.6 these have been further improved. +engine. These changes were further improved in Qt 4.6. \tableofcontents -- cgit v0.12 From b5d26bfb348b6a99529ecf9ab66845e7eacd4732 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 17 Nov 2010 13:51:05 +0100 Subject: Doc: Minor fixes to style. --- doc/src/platforms/emb-pointer.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/platforms/emb-pointer.qdoc b/doc/src/platforms/emb-pointer.qdoc index 81e532f..506e9e0 100644 --- a/doc/src/platforms/emb-pointer.qdoc +++ b/doc/src/platforms/emb-pointer.qdoc @@ -105,7 +105,7 @@ {touch panels} in which case the driver must be specified explicitly to determine which device to use. - To manually specify which driver to use, set the QWS_MOUSE_PROTO + To manually specify which driver to use, set the \c QWS_MOUSE_PROTO environment variable. For example (if the current shell is bash, ksh, zsh or sh): @@ -156,7 +156,7 @@ \snippet doc/src/snippets/code/doc_src_emb-pointer.qdoc 8 To make \l{Qt for Embedded Linux} explicitly choose the tslib mouse - handler, set the QWS_MOUSE_PROTO environment variable as explained + handler, set the \c QWS_MOUSE_PROTO environment variable as explained above. \endtable -- cgit v0.12 From 78895a7ecaf6579894d88388c09be6e6368dc029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Tue, 16 Nov 2010 14:19:29 +0200 Subject: Fixed crash when destroying QGLWidget The QGLWidget destroys the QGLContext, which in turn destroys the bound pixmap. When this happens there may not be a current QGLContext, so check that before trying to restore it. Done-with: Gunnar Sletta Reviewed-by: Samuel --- src/opengl/qgl_p.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index 4742bdb..b46d428 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -506,7 +506,8 @@ private slots: // when you come to delete the context. QGLContextPrivate::unbindPixmapFromTexture(boundPixmap); glDeleteTextures(1, &id); - oldContext->makeCurrent(); + if (oldContext) + oldContext->makeCurrent(); return; } #endif -- cgit v0.12 From 14ddf44ce2fdd7195741b9683226a3cd774e17e4 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Wed, 17 Nov 2010 14:59:15 +0200 Subject: Fix for WServ 64 crash on Symbian. Crash happens if application first sets WA_OpaquePaintEvent flag and then sets WA_TranslucentBackground flag. In that case WA_TranslucentBackground flag is ineffective leading to situation where Qt Symbian adaptation tries to reset native window transparency but because native window is already opaque due to WA_OpaquePaintEvent, WServ 64 crash occurs. Task-number: QTBUG-15369 Reviewed-by: Jason Barron --- src/gui/kernel/qwidget_p.h | 1 + src/gui/kernel/qwidget_s60.cpp | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index ca1e3fc..6a27469 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -226,6 +226,7 @@ struct QTLWExtra { #endif #elif defined(Q_OS_SYMBIAN) uint inExpose : 1; // Prevents drawing recursion + uint nativeWindowTransparencyEnabled : 1; // Tracks native window transparency #endif }; diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index cf4bdf1..6ce46d3 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -767,17 +767,24 @@ void QWidgetPrivate::s60UpdateIsOpaque() if (!q->testAttribute(Qt::WA_WState_Created) || !q->testAttribute(Qt::WA_TranslucentBackground)) return; + createTLExtra(); + RWindow *const window = static_cast(q->effectiveWinId()->DrawableWindow()); #ifdef Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE window->SetSurfaceTransparency(!isOpaque); + extra->topextra->nativeWindowTransparencyEnabled = !isOpaque; #else if (!isOpaque) { const TDisplayMode displayMode = static_cast(window->SetRequiredDisplayMode(EColor16MA)); - if (window->SetTransparencyAlphaChannel() == KErrNone) + if (window->SetTransparencyAlphaChannel() == KErrNone) { window->SetBackgroundColor(TRgb(255, 255, 255, 0)); - } else + extra->topextra->nativeWindowTransparencyEnabled = 1; + } + } else if (extra->topextra->nativeWindowTransparencyEnabled) { window->SetTransparentRegion(TRegionFix<1>()); + extra->topextra->nativeWindowTransparencyEnabled = 0; + } #endif } @@ -936,6 +943,7 @@ void QWidgetPrivate::registerDropSite(bool /* on */) void QWidgetPrivate::createTLSysExtra() { extra->topextra->inExpose = 0; + extra->topextra->nativeWindowTransparencyEnabled = 0; } void QWidgetPrivate::deleteTLSysExtra() -- cgit v0.12 From 346953b985deb5003e801b23063daf3f6dee3824 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 17 Nov 2010 19:08:02 +0100 Subject: Use GLIBC functions on any GLIBC architecture. Make use of __GLIBC__ instead of Q_OS_LINUX for functions available globally in GNU libc, not just on Linux. the !__UCLIBC__ are still needed, as uClibc defines __GLIBC__ for compatibility with a lot of applications which rely on it. Task-number: QTBUG-15401 --- src/corelib/tools/qlocale.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 6b1de5e..d152682 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -77,7 +77,7 @@ QT_END_NAMESPACE #include #include -#if defined(Q_OS_LINUX) && !defined(__UCLIBC__) +#if defined(__GLIBC__) && !defined(__UCLIBC__) # include #endif @@ -6637,7 +6637,7 @@ Q_CORE_EXPORT char *qdtoa ( double d, int mode, int ndigits, int *decpt, int *si _control87(MCW_EM, MCW_EM); #endif -#if defined(Q_OS_LINUX) && !defined(__UCLIBC__) +#if defined(__GLIBC__) && !defined(__UCLIBC__) fenv_t envp; feholdexcept(&envp); #endif @@ -6653,7 +6653,7 @@ Q_CORE_EXPORT char *qdtoa ( double d, int mode, int ndigits, int *decpt, int *si #endif //_M_X64 #endif //Q_OS_WIN -#if defined(Q_OS_LINUX) && !defined(__UCLIBC__) +#if defined(__GLIBC__) && !defined(__UCLIBC__) fesetenv(&envp); #endif -- cgit v0.12 From c4e4ac16a4c2c23b6d883312d7370241a8a66a1c Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 18 Nov 2010 10:55:41 +1000 Subject: Standardize selection color in visual test Task-number: QTBUG-14792 --- .../qdeclarativetextedit/MultilineEdit.qml | 1 + .../data-X11/usingMultilineEdit.10.png | Bin 2020 -> 2032 bytes .../data-X11/usingMultilineEdit.11.png | Bin 2020 -> 2032 bytes .../data-X11/usingMultilineEdit.12.png | Bin 2020 -> 2032 bytes .../data-X11/usingMultilineEdit.7.png | Bin 1836 -> 1843 bytes .../data-X11/usingMultilineEdit.9.png | Bin 2008 -> 2024 bytes .../data-X11/usingMultilineEdit.qml | 540 ++++++++++----------- .../qmlvisual/qdeclarativetextinput/LineEdit.qml | 1 + .../data-X11/usingLineEdit.1.png | Bin 1325 -> 1337 bytes .../data-X11/usingLineEdit.10.png | Bin 1378 -> 1389 bytes .../data-X11/usingLineEdit.11.png | Bin 1455 -> 1468 bytes .../data-X11/usingLineEdit.2.png | Bin 1325 -> 1337 bytes .../data-X11/usingLineEdit.9.png | Bin 1456 -> 1471 bytes .../data-X11/usingLineEdit.qml | 516 ++++++++++---------- 14 files changed, 530 insertions(+), 528 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml index 4273f32..17709ba 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml @@ -46,6 +46,7 @@ Item { horizontalAlignment: TextInput.AlignLeft wrapMode: TextEdit.WordWrap font.pixelSize:15 + selectionColor: 'steelblue' } MouseArea { //Implements all line edit mouse handling 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 56f6ece..8effaef 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 56f6ece..8effaef 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.12.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png index 56f6ece..8effaef 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png index f8bc3b4..b79af19 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.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 e156cd5..ef15fdf 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 56ae969..a03948c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 5856 - hash: "6e3ef70a6a20c61d681c0510da3dba63" + hash: "4b0c9ae119bd6c9f6331cbefc53afa3d" } Mouse { type: 5 @@ -2118,7 +2118,7 @@ VisualTest { } Frame { msec: 5872 - hash: "6e3ef70a6a20c61d681c0510da3dba63" + hash: "4b0c9ae119bd6c9f6331cbefc53afa3d" } Mouse { type: 5 @@ -2138,7 +2138,7 @@ VisualTest { } Frame { msec: 5888 - hash: "12199badcd73e1dead9e7fb8848175a7" + hash: "e6b3b80f052fec9f67b02a7f36676b5d" } Mouse { type: 5 @@ -2158,7 +2158,7 @@ VisualTest { } Frame { msec: 5904 - hash: "9a10e37dad5bce8a6a3e9dfe3789ea71" + hash: "37d1ee8e1c914d499dd7920576dadcae" } Mouse { type: 5 @@ -2178,7 +2178,7 @@ VisualTest { } Frame { msec: 5920 - hash: "9a10e37dad5bce8a6a3e9dfe3789ea71" + hash: "37d1ee8e1c914d499dd7920576dadcae" } Mouse { type: 5 @@ -2198,7 +2198,7 @@ VisualTest { } Frame { msec: 5936 - hash: "a636fd97f33ef06215d71ce3c4b5e151" + hash: "34f7bd61afb22009181d79841bc59fa1" } Mouse { type: 5 @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 5952 - hash: "b0967a28cd241da39213d6c8478280f7" + hash: "23ea9471d132daab6193b0809c8bd98e" } Mouse { type: 5 @@ -2238,7 +2238,7 @@ VisualTest { } Frame { msec: 5968 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2250,7 +2250,7 @@ VisualTest { } Frame { msec: 5984 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2270,7 +2270,7 @@ VisualTest { } Frame { msec: 6000 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 6016 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2310,7 +2310,7 @@ VisualTest { } Frame { msec: 6032 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2330,7 +2330,7 @@ VisualTest { } Frame { msec: 6048 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2350,7 +2350,7 @@ VisualTest { } Frame { msec: 6064 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 6080 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2390,7 +2390,7 @@ VisualTest { } Frame { msec: 6096 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2410,7 +2410,7 @@ VisualTest { } Frame { msec: 6112 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2430,7 +2430,7 @@ VisualTest { } Frame { msec: 6128 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2450,7 +2450,7 @@ VisualTest { } Frame { msec: 6144 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2470,7 +2470,7 @@ VisualTest { } Frame { msec: 6160 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2490,7 +2490,7 @@ VisualTest { } Frame { msec: 6176 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2502,23 +2502,23 @@ VisualTest { } Frame { msec: 6192 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Frame { msec: 6208 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Frame { msec: 6224 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Frame { msec: 6240 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Frame { msec: 6256 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2530,7 +2530,7 @@ VisualTest { } Frame { msec: 6272 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2550,7 +2550,7 @@ VisualTest { } Frame { msec: 6288 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2570,7 +2570,7 @@ VisualTest { } Frame { msec: 6304 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2590,7 +2590,7 @@ VisualTest { } Frame { msec: 6320 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2610,7 +2610,7 @@ VisualTest { } Frame { msec: 6336 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 6352 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 6368 - hash: "684d7a67d57fdc766dca3092c65cf089" + hash: "e35d1c5a15474388727942b41fdcec0f" } Mouse { type: 5 @@ -2670,7 +2670,7 @@ VisualTest { } Frame { msec: 6384 - hash: "81c12a084635c80c97f6b3cd3574a6e6" + hash: "1b24d0c17446cfadc351127f842ac5fd" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 6400 - hash: "81c12a084635c80c97f6b3cd3574a6e6" + hash: "1b24d0c17446cfadc351127f842ac5fd" } Mouse { type: 5 @@ -2702,7 +2702,7 @@ VisualTest { } Frame { msec: 6416 - hash: "8374126491796963e3f5895dab7e9076" + hash: "f0b06fefc9e18b836ffe081215efe584" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6432 - hash: "d7f5f6f0654d055ff47bef6736bbcfc6" + hash: "9ed30cb00df82cce04e8c8b76d056013" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6448 - hash: "85c94958294c8590e1cb9c74bf741bb2" + hash: "4d37a34962e019f47201da6baddebca8" } Mouse { type: 5 @@ -2754,7 +2754,7 @@ VisualTest { } Frame { msec: 6464 - hash: "586c98412d41f892eb07d8c41cb3c990" + hash: "cd83055403901b1a7a99dfda3798ca7e" } Mouse { type: 5 @@ -2794,7 +2794,7 @@ VisualTest { } Frame { msec: 6496 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2814,7 +2814,7 @@ VisualTest { } Frame { msec: 6512 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2834,7 +2834,7 @@ VisualTest { } Frame { msec: 6528 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2854,7 +2854,7 @@ VisualTest { } Frame { msec: 6544 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2874,7 +2874,7 @@ VisualTest { } Frame { msec: 6560 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2894,7 +2894,7 @@ VisualTest { } Frame { msec: 6576 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2914,27 +2914,27 @@ VisualTest { } Frame { msec: 6592 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Frame { msec: 6608 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Frame { msec: 6624 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Frame { msec: 6640 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Frame { msec: 6656 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Frame { msec: 6672 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2954,7 +2954,7 @@ VisualTest { } Frame { msec: 6688 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2974,7 +2974,7 @@ VisualTest { } Frame { msec: 6704 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -2994,7 +2994,7 @@ VisualTest { } Frame { msec: 6720 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3034,7 +3034,7 @@ VisualTest { } Frame { msec: 6752 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3054,7 +3054,7 @@ VisualTest { } Frame { msec: 6768 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3074,7 +3074,7 @@ VisualTest { } Frame { msec: 6784 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3094,7 +3094,7 @@ VisualTest { } Frame { msec: 6800 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3114,7 +3114,7 @@ VisualTest { } Frame { msec: 6816 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3134,7 +3134,7 @@ VisualTest { } Frame { msec: 6832 - hash: "120ac252477fd32ecb696e6796b0984b" + hash: "71cdc5a9144234556630430361779ff7" } Mouse { type: 5 @@ -3662,19 +3662,19 @@ VisualTest { } Frame { msec: 8208 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8224 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8240 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8256 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Key { type: 7 @@ -3686,19 +3686,19 @@ VisualTest { } Frame { msec: 8272 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8288 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8304 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Frame { msec: 8320 - hash: "acfeaebe60368dd946a2fa80ab15df1d" + hash: "c8254066bc7b4bae0934425226d59a2b" } Key { type: 6 @@ -3710,19 +3710,19 @@ VisualTest { } Frame { msec: 8336 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8352 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8368 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8384 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Key { type: 7 @@ -3734,23 +3734,23 @@ VisualTest { } Frame { msec: 8400 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8416 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8432 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8448 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Frame { msec: 8464 - hash: "c21a0997b7d428306b5caa09dd02e9d3" + hash: "7bd48f4441ba1971bf49cb5b9e174935" } Key { type: 6 @@ -3762,19 +3762,19 @@ VisualTest { } Frame { msec: 8480 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8496 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8512 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8528 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Key { type: 7 @@ -3786,31 +3786,31 @@ VisualTest { } Frame { msec: 8544 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8560 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8576 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8592 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8608 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8624 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8640 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8656 @@ -3826,139 +3826,139 @@ VisualTest { } Frame { msec: 8672 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8688 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8704 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8720 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8736 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8752 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8768 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8784 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8800 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8816 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8832 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8848 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8864 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8880 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8896 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8912 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8928 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8944 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8960 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8976 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 8992 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9008 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9024 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9040 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9056 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9072 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9088 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9104 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9120 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9136 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9152 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9168 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9184 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9200 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 2 @@ -3970,11 +3970,11 @@ VisualTest { } Frame { msec: 9216 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9232 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9248 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 5 @@ -4006,7 +4006,7 @@ VisualTest { } Frame { msec: 9264 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 5 @@ -4026,7 +4026,7 @@ VisualTest { } Frame { msec: 9280 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 3 @@ -4038,43 +4038,43 @@ VisualTest { } Frame { msec: 9296 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9312 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9328 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9344 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9360 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9376 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9392 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9408 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9424 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Frame { msec: 9440 - hash: "af707ae0e8110b2e6e3d1041aaa89319" + hash: "edf44121a60ee9d975954863c2ed848c" } Mouse { type: 2 @@ -4086,27 +4086,27 @@ VisualTest { } Frame { msec: 9456 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9472 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9488 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9504 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9520 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9536 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Mouse { type: 3 @@ -4118,19 +4118,19 @@ VisualTest { } Frame { msec: 9552 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9568 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9584 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9600 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9616 @@ -4138,15 +4138,15 @@ VisualTest { } Frame { msec: 9632 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9648 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9664 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Key { type: 6 @@ -4158,111 +4158,111 @@ VisualTest { } Frame { msec: 9680 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9696 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9712 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9728 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9744 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9760 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9776 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9792 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9808 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9824 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9840 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9856 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9872 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9888 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9904 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9920 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9936 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9952 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9968 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 9984 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10000 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10016 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10032 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10048 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10064 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10080 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10096 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Key { type: 6 @@ -4274,35 +4274,35 @@ VisualTest { } Frame { msec: 10112 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10128 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10144 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10160 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10176 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10192 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10208 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10224 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Key { type: 7 @@ -4314,35 +4314,35 @@ VisualTest { } Frame { msec: 10240 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10256 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10272 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10288 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10304 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10320 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10336 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Frame { msec: 10352 - hash: "d99a651d8ed51c36dbca0ca86abc808e" + hash: "956f4f8cfca76cfee9babea29b0715ea" } Key { type: 6 @@ -4354,27 +4354,27 @@ VisualTest { } Frame { msec: 10368 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10384 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10400 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10416 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10432 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10448 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Key { type: 7 @@ -4386,31 +4386,31 @@ VisualTest { } Frame { msec: 10464 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10480 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10496 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10512 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10528 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10544 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10560 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10576 @@ -4418,19 +4418,19 @@ VisualTest { } Frame { msec: 10592 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10608 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10624 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10640 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Key { type: 7 @@ -4442,223 +4442,223 @@ VisualTest { } Frame { msec: 10656 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10672 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10688 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10704 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10720 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10736 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10752 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10768 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10784 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10800 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10816 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10832 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10848 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10864 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10880 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10896 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10912 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10928 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10944 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10960 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10976 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 10992 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11008 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11024 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11040 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11056 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11072 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11088 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11104 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11120 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11136 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11152 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11168 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11184 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11200 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11216 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11232 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11248 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11264 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11280 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11296 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11312 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11328 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11344 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11360 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11376 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11392 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11408 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11424 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11440 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11456 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11472 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11488 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11504 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11520 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11536 @@ -4666,22 +4666,22 @@ VisualTest { } Frame { msec: 11552 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11568 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11584 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11600 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } Frame { msec: 11616 - hash: "e940f5582d8ad5487221743f15041021" + hash: "b58ab2c31823e7b0be144fba3e77368a" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml index 50c3cb4..6789eac 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml @@ -42,6 +42,7 @@ Item { text:"" horizontalAlignment: TextInput.AlignLeft font.pixelSize:15 + selectionColor: 'steelblue' } MouseArea { //Implements all line edit mouse handling diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png index 6408df3..444ee34 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png index 6e7b717..5f3668c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png index 7829e03..0ea21f3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png index 6408df3..444ee34 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png index e2c0a7d..4f285b1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.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 386c9d1..8957e39 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml @@ -274,23 +274,23 @@ VisualTest { } Frame { msec: 992 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1008 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1024 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1040 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1056 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Mouse { type: 3 @@ -302,79 +302,79 @@ VisualTest { } Frame { msec: 1072 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1088 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1104 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1120 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1136 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1152 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1168 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1184 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1200 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1216 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1232 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1248 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1264 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1280 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1296 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1312 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1328 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1344 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1360 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Key { type: 6 @@ -386,143 +386,143 @@ VisualTest { } Frame { msec: 1376 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1392 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1408 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1424 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1440 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1456 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1472 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1488 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1504 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1520 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1536 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1552 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1568 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1584 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1600 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1616 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1632 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1648 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1664 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1680 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1696 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1712 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1728 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1744 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1760 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1776 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1792 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1808 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1824 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1840 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1856 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1872 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1888 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1904 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1920 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1936 @@ -530,15 +530,15 @@ VisualTest { } Frame { msec: 1952 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1968 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 1984 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Key { type: 6 @@ -550,35 +550,35 @@ VisualTest { } Frame { msec: 2000 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2016 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2032 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2048 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2064 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2080 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2096 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2112 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Key { type: 7 @@ -598,95 +598,95 @@ VisualTest { } Frame { msec: 2128 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2144 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2160 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2176 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2192 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2208 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2224 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2240 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2256 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2272 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2288 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2304 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2320 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2336 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2352 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2368 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2384 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2400 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2416 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2432 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2448 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2464 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Frame { msec: 2480 - hash: "29ccc1cc5ae395d91c92ed4645d3b376" + hash: "b888cf6d6e002e28690cff49726eea70" } Key { type: 6 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 8592 - hash: "e1349a4271e99bb99b46271fd4a3190e" + hash: "8173ad74ad73a8061af3edb8322b3e28" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 8608 - hash: "e1349a4271e99bb99b46271fd4a3190e" + hash: "8173ad74ad73a8061af3edb8322b3e28" } Mouse { type: 5 @@ -2662,7 +2662,7 @@ VisualTest { } Frame { msec: 8624 - hash: "69fafd9730dc1bb6fdb5485a2b16c025" + hash: "a470057b75a1aade3945dbb61526ae50" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 8640 - hash: "69fafd9730dc1bb6fdb5485a2b16c025" + hash: "a470057b75a1aade3945dbb61526ae50" } Mouse { type: 5 @@ -2714,7 +2714,7 @@ VisualTest { } Frame { msec: 8672 - hash: "2271dcb95090d595070fd1fcde1b8792" + hash: "74c1edc228a7c4ba1c0adab9ed7dd086" } Mouse { type: 5 @@ -2726,7 +2726,7 @@ VisualTest { } Frame { msec: 8688 - hash: "2271dcb95090d595070fd1fcde1b8792" + hash: "74c1edc228a7c4ba1c0adab9ed7dd086" } Mouse { type: 5 @@ -2746,7 +2746,7 @@ VisualTest { } Frame { msec: 8704 - hash: "2271dcb95090d595070fd1fcde1b8792" + hash: "74c1edc228a7c4ba1c0adab9ed7dd086" } Mouse { type: 5 @@ -2766,7 +2766,7 @@ VisualTest { } Frame { msec: 8720 - hash: "2271dcb95090d595070fd1fcde1b8792" + hash: "74c1edc228a7c4ba1c0adab9ed7dd086" } Mouse { type: 5 @@ -2786,7 +2786,7 @@ VisualTest { } Frame { msec: 8736 - hash: "0bc5d6855feb4174bdf64b95ff9f7df2" + hash: "11e31d23d38f163c2c28ca042af7f9f6" } Mouse { type: 5 @@ -2806,7 +2806,7 @@ VisualTest { } Frame { msec: 8752 - hash: "0bc5d6855feb4174bdf64b95ff9f7df2" + hash: "11e31d23d38f163c2c28ca042af7f9f6" } Mouse { type: 5 @@ -2826,7 +2826,7 @@ VisualTest { } Frame { msec: 8768 - hash: "0bc5d6855feb4174bdf64b95ff9f7df2" + hash: "11e31d23d38f163c2c28ca042af7f9f6" } Mouse { type: 5 @@ -2846,7 +2846,7 @@ VisualTest { } Frame { msec: 8784 - hash: "0bc5d6855feb4174bdf64b95ff9f7df2" + hash: "11e31d23d38f163c2c28ca042af7f9f6" } Mouse { type: 5 @@ -2866,7 +2866,7 @@ VisualTest { } Frame { msec: 8800 - hash: "fcd2c706258d7f84245d7f4c4f578711" + hash: "045f891731548aae37090e0cefb62170" } Mouse { type: 5 @@ -2886,7 +2886,7 @@ VisualTest { } Frame { msec: 8816 - hash: "fcd2c706258d7f84245d7f4c4f578711" + hash: "045f891731548aae37090e0cefb62170" } Mouse { type: 5 @@ -2906,7 +2906,7 @@ VisualTest { } Frame { msec: 8832 - hash: "95fbe459d9d4b9304f7743ed2955761a" + hash: "3b6f55bc49e7e326e40b0f3faae71a8b" } Mouse { type: 5 @@ -2926,7 +2926,7 @@ VisualTest { } Frame { msec: 8848 - hash: "38618228457b1b8a5b5572f95cefa3c0" + hash: "abc04cd8ca8759f981f8e2c3b30a33ac" } Mouse { type: 5 @@ -2946,7 +2946,7 @@ VisualTest { } Frame { msec: 8864 - hash: "fabf4dcd599440c0aed8f53f3775bfea" + hash: "f96cc6aa0a38639146d8d691d699946b" } Mouse { type: 5 @@ -2966,7 +2966,7 @@ VisualTest { } Frame { msec: 8880 - hash: "4f93faf3f05bf4a0f93806a57249f264" + hash: "483743419cee348e8f6e24fd1e900ae6" } Mouse { type: 5 @@ -2986,7 +2986,7 @@ VisualTest { } Frame { msec: 8896 - hash: "3ebbfb29f0dd1f8466bf7f05f6e28c84" + hash: "50292f48ceeaee5f55795aea736631d0" } Mouse { type: 5 @@ -3006,7 +3006,7 @@ VisualTest { } Frame { msec: 8912 - hash: "119df59fa65d757270027302fcb54a4a" + hash: "9739b19d1496baabad1a01cf35c90374" } Mouse { type: 5 @@ -3026,7 +3026,7 @@ VisualTest { } Frame { msec: 8928 - hash: "4fe3e6954d29a485220979dc5a41d22f" + hash: "bcf1719dc1ec19d3cca83e41ffd4ba0d" } Mouse { type: 5 @@ -3046,7 +3046,7 @@ VisualTest { } Frame { msec: 8944 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3066,11 +3066,11 @@ VisualTest { } Frame { msec: 8960 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 8976 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3090,7 +3090,7 @@ VisualTest { } Frame { msec: 8992 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3102,55 +3102,55 @@ VisualTest { } Frame { msec: 9008 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9024 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9040 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9056 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9072 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9088 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9104 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9120 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9136 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9152 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9168 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9184 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Frame { msec: 9200 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3162,7 +3162,7 @@ VisualTest { } Frame { msec: 9216 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3174,7 +3174,7 @@ VisualTest { } Frame { msec: 9232 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3194,7 +3194,7 @@ VisualTest { } Frame { msec: 9248 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3214,7 +3214,7 @@ VisualTest { } Frame { msec: 9264 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3234,7 +3234,7 @@ VisualTest { } Frame { msec: 9280 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3254,7 +3254,7 @@ VisualTest { } Frame { msec: 9296 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3274,7 +3274,7 @@ VisualTest { } Frame { msec: 9312 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3294,7 +3294,7 @@ VisualTest { } Frame { msec: 9328 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3314,7 +3314,7 @@ VisualTest { } Frame { msec: 9344 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3334,7 +3334,7 @@ VisualTest { } Frame { msec: 9360 - hash: "a55b441971f1964165ecb5204138de6a" + hash: "192a6cf285d42c7a2996bf0342e69c97" } Mouse { type: 5 @@ -3354,7 +3354,7 @@ VisualTest { } Frame { msec: 9376 - hash: "fb89eb81e839415d143584bfa5a173bb" + hash: "b79a6b6b2a670212a0f4310323352862" } Mouse { type: 5 @@ -3374,7 +3374,7 @@ VisualTest { } Frame { msec: 9392 - hash: "fb89eb81e839415d143584bfa5a173bb" + hash: "b79a6b6b2a670212a0f4310323352862" } Mouse { type: 5 @@ -3394,7 +3394,7 @@ VisualTest { } Frame { msec: 9408 - hash: "fb89eb81e839415d143584bfa5a173bb" + hash: "b79a6b6b2a670212a0f4310323352862" } Mouse { type: 5 @@ -3414,7 +3414,7 @@ VisualTest { } Frame { msec: 9424 - hash: "d1f1478814752c8c8174b13cb8004840" + hash: "82ad8cef2dc81cf061785c211f1b2233" } Mouse { type: 5 @@ -3434,7 +3434,7 @@ VisualTest { } Frame { msec: 9440 - hash: "ab1fc96781b13ab2d1529733314b06b0" + hash: "dc5c2e4ac2c51ac7b84a527a77313ff5" } Mouse { type: 5 @@ -3454,7 +3454,7 @@ VisualTest { } Frame { msec: 9456 - hash: "ab1fc96781b13ab2d1529733314b06b0" + hash: "dc5c2e4ac2c51ac7b84a527a77313ff5" } Mouse { type: 5 @@ -3474,7 +3474,7 @@ VisualTest { } Frame { msec: 9472 - hash: "6611c3444e8e1c580f9520729f72e3f1" + hash: "dceeee37f46351f54a6dbf9e1d304017" } Mouse { type: 5 @@ -3494,7 +3494,7 @@ VisualTest { } Frame { msec: 9488 - hash: "6611c3444e8e1c580f9520729f72e3f1" + hash: "dceeee37f46351f54a6dbf9e1d304017" } Mouse { type: 5 @@ -3514,7 +3514,7 @@ VisualTest { } Frame { msec: 9504 - hash: "ffcd54ddae6c10f13719a219991676f8" + hash: "b5b370f86804d875363c8aa9fa53c0fe" } Mouse { type: 5 @@ -3534,7 +3534,7 @@ VisualTest { } Frame { msec: 9520 - hash: "ffcd54ddae6c10f13719a219991676f8" + hash: "b5b370f86804d875363c8aa9fa53c0fe" } Mouse { type: 5 @@ -3546,7 +3546,7 @@ VisualTest { } Frame { msec: 9536 - hash: "ffcd54ddae6c10f13719a219991676f8" + hash: "b5b370f86804d875363c8aa9fa53c0fe" } Mouse { type: 5 @@ -3566,7 +3566,7 @@ VisualTest { } Frame { msec: 9552 - hash: "c238beb854cf7fc10b6e66da121cce67" + hash: "8ae0e57709d94c27ecf34f9e76623ba8" } Mouse { type: 5 @@ -3586,7 +3586,7 @@ VisualTest { } Frame { msec: 9568 - hash: "c238beb854cf7fc10b6e66da121cce67" + hash: "8ae0e57709d94c27ecf34f9e76623ba8" } Mouse { type: 5 @@ -3606,7 +3606,7 @@ VisualTest { } Frame { msec: 9584 - hash: "f14cf91c575fc535a78f9b5ed8cb0e77" + hash: "a29b5440525c9fbed90096f287396c91" } Mouse { type: 5 @@ -3626,7 +3626,7 @@ VisualTest { } Frame { msec: 9600 - hash: "92f069682e3da947d3dc933710651f89" + hash: "d1091d48e0875fec9372c382c6961562" } Mouse { type: 5 @@ -3658,7 +3658,7 @@ VisualTest { } Frame { msec: 9632 - hash: "92f069682e3da947d3dc933710651f89" + hash: "d1091d48e0875fec9372c382c6961562" } Mouse { type: 5 @@ -3678,7 +3678,7 @@ VisualTest { } Frame { msec: 9648 - hash: "92f069682e3da947d3dc933710651f89" + hash: "d1091d48e0875fec9372c382c6961562" } Mouse { type: 5 @@ -3698,7 +3698,7 @@ VisualTest { } Frame { msec: 9664 - hash: "4ca308a9d8f3bb87716572c68fad7040" + hash: "e1ac646b512dec95946fb52811c269da" } Mouse { type: 5 @@ -3718,7 +3718,7 @@ VisualTest { } Frame { msec: 9680 - hash: "4881497fb4545083332f9df690c318ca" + hash: "29dfbe2f8ecee4ff5ecdf358a94f35f8" } Mouse { type: 5 @@ -3738,7 +3738,7 @@ VisualTest { } Frame { msec: 9696 - hash: "a71d94653ec839a0f1f135f3c83653d4" + hash: "2ce02f81e21d4f9a3fd8d78fc8182898" } Mouse { type: 5 @@ -3758,7 +3758,7 @@ VisualTest { } Frame { msec: 9712 - hash: "547567cd4c4c265a6f9684c8af537825" + hash: "09e41ca9d2286e99cdecb446a33cbf99" } Mouse { type: 5 @@ -3778,7 +3778,7 @@ VisualTest { } Frame { msec: 9728 - hash: "b6776260aa3bf44338ba6ac694b855d3" + hash: "6d780f15bc7597420fc10b1a2f1c7f7f" } Mouse { type: 5 @@ -3798,7 +3798,7 @@ VisualTest { } Frame { msec: 9744 - hash: "190e18262e86e3341e0131cfe0d15edc" + hash: "afb956a94411eba22a0257faa5cbc57f" } Mouse { type: 5 @@ -3818,7 +3818,7 @@ VisualTest { } Frame { msec: 9760 - hash: "3b6059bba0a5092d3667bf2b1c1b6c71" + hash: "8739d2d2f9d96f0bce61ce95bf1e6062" } Mouse { type: 5 @@ -3838,7 +3838,7 @@ VisualTest { } Frame { msec: 9776 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3858,7 +3858,7 @@ VisualTest { } Frame { msec: 9792 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3870,7 +3870,7 @@ VisualTest { } Frame { msec: 9808 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3882,7 +3882,7 @@ VisualTest { } Frame { msec: 9824 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3894,7 +3894,7 @@ VisualTest { } Frame { msec: 9840 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3906,11 +3906,11 @@ VisualTest { } Frame { msec: 9856 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 9872 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3922,7 +3922,7 @@ VisualTest { } Frame { msec: 9888 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3934,7 +3934,7 @@ VisualTest { } Frame { msec: 9904 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3946,7 +3946,7 @@ VisualTest { } Frame { msec: 9920 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3958,11 +3958,11 @@ VisualTest { } Frame { msec: 9936 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 9952 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3974,7 +3974,7 @@ VisualTest { } Frame { msec: 9968 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9984 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -3998,11 +3998,11 @@ VisualTest { } Frame { msec: 10000 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10016 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 5 @@ -4014,59 +4014,59 @@ VisualTest { } Frame { msec: 10032 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10048 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10064 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10080 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10096 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10112 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10128 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10144 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10160 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10176 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10192 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10208 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10224 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10240 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Mouse { type: 3 @@ -4078,83 +4078,83 @@ VisualTest { } Frame { msec: 10256 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10272 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10288 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10304 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10320 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10336 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10352 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10368 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10384 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10400 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10416 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10432 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10448 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10464 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10480 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10496 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10512 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10528 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10544 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10560 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10576 @@ -4162,174 +4162,174 @@ VisualTest { } Frame { msec: 10592 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10608 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10624 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10640 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10656 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10672 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10688 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10704 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10720 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10736 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10752 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10768 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10784 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10800 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10816 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10832 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10848 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10864 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10880 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10896 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10912 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10928 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10944 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10960 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10976 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 10992 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11008 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11024 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11040 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11056 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11072 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11088 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11104 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11120 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11136 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11152 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11168 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11184 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11200 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11216 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11232 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11248 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } Frame { msec: 11264 - hash: "7e3db3b35aa908d1ff0d0e43d6dbdb54" + hash: "4e2cb8e4cedab8df2ff823e18b17e575" } } -- cgit v0.12 From bd5e41af834c764f756d0f49d1eb29bf9518f1ed Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 18 Nov 2010 15:38:32 +1000 Subject: Fine-tune the tests being run on the CI system. We don't want to bother running tests on QWS, or text tests on X11 until they update the ubuntu version. Task-number: QTBUG-14792 --- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 46 +++++----------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index ce08eab..8d4d0d1 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -102,43 +102,17 @@ void tst_qmlvisual::visual_data() QTest::addColumn("testdata"); QStringList files; - if (qgetenv("QMLVISUAL_ALL") != "0") - files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR)); - else { - //these are newly added tests we want to try out in CI (then move to the stable list) - files << QT_TEST_SOURCE_DIR "/animation/qtbug10586/qtbug10586.qml"; - files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/animated.qml"; - files << QT_TEST_SOURCE_DIR "/qdeclarativeflipable/test-flipable.qml"; - files << QT_TEST_SOURCE_DIR "/qdeclarativepositioners/usingRepeater.qml"; - files << QT_TEST_SOURCE_DIR "/animation/parentAnimation2/parentAnimation2.qml"; - - //these are tests we think are stable and useful enough to be run by the CI system - files << QT_TEST_SOURCE_DIR "/animation/bindinganimation/bindinganimation.qml"; - files << QT_TEST_SOURCE_DIR "/animation/loop/loop.qml"; - files << QT_TEST_SOURCE_DIR "/animation/parallelAnimation/parallelAnimation-visual.qml"; - files << QT_TEST_SOURCE_DIR "/animation/parentAnimation/parentAnimation-visual.qml"; - files << QT_TEST_SOURCE_DIR "/animation/reanchor/reanchor.qml"; - files << QT_TEST_SOURCE_DIR "/animation/scriptAction/scriptAction-visual.qml"; - files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/drag.qml"; - files << QT_TEST_SOURCE_DIR "/fillmode/fillmode.qml"; - - // new tests - files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/mousearea-flickable.qml"; - - //these reliably fail in CI, for unknown reasons - //files << QT_TEST_SOURCE_DIR "/animation/easing/easing.qml"; - //files << QT_TEST_SOURCE_DIR "/animation/pauseAnimation/pauseAnimation-visual.qml"; - //files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/borders.qml"; - //files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/animated-smooth.qml"; - - //these reliably fail on Linux because of color interpolation (different float rounding) -#if !defined(Q_WS_X11) && !defined(Q_WS_QWS) - files << QT_TEST_SOURCE_DIR "/animation/colorAnimation/colorAnimation-visual.qml"; - files << QT_TEST_SOURCE_DIR "/animation/propertyAction/propertyAction-visual.qml"; + files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR)); + if (qgetenv("QMLVISUAL_ALL") != "1") { + //Text on X11 varies per distro - and the CI system is currently using something outdated. +#if defined(Q_WS_X11) + foreach(const QString &str, files.filter(QRegExp(".*text.*"))) + files.removeAll(str); +#endif + //We don't want QWS test results to mire down the CI system +#if defined(Q_WS_QWS) + files.clear(); #endif - - //this is unstable because the MouseArea press-and-hold timer is not synchronized to the animation framework. - //files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/mousearea-visual.qml"; } foreach (const QString &file, files) { -- cgit v0.12 From fd7c4c07c20eaff247be33826ae0af099c178494 Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Wed, 17 Nov 2010 10:15:15 +0200 Subject: Correct flags for Symbian file dialogs Corrected the flags for extern functions Task-number: QT-3917 Reviewed-by: Janne Koskinen Merge-request: 918 Reviewed-by: Janne Koskinen --- src/gui/dialogs/qfiledialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index a5bff02..0b789cc 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -1619,7 +1619,7 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args); /* For Symbian file dialogs */ -#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) +#if defined(Q_WS_S60) extern QString qtSymbianGetOpenFileName(const QString &caption, const QString &dir, const QString &filter); -- cgit v0.12 From 518b284673d66ed4a2961a88646ec012cedc96bd Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Thu, 18 Nov 2010 11:34:13 +0200 Subject: Removed extra cpp and done changes based on comments qcolordialog_symbian.cpp is removed from dialogs.pri and string comparison corrected based on comments. Task-number: QT-3917 Reviewed-by: Janne Koskinen Merge-request: 918 Reviewed-by: Janne Koskinen --- src/gui/dialogs/dialogs.pri | 3 +-- src/gui/dialogs/qfiledialog.cpp | 9 +++------ src/gui/dialogs/qfiledialog_symbian.cpp | 22 ++++++++++------------ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri index 483e9aa..c7cb794 100644 --- a/src/gui/dialogs/dialogs.pri +++ b/src/gui/dialogs/dialogs.pri @@ -114,8 +114,7 @@ contains(QT_CONFIG, s60) { -lplatformenv \ -lefsrv \ -lgdi - SOURCES += dialogs/qfiledialog_symbian.cpp \ - dialogs/qcolordialog_symbian.cpp + SOURCES += dialogs/qfiledialog_symbian.cpp } FORMS += dialogs/qpagesetupwidget.ui diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index 0b789cc..1db9789 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -1696,9 +1696,8 @@ 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)) { + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) return qtSymbianGetOpenFileName(caption, dir, filter); - } #endif QFileDialogArgs args; args.parent = parent; @@ -1789,9 +1788,8 @@ 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)) { + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) return qtSymbianGetOpenFileNames(caption, dir, filter); - } #endif QFileDialogArgs args; args.parent = parent; @@ -1884,9 +1882,8 @@ 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)) { + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) return qtSymbianGetSaveFileName(caption, dir); - } #endif QFileDialogArgs args; args.parent = parent; diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp index bd937a1..0277e1c 100644 --- a/src/gui/dialogs/qfiledialog_symbian.cpp +++ b/src/gui/dialogs/qfiledialog_symbian.cpp @@ -62,24 +62,23 @@ public: void setFilter(const QString filter) { filterList.clear(); - if (filter.left(2) == "*.") { + if (filter.left(2) == QLatin1String("*.")) { //Filter has only extensions filterList << filter.split(" "); return; - } - else { + } else { //Extensions are in parenthesis and there may be several filters - QStringList separatedFilters(filter.split(";;")); + QStringList separatedFilters(filter.split(QLatin1String(";;"))); for (int i = 0; i < separatedFilters.size(); i++) { - if (separatedFilters.at(i) == QFileDialog::tr("All Files (*)")){ - filterList << QFileDialog::tr("All Files (*)"); + if (separatedFilters.at(i).contains(QLatin1String("(*)"))) { + filterList << QLatin1String("(*)"); return; } } QRegExp rx("\\(([^\\)]*)\\)"); int pos = 0; while ((pos = rx.indexIn(filter, pos)) != -1) { - filterList << rx.cap(1).split(" "); + filterList << rx.cap(1).split(QLatin1String(" ")); pos += rx.matchedLength(); } } @@ -94,7 +93,7 @@ public: //No filter for files, all can be accepted return ETrue; } - if (filterList == QStringList(QFileDialog::tr("All Files (*)"))) { + if (filterList == QStringList(QLatin1String("(*)"))) { return ETrue; } for (int i = 0; i < filterList.size(); ++i) { @@ -142,11 +141,11 @@ static QString launchSymbianDialog(const QString dialogCaption, const QString st startFolder, NULL, NULL, titlePtr, extensionFilter); CleanupStack::Pop(extensionFilter); } - else if (dialogMode == DialogSave){ + else if (dialogMode == DialogSave) { select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target, startFolder, NULL, NULL, titlePtr); } - else if (dialogMode == DialogFolder){ + else if (dialogMode == DialogFolder) { select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder, 0, 0, titlePtr, NULL, NULL); } @@ -189,8 +188,7 @@ QString qtSymbianGetExistingDirectory(const QString &caption, QString folderCaption; if (!caption.isEmpty()) { folderCaption.append(caption); - } - else { + } else { // Title for folder selection dialog is mandatory folderCaption.append(QFileDialog::tr("Find Directory")); } -- cgit v0.12 From 4e73e8b530f77bf1f43042fb07038eb51cb0238f Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Thu, 18 Nov 2010 12:01:04 +0200 Subject: Fix for QtOpenGL RVCT4 compilation error RVCT4 has strict lookup rules. Calls from function ,that depends on a template parameter, to internal static functions must be qualified. Task-number: QTBUG-15424 Reviewed-by: Jason Barron --- src/opengl/gl2paintengineex/qtriangulator.cpp | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/opengl/gl2paintengineex/qtriangulator.cpp b/src/opengl/gl2paintengineex/qtriangulator.cpp index 85f604a..4c3deb6 100644 --- a/src/opengl/gl2paintengineex/qtriangulator.cpp +++ b/src/opengl/gl2paintengineex/qtriangulator.cpp @@ -339,7 +339,7 @@ static inline qint64 qPointDistanceFromLine(const QPodPoint &p, const QPodPoint static inline bool qPointIsLeftOfLine(const QPodPoint &p, const QPodPoint &v1, const QPodPoint &v2) { - return qPointDistanceFromLine(p, v1, v2) < 0; + return ::qPointDistanceFromLine(p, v1, v2) < 0; } // Return: @@ -1741,7 +1741,7 @@ bool QTriangulator::ComplexToSimple::calculateIntersection(int left, int righ Intersection intersection; intersection.leftEdge = left; intersection.rightEdge = right; - intersection.intersectionPoint = qIntersectionPoint(u1, u2, v1, v2); + intersection.intersectionPoint = ::qIntersectionPoint(u1, u2, v1, v2); if (!intersection.intersectionPoint.isValid()) return false; @@ -1767,10 +1767,10 @@ bool QTriangulator::ComplexToSimple::edgeIsLeftOfEdge(int leftEdgeIndex, int return true; if (upper.x > qMax(l.x, u.x)) return false; - qint64 d = qPointDistanceFromLine(upper, l, u); + qint64 d = ::qPointDistanceFromLine(upper, l, u); // d < 0: left, d > 0: right, d == 0: on top if (d == 0) - d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); + d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); return d < 0; } @@ -1814,7 +1814,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); if (d == 0) { result.first = result.second = current; break; @@ -1828,7 +1828,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); Q_ASSERT(d >= 0); if (d == 0) { result.first = current; @@ -1842,7 +1842,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); Q_ASSERT(d <= 0); if (d == 0) { result.second = current; @@ -1864,7 +1864,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); if (d == 0) break; if (d < 0) { @@ -1885,7 +1885,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); Q_ASSERT(d >= 0); if (d == 0) { current = current->left; @@ -1899,7 +1899,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(point, v1, v2); + qint64 d = ::qPointDistanceFromLine(point, v1, v2); Q_ASSERT(d <= 0); if (d == 0) { current = current->right; @@ -1962,7 +1962,7 @@ void QTriangulator::ComplexToSimple::reorderEdgeListRange(QRBTree::Node template void QTriangulator::ComplexToSimple::sortEdgeList(const QPodPoint eventPoint) { - QIntersectionPoint eventPoint2 = qIntersectionPoint(eventPoint); + QIntersectionPoint eventPoint2 = ::qIntersectionPoint(eventPoint); while (!m_topIntersection.isEmpty() && m_topIntersection.top().intersectionPoint < eventPoint2) { Intersection intersection = m_topIntersection.pop(); @@ -2056,7 +2056,7 @@ void QTriangulator::ComplexToSimple::calculateIntersections() QPair::Node *, QRBTree::Node *> range = bounds(event.point); QRBTree::Node *leftNode = range.first ? m_edgeList.previous(range.first) : 0; int vertex = (event.type == Event::Upper ? m_edges.at(event.edge).upper() : m_edges.at(event.edge).lower()); - QIntersectionPoint eventPoint = qIntersectionPoint(event.point); + QIntersectionPoint eventPoint = ::qIntersectionPoint(event.point); if (range.first != 0) { splitEdgeListRange(range.first, range.second, vertex, eventPoint); @@ -2213,7 +2213,7 @@ void QTriangulator::ComplexToSimple::removeUnwantedEdgesAndConnect() while (current != b.second) { Q_ASSERT(current); Q_ASSERT(m_edges.at(current->data).node == current); - Q_ASSERT(qIntersectionPoint(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to))); + Q_ASSERT(::qIntersectionPoint(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to))); Q_ASSERT(m_parent->m_vertices.at(m_edges.at(current->data).from) == event.point || m_parent->m_vertices.at(m_edges.at(current->data).to) == event.point); insertEdgeIntoVectorIfWanted(orderedEdges, current->data); current = m_edgeList.next(current); @@ -2612,10 +2612,10 @@ bool QTriangulator::SimpleToMonotone::edgeIsLeftOfEdge(int leftEdgeIndex, int const Edge &rightEdge = m_edges.at(rightEdgeIndex); const QPodPoint &u = m_parent->m_vertices.at(rightEdge.upper()); const QPodPoint &l = m_parent->m_vertices.at(rightEdge.lower()); - qint64 d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.upper()), l, u); + qint64 d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.upper()), l, u); // d < 0: left, d > 0: right, d == 0: on top if (d == 0) - d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); + d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); return d < 0; } @@ -2645,7 +2645,7 @@ QRBTree::Node *QTriangulator::SimpleToMonotone::searchEdgeLeftOfPoint(in while (current) { const QPodPoint &p1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &p2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = qPointDistanceFromLine(m_parent->m_vertices.at(pointIndex), p1, p2); + qint64 d = ::qPointDistanceFromLine(m_parent->m_vertices.at(pointIndex), p1, p2); if (d <= 0) { current = current->left; } else { @@ -2668,7 +2668,7 @@ void QTriangulator::SimpleToMonotone::classifyVertex(int i) const QPodPoint &p1 = m_parent->m_vertices.at(e1.from); const QPodPoint &p2 = m_parent->m_vertices.at(e2.from); const QPodPoint &p3 = m_parent->m_vertices.at(e2.to); - qint64 d = qPointDistanceFromLine(p1, p2, p3); + qint64 d = ::qPointDistanceFromLine(p1, p2, p3); Q_ASSERT(d != 0 || (!startOrSplit && !endOrMerge)); e2.type = RegularVertex; -- cgit v0.12 From 2c40c98a5b3ff4f16c4ad71b5707d5271945819e Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Thu, 18 Nov 2010 12:15:03 +0200 Subject: QToolbar should fill available width on Symbian Normally QStyle provides a minimum size for a widget. However, to imitate native toolbar behavior, QToolBar should occupy available screen estate on Symbian (with QS60Style). This is only supported for horizontal QToolBars as native side does not have same functionality for vertical toolbars. QToolbar size now tries to take into account available size of parent reduced by margins (if several parents, then each can reduce the available space by their margins). Also, toolbar internal pixel metrics data (item spacing, item margins) are taken into account. Task-number: QTBUG-13120 Reviewed-by: Janne Koskinen --- src/gui/styles/qs60style.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 5fe9050..5eddc98 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -2536,6 +2536,56 @@ QSize QS60Style::sizeFromContents(ContentsType ct, const QStyleOption *opt, if (const QStyleOptionToolButton *toolBtn = qstyleoption_cast(opt)) if (toolBtn->subControls & SC_ToolButtonMenu) sz += QSize(pixelMetric(PM_MenuButtonIndicator), 0); + + //Make toolbuttons in toolbar stretch the whole screen area + if (widget && qobject_cast(widget->parentWidget())) { + const QToolBar *tb = qobject_cast(widget->parentWidget()); + const bool parentCanGrowHorizontally = !(tb->sizePolicy().horizontalPolicy() == QSizePolicy::Fixed || + tb->sizePolicy().horizontalPolicy() == QSizePolicy::Maximum) && tb->orientation() == Qt::Horizontal; + + if (parentCanGrowHorizontally) { + int visibleButtons = 0; + //Make the auto-stretch to happen only for horizontal orientation + if (tb && tb->orientation() == Qt::Horizontal) { + QList actionList = tb->actions(); + for (int i = 0; i < actionList.count(); i++) { + if (actionList.at(i)->isVisible()) + visibleButtons++; + } + } + + if (widget->parentWidget() && visibleButtons > 0) { + QWidget *w = const_cast(widget); + int toolBarMaxWidth = 0; + int totalMargin = 0; + while (w) { + //honor fixed width parents + if (w->maximumWidth() == w->minimumWidth()) + toolBarMaxWidth = qMax(toolBarMaxWidth, w->maximumWidth()); + if (w->layout() && w->windowType() == Qt::Widget) { + totalMargin += w->layout()->contentsMargins().left() + + w->layout()->contentsMargins().right(); + } + w = w->parentWidget(); + } + totalMargin += 2 * pixelMetric(QStyle::PM_ToolBarFrameWidth); + + if (toolBarMaxWidth == 0) + toolBarMaxWidth = + QApplication::desktop()->availableGeometry(widget->parentWidget()).width(); + //Reduce the margins, toolbar frame, item spacing and internal margin from available area + toolBarMaxWidth -= totalMargin; + + //ensure that buttons are side-by-side and not on top of each other + const int toolButtonWidth = (toolBarMaxWidth / visibleButtons) + - pixelMetric(QStyle::PM_ToolBarItemSpacing) + - pixelMetric(QStyle::PM_ToolBarItemMargin) + //toolbar frame needs to be reduced again, since QToolBarLayout adds it for each toolbar action + - 2 * pixelMetric(QStyle::PM_ToolBarFrameWidth) - 1; + sz.setWidth(qMax(toolButtonWidth, sz.width())); + } + } + } break; case CT_PushButton: sz = QCommonStyle::sizeFromContents( ct, opt, csz, widget); -- cgit v0.12 From faf0e9966c319ac774db3d4967d902772c30e526 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Thu, 18 Nov 2010 13:06:10 +0200 Subject: Tactile Feedback plugin is not compiled in latest Sym^3 RnD envs Due to somewhat questionable .pro-file flagging, the plugin is not currently compiled at all for latest Sym^3 environments. Flagging is now more bulletproof (not 3.1 & not 3.2), so even if the upcoming platform versions change, this should work in the future. Task-number: QTBUG-15428 Reviewed-by: Mikka Heikkinen --- src/plugins/s60/feedback/feedback.pro | 2 +- src/plugins/s60/s60.pro | 2 +- src/s60installs/s60installs.pro | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro index 1069220..5e577ec 100644 --- a/src/plugins/s60/feedback/feedback.pro +++ b/src/plugins/s60/feedback/feedback.pro @@ -6,7 +6,7 @@ QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE -contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { +!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { HEADERS += qtactileFeedback.h SOURCES += qtactileFeedback_s60.cpp diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro index ffcd170..1ddf326 100644 --- a/src/plugins/s60/s60.pro +++ b/src/plugins/s60/s60.pro @@ -6,7 +6,7 @@ symbian { SUBDIRS += 3_1 3_2 } - contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { SUBDIRS += feedback } diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 65b8781..7827fb6 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -87,7 +87,7 @@ symbian: { DEPLOYMENT += bearer_plugin } - contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback DEPLOYMENT += feedback_plugin -- cgit v0.12 From 9f18a1ad5ce32dd397642a4c03fa1fcb21fb9456 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 18 Nov 2010 05:40:36 +0000 Subject: Check correctly before including SSE4.2 header. Previously, this failed machines that only had SSE4.1 but not SSE4.2 due to an assumption that nmmintrin.h could be included when only using SSE4.1. Fixes http://bugreports.qt.nokia.com/browse/QTBUG-13623. Merge-request: 929 Reviewed-by: Benjamin Poulain --- src/corelib/tools/qsimd_p.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 87fa770..2dbed76 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -87,9 +87,13 @@ QT_BEGIN_HEADER #include #endif -// SSE4.1 and SSE4.2 intrinsics -#if (defined(QT_HAVE_SSE4_1) || defined(QT_HAVE_SSE4_2)) && (defined(__SSE4_1__) || defined(Q_CC_MSVC)) +// SSE4.1 intrinsics +#if defined(QT_HAVE_SSE4_1) && (defined(__SSE4_1__) || defined(Q_CC_MSVC)) #include +#endif + +// SSE4.2 intrinsics +#if defined(QT_HAVE_SSE4_2) && (defined(__SSE4_2__) || defined(Q_CC_MSVC)) #include #endif -- cgit v0.12 From 36ac9c61e73944cd75d09f5751dd8ed053571b9b Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 18 Nov 2010 20:57:20 +1000 Subject: Add missing symbols in QtGui emulator def file --- src/s60installs/bwins/QtGuiu.def | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index c91b22c..dc8a865 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12898,4 +12898,10 @@ EXPORTS ?qmljsDebugArgumentsString@QApplicationPrivate@@SA?AVQString@@XZ @ 12897 NONAME ; class QString QApplicationPrivate::qmljsDebugArgumentsString(void) ?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12898 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &) ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12899 NONAME ; class QString QFont::lastResortFont(void) const + ?setFontEngine@QStaticTextItem@@QAEXPAVQFontEngine@@@Z @ 12900 NONAME ; void QStaticTextItem::setFontEngine(class QFontEngine *) + ??0QStaticTextItem@@QAE@ABV0@@Z @ 12901 NONAME ; QStaticTextItem::QStaticTextItem(class QStaticTextItem const &) + ??4QStaticTextItem@@QAEXABV0@@Z @ 12902 NONAME ; void QStaticTextItem::operator=(class QStaticTextItem const &) + ?fontEngine@QStaticTextItem@@QBEPAVQFontEngine@@XZ @ 12903 NONAME ; class QFontEngine * QStaticTextItem::fontEngine(void) const + ?reactivateDeferredActiveObjects@QEventDispatcherS60@@UAEXXZ @ 12904 NONAME ; void QEventDispatcherS60::reactivateDeferredActiveObjects(void) + ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 12905 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const -- cgit v0.12 From 31feffb92570c6e13618cc2d0d03a5f243a7e350 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Thu, 18 Nov 2010 13:06:10 +0200 Subject: Tactile Feedback plugin is not compiled in latest Sym^3 RnD envs Due to somewhat questionable .pro-file flagging, the plugin is not currently compiled at all for latest Sym^3 environments. Flagging is now more bulletproof (not 3.1 & not 3.2), so even if the upcoming platform versions change, this should work in the future. Task-number: QTBUG-15428 Reviewed-by: Miikka Heikkinen --- src/plugins/s60/feedback/feedback.pro | 2 +- src/plugins/s60/s60.pro | 2 +- src/s60installs/s60installs.pro | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro index 1069220..5e577ec 100644 --- a/src/plugins/s60/feedback/feedback.pro +++ b/src/plugins/s60/feedback/feedback.pro @@ -6,7 +6,7 @@ QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE -contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { +!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { HEADERS += qtactileFeedback.h SOURCES += qtactileFeedback_s60.cpp diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro index ffcd170..1ddf326 100644 --- a/src/plugins/s60/s60.pro +++ b/src/plugins/s60/s60.pro @@ -6,7 +6,7 @@ symbian { SUBDIRS += 3_1 3_2 } - contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { SUBDIRS += feedback } diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 65b8781..7827fb6 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -87,7 +87,7 @@ symbian: { DEPLOYMENT += bearer_plugin } - contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { + !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback DEPLOYMENT += feedback_plugin -- cgit v0.12 From 7196045b78b33cf135683d5c0b4e164f95231791 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 18 Nov 2010 12:42:14 +0100 Subject: Don't let posted events starve native dialogs (regression) After commit eb1015c7bbf135af3656110a4d112377c1209db8, it is possible for posted events to starve some of the (most likely internal) messages used by native dialogs. This commit reverts eb1015c7bbf135af3656110a4d112377c1209db8, and instead introduces a Windows timer to keep sendPostedEvents() happening while the event queue is very active. The GetMessage() hook we install will eventually see when the queue is empty and we can use PostMessage() again, which will then stop this timer. This fixes the regression reported in QTBUG-14655, as well as all of the other reported regressions and problems since the initial commit 31f1ff91028dd7f90925d5b3737e4d88b5fb07aa (which ensures that posted events are sent even when Windows is spinning the message loop). Task-number: QTBUG-14655 Reviewed-by: joao --- src/corelib/kernel/qeventdispatcher_win.cpp | 48 ++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index a719e72..3dccda6 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -84,7 +84,8 @@ extern uint qGlobalPostedEventsCount(); enum { WM_QT_SOCKETNOTIFIER = WM_USER, - WM_QT_SENDPOSTEDEVENTS = WM_USER + 1 + WM_QT_SENDPOSTEDEVENTS = WM_USER + 1, + SendPostedEventsWindowsTimerId = ~1u }; #if defined(Q_OS_WINCE) @@ -353,7 +354,7 @@ public: // for controlling when to send posted events QAtomicInt serialNumber; - int lastSerialNumber; + int lastSerialNumber, sendPostedEventsWindowsTimerId; QAtomicInt wakeUps; // timers @@ -378,7 +379,7 @@ public: QEventDispatcherWin32Private::QEventDispatcherWin32Private() : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), getMessageHook(0), - serialNumber(0), lastSerialNumber(0), wakeUps(0) + serialNumber(0), lastSerialNumber(0), sendPostedEventsWindowsTimerId(0), wakeUps(0) { resolveTimerAPI(); } @@ -485,17 +486,21 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA } } return 0; - } else if (message == WM_TIMER) { - Q_ASSERT(d != 0); - d->sendTimerEvent(wp); - return 0; - } else if (message == WM_QT_SENDPOSTEDEVENTS) { + } else if (message == WM_QT_SENDPOSTEDEVENTS + // we also use a Windows timer to send posted events when the message queue is full + || (message == WM_TIMER + && d->sendPostedEventsWindowsTimerId != 0 + && wp == d->sendPostedEventsWindowsTimerId)) { int localSerialNumber = d->serialNumber; if (localSerialNumber != d->lastSerialNumber) { d->lastSerialNumber = localSerialNumber; QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); } return 0; + } else if (message == WM_TIMER) { + Q_ASSERT(d != 0); + d->sendTimerEvent(wp); + return 0; } return DefWindowProc(hwnd, message, wp, lp); @@ -507,21 +512,36 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) QEventDispatcherWin32 *q = qobject_cast(QAbstractEventDispatcher::instance()); Q_ASSERT(q != 0); if (q) { + MSG *msg = (MSG *) lp; QEventDispatcherWin32Private *d = q->d_func(); int localSerialNumber = d->serialNumber; - MSG unused; - if ((HIWORD(GetQueueStatus(QS_INPUT | QS_RAWINPUT)) == 0 - && PeekMessage(&unused, 0, WM_TIMER, WM_TIMER, PM_NOREMOVE) == 0)) { - // no more input or timer events in the message queue or more than 10ms has elapsed since - // we send posted events, we can allow posted events to be sent now + if (HIWORD(GetQueueStatus(QS_TIMER | QS_INPUT | QS_RAWINPUT)) == 0) { + // no more input or timer events in the message queue, we can allow posted events to be sent normally now + if (d->sendPostedEventsWindowsTimerId != 0) { + // stop the timer to send posted events, since we now allow the WM_QT_SENDPOSTEDEVENTS message + KillTimer(d->internalHwnd, d->sendPostedEventsWindowsTimerId); + d->sendPostedEventsWindowsTimerId = 0; + } (void) d->wakeUps.fetchAndStoreRelease(0); - MSG *msg = (MSG *) lp; if (localSerialNumber != d->lastSerialNumber // if this message IS the one that triggers sendPostedEvents(), no need to post it again && (msg->hwnd != d->internalHwnd || msg->message != WM_QT_SENDPOSTEDEVENTS)) { PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); } + } else if (d->sendPostedEventsWindowsTimerId == 0 + && localSerialNumber != d->lastSerialNumber + // if this message IS the one that triggers sendPostedEvents(), no need to post it again + && (msg->hwnd != d->internalHwnd + || msg->message != WM_QT_SENDPOSTEDEVENTS)) { + // start a special timer to continue delivering posted events while + // there are still input and timer messages in the message queue + d->sendPostedEventsWindowsTimerId = SetTimer(d->internalHwnd, + SendPostedEventsWindowsTimerId, + USER_TIMER_MINIMUM, + NULL); + // we don't check the return value of SetTimer()... if creating the timer failed, there's little + // we can do. we just have to accept that posted events will be starved } } } -- cgit v0.12 From 0ced71e4dddc12240b22fd5786ed41a529e49c47 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 18 Nov 2010 13:35:44 +0100 Subject: Fix parent bug for QDeclarativeOpenMetaObject The dynamic meta object was not called because no parent meta object was called. Reviewed-By: Aaron Kennedy --- src/declarative/util/qdeclarativeopenmetaobject.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/declarative/util/qdeclarativeopenmetaobject.cpp b/src/declarative/util/qdeclarativeopenmetaobject.cpp index 40485bd..c611435 100644 --- a/src/declarative/util/qdeclarativeopenmetaobject.cpp +++ b/src/declarative/util/qdeclarativeopenmetaobject.cpp @@ -186,6 +186,7 @@ QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(QObject *obj, bool automa d->type->d->referers.insert(this); QObjectPrivate *op = QObjectPrivate::get(obj); + d->parent = static_cast(op->metaObject); *static_cast(this) = *d->type->d->mem; op->metaObject = this; } @@ -201,6 +202,7 @@ QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(QObject *obj, QDeclarativ d->type->d->referers.insert(this); QObjectPrivate *op = QObjectPrivate::get(obj); + d->parent = static_cast(op->metaObject); *static_cast(this) = *d->type->d->mem; op->metaObject = this; } -- cgit v0.12 From dfd5ee41532b55ef6aaa5fb7ed3b586fbac80fce Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 18 Nov 2010 12:39:09 +0200 Subject: Make epocroot resolving compatible with more build environments This commit prepares epocroot.cpp and registry.cpp to be compilable by lrelease and corelib. Task-number: QTBUG-15393 Reviewed-by: axis --- tools/shared/symbian/epocroot.cpp | 100 ++++++++++++++++++-------------------- tools/shared/windows/registry.cpp | 8 +-- 2 files changed, 51 insertions(+), 57 deletions(-) diff --git a/tools/shared/symbian/epocroot.cpp b/tools/shared/symbian/epocroot.cpp index ae1dcb1..9d7d465 100644 --- a/tools/shared/symbian/epocroot.cpp +++ b/tools/shared/symbian/epocroot.cpp @@ -64,23 +64,13 @@ // Stored as a static value in order to avoid unnecessary re-evaluation. static QString epocRootValue; -#ifdef QT_BUILD_QMAKE -std::ostream &operator<<(std::ostream &s, const QString &val) { - s << val.toLocal8Bit().data(); - return s; -} -#else -// Operator implemented in configureapp.cpp -std::ostream &operator<<(std::ostream &s, const QString &val); -#endif - QString getDevicesXmlPath() { // Note that the following call will return a null string on platforms other // than Windows. If support is required on other platforms for devices.xml, // an alternative mechanism for retrieving the location of this file will // be required. - return readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, SYMBIAN_SDKS_REG_SUBKEY); + return readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, QLatin1String(SYMBIAN_SDKS_REG_SUBKEY)); } /** @@ -92,7 +82,8 @@ void checkEpocRootExists(const QString &source) if (!epocRootValue.isEmpty()) { QDir dir(epocRootValue); if (!dir.exists()) { - std::cerr << "Warning: " << source << " is set to an invalid path: " << epocRootValue << std::endl; + qWarning("Warning: %s is set to an invalid path: '%s'", qPrintable(source), + qPrintable(epocRootValue)); epocRootValue = QString(); } } @@ -103,10 +94,10 @@ void checkEpocRootExists(const QString &source) */ static void fixEpocRoot(QString &path) { - path.replace("\\", "/"); + path.replace(QLatin1Char('\\'), QLatin1Char('/')); - if (!path.size() || path[path.size()-1] != QChar('/')) { - path += QChar('/'); + if (!path.size() || path[path.size()-1] != QLatin1Char('/')) { + path += QLatin1Char('/'); } } @@ -118,17 +109,15 @@ QString epocRoot() if (epocRootValue.isEmpty()) { // 1. If environment variable EPOCROOT is set and points to an existent // directory, this is returned. - epocRootValue = qgetenv("EPOCROOT"); - checkEpocRootExists("EPOCROOT"); + epocRootValue = QString::fromLocal8Bit(qgetenv("EPOCROOT").constData()); + checkEpocRootExists(QLatin1String("EPOCROOT environment variable")); if (epocRootValue.isEmpty()) { // 2. The location of devices.xml is specified by a registry key. If this // file exists, it is parsed. QString devicesXmlPath = getDevicesXmlPath(); - if (devicesXmlPath.isEmpty()) { - std::cerr << "Error: Symbian SDK registry key not found" << std::endl; - } else { - devicesXmlPath += "/devices.xml"; + if (!devicesXmlPath.isEmpty()) { + devicesXmlPath += QLatin1String("/devices.xml"); QFile devicesFile(devicesXmlPath); if (devicesFile.open(QIODevice::ReadOnly)) { @@ -138,87 +127,90 @@ QString epocRoot() // 4. If a device element marked as default is found in devices.xml and its // epocroot value points to an existent directory, this is returned. - const QString epocDeviceValue = qgetenv("EPOCDEVICE"); + const QString epocDeviceValue = QString::fromLocal8Bit(qgetenv("EPOCDEVICE").constData()); bool epocDeviceFound = false; QXmlStreamReader xml(&devicesFile); while (!xml.atEnd()) { xml.readNext(); - if (xml.isStartElement() && xml.name() == "devices") { - if (xml.attributes().value("version") == "1.0") { - while (!(xml.isEndElement() && xml.name() == "devices") && !xml.atEnd()) { + if (xml.isStartElement() && xml.name() == QLatin1String("devices")) { + if (xml.attributes().value(QLatin1String("version")) == QLatin1String("1.0")) { + while (!(xml.isEndElement() && xml.name() == QLatin1String("devices")) && !xml.atEnd()) { xml.readNext(); - if (xml.isStartElement() && xml.name() == "device") { - const bool isDefault = xml.attributes().value("default") == "yes"; - const QString id = xml.attributes().value("id").toString(); - const QString name = xml.attributes().value("name").toString(); - const QString alias = xml.attributes().value("alias").toString(); - bool epocDeviceMatch = (id + ":" + name) == epocDeviceValue; + if (xml.isStartElement() && xml.name() == QLatin1String("device")) { + const bool isDefault = xml.attributes().value(QLatin1String("default")) == QLatin1String("yes"); + const QString id = xml.attributes().value(QLatin1String("id")).toString(); + const QString name = xml.attributes().value(QLatin1String("name")).toString(); + const QString alias = xml.attributes().value(QLatin1String("alias")).toString(); + bool epocDeviceMatch = QString(id + QLatin1String(":") + name) == epocDeviceValue; if (!alias.isEmpty()) epocDeviceMatch |= alias == epocDeviceValue; epocDeviceFound |= epocDeviceMatch; if((epocDeviceValue.isEmpty() && isDefault) || epocDeviceMatch) { // Found a matching device - while (!(xml.isEndElement() && xml.name() == "device") && !xml.atEnd()) { + while (!(xml.isEndElement() && xml.name() == QLatin1String("device")) && !xml.atEnd()) { xml.readNext(); - if (xml.isStartElement() && xml.name() == "epocroot") { + if (xml.isStartElement() && xml.name() == QLatin1String("epocroot")) { epocRootValue = xml.readElementText(); const QString deviceSource = epocDeviceValue.isEmpty() - ? "default device" - : "EPOCDEVICE (" + epocDeviceValue + ")"; + ? QLatin1String("default device") + : QString(QLatin1String("EPOCDEVICE (") + epocDeviceValue + QLatin1String(")")); checkEpocRootExists(deviceSource); } } if (epocRootValue.isEmpty()) - xml.raiseError("No epocroot element found"); + xml.raiseError(QLatin1String("No epocroot element found")); } } } } else { - xml.raiseError("Invalid 'devices' element version"); + xml.raiseError(QLatin1String("Invalid 'devices' element version")); } } } if (xml.hasError()) { - std::cerr << "Error: \"" << xml.errorString() << "\" when parsing devices.xml" << std::endl; + qWarning("Warning: Error \"%s\" when parsing devices.xml", + qPrintable(xml.errorString())); } else { if (epocRootValue.isEmpty()) { if (!epocDeviceValue.isEmpty()) { if (epocDeviceFound) { - std::cerr << "Error: missing or invalid epocroot attribute " - << "in device '" << epocDeviceValue << "'"; + qWarning("Warning: Missing or invalid epocroot attribute in device '%s' in devices.xml.", + qPrintable(epocDeviceValue)); } else { - std::cerr << "Error: no device matching EPOCDEVICE (" - << epocDeviceValue << ")"; + qWarning("Warning: No device matching EPOCDEVICE (%s) in devices.xml.", + qPrintable(epocDeviceValue)); } } else { if (epocDeviceFound) { - std::cerr << "Error: missing or invalid epocroot attribute " - << "in default device"; + qWarning("Warning: Missing or invalid epocroot attribute in default device in devices.xml."); } else { - std::cerr << "Error: no default device"; + qWarning("Warning: No default device set in devices.xml."); } } - std::cerr << " found in devices.xml file." << std::endl; } } } else { - std::cerr << "Error: could not open file " << devicesXmlPath << std::endl; + qWarning("Warning: Could not open file: '%s'.", qPrintable(devicesXmlPath)); } } } if (epocRootValue.isEmpty()) { // 5. An empty string is returned. - std::cerr << "Error: failed to find epoc root" << std::endl - << "Either" << std::endl - << " 1. Set EPOCROOT environment variable to a valid value" << std::endl - << " or 2. Ensure that the HKEY_LOCAL_MACHINE\\" SYMBIAN_SDKS_REG_SUBKEY - " registry key is set, and then" << std::endl - << " a. Set EPOCDEVICE environment variable to a valid device" << std::endl - << " or b. Specify a default device in the devices.xml file." << std::endl; + qWarning("Warning: failed to resolve epocroot." +#ifdef Q_OS_WIN32 + "\nEither\n" + " 1. Set EPOCROOT environment variable to a valid value.\n" + " or 2. Ensure that the HKEY_LOCAL_MACHINE\\" SYMBIAN_SDKS_REG_SUBKEY + " registry key is set, and then\n" + " a. Set EPOCDEVICE environment variable to a valid device\n" + " or b. Specify a default device in the devices.xml file."); +#else + " Set EPOCROOT environment variable to a valid value."); +#endif } else { fixEpocRoot(epocRootValue); } diff --git a/tools/shared/windows/registry.cpp b/tools/shared/windows/registry.cpp index 67d9b56..2373839 100644 --- a/tools/shared/windows/registry.cpp +++ b/tools/shared/windows/registry.cpp @@ -42,6 +42,7 @@ #include #include "registry.h" +#ifdef Q_OS_WIN32 /*! Returns the path part of a registry key. e.g. @@ -73,10 +74,11 @@ static QString keyName(const QString &rKey) return rKey; QString res(rKey.mid(idx + 1)); - if (res == "Default" || res == ".") - res = ""; + if (res == QLatin1String("Default") || res == QLatin1String(".")) + res = QString(); return res; } +#endif QString readRegistryKey(HKEY parentHandle, const QString &rSubkey) { @@ -128,7 +130,7 @@ QString readRegistryKey(HKEY parentHandle, const QString &rSubkey) break; l.append(s); } - result = l.join(", "); + result = l.join(QLatin1String(", ")); break; } -- cgit v0.12 From bc09d5b11cd45e975ec745b508c703b75b019a4e Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 18 Nov 2010 15:23:03 +0200 Subject: Resolve EPOCROOT in qt.conf using same logic as in .pro Previously it was only possible to use EPOCROOT in qt.conf via env variable, while qmake & configure could resolve it also via devices.xml. Changed qt.conf parsing to support $${EPOCROOT} tag and use same resolving logic as qmake & configure. Task-number: QTBUG-15393 Reviewed-by: axis --- qmake/Makefile.unix | 2 +- qmake/Makefile.win32 | 3 ++- qmake/Makefile.win32-g++ | 2 +- qmake/Makefile.win32-g++-sh | 2 +- qmake/qmake.pri | 2 +- src/corelib/global/global.pri | 2 ++ src/corelib/global/qlibraryinfo.cpp | 12 ++++++++++++ tools/linguist/lrelease/lrelease.pro | 1 + tools/shared/symbian/epocroot.pri | 11 +++++++++++ 9 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 tools/shared/symbian/epocroot.pri diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 8d56fc8..d941dc4 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -68,7 +68,7 @@ CPPFLAGS = -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/ma -I$(BUILD_PATH)/src/corelib/global -I$(BUILD_PATH)/src/corelib/xml \ -I$(SOURCE_PATH)/tools/shared \ -DQT_NO_PCRE \ - -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED \ + -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL \ -DQT_NO_COMPRESS -I$(QMAKESPEC) -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT \ -DQT_NO_GEOM_VARIANT $(OPENSOURCE_CXXFLAGS) diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 4d0121c..c04bcb2 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -40,7 +40,8 @@ CFLAGS_BARE = -c -Fo./ \ -I$(SOURCE_PATH)\tools\shared \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \ -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \ - -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED + -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED \ + -DQLIBRARYINFO_EPOCROOT CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS) CXXFLAGS_BARE = $(CFLAGS_BARE) diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index f313f9e..29fbd0a 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -25,7 +25,7 @@ CFLAGS = -c -o$@ -O \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ - -DQT_BOOTSTRAPPED + -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT CXXFLAGS = $(CFLAGS) LFLAGS = -static-libgcc -static-libstdc++ -s LIBS = -lole32 -luuid diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index af54288..9c7942c 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -25,7 +25,7 @@ CFLAGS = -c -o$@ -O \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ - -DQT_BOOTSTRAPPED + -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT CXXFLAGS = $(CFLAGS) LFLAGS = -static-libgcc -static-libstdc++ -s LIBS = -lole32 -luuid diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 36c5d36..7cf94cb 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -3,7 +3,7 @@ CONFIG += depend_includepath QMAKE_INCREMENTAL = SKIP_DEPENDS += qconfig.h qmodules.h DEFINES += QT_NO_TEXTCODEC QT_NO_LIBRARY QT_NO_STL QT_NO_COMPRESS QT_NO_UNICODETABLES \ - QT_NO_GEOM_VARIANT QT_NO_DATASTREAM + QT_NO_GEOM_VARIANT QT_NO_DATASTREAM QLIBRARYINFO_EPOCROOT #qmake code SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \ diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri index 4800716..86800ef 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -27,3 +27,5 @@ linux*:!static:!linux-armcc:!linux-gcce { # Compensate for lack of platform defines in Symbian3 and Symbian4 symbian: DEFINES += SYMBIAN_VERSION_$$upper($$replace(SYMBIAN_VERSION,\\.,_)) + +include(../../../tools/shared/symbian/epocroot.pri) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index 957abbf..acacf7c 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -62,6 +62,10 @@ QT_END_NAMESPACE # include "private/qcore_mac_p.h" #endif +#ifdef QLIBRARYINFO_EPOCROOT +# include "symbian/epocroot.h" +#endif + #include "qconfig.cpp" QT_BEGIN_NAMESPACE @@ -433,6 +437,14 @@ QLibraryInfo::location(LibraryLocation loc) QString::fromLocal8Bit(qgetenv(ret.mid(rep + 2, reg_var.matchedLength() - 3).toLatin1().constData()).constData())); } + +#ifdef QLIBRARYINFO_EPOCROOT + // $${EPOCROOT} is a special case, resolve it similarly to qmake. + QRegExp epocrootMatcher(QLatin1String("\\$\\$\\{EPOCROOT\\}")); + if ((rep = epocrootMatcher.indexIn(ret)) != -1) + ret.replace(rep, epocrootMatcher.matchedLength(), epocRoot()); +#endif + config->endGroup(); } } diff --git a/tools/linguist/lrelease/lrelease.pro b/tools/linguist/lrelease/lrelease.pro index 6beafa3..89694be 100644 --- a/tools/linguist/lrelease/lrelease.pro +++ b/tools/linguist/lrelease/lrelease.pro @@ -15,6 +15,7 @@ macx:SOURCES += $$QT_SOURCE_TREE/src/corelib/io/qsettings_mac.cpp include(../../../src/tools/bootstrap/bootstrap.pri) include(../shared/formats.pri) include(../shared/proparser.pri) +include(../../shared/symbian/epocroot.pri) win32:LIBS += -ladvapi32 # for qsettings_win.cpp diff --git a/tools/shared/symbian/epocroot.pri b/tools/shared/symbian/epocroot.pri new file mode 100644 index 0000000..117836e --- /dev/null +++ b/tools/shared/symbian/epocroot.pri @@ -0,0 +1,11 @@ +# Epocroot resolving is only required for tools, so omit it from all mobile/embedded builds +!symbian:!wince*:!embedded { +HEADERS += \ + $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.h \ + $$QT_SOURCE_TREE/tools/shared/windows/registry.h +SOURCES += \ + $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.cpp \ + $$QT_SOURCE_TREE/tools/shared/windows/registry.cpp +INCLUDEPATH += $$QT_SOURCE_TREE/tools/shared +DEFINES += QLIBRARYINFO_EPOCROOT +} -- cgit v0.12 From 8a298f78a8050bffff1d3c0135aa432a85747c2e Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 18 Nov 2010 16:59:42 +0200 Subject: Add symbian scope for qfiledialog_symbian.cpp Missing symbian scope caused build break on non-symbian platforms. Reviewed-by: Janne Koskinen --- src/gui/dialogs/dialogs.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri index c7cb794..443c5e9 100644 --- a/src/gui/dialogs/dialogs.pri +++ b/src/gui/dialogs/dialogs.pri @@ -108,7 +108,7 @@ SOURCES += \ dialogs/qwizard.cpp \ dialogs/qprintpreviewdialog.cpp -contains(QT_CONFIG, s60) { +symbian:contains(QT_CONFIG, s60) { LIBS += -lcommondialogs \ -lavkon \ -lplatformenv \ -- cgit v0.12 From d4cd9c899e705ff01f597f0007def8fbd3ab8b39 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 19 Nov 2010 09:19:41 +1000 Subject: Add a test on QWS Without a single test, it fails anyways. Task-number: QTBUG-14792 --- tests/auto/declarative/qmlvisual/TEST_GUIDELINES | 2 +- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/TEST_GUIDELINES b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES index cb53b6e..469832f 100644 --- a/tests/auto/declarative/qmlvisual/TEST_GUIDELINES +++ b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES @@ -4,4 +4,4 @@ Guidelines for creating new visual tests: 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. +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. Also keep in mind that text anti-aliasing is disabled during tests for greater consistency, and you should never use point sizes in tests. Text autotests can thus only test some aspects of the elements. diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 8d4d0d1..2a15102 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -104,14 +104,16 @@ void tst_qmlvisual::visual_data() QStringList files; files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR)); if (qgetenv("QMLVISUAL_ALL") != "1") { - //Text on X11 varies per distro - and the CI system is currently using something outdated. #if defined(Q_WS_X11) + //Text on X11 varies per distro - and the CI system is currently using something outdated. foreach(const QString &str, files.filter(QRegExp(".*text.*"))) files.removeAll(str); #endif - //We don't want QWS test results to mire down the CI system #if defined(Q_WS_QWS) + //We don't want QWS test results to mire down the CI system files.clear(); + //Needs at least one test data or it fails anyways + files << QT_TEST_SOURCE_DIR "/selftest_noimages/selftest_noimages.qml"; #endif } -- cgit v0.12 From 519264c692f77f6da2fb8a9ac2ddb1d70b39cc90 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 19 Nov 2010 10:55:22 +1000 Subject: Doc: clarify Flickable children vs. contentItem children. --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 3a3189c..1870647 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -386,6 +386,13 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd() \snippet doc/src/snippets/declarative/flickable.qml document \clearfloat + + Items declared as children of a Flickable are automatically parented to the + Flickable's \l contentItem. This should be taken into account when + operating on the children of the Flickable; it is usually the children of + \c contentItem that are relevant. For example, the bound of Items added + to the Flickable will be available by \c contentItem.childrenRect + \section1 Limitations \note Due to an implementation detail, items placed inside a Flickable cannot anchor to it by -- cgit v0.12 From f3a80c1128a04c9eb04a28b2fe8b468113731c43 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 19 Nov 2010 13:29:48 +1000 Subject: Add missing symbols to QtOpenGL emulator def file --- src/s60installs/bwins/QtOpenGLu.def | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def index fa340e4..620fcb9 100644 --- a/src/s60installs/bwins/QtOpenGLu.def +++ b/src/s60installs/bwins/QtOpenGLu.def @@ -8,7 +8,7 @@ EXPORTS ?d_func@QGLShader@@AAEPAVQGLShaderPrivate@@XZ @ 7 NONAME ; class QGLShaderPrivate * QGLShader::d_func(void) ?bindToDynamicTexture@QGLPixelBuffer@@QAE_NI@Z @ 8 NONAME ; bool QGLPixelBuffer::bindToDynamicTexture(unsigned int) ??0QGLWidget@@QAE@PAVQGLContext@@PAVQWidget@@PBV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9 NONAME ; QGLWidget::QGLWidget(class QGLContext *, class QWidget *, class QGLWidget const *, class QFlags) - ??_EQGLFormat@@QAE@I@Z @ 10 NONAME ; QGLFormat::~QGLFormat(unsigned int) + ??_EQGLFormat@@QAE@I@Z @ 10 NONAME ABSENT ; QGLFormat::~QGLFormat(unsigned int) ?drawPixmapFragments@QGL2PaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 11 NONAME ; void QGL2PaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags) ?paintEngine@QGLWidget@@UBEPAVQPaintEngine@@XZ @ 12 NONAME ; class QPaintEngine * QGLWidget::paintEngine(void) const ?setPreferredPaintEngine@QGL@@YAXW4Type@QPaintEngine@@@Z @ 13 NONAME ; void QGL::setPreferredPaintEngine(enum QPaintEngine::Type) @@ -107,7 +107,7 @@ EXPORTS ??0QGLContext@@QAE@ABVQGLFormat@@@Z @ 106 NONAME ; QGLContext::QGLContext(class QGLFormat const &) ?geometryOutputVertexCount@QGLShaderProgram@@QBEHXZ @ 107 NONAME ; int QGLShaderProgram::geometryOutputVertexCount(void) const ?setAccum@QGLFormat@@QAEX_N@Z @ 108 NONAME ; void QGLFormat::setAccum(bool) - ??0QGLSignalProxy@@QAE@XZ @ 109 NONAME ; QGLSignalProxy::QGLSignalProxy(void) + ??0QGLSignalProxy@@QAE@XZ @ 109 NONAME ABSENT ; QGLSignalProxy::QGLSignalProxy(void) ?isUninitialized@QGLPixmapData@@ABE_NXZ @ 110 NONAME ; bool QGLPixmapData::isUninitialized(void) const ??0QGLFramebufferObjectFormat@@QAE@XZ @ 111 NONAME ; QGLFramebufferObjectFormat::QGLFramebufferObjectFormat(void) ??8@YA_NABVQGLFormat@@0@Z @ 112 NONAME ; bool operator==(class QGLFormat const &, class QGLFormat const &) @@ -496,7 +496,7 @@ EXPORTS ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQSize@@@Z @ 495 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QSize const &) ?convertToGLFormat@QGLWidget@@SA?AVQImage@@ABV2@@Z @ 496 NONAME ; class QImage QGLWidget::convertToGLFormat(class QImage const &) ?staticMetaObject@QGLTextureGlyphCache@@2UQMetaObject@@B @ 497 NONAME ; struct QMetaObject const QGLTextureGlyphCache::staticMetaObject - ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ; QGLContextResource::~QGLContextResource(unsigned int) + ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ABSENT ; QGLContextResource::~QGLContextResource(unsigned int) ?handle@QGLColormap@@IAEKXZ @ 499 NONAME ; unsigned long QGLColormap::handle(void) ?isCreated@QGLBuffer@@QBE_NXZ @ 500 NONAME ; bool QGLBuffer::isCreated(void) const ?setColormap@QGLWidget@@QAEXABVQGLColormap@@@Z @ 501 NONAME ; void QGLWidget::setColormap(class QGLColormap const &) @@ -698,4 +698,9 @@ EXPORTS ?setProfile@QGLFormat@@QAEXW4OpenGLContextProfile@1@@Z @ 697 NONAME ; void QGLFormat::setProfile(enum QGLFormat::OpenGLContextProfile) ?updateDynamicTexture@QGLPixelBuffer@@QBEXI@Z @ 698 NONAME ; void QGLPixelBuffer::updateDynamicTexture(unsigned int) const ?setUniformValue@QGLShaderProgram@@QAEXHH@Z @ 699 NONAME ; void QGLShaderProgram::setUniformValue(int, int) + ?maxTextureHeight@QGLTextureGlyphCache@@UBEHXZ @ 700 NONAME ; int QGLTextureGlyphCache::maxTextureHeight(void) const + ?initializeOffscreenTexture@QGLWindowSurface@@AAE_NABVQSize@@@Z @ 701 NONAME ; bool QGLWindowSurface::initializeOffscreenTexture(class QSize const &) + ?maxTextureWidth@QGLTextureGlyphCache@@UBEHXZ @ 702 NONAME ; int QGLTextureGlyphCache::maxTextureWidth(void) const + ?filterMode@QGLTextureGlyphCache@@QBE?AW4FilterMode@1@XZ @ 703 NONAME ; enum QGLTextureGlyphCache::FilterMode QGLTextureGlyphCache::filterMode(void) const + ?setFilterMode@QGLTextureGlyphCache@@QAEXW4FilterMode@1@@Z @ 704 NONAME ; void QGLTextureGlyphCache::setFilterMode(enum QGLTextureGlyphCache::FilterMode) -- cgit v0.12 From abfdba11b8948497765c24670becf39e2ce1ff6d Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 19 Nov 2010 14:40:33 +1000 Subject: Add missing symbols to QtOpenGL arm def file --- src/s60installs/eabi/QtOpenGLu.def | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/s60installs/eabi/QtOpenGLu.def b/src/s60installs/eabi/QtOpenGLu.def index 7ceade4..c92d99e 100644 --- a/src/s60installs/eabi/QtOpenGLu.def +++ b/src/s60installs/eabi/QtOpenGLu.def @@ -702,4 +702,9 @@ EXPORTS _ZeqRK9QGLFormatS1_ @ 701 NONAME _Zls6QDebugRK9QGLFormat @ 702 NONAME _ZneRK9QGLFormatS1_ @ 703 NONAME + _ZN16QGLWindowSurface26initializeOffscreenTextureERK5QSize @ 704 NONAME + _ZNK20QGLTextureGlyphCache15maxTextureWidthEv @ 705 NONAME + _ZNK20QGLTextureGlyphCache16maxTextureHeightEv @ 706 NONAME + _ZThn8_NK20QGLTextureGlyphCache15maxTextureWidthEv @ 707 NONAME + _ZThn8_NK20QGLTextureGlyphCache16maxTextureHeightEv @ 708 NONAME -- cgit v0.12 From ac62887fe00eb22ea00622d4c3dab5ff40417e76 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 19 Nov 2010 16:23:52 +1000 Subject: Don't leak QML compiled data objects Task-number: QTBUG-14761 --- src/declarative/qml/qdeclarativecompileddata.cpp | 4 ++-- src/declarative/qml/qdeclarativecompiler.cpp | 2 -- src/declarative/qml/qdeclarativecompiler_p.h | 4 +--- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/declarative/qml/qdeclarativecompileddata.cpp b/src/declarative/qml/qdeclarativecompileddata.cpp index a4ecc77..690f499 100644 --- a/src/declarative/qml/qdeclarativecompileddata.cpp +++ b/src/declarative/qml/qdeclarativecompileddata.cpp @@ -169,8 +169,8 @@ QDeclarativeCompiledData::QDeclarativeCompiledData(QDeclarativeEngine *engine) QDeclarativeCompiledData::~QDeclarativeCompiledData() { for (int ii = 0; ii < types.count(); ++ii) { - if (types.at(ii).ref) - types.at(ii).ref->release(); + if (types.at(ii).component) + types.at(ii).component->release(); } for (int ii = 0; ii < propertyCaches.count(); ++ii) diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index b2740b8..645402e 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -591,8 +591,6 @@ bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine, } } else if (tref.typeData) { ref.component = tref.typeData->compiledData(); - ref.ref = tref.typeData; - ref.ref->addref(); } ref.className = parserRef->name.toUtf8(); out->types << ref; diff --git a/src/declarative/qml/qdeclarativecompiler_p.h b/src/declarative/qml/qdeclarativecompiler_p.h index 43a0901..5cd1fd2 100644 --- a/src/declarative/qml/qdeclarativecompiler_p.h +++ b/src/declarative/qml/qdeclarativecompiler_p.h @@ -89,14 +89,12 @@ public: struct TypeReference { TypeReference() - : type(0), component(0), ref(0) {} + : type(0), component(0) {} QByteArray className; QDeclarativeType *type; -// QDeclarativeComponent *component; QDeclarativeCompiledData *component; - QDeclarativeRefCount *ref; QObject *createInstance(QDeclarativeContextData *, const QBitField &, QList *) const; const QMetaObject *metaObject() const; }; -- cgit v0.12 From 1119a86b9752a1a58dade499a2884b89b2275a57 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 19 Nov 2010 16:34:05 +1000 Subject: Allow testing of raster engine on Mac from qmlviewer --- tools/qml/main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index 579f1ab..209c72f 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -155,7 +155,11 @@ void usage() qWarning(" -I ........................... prepend to the module import search path,"); qWarning(" display path if is empty"); qWarning(" -P ........................... prepend to the plugin search path"); +#if defined(Q_WS_MAC) + qWarning(" -no-opengl ............................... don't use a QGLWidget for the viewport"); +#else qWarning(" -opengl .................................. use a QGLWidget for the viewport"); +#endif qWarning(" -script ........................... set the script to use"); qWarning(" -scriptopts |help ............... set the script options to use"); @@ -370,8 +374,13 @@ static void parseCommandLineOptions(const QStringList &arguments) } else if (arg == "-translation") { if (lastArg) usage(); opts.translationFile = arguments.at(++i); +#if defined(Q_WS_MAC) + } else if (arg == "-no-opengl") { + opts.useGL = false; +#else } else if (arg == "-opengl") { opts.useGL = true; +#endif } else if (arg == "-qmlbrowser") { opts.useNativeFileBrowser = false; } else if (arg == "-warnings") { -- cgit v0.12 From a26d41fc2732e225dc9a1b5eb5224cc499ae87b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Thu, 18 Nov 2010 15:06:45 +0100 Subject: Improve performance of hfw in qgridlayoutengine by adding more caching. The previous code tried to do caching of queries with constraints too, but it's usecase was rather limited. The caching worked for the simple case of effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); // uses cache The problem was that if somebody called this sequence: effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(-1, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); Each call would disregard the cache because the constraint was different. Now the pattern is used in the qgridlayoutengine itself when we calculate hfw: (yes, height-for-width). First, we ask for the horizontal size hints with no constraints. Then, we'll ask for the vertical size hints with constraints. Since horizontal and vertical ultimately comes from the same function (effectiveSizeHint) it will invalidate the cache each time. The solution is to add another cache for the sizeHints with constraints. The most notable improvement is in the hfw, nested case. Result: RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 546 msecs per iteration (total: 546, iterations: 1) RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 0.000029 msecs per iteration (total: 62, iterations: 2097152) Improvement: 18,827,586 times faster (!!) --- src/gui/graphicsview/qgraphicslayoutitem.cpp | 35 ++++-- src/gui/graphicsview/qgraphicslayoutitem_p.h | 2 + .../qgraphicslinearlayout.pro | 6 + .../tst_qgraphicslinearlayout.cpp | 133 +++++++++++++++++++++ 4 files changed, 165 insertions(+), 11 deletions(-) create mode 100644 tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro create mode 100644 tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index e43f7fa..016cfbf 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -137,19 +137,28 @@ void QGraphicsLayoutItemPrivate::init() QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint) const { Q_Q(const QGraphicsLayoutItem); - if (!sizeHintCacheDirty && cachedConstraint == constraint) - return cachedSizeHints; + QSizeF *sizeHintCache; + const bool hasConstraint = constraint.width() >= 0 || constraint.height() >= 0; + if (hasConstraint) { + if (!sizeHintWithConstraintCacheDirty && constraint == cachedConstraint) + return cachedSizeHintsWithConstraints; + sizeHintCache = cachedSizeHintsWithConstraints; + } else { + if (!sizeHintCacheDirty) + return cachedSizeHints; + sizeHintCache = cachedSizeHints; + } for (int i = 0; i < Qt::NSizeHints; ++i) { - cachedSizeHints[i] = constraint; + sizeHintCache[i] = constraint; if (userSizeHints) - combineSize(cachedSizeHints[i], userSizeHints[i]); + combineSize(sizeHintCache[i], userSizeHints[i]); } - QSizeF &minS = cachedSizeHints[Qt::MinimumSize]; - QSizeF &prefS = cachedSizeHints[Qt::PreferredSize]; - QSizeF &maxS = cachedSizeHints[Qt::MaximumSize]; - QSizeF &descentS = cachedSizeHints[Qt::MinimumDescent]; + QSizeF &minS = sizeHintCache[Qt::MinimumSize]; + QSizeF &prefS = sizeHintCache[Qt::PreferredSize]; + QSizeF &maxS = sizeHintCache[Qt::MaximumSize]; + QSizeF &descentS = sizeHintCache[Qt::MinimumDescent]; normalizeHints(minS.rwidth(), prefS.rwidth(), maxS.rwidth(), descentS.rwidth()); normalizeHints(minS.rheight(), prefS.rheight(), maxS.rheight(), descentS.rheight()); @@ -175,9 +184,13 @@ QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint) // Not supported yet // COMBINE_SIZE(descentS, q->sizeHint(Qt::MinimumDescent, constraint)); - cachedConstraint = constraint; - sizeHintCacheDirty = false; - return cachedSizeHints; + if (hasConstraint) { + cachedConstraint = constraint; + sizeHintWithConstraintCacheDirty = false; + } else { + sizeHintCacheDirty = false; + } + return sizeHintCache; } diff --git a/src/gui/graphicsview/qgraphicslayoutitem_p.h b/src/gui/graphicsview/qgraphicslayoutitem_p.h index b752e03..d72ee9f 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem_p.h +++ b/src/gui/graphicsview/qgraphicslayoutitem_p.h @@ -85,8 +85,10 @@ public: QSizeF *userSizeHints; mutable QSizeF cachedSizeHints[Qt::NSizeHints]; mutable QSizeF cachedConstraint; + mutable QSizeF cachedSizeHintsWithConstraints[Qt::NSizeHints]; mutable quint32 sizeHintCacheDirty : 1; + mutable quint32 sizeHintWithConstraintCacheDirty : 1; quint32 isLayout : 1; quint32 ownedByLayout : 1; diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro new file mode 100644 index 0000000..ff85fe8 --- /dev/null +++ b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_bench_qgraphicslinearlayout + +SOURCES += tst_qgraphicslinearlayout.cpp + diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp new file mode 100644 index 0000000..0dd9543 --- /dev/null +++ b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** 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 test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include + +class tst_QGraphicsLinearLayout : public QObject +{ + Q_OBJECT +public: + tst_QGraphicsLinearLayout() {} + ~tst_QGraphicsLinearLayout() {} + +private slots: + void heightForWidth_data(); + void heightForWidth(); +}; + + +struct MySquareWidget : public QGraphicsWidget +{ + MySquareWidget() {} + virtual QSizeF sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const + { + if (which != Qt::PreferredSize) + return QGraphicsWidget::sizeHint(which, constraint); + if (constraint.width() < 0) + return QGraphicsWidget::sizeHint(which, constraint); + return QSizeF(constraint.width(), constraint.width()); + } +}; + +void tst_QGraphicsLinearLayout::heightForWidth_data() +{ + QTest::addColumn("hfw"); + QTest::addColumn("nested"); + + QTest::newRow("hfw") << true << false; + QTest::newRow("hfw, nested") << true << true; + QTest::newRow("not hfw") << false << false; + QTest::newRow("not hfw, nested") << false << true; +} + +void tst_QGraphicsLinearLayout::heightForWidth() +{ + QFETCH(bool, hfw); + QFETCH(bool, nested); + + QGraphicsScene scene; + QGraphicsWidget *form = new QGraphicsWidget; + scene.addItem(form); + + QGraphicsLinearLayout *outerlayout = 0; + if (nested) { + outerlayout = new QGraphicsLinearLayout(form); + for(int i = 0; i < 8; i++) { + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical); + outerlayout->addItem(layout); + outerlayout = layout; + } + } + + QGraphicsLinearLayout *qlayout = 0; + qlayout = new QGraphicsLinearLayout(Qt::Vertical); + if (nested) + outerlayout->addItem(qlayout); + else + form->setLayout(qlayout); + + MySquareWidget *widget = new MySquareWidget; + for (int i = 0; i < 1; i++) { + widget = new MySquareWidget; + QSizePolicy sizepolicy = widget->sizePolicy(); + sizepolicy.setHeightForWidth(hfw); + widget->setSizePolicy(sizepolicy); + qlayout->addItem(widget); + } + // make sure only one iteration is done. + // run with tst_QGraphicsLinearLayout.exe "heightForWidth" -tickcounter -iterations 6 + // this will iterate 6 times the whole test, (not only the benchmark) + // which should reduce warmup time and give a realistic picture of the performance of + // effectiveSizeHint() + QSizeF constraint(hfw ? 100 : -1, -1); + QBENCHMARK { + (void)form->effectiveSizeHint(Qt::PreferredSize, constraint); + } + +} + + +QTEST_MAIN(tst_QGraphicsLinearLayout) + +#include "tst_qgraphicslinearlayout.moc" -- cgit v0.12 From 1960713543e2a5fee76df7dbf06ea70cf277d696 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 19 Nov 2010 18:29:11 +1000 Subject: Initial commit of qmlvisualaids A tool to make it easier to do the platform visual updating. Needs to be streamlined at least a little in order to make it feasible to stay up to date. Task-number: QTBUG-14792 --- .../qmlvisual/shared/qmlvisualaids/Button.qml | 19 +++++ .../qmlvisual/shared/qmlvisualaids/Comparison.qml | 75 +++++++++++++++++ .../qmlvisual/shared/qmlvisualaids/main.cpp | 14 ++++ .../qmlvisual/shared/qmlvisualaids/mainwindow.cpp | 74 +++++++++++++++++ .../qmlvisual/shared/qmlvisualaids/mainwindow.h | 31 +++++++ .../qmlvisual/shared/qmlvisualaids/qmlvisual.pro | 26 ++++++ .../qmlvisual/shared/qmlvisualaids/qmlvisual.qrc | 6 ++ .../qmlvisual/shared/qmlvisualaids/testmodel.cpp | 96 ++++++++++++++++++++++ .../qmlvisual/shared/qmlvisualaids/testmodel.h | 50 +++++++++++ 9 files changed, 391 insertions(+) create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp create mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml new file mode 100644 index 0000000..600079f --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml @@ -0,0 +1,19 @@ +import Qt 4.7 + +Rectangle { + width: txt.width + 16 + height: txt.height + 8 + radius: 4 + border.color: "black" + property alias caption: txt.text + signal triggered + Text{ + id: txt + text: "Button" + anchors.centerIn: parent + } + MouseArea{ + anchors.fill: parent + onClicked: parent.triggered() + } +} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml new file mode 100644 index 0000000..43b10d4 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml @@ -0,0 +1,75 @@ +import Qt 4.7 + +Item{ + width: 1000 + height:800 + Row{ + spacing: 4 + Button{ + caption: "run" + onTriggered: test.runTest() + } + + Button{ + caption: "update" + onTriggered: test.updateVisuals() + } + + Button{ + caption: "platform" + onTriggered: test.updatePlatformVisuals() + } + } + + Rectangle { + y: 180 + width: 1000 + height: 620 + Row{ + id: grid + spacing: 4 + Text{ + width: 300 + height: 200 + text: test.testName + clip: true; wrapMode: Text.WordWrap + } + Text{ + width: 300 + height: 200 + text: test.testCase + clip: true; wrapMode: Text.WordWrap + } + Text{ + width: 300 + height: 200 + text: test.testScript + clip: true; wrapMode: Text.WordWrap + } + } + Item{ + y: 200 + Row{ + ListView{ + width: 200; height: 400 + delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} + model: test.goodImages; + } + ListView{ + width: 200; height: 400 + delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} + model: test.diffImages; + } + ListView{ + width: 200; height: 400 + delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} + model: test.badImages; + } + } + } + MouseArea{ + anchors.fill: parent + onClicked: test.moveOn(); + } + } +} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp new file mode 100644 index 0000000..2d35350 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp @@ -0,0 +1,14 @@ +#include +#include +#include "mainwindow.h" +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow *m = new MainWindow; + m->show(); + return a.exec(); +} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp new file mode 100644 index 0000000..49614ec --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp @@ -0,0 +1,74 @@ +#include "mainwindow.h" +#include +#include + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), testIdx(-1) +{ + createMenus(); + view = new QDeclarativeView(this); + setCentralWidget(view); + view->setResizeMode(QDeclarativeView::SizeViewToRootObject); + curTest = new TestModel(this); + connect(curTest, SIGNAL(moveOn()), + this, SLOT(runTests())); + + view->engine()->rootContext()->setContextProperty("test", curTest); + view->setSource(QUrl("qrc:qml/Comparison.qml")); +} + +void MainWindow::runAllTests() +{ + tests.clear(); + testIdx = 0; + + QString visualTest = "./tst_qmlvisual";//TODO: Crossplatform + + QProcess p;//TODO: Error checking here + p.setProcessChannelMode(QProcess::MergedChannels); + p.start(visualTest, QStringList()); + p.waitForFinished(-1);//Can't time out, because it takes an indeterminate and long time + + QString output = QString(p.readAllStandardOutput()); + QRegExp re("QDeclarativeTester\\( \"([^\"]*)\" \\)"); + int offset=0; + while((offset = re.indexIn(output, offset)) != -1){ + tests << re.cap(1); + offset++; + } + + if(tests.count()) + QMessageBox::information(this, "Test Results", QString("Tests completed. %1 test failures occurred.").arg(tests.count())); + else + QMessageBox::information(this, "Test Results", "Tests completed. All tests passed!"); + + runTests(); +} + +void MainWindow::runTests() +{ + if(testIdx >= tests.size()) + testIdx = -1; + if(testIdx == -1) + return; + showFixScreen(tests[testIdx++]); +} + +void MainWindow::showFixScreen(const QString &path) +{ + if(curTest->setTest(path)){ + view->engine()->rootContext()->setContextProperty("test", curTest); //signal connects to runTests + }else{ + QMessageBox::critical(this, "Test Error", QString("Cannot find test %1.").arg(path)); + runTests(); + } +} + +void MainWindow::createMenus() +{ + QMenu *tests = this->menuBar()->addMenu("Tests"); + tests->addAction("Run All", this, SLOT(runAllTests())); + tests->addSeparator(); + tests->addAction("About Qt...", qApp, SLOT(aboutQt())); + tests->addAction("Quit", qApp, SLOT(quit())); +} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h new file mode 100644 index 0000000..0209064 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h @@ -0,0 +1,31 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include "testmodel.h" + +class MainWindow : public QMainWindow +{ + Q_OBJECT +public: + explicit MainWindow(QWidget *parent = 0); + void createMenus(); + +signals: + +public slots: + void runTests(); + void runAllTests(); + void showFixScreen(const QString& path); + +private: + QDeclarativeView* view; + TestModel *curTest; + QStringList tests; + int testIdx; +}; + +#endif // MAINWINDOW_H diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro new file mode 100644 index 0000000..d18c235 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro @@ -0,0 +1,26 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2010-11-19T09:48:39 +# +#------------------------------------------------- + +QT += core gui declarative + +TARGET = ../../qmlvisualaids +TEMPLATE = app + + +SOURCES += main.cpp \ + testmodel.cpp \ + mainwindow.cpp + +HEADERS += \ + testmodel.h \ + mainwindow.h + +OTHER_FILES += \ + Comparison.qml \ + Button.qml + +RESOURCES += \ + qmlvisual.qrc diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc new file mode 100644 index 0000000..d79b64c --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc @@ -0,0 +1,6 @@ + + + Comparison.qml + Button.qml + + diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp new file mode 100644 index 0000000..4aec14b --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp @@ -0,0 +1,96 @@ +#include "testmodel.h" +#include +#include +#include + +TestModel::TestModel(QObject *parent) : + QObject(parent), _testName("Invalid") +{ + +} + +//testPath is the path to the test script, and assumes the file under test has the same name and is in the dir above +bool TestModel::setTest(const QString &testPath) +{ + _good.clear(); + _bad.clear(); + _diff.clear(); + + _testScriptPath = testPath; + if(!_testScriptPath.endsWith(".qml")) + _testScriptPath += ".qml"; + _testName = _testScriptPath.split('/').last(); + + //Assumed that the test case is in the directory above and has the same name as the script + _testPath = _testScriptPath.left(_testScriptPath.lastIndexOf('/', _testScriptPath.lastIndexOf('/') - 1)) + + '/' + _testName; + + bool ret = QFile::exists(_testPath) && QFile::exists(_testScriptPath); + if(!ret) + return ret; + + QFile test(_testPath); + test.open(QFile::ReadOnly | QFile::Text); + _testCase = test.readAll(); + + QFile script(_testScriptPath); + script.open(QFile::ReadOnly | QFile::Text); + _testScript = script.readAll(); + + QString base = _testScriptPath; + base.chop(4);//remove .qml, replace with .%1.png + base += ".%1.png"; + int c = 0; + while (QFile::exists(base.arg(c))) { + _good << "file://" + base.arg(c); + if(QFile::exists(base.arg(c) + ".reject.png")) + _bad << "file://" + base.arg(c) + ".reject.png"; + else + _bad << ""; + + if(QFile::exists(base.arg(c) + ".diff.png")) + _diff << "file://" + base.arg(c) + ".diff.png"; + else + _diff << ""; + + c++; + } + + return ret; +} + +//returns true iff running the test changed the failure images. +bool TestModel::runTest() +{ + launchTester("-play"); + return false;//TODO: Actually check that +} + +void TestModel::updateVisuals() +{ + launchTester("-updatevisuals"); +} + +void TestModel::updatePlatformVisuals() +{ + launchTester("-updateplatformvisuals"); +} + +void TestModel::launchTester(const QString &args) +{ + QStringList arguments; + arguments << args << _testPath; + + QString visualTest; +#if defined(Q_WS_WIN) || defined(Q_WS_S60) + visualTest = "tst_qmlvisual.exe"; +#else + visualTest = "./tst_qmlvisual"; +#endif + + QProcess p; + p.setProcessChannelMode(QProcess::ForwardedChannels); + p.start(visualTest, arguments); + p.waitForFinished(); +} + diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h new file mode 100644 index 0000000..fd64dc2 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h @@ -0,0 +1,50 @@ +#ifndef TESTMODEL_H +#define TESTMODEL_H + +#include +#include +#include + +class TestModel : public QObject +{ + Q_OBJECT + Q_PROPERTY(int snapshotCount READ snapshotCount CONSTANT) + Q_PROPERTY(QStringList goodImages READ goodImages CONSTANT)//List of image locatoins + Q_PROPERTY(QStringList badImages READ badImages CONSTANT) + Q_PROPERTY(QStringList diffImages READ diffImages CONSTANT) + Q_PROPERTY(QString testName READ testName CONSTANT) //The qml file name + Q_PROPERTY(QString testCase READ testCase CONSTANT) //The actual contents, not the location + Q_PROPERTY(QString testScript READ testScript CONSTANT) //The actual contents, not the location +public: + explicit TestModel(QObject *parent = 0); + bool setTest(const QString &testPath);//testPath is the path to the test script, and assumes the file under test has the same name and is in the dir above + + int snapshotCount() { return _count; } + QString testCase() { return _testCase; } + QString testName() { return _testName; } + QString testScript() {return _testScript; } + QStringList goodImages() {return _good;} + QStringList badImages() { return _bad; } + QStringList diffImages() {return _diff;} + +signals: + void moveOn(); + +public slots: + bool runTest();//returns true iff running the test changed the failure images. + void updateVisuals(); + void updatePlatformVisuals(); + +private: + void launchTester(const QString &args); + + int _count; + QStringList _good,_bad,_diff; + QString _testCase; + QString _testScript; + QString _testPath; + QString _testScriptPath; + QString _testName; +}; + +#endif // TESTMODEL_H -- cgit v0.12 From 18205faa87abd85d0848291738821666928b5769 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 19 Nov 2010 19:31:01 +1000 Subject: Move qmlvisualaids to another repo Moved to a personal repo, since its fate is a little uncertain so it shouldn't draw this much attention. Task-number: QTBUG-14792 --- .../qmlvisual/shared/qmlvisualaids/Button.qml | 19 ----- .../qmlvisual/shared/qmlvisualaids/Comparison.qml | 75 ----------------- .../qmlvisual/shared/qmlvisualaids/main.cpp | 14 ---- .../qmlvisual/shared/qmlvisualaids/mainwindow.cpp | 74 ----------------- .../qmlvisual/shared/qmlvisualaids/mainwindow.h | 31 ------- .../qmlvisual/shared/qmlvisualaids/qmlvisual.pro | 26 ------ .../qmlvisual/shared/qmlvisualaids/qmlvisual.qrc | 6 -- .../qmlvisual/shared/qmlvisualaids/testmodel.cpp | 96 ---------------------- .../qmlvisual/shared/qmlvisualaids/testmodel.h | 50 ----------- 9 files changed, 391 deletions(-) delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp delete mode 100644 tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml deleted file mode 100644 index 600079f..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Button.qml +++ /dev/null @@ -1,19 +0,0 @@ -import Qt 4.7 - -Rectangle { - width: txt.width + 16 - height: txt.height + 8 - radius: 4 - border.color: "black" - property alias caption: txt.text - signal triggered - Text{ - id: txt - text: "Button" - anchors.centerIn: parent - } - MouseArea{ - anchors.fill: parent - onClicked: parent.triggered() - } -} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml deleted file mode 100644 index 43b10d4..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/Comparison.qml +++ /dev/null @@ -1,75 +0,0 @@ -import Qt 4.7 - -Item{ - width: 1000 - height:800 - Row{ - spacing: 4 - Button{ - caption: "run" - onTriggered: test.runTest() - } - - Button{ - caption: "update" - onTriggered: test.updateVisuals() - } - - Button{ - caption: "platform" - onTriggered: test.updatePlatformVisuals() - } - } - - Rectangle { - y: 180 - width: 1000 - height: 620 - Row{ - id: grid - spacing: 4 - Text{ - width: 300 - height: 200 - text: test.testName - clip: true; wrapMode: Text.WordWrap - } - Text{ - width: 300 - height: 200 - text: test.testCase - clip: true; wrapMode: Text.WordWrap - } - Text{ - width: 300 - height: 200 - text: test.testScript - clip: true; wrapMode: Text.WordWrap - } - } - Item{ - y: 200 - Row{ - ListView{ - width: 200; height: 400 - delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} - model: test.goodImages; - } - ListView{ - width: 200; height: 400 - delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} - model: test.diffImages; - } - ListView{ - width: 200; height: 400 - delegate: Rectangle{ width: 200; height: 200; color: "blue"; Image{ source: modelData }} - model: test.badImages; - } - } - } - MouseArea{ - anchors.fill: parent - onClicked: test.moveOn(); - } - } -} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp deleted file mode 100644 index 2d35350..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/main.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include "mainwindow.h" -#include -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow *m = new MainWindow; - m->show(); - return a.exec(); -} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp deleted file mode 100644 index 49614ec..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "mainwindow.h" -#include -#include - -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), testIdx(-1) -{ - createMenus(); - view = new QDeclarativeView(this); - setCentralWidget(view); - view->setResizeMode(QDeclarativeView::SizeViewToRootObject); - curTest = new TestModel(this); - connect(curTest, SIGNAL(moveOn()), - this, SLOT(runTests())); - - view->engine()->rootContext()->setContextProperty("test", curTest); - view->setSource(QUrl("qrc:qml/Comparison.qml")); -} - -void MainWindow::runAllTests() -{ - tests.clear(); - testIdx = 0; - - QString visualTest = "./tst_qmlvisual";//TODO: Crossplatform - - QProcess p;//TODO: Error checking here - p.setProcessChannelMode(QProcess::MergedChannels); - p.start(visualTest, QStringList()); - p.waitForFinished(-1);//Can't time out, because it takes an indeterminate and long time - - QString output = QString(p.readAllStandardOutput()); - QRegExp re("QDeclarativeTester\\( \"([^\"]*)\" \\)"); - int offset=0; - while((offset = re.indexIn(output, offset)) != -1){ - tests << re.cap(1); - offset++; - } - - if(tests.count()) - QMessageBox::information(this, "Test Results", QString("Tests completed. %1 test failures occurred.").arg(tests.count())); - else - QMessageBox::information(this, "Test Results", "Tests completed. All tests passed!"); - - runTests(); -} - -void MainWindow::runTests() -{ - if(testIdx >= tests.size()) - testIdx = -1; - if(testIdx == -1) - return; - showFixScreen(tests[testIdx++]); -} - -void MainWindow::showFixScreen(const QString &path) -{ - if(curTest->setTest(path)){ - view->engine()->rootContext()->setContextProperty("test", curTest); //signal connects to runTests - }else{ - QMessageBox::critical(this, "Test Error", QString("Cannot find test %1.").arg(path)); - runTests(); - } -} - -void MainWindow::createMenus() -{ - QMenu *tests = this->menuBar()->addMenu("Tests"); - tests->addAction("Run All", this, SLOT(runAllTests())); - tests->addSeparator(); - tests->addAction("About Qt...", qApp, SLOT(aboutQt())); - tests->addAction("Quit", qApp, SLOT(quit())); -} diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h deleted file mode 100644 index 0209064..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/mainwindow.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include -#include -#include "testmodel.h" - -class MainWindow : public QMainWindow -{ - Q_OBJECT -public: - explicit MainWindow(QWidget *parent = 0); - void createMenus(); - -signals: - -public slots: - void runTests(); - void runAllTests(); - void showFixScreen(const QString& path); - -private: - QDeclarativeView* view; - TestModel *curTest; - QStringList tests; - int testIdx; -}; - -#endif // MAINWINDOW_H diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro deleted file mode 100644 index d18c235..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.pro +++ /dev/null @@ -1,26 +0,0 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2010-11-19T09:48:39 -# -#------------------------------------------------- - -QT += core gui declarative - -TARGET = ../../qmlvisualaids -TEMPLATE = app - - -SOURCES += main.cpp \ - testmodel.cpp \ - mainwindow.cpp - -HEADERS += \ - testmodel.h \ - mainwindow.h - -OTHER_FILES += \ - Comparison.qml \ - Button.qml - -RESOURCES += \ - qmlvisual.qrc diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc deleted file mode 100644 index d79b64c..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/qmlvisual.qrc +++ /dev/null @@ -1,6 +0,0 @@ - - - Comparison.qml - Button.qml - - diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp deleted file mode 100644 index 4aec14b..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.cpp +++ /dev/null @@ -1,96 +0,0 @@ -#include "testmodel.h" -#include -#include -#include - -TestModel::TestModel(QObject *parent) : - QObject(parent), _testName("Invalid") -{ - -} - -//testPath is the path to the test script, and assumes the file under test has the same name and is in the dir above -bool TestModel::setTest(const QString &testPath) -{ - _good.clear(); - _bad.clear(); - _diff.clear(); - - _testScriptPath = testPath; - if(!_testScriptPath.endsWith(".qml")) - _testScriptPath += ".qml"; - _testName = _testScriptPath.split('/').last(); - - //Assumed that the test case is in the directory above and has the same name as the script - _testPath = _testScriptPath.left(_testScriptPath.lastIndexOf('/', _testScriptPath.lastIndexOf('/') - 1)) - + '/' + _testName; - - bool ret = QFile::exists(_testPath) && QFile::exists(_testScriptPath); - if(!ret) - return ret; - - QFile test(_testPath); - test.open(QFile::ReadOnly | QFile::Text); - _testCase = test.readAll(); - - QFile script(_testScriptPath); - script.open(QFile::ReadOnly | QFile::Text); - _testScript = script.readAll(); - - QString base = _testScriptPath; - base.chop(4);//remove .qml, replace with .%1.png - base += ".%1.png"; - int c = 0; - while (QFile::exists(base.arg(c))) { - _good << "file://" + base.arg(c); - if(QFile::exists(base.arg(c) + ".reject.png")) - _bad << "file://" + base.arg(c) + ".reject.png"; - else - _bad << ""; - - if(QFile::exists(base.arg(c) + ".diff.png")) - _diff << "file://" + base.arg(c) + ".diff.png"; - else - _diff << ""; - - c++; - } - - return ret; -} - -//returns true iff running the test changed the failure images. -bool TestModel::runTest() -{ - launchTester("-play"); - return false;//TODO: Actually check that -} - -void TestModel::updateVisuals() -{ - launchTester("-updatevisuals"); -} - -void TestModel::updatePlatformVisuals() -{ - launchTester("-updateplatformvisuals"); -} - -void TestModel::launchTester(const QString &args) -{ - QStringList arguments; - arguments << args << _testPath; - - QString visualTest; -#if defined(Q_WS_WIN) || defined(Q_WS_S60) - visualTest = "tst_qmlvisual.exe"; -#else - visualTest = "./tst_qmlvisual"; -#endif - - QProcess p; - p.setProcessChannelMode(QProcess::ForwardedChannels); - p.start(visualTest, arguments); - p.waitForFinished(); -} - diff --git a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h b/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h deleted file mode 100644 index fd64dc2..0000000 --- a/tests/auto/declarative/qmlvisual/shared/qmlvisualaids/testmodel.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef TESTMODEL_H -#define TESTMODEL_H - -#include -#include -#include - -class TestModel : public QObject -{ - Q_OBJECT - Q_PROPERTY(int snapshotCount READ snapshotCount CONSTANT) - Q_PROPERTY(QStringList goodImages READ goodImages CONSTANT)//List of image locatoins - Q_PROPERTY(QStringList badImages READ badImages CONSTANT) - Q_PROPERTY(QStringList diffImages READ diffImages CONSTANT) - Q_PROPERTY(QString testName READ testName CONSTANT) //The qml file name - Q_PROPERTY(QString testCase READ testCase CONSTANT) //The actual contents, not the location - Q_PROPERTY(QString testScript READ testScript CONSTANT) //The actual contents, not the location -public: - explicit TestModel(QObject *parent = 0); - bool setTest(const QString &testPath);//testPath is the path to the test script, and assumes the file under test has the same name and is in the dir above - - int snapshotCount() { return _count; } - QString testCase() { return _testCase; } - QString testName() { return _testName; } - QString testScript() {return _testScript; } - QStringList goodImages() {return _good;} - QStringList badImages() { return _bad; } - QStringList diffImages() {return _diff;} - -signals: - void moveOn(); - -public slots: - bool runTest();//returns true iff running the test changed the failure images. - void updateVisuals(); - void updatePlatformVisuals(); - -private: - void launchTester(const QString &args); - - int _count; - QStringList _good,_bad,_diff; - QString _testCase; - QString _testScript; - QString _testPath; - QString _testScriptPath; - QString _testName; -}; - -#endif // TESTMODEL_H -- cgit v0.12 From ba4eafaa3bd46cfad891a4bbf1dd7dccefc4702e Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Fri, 19 Nov 2010 10:58:09 +0100 Subject: silence compiler warnings Silence shadowing warnings from gcc. --- src/sql/models/qsqlrelationaldelegate.h | 10 +++++----- src/testlib/qtesttouch.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/sql/models/qsqlrelationaldelegate.h b/src/sql/models/qsqlrelationaldelegate.h index 7600e52..96760e1 100644 --- a/src/sql/models/qsqlrelationaldelegate.h +++ b/src/sql/models/qsqlrelationaldelegate.h @@ -59,23 +59,23 @@ class QSqlRelationalDelegate: public QItemDelegate { public: -explicit QSqlRelationalDelegate(QObject *parent = 0) - : QItemDelegate(parent) +explicit QSqlRelationalDelegate(QObject *aParent = 0) + : QItemDelegate(aParent) {} ~QSqlRelationalDelegate() {} -QWidget *createEditor(QWidget *parent, +QWidget *createEditor(QWidget *aParent, const QStyleOptionViewItem &option, const QModelIndex &index) const { const QSqlRelationalTableModel *sqlModel = qobject_cast(index.model()); QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0; if (!childModel) - return QItemDelegate::createEditor(parent, option, index); + return QItemDelegate::createEditor(aParent, option, index); - QComboBox *combo = new QComboBox(parent); + QComboBox *combo = new QComboBox(aParent); combo->setModel(childModel); combo->setModelColumn(childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn())); combo->installEventFilter(const_cast(this)); diff --git a/src/testlib/qtesttouch.h b/src/testlib/qtesttouch.h index 1beef85..6c58e4c 100644 --- a/src/testlib/qtesttouch.h +++ b/src/testlib/qtesttouch.h @@ -106,8 +106,8 @@ namespace QTest } private: - QTouchEventSequence(QWidget *widget, QTouchEvent::DeviceType deviceType) - : targetWidget(widget), deviceType(deviceType) + QTouchEventSequence(QWidget *widget, QTouchEvent::DeviceType aDeviceType) + : targetWidget(widget), deviceType(aDeviceType) { } QTouchEventSequence(const QTouchEventSequence &v); -- cgit v0.12 From 4258dd04e25c8831be9e8a7dc45b52d34782cb35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 19 Nov 2010 11:19:32 +0100 Subject: Fix the tests that got affected by the behaviour added in 604c51f1fc5c79 Task-number: QTBUG-13551 Task-number: QTBUG-7756 --- tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 2e52c4e..35ea059 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -2541,7 +2541,7 @@ void tst_QGraphicsGridLayout::geometries_data() .sizeHint(Qt::MaximumSize, QSizeF(5000,5000)) .heightForWidth(hfw1) ) - << QSizeF(160, 401) + << QSizeF(160, 350) << (RectList() << QRectF( 0, 0, 80, 100) << QRectF( 80, 0, 80, 100) << QRectF( 0, 100, 80, 100) << QRectF( 80, 100, 80, 250) @@ -2566,7 +2566,7 @@ void tst_QGraphicsGridLayout::geometries_data() .sizeHint(Qt::MaximumSize, QSizeF(5000,5000)) .heightForWidth(hfw1) ) - << QSizeF(500, 401) + << QSizeF(500, 200) << (RectList() << QRectF( 0, 0, 100, 100) << QRectF(100, 0, 100, 100) << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400, 50) -- cgit v0.12 From 4e9b721af573e7d1a16b35778059b374520cf055 Mon Sep 17 00:00:00 2001 From: Sam Magnuson Date: Fri, 19 Nov 2010 11:24:58 +0100 Subject: Compile with QT_NO_PROXYSCREEN. Merge-request: 931 Reviewed-by: Oswald Buddenhagen --- src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp index 2eeee24..fbc539b 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp @@ -344,9 +344,11 @@ void QDirectFBWindowSurface::flush(QWidget *widget, const QRegion ®ion, if (!win) return; +#ifndef QT_NO_QWS_PROXYSCREEN QWExtra *extra = qt_widget_private(widget)->extraData(); if (extra && extra->proxyWidget) return; +#endif const quint8 windowOpacity = quint8(win->windowOpacity() * 0xff); const QRect windowGeometry = geometry(); -- cgit v0.12 From 00e99440596d8bf648aefdfbb00e80004e328033 Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Fri, 19 Nov 2010 09:47:55 +0200 Subject: Corrected ASCII comparison and removed extra braces Corrected ASCII comparison and removed extra braces based on comments Task-number: QT-3917 Reviewed-by: Janne Koskinen Merge-request: 918 Reviewed-by: Janne Koskinen --- src/gui/dialogs/qfiledialog.cpp | 3 +-- src/gui/dialogs/qfiledialog_symbian.cpp | 32 ++++++++++++++------------------ 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index 1db9789..f3f7469 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -1964,9 +1964,8 @@ 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)) { + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog)) return qtSymbianGetExistingDirectory(caption, dir); - } #endif QFileDialogArgs args; args.parent = parent; diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp index 0277e1c..1f70305 100644 --- a/src/gui/dialogs/qfiledialog_symbian.cpp +++ b/src/gui/dialogs/qfiledialog_symbian.cpp @@ -86,26 +86,25 @@ public: TBool Accept(const TDesC &/*aDriveAndPath*/, const TEntry &aEntry) const { - if (aEntry.IsDir()) { + if (aEntry.IsDir()) return ETrue; - } - if (filterList.isEmpty()) { - //No filter for files, all can be accepted + + //If no filter for files, all can be accepted + if (filterList.isEmpty()) return ETrue; - } - if (filterList == QStringList(QLatin1String("(*)"))) { + + if (filterList == QStringList(QLatin1String("(*)"))) 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); - } + if (extension.at(0) == QLatin1Char('*')) + extension = extension.mid(1); + QString fileName = qt_TDesC2QString(aEntry.iName); - if (fileName.right(extension.size()) == extension) { + if (fileName.endsWith(extension)) return ETrue; - } } return EFalse; } @@ -140,18 +139,15 @@ static QString launchSymbianDialog(const QString dialogCaption, const QString st select = AknCommonDialogsDynMem::RunSelectDlgLD(types, target, startFolder, NULL, NULL, titlePtr, extensionFilter); CleanupStack::Pop(extensionFilter); - } - else if (dialogMode == DialogSave) { + } else if (dialogMode == DialogSave) { select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target, startFolder, NULL, NULL, titlePtr); - } - else if (dialogMode == DialogFolder) { + } else if (dialogMode == DialogFolder) { select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder, 0, 0, titlePtr, NULL, NULL); } - if (select) { + if (select) selection.append(qt_TDesC2QString(target)); - } ); #endif return selection; -- cgit v0.12 From b0691b5a95c80ecd94867873e912e6952a2ec1b4 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Fri, 19 Nov 2010 12:45:46 +0200 Subject: QS60Style: Null pointer crash when using itemviews in some cases QS60Style attempts to use null pointer when drawing CE_ItemViewItem, if the parameter widget is provided as null. This leads to, for example, Chart example app crash in startup. Reviewed-by: Janne Anttila --- src/gui/styles/qs60style.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 5fe9050..22cb7d6 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -1438,10 +1438,11 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, const QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &voptAdj, widget); QRect textRect = subElementRect(SE_ItemViewItemText, &voptAdj, widget); const QAbstractItemView *itemView = qobject_cast(widget); - const bool singleSelection = - (itemView->selectionMode() == QAbstractItemView::SingleSelection || - itemView->selectionMode() == QAbstractItemView::NoSelection); - const bool selectItems = (itemView->selectionBehavior() == QAbstractItemView::SelectItems); + + const bool singleSelection = itemView && + ((itemView->selectionMode() == QAbstractItemView::SingleSelection || + itemView->selectionMode() == QAbstractItemView::NoSelection)); + const bool selectItems = itemView && (itemView->selectionBehavior() == QAbstractItemView::SelectItems); // draw themed background for itemview unless background brush has been defined. if (vopt->backgroundBrush == Qt::NoBrush) { -- cgit v0.12 From 1be70363b77b0a2ff75a23b5973861922f7a85c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 19 Nov 2010 11:47:42 +0100 Subject: Fix code style --- .../graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index 0dd9543..dc415fb 100644 --- a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -93,7 +93,7 @@ void tst_QGraphicsLinearLayout::heightForWidth() QGraphicsLinearLayout *outerlayout = 0; if (nested) { outerlayout = new QGraphicsLinearLayout(form); - for(int i = 0; i < 8; i++) { + for (int i = 0; i < 8; i++) { QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical); outerlayout->addItem(layout); outerlayout = layout; -- cgit v0.12 From becc25ad78a89199764a54f45248e4113600f0af Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Fri, 19 Nov 2010 12:52:06 +0200 Subject: QS60Style: Null pointer crash when using itemviews in some cases (pt2) Also remove accidentally added whitespaces. Task-number: QTBUG-15455 Reviewed-by: TrustMe --- src/gui/styles/qs60style.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index a58c8e5..2f09529 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -1438,8 +1438,8 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option, const QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &voptAdj, widget); QRect textRect = subElementRect(SE_ItemViewItemText, &voptAdj, widget); const QAbstractItemView *itemView = qobject_cast(widget); - - const bool singleSelection = itemView && + + const bool singleSelection = itemView && ((itemView->selectionMode() == QAbstractItemView::SingleSelection || itemView->selectionMode() == QAbstractItemView::NoSelection)); const bool selectItems = itemView && (itemView->selectionBehavior() == QAbstractItemView::SelectItems); -- cgit v0.12 From 72f161739b270b01807f97cd853030440f0fd430 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 19 Nov 2010 12:38:36 +0100 Subject: Fix possible corrupted text when gl glyph cache becomes full When the OpenGL glyph cache filled up (the max texture size on the hardware was exceeded) the characters would be drawn as black blocks instead. As a work-around for this, the cache will now be cleared and repopulated whenever this happens, meaning that once in a while (when a lot of different glyphs have been drawn in a font) there will be a performance hit. A more complete solution is described in QTBUG-13784, but this requires so much refactoring that it was deemed too risky for a patch release. This patch fixes the problem with a small penalty and low risk. Task-number: QT-3971 Reviewed-by: Samuel --- src/gui/painting/qtextureglyphcache.cpp | 13 ++++++++++--- src/gui/painting/qtextureglyphcache_p.h | 2 +- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 9 +++++++-- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 19 ++++++++++++++++++- src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h | 2 ++ 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp index b609f7b..2cd7780 100644 --- a/src/gui/painting/qtextureglyphcache.cpp +++ b/src/gui/painting/qtextureglyphcache.cpp @@ -65,7 +65,7 @@ static inline int qt_next_power_of_two(int v) return v; } -void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs, +bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs, const QFixedPoint *) { #ifdef CACHE_DEBUG @@ -119,7 +119,7 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const rowHeight = qMax(rowHeight, glyph_height); } if (listItemCoordinates.isEmpty()) - return; + return true; rowHeight += margin * 2 + paddingDoubled; if (isNull()) @@ -150,6 +150,13 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const int new_height = m_h*2; while (new_height < m_cy + c.h) new_height *= 2; + + if (new_height > maxTextureHeight()) { + // We can't make a new texture of the required size, so + // bail out + return false; + } + // if no room in the current texture - realloc a larger texture resizeTextureData(m_w, new_height); m_h = new_height; @@ -165,7 +172,7 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const ++iter; } - + return true; } QImage QTextureGlyphCache::textureMapForGlyph(glyph_t g) const diff --git a/src/gui/painting/qtextureglyphcache_p.h b/src/gui/painting/qtextureglyphcache_p.h index e6d2b22..f84d1e6 100644 --- a/src/gui/painting/qtextureglyphcache_p.h +++ b/src/gui/painting/qtextureglyphcache_p.h @@ -96,7 +96,7 @@ public: int baseLineY; }; - void populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs, + bool populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs, const QFixedPoint *positions); virtual void createTextureData(int width, int height) = 0; diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 37552ac..3ddc15a 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1499,8 +1499,13 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp // cache so this text is performed before we test if the cache size has changed. if (recreateVertexArrays) { cache->setPaintEnginePrivate(this); - cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs, - staticTextItem->glyphs, staticTextItem->glyphPositions); + if (!cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs, + staticTextItem->glyphs, staticTextItem->glyphPositions)) { + // No space in cache. We need to clear the cache and try again + cache->clear(); + cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs, + staticTextItem->glyphs, staticTextItem->glyphPositions); + } } if (cache->width() == 0 || cache->height() == 0) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 28e8c40..705ad09 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -78,7 +78,7 @@ void QGLTextureGlyphCache::setContext(QGLContext *context) SLOT(contextDestroyed(const QGLContext*))); } -QGLTextureGlyphCache::~QGLTextureGlyphCache() +void QGLTextureGlyphCache::clear() { if (ctx) { QGLShareContextScope scope(ctx); @@ -88,7 +88,24 @@ QGLTextureGlyphCache::~QGLTextureGlyphCache() if (m_width || m_height) glDeleteTextures(1, &m_texture); + + m_fbo = 0; + m_texture = 0; + m_width = 0; + m_height = 0; + m_w = 0; + m_h = 0; + m_cx = 0; + m_cy = 0; + m_currentRowHeight = 0; + coords.clear(); } + +} + +QGLTextureGlyphCache::~QGLTextureGlyphCache() +{ + clear(); } void QGLTextureGlyphCache::createTextureData(int width, int height) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h index fa2b091..aaef350 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h @@ -124,6 +124,8 @@ public Q_SLOTS: } } + void clear(); + private: QGLContext *ctx; -- cgit v0.12 From eaa0529642c90de3ebc07d819c0c0e8ed96a79be Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 19 Nov 2010 13:29:04 +0100 Subject: Fix compilation with Sun Studio 12.1. Error was: "tst_qdbusconnection.cpp", line 301: Error: Could not find a match for QTest::qCompare(QObject*, MyObject*, const char[29], const char[5], const char[24], int) needed in tst_QDBusConnection::registerObject(). "tst_qdbusconnection.cpp", line 498: Error: Could not find a match for QTest::qCompare(QObject*, TestObject*, const char[39], const char[12], const char[24], int) needed in tst_QDBusConnection::callSelf(). Task-number: QTBUG-15324 Patch-by: Pavel Heimlich Reviewed-by: Thiago Macieira --- tests/auto/qdbusconnection/tst_qdbusconnection.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp index 96209b1..599abbd 100644 --- a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp +++ b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp @@ -298,7 +298,7 @@ void tst_QDBusConnection::registerObject() // register one object at root: MyObject obj; QVERIFY(con.registerObject(path, &obj, QDBusConnection::ExportAllSlots)); - QCOMPARE(con.objectRegisteredAt(path), &obj); + QCOMPARE(con.objectRegisteredAt(path), static_cast(&obj)); QVERIFY(callMethod(con, path)); QCOMPARE(obj.path, path); } @@ -495,7 +495,7 @@ void tst_QDBusConnection::callSelf() QDBusConnection connection = QDBusConnection::sessionBus(); QVERIFY(connection.registerObject("/test", &testObject, QDBusConnection::ExportAllContents)); - QCOMPARE(connection.objectRegisteredAt("/test"), &testObject); + QCOMPARE(connection.objectRegisteredAt("/test"), static_cast(&testObject)); QVERIFY(connection.registerService(serviceName())); QDBusInterface interface(serviceName(), "/test"); QVERIFY(interface.isValid()); -- cgit v0.12 From 4b380543cc973d575a3ed0c77918adbe5b6133f0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 19 Nov 2010 14:53:29 +0200 Subject: Fixed namespace issues related to epocroot.cpp Task-number: QTBUG-15393 Reviewed-by: axis --- .../symbian/initprojectdeploy_symbian.cpp | 12 ++-- qmake/generators/symbian/symbiancommon.cpp | 4 +- qmake/generators/symbian/symmake.cpp | 10 +-- qmake/generators/symbian/symmake_abld.cpp | 4 +- qmake/generators/symbian/symmake_sbsv2.cpp | 8 +-- qmake/generators/win32/msvc_vcproj.cpp | 6 +- qmake/project.cpp | 4 +- qmake/qmake.pri | 4 +- src/corelib/global/qlibraryinfo.cpp | 4 +- tools/configure/configure.pro | 4 +- tools/configure/environment.cpp | 10 +-- tools/shared/symbian/epocroot.cpp | 17 ++--- tools/shared/symbian/epocroot.h | 67 ----------------- tools/shared/symbian/epocroot.pri | 4 +- tools/shared/symbian/epocroot_p.h | 83 ++++++++++++++++++++++ tools/shared/windows/registry.cpp | 7 +- tools/shared/windows/registry.h | 64 ----------------- tools/shared/windows/registry_p.h | 80 +++++++++++++++++++++ 18 files changed, 214 insertions(+), 178 deletions(-) delete mode 100644 tools/shared/symbian/epocroot.h create mode 100644 tools/shared/symbian/epocroot_p.h delete mode 100644 tools/shared/windows/registry.h create mode 100644 tools/shared/windows/registry_p.h diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp index 22a4a82..81236d4 100644 --- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp +++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp @@ -47,7 +47,7 @@ #include // Included from tools/shared -#include +#include #define SYSBIN_DIR "/sys/bin" #define HW_Z_DIR "epoc32/data/z" @@ -75,7 +75,7 @@ static bool isPlugin(const QFileInfo& info, const QString& devicePath) && (devicePath.size() < 8 || (0 != devicePath.compare(QLatin1String(SYSBIN_DIR), Qt::CaseInsensitive) && 0 != devicePath.mid(1).compare(QLatin1String(":" SYSBIN_DIR), Qt::CaseInsensitive) - && 0 != devicePath.compare(epocRoot() + QLatin1String(HW_Z_DIR SYSBIN_DIR))))) { + && 0 != devicePath.compare(qt_epocRoot() + QLatin1String(HW_Z_DIR SYSBIN_DIR))))) { return true; } else { return false; @@ -182,7 +182,7 @@ void initProjectDeploySymbian(QMakeProject* project, QString deploymentDrive; if (0 == platform.compare(QLatin1String(ROM_DEPLOYMENT_PLATFORM))) { - deploymentDrive = epocRoot() + HW_Z_DIR; + deploymentDrive = qt_epocRoot() + HW_Z_DIR; } else { deploymentDrive = targetPathHasDriveLetter ? targetPath.left(2) : QLatin1String("c:"); } @@ -225,9 +225,9 @@ void initProjectDeploySymbian(QMakeProject* project, } else { if (0 == platform.compare(QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM))) { if (devicePathHasDriveLetter) { - devicePath = epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1); + devicePath = qt_epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1); } else { - devicePath = epocRoot() + "epoc32/winscw/c" + devicePath; + devicePath = qt_epocRoot() + "epoc32/winscw/c" + devicePath; } } else { if (devicePathHasDriveLetter @@ -278,7 +278,7 @@ void initProjectDeploySymbian(QMakeProject* project, // Executables and libraries are deployed to \sys\bin QFileInfo targetPath; if (epocBuild) - targetPath.setFile(epocRoot() + "epoc32/release/" + platform + "/" + build + "/"); + targetPath.setFile(qt_epocRoot() + "epoc32/release/" + platform + "/" + build + "/"); else targetPath.setFile(info.path() + QDir::separator()); if(devicePathHasDriveLetter) { diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp index 2244a98..602bcc2 100644 --- a/qmake/generators/symbian/symbiancommon.cpp +++ b/qmake/generators/symbian/symbiancommon.cpp @@ -44,7 +44,7 @@ #include // Included from tools/shared -#include +#include #define RESOURCE_DIRECTORY_RESOURCE "\\\\resource\\\\apps\\\\" @@ -417,7 +417,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, QString zDir; remoteTestPath = QString("!:\\private\\%1").arg(privateDirUid); if (epocBuild) - zDir = epocRoot() + QLatin1String("epoc32/data/z"); + zDir = qt_epocRoot() + QLatin1String("epoc32/data/z"); DeploymentList depList; initProjectDeploySymbian(project, depList, remoteTestPath, true, epocBuild, "$(PLATFORM)", "$(TARGET)", generatedDirs, generatedFiles); diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index e1426ab..7bebd56 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -50,7 +50,7 @@ #include // Included from tools/shared -#include +#include #define RESOURCE_DIRECTORY_MMP "/resource/apps" #define REGISTRATION_RESOURCE_DIRECTORY_HW "/private/10003a3f/import/apps" @@ -87,10 +87,10 @@ QString SymbianMakefileGenerator::fixPathForMmp(const QString& origPath, const Q { static QString epocRootStr; if (epocRootStr.isEmpty()) { - epocRootStr = epocRoot(); + epocRootStr = qt_epocRoot(); QFileInfo efi(epocRootStr); if (!efi.exists() || epocRootStr.isEmpty()) { - fprintf(stderr, "Unable to resolve epocRoot '%s' to real dir on current drive, defaulting to '/' for mmp paths\n", qPrintable(epocRoot())); + fprintf(stderr, "Unable to resolve epocRoot '%s' to real dir on current drive, defaulting to '/' for mmp paths\n", qPrintable(qt_epocRoot())); epocRootStr = "/"; } else { epocRootStr = efi.absoluteFilePath(); @@ -122,7 +122,7 @@ QString SymbianMakefileGenerator::absolutizePath(const QString& origPath) // Prepend epocroot to any paths beginning with "/epoc32/" QString resultPath = QDir::fromNativeSeparators(origPath); if (resultPath.startsWith("/epoc32/", Qt::CaseInsensitive)) - resultPath = QDir::fromNativeSeparators(epocRoot()) + resultPath.mid(1); + resultPath = QDir::fromNativeSeparators(qt_epocRoot()) + resultPath.mid(1); QFileInfo fi(fileInfo(resultPath)); @@ -719,7 +719,7 @@ void SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t) // Hacky way to find out what kind of library it is. Check the // ARMV5 build directory for library type. We default to shared // library, since that is more common. - QString udebStaticLibLocation(epocRoot()); + QString udebStaticLibLocation(qt_epocRoot()); QString urelStaticLibLocation(udebStaticLibLocation); udebStaticLibLocation += QString("epoc32/release/armv5/udeb/%1.lib").arg(lib); urelStaticLibLocation += QString("epoc32/release/armv5/urel/%1.lib").arg(lib); diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index 7059a52..cd64325 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -49,7 +49,7 @@ #include // Included from tools/shared -#include +#include #define DO_NOTHING_TARGET "do_nothing" #define CREATE_TEMPS_TARGET "create_temps" @@ -431,7 +431,7 @@ bool SymbianAbldMakefileGenerator::writeDeploymentTargets(QTextStream &t, bool i else t << WINSCW_DEPLOYMENT_TARGET ":" << endl; - QString remoteTestPath = epocRoot() + QString remoteTestPath = qt_epocRoot() + QDir::toNativeSeparators(QLatin1String(isRom ? "epoc32/data/z/private/" : "epoc32/winscw/c/private/")) + privateDirUid; diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index b3f8ba2..f4a6132 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -49,7 +49,7 @@ #include // Included from tools/shared -#include +#include SymbianSbsv2MakefileGenerator::SymbianSbsv2MakefileGenerator() : SymbianMakefileGenerator() { } SymbianSbsv2MakefileGenerator::~SymbianSbsv2MakefileGenerator() { } @@ -82,7 +82,7 @@ void SymbianSbsv2MakefileGenerator::exportFlm() QDir sourceDir = QDir(QLibraryInfo::location(QLibraryInfo::PrefixPath) + FLM_SOURCE_DIR); QFileInfoList sourceInfos = sourceDir.entryInfoList(QDir::Files); - QDir destDir(epocRoot() + FLM_DEST_DIR); + QDir destDir(qt_epocRoot() + FLM_DEST_DIR); if (!destDir.exists()) { if (destDir.mkpath(destDir.absolutePath())) generatedDirs << destDir.absolutePath(); @@ -630,7 +630,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t t << endl; // Write deployment rules - QString remoteTestPath = epocRoot() + QLatin1String("epoc32/winscw/c/private/") + privateDirUid; + QString remoteTestPath = qt_epocRoot() + QLatin1String("epoc32/winscw/c/private/") + privateDirUid; DeploymentList depList; //write emulator deployment @@ -641,7 +641,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t t << "#endif" << endl; //write ROM deployment - remoteTestPath = epocRoot() + QLatin1String("epoc32/data/z/private/") + privateDirUid; + remoteTestPath = qt_epocRoot() + QLatin1String("epoc32/data/z/private/") + privateDirUid; depList.clear(); initProjectDeploySymbian(project, depList, remoteTestPath, false, true, QLatin1String(ROM_DEPLOYMENT_PLATFORM), QString(), generatedDirs, generatedFiles); diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index a8ff306..6f27515 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -67,7 +67,7 @@ QT_END_NAMESPACE #ifdef Q_OS_WIN32 #include -#include +#include QT_BEGIN_NAMESPACE @@ -119,7 +119,7 @@ DotNET which_dotnet_version() int installed = 0; int i = 0; for(; dotNetCombo[i].version; ++i) { - QString path = readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey); + QString path = qt_readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey); if(!path.isEmpty()) { ++installed; current_version = dotNetCombo[i].version; @@ -136,7 +136,7 @@ DotNET which_dotnet_version() i = installed = 0; for(; dotNetCombo[i].version; ++i) { - QString productPath = readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey).toLower(); + QString productPath = qt_readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey).toLower(); if (productPath.isEmpty()) continue; QStringList::iterator it; diff --git a/qmake/project.cpp b/qmake/project.cpp index fe08b7b..2586c57 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -64,7 +64,7 @@ #include // Included from tools/shared -#include +#include #ifdef Q_OS_WIN32 #define QT_POPEN _popen @@ -3118,7 +3118,7 @@ QStringList &QMakeProject::values(const QString &_var, QMapendGroup(); diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index 810f006..0a49fbe 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -63,8 +63,8 @@ HEADERS = configureapp.h environment.h tools.h\ $$QT_SOURCE_TREE/src/corelib/tools/qunicodetables_p.h \ $$QT_SOURCE_TREE/src/corelib/xml/qxmlstream.h \ $$QT_SOURCE_TREE/src/corelib/xml/qxmlutils_p.h \ - $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.h \ - $$QT_SOURCE_TREE/tools/shared/windows/registry.h + $$QT_SOURCE_TREE/tools/shared/symbian/epocroot_p.h \ + $$QT_SOURCE_TREE/tools/shared/windows/registry_p.h SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp index 03fd0cc..1866ef4 100644 --- a/tools/configure/environment.cpp +++ b/tools/configure/environment.cpp @@ -60,8 +60,8 @@ using namespace std; #include #endif -#include // from tools/shared -#include // from tools/shared +#include // from tools/shared +#include // from tools/shared QT_BEGIN_NAMESPACE @@ -163,7 +163,7 @@ Compiler Environment::detectCompiler() QString paths = qgetenv("PATH"); QStringList pathlist = paths.toLower().split(";"); for(int i = 0; compiler_info[i].compiler; ++i) { - QString productPath = readRegistryKey(HKEY_LOCAL_MACHINE, compiler_info[i].regKey).toLower(); + QString productPath = qt_readRegistryKey(HKEY_LOCAL_MACHINE, compiler_info[i].regKey).toLower(); if (productPath.length()) { QStringList::iterator it; for(it = pathlist.begin(); it != pathlist.end(); ++it) { @@ -466,8 +466,8 @@ bool Environment::rmdir(const QString &name) QString Environment::symbianEpocRoot() { - // Call function defined in tools/shared/symbian/epocroot.h - return ::epocRoot(); + // Call function defined in tools/shared/symbian/epocroot_p.h + return ::qt_epocRoot(); } QT_END_NAMESPACE diff --git a/tools/shared/symbian/epocroot.cpp b/tools/shared/symbian/epocroot.cpp index 9d7d465..eabae98 100644 --- a/tools/shared/symbian/epocroot.cpp +++ b/tools/shared/symbian/epocroot.cpp @@ -39,13 +39,13 @@ ** ****************************************************************************/ -#include - #include #include -#include "epocroot.h" -#include "../windows/registry.h" +#include "epocroot_p.h" +#include "../windows/registry_p.h" + +QT_BEGIN_NAMESPACE // Registry key under which the location of the Symbian devices.xml file is // stored. @@ -64,20 +64,20 @@ // Stored as a static value in order to avoid unnecessary re-evaluation. static QString epocRootValue; -QString getDevicesXmlPath() +static QString getDevicesXmlPath() { // Note that the following call will return a null string on platforms other // than Windows. If support is required on other platforms for devices.xml, // an alternative mechanism for retrieving the location of this file will // be required. - return readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, QLatin1String(SYMBIAN_SDKS_REG_SUBKEY)); + return qt_readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, QLatin1String(SYMBIAN_SDKS_REG_SUBKEY)); } /** * Checks whether epocRootValue points to an existent directory. * If not, epocRootValue is set to an empty string and an error message is printed. */ -void checkEpocRootExists(const QString &source) +static void checkEpocRootExists(const QString &source) { if (!epocRootValue.isEmpty()) { QDir dir(epocRootValue); @@ -104,7 +104,7 @@ static void fixEpocRoot(QString &path) /** * Determine the epoc root for the currently active SDK. */ -QString epocRoot() +QString qt_epocRoot() { if (epocRootValue.isEmpty()) { // 1. If environment variable EPOCROOT is set and points to an existent @@ -219,3 +219,4 @@ QString epocRoot() return epocRootValue; } +QT_END_NAMESPACE diff --git a/tools/shared/symbian/epocroot.h b/tools/shared/symbian/epocroot.h deleted file mode 100644 index 9846485..0000000 --- a/tools/shared/symbian/epocroot.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** 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 application of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SYMBIAN_EPOCROOT_H -#define SYMBIAN_EPOCROOT_H - -#include - -/** - * Determine the epoc root for the currently active SDK. - * - * The algorithm used is as follows: - * 1. If environment variable EPOCROOT is set and points to an existent - * directory, this is returned. - * 2. The location of devices.xml is specified by a registry key. If this - * file exists, it is parsed. - * 3. If the EPOCDEVICE environment variable is set and a corresponding - * entry is found in devices.xml, and its epocroot value points to an - * existent directory, it is returned. - * 4. If a device element marked as default is found in devices.xml and its - * epocroot value points to an existent directory, this is returned. - * 5. An empty string is returned. - * - * Any return value other than the empty string therefore is guaranteed to - * point to an existent directory. - */ -QString epocRoot(); - -#endif // EPOCROOT_H diff --git a/tools/shared/symbian/epocroot.pri b/tools/shared/symbian/epocroot.pri index 117836e..f0f0dab 100644 --- a/tools/shared/symbian/epocroot.pri +++ b/tools/shared/symbian/epocroot.pri @@ -1,8 +1,8 @@ # Epocroot resolving is only required for tools, so omit it from all mobile/embedded builds !symbian:!wince*:!embedded { HEADERS += \ - $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.h \ - $$QT_SOURCE_TREE/tools/shared/windows/registry.h + $$QT_SOURCE_TREE/tools/shared/symbian/epocroot_p.h \ + $$QT_SOURCE_TREE/tools/shared/windows/registry_p.h SOURCES += \ $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.cpp \ $$QT_SOURCE_TREE/tools/shared/windows/registry.cpp diff --git a/tools/shared/symbian/epocroot_p.h b/tools/shared/symbian/epocroot_p.h new file mode 100644 index 0000000..c97b593 --- /dev/null +++ b/tools/shared/symbian/epocroot_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** 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 application of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_SYMBIAN_EPOCROOT_H +#define QT_SYMBIAN_EPOCROOT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +/** + * Determine the epoc root for the currently active SDK. + * + * The algorithm used is as follows: + * 1. If environment variable EPOCROOT is set and points to an existent + * directory, this is returned. + * 2. The location of devices.xml is specified by a registry key. If this + * file exists, it is parsed. + * 3. If the EPOCDEVICE environment variable is set and a corresponding + * entry is found in devices.xml, and its epocroot value points to an + * existent directory, it is returned. + * 4. If a device element marked as default is found in devices.xml and its + * epocroot value points to an existent directory, this is returned. + * 5. An empty string is returned. + * + * Any return value other than the empty string therefore is guaranteed to + * point to an existent directory. + */ +QString qt_epocRoot(); + +QT_END_NAMESPACE + +#endif // QT_SYMBIAN_EPOCROOT_H + diff --git a/tools/shared/windows/registry.cpp b/tools/shared/windows/registry.cpp index 2373839..48e9ae6 100644 --- a/tools/shared/windows/registry.cpp +++ b/tools/shared/windows/registry.cpp @@ -40,7 +40,9 @@ ****************************************************************************/ #include -#include "registry.h" +#include "registry_p.h" + +QT_BEGIN_NAMESPACE #ifdef Q_OS_WIN32 /*! @@ -80,7 +82,7 @@ static QString keyName(const QString &rKey) } #endif -QString readRegistryKey(HKEY parentHandle, const QString &rSubkey) +QString qt_readRegistryKey(HKEY parentHandle, const QString &rSubkey) { QString result; @@ -160,4 +162,5 @@ QString readRegistryKey(HKEY parentHandle, const QString &rSubkey) return result; } +QT_END_NAMESPACE diff --git a/tools/shared/windows/registry.h b/tools/shared/windows/registry.h deleted file mode 100644 index 3896527..0000000 --- a/tools/shared/windows/registry.h +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** -** -** 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 application of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WINDOWS_REGISTRY_H -#define WINDOWS_REGISTRY_H - -#include - -#ifdef Q_OS_WIN32 - #include -#else - typedef void* HKEY; -#endif - -#include - -/** - * Read a value from the Windows registry. - * - * If the key is not found, or the registry cannot be accessed (for example - * if this code is compiled for a platform other than Windows), a null - * string is returned. - */ -QString readRegistryKey(HKEY parentHandle, const QString &rSubkey); - -#endif // WINDOWS_REGISTRY_H diff --git a/tools/shared/windows/registry_p.h b/tools/shared/windows/registry_p.h new file mode 100644 index 0000000..4aae5f9 --- /dev/null +++ b/tools/shared/windows/registry_p.h @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** 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 application of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_WINDOWS_REGISTRY_H +#define QT_WINDOWS_REGISTRY_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +#include + +#ifdef Q_OS_WIN32 + #include +#else + typedef void* HKEY; +#endif + +#include + +/** + * Read a value from the Windows registry. + * + * If the key is not found, or the registry cannot be accessed (for example + * if this code is compiled for a platform other than Windows), a null + * string is returned. + */ +QString qt_readRegistryKey(HKEY parentHandle, const QString &rSubkey); + +QT_END_NAMESPACE + +#endif // QT_WINDOWS_REGISTRY_H + -- cgit v0.12 From 649719c29bc3b33ab6a5eb9577d53bd0ba897550 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 19 Nov 2010 14:38:58 +0100 Subject: Fix possible missing glyphs in raster engine glyph cache Two possible failures when using the glyph cache on raster engine and populating the cache with very many glyphs: 1. Change 72f161739b270b01807f97cd853030440f0fd430 caused the maximum height of the glyph cache to be 32768, which was not sufficient for large fonts with very many characters (e.g. Chinese text) 2. Since we are using QPainter to draw into the glyph cache for RGB32 glyphcaches, and QPainter does not support very high coordinates, we need to create a reference image that references a section of the glyph cache and paint into that instead. Task-number: QT-3971 Reviewed-by: Samuel --- src/gui/painting/qtextureglyphcache.cpp | 21 ++++++++++++--------- src/gui/painting/qtextureglyphcache_p.h | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp index 2cd7780..2daa1f0 100644 --- a/src/gui/painting/qtextureglyphcache.cpp +++ b/src/gui/painting/qtextureglyphcache.cpp @@ -151,11 +151,11 @@ bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const while (new_height < m_cy + c.h) new_height *= 2; - if (new_height > maxTextureHeight()) { - // We can't make a new texture of the required size, so - // bail out - return false; - } + if (maxTextureHeight() > 0 && new_height > maxTextureHeight()) { + // We can't make a new texture of the required size, so + // bail out + return false; + } // if no room in the current texture - realloc a larger texture resizeTextureData(m_w, new_height); @@ -266,11 +266,14 @@ void QImageTextureGlyphCache::fillTexture(const Coord &c, glyph_t g) } #endif - if (m_type == QFontEngineGlyphCache::Raster_RGBMask) { - QPainter p(&m_image); + if (m_type == QFontEngineGlyphCache::Raster_RGBMask) { + QImage ref(m_image.bits() + (c.x * 4 + c.y * m_image.bytesPerLine()), + qMax(mask.width(), c.w), qMax(mask.height(), c.h), m_image.bytesPerLine(), + m_image.format()); + QPainter p(&ref); p.setCompositionMode(QPainter::CompositionMode_Source); - p.fillRect(c.x, c.y, c.w, c.h, QColor(0,0,0,0)); // TODO optimize this - p.drawImage(c.x, c.y, mask); + p.fillRect(0, 0, c.w, c.h, QColor(0,0,0,0)); // TODO optimize this + p.drawImage(0, 0, mask); p.end(); } else if (m_type == QFontEngineGlyphCache::Raster_Mono) { if (mask.depth() > 1) { diff --git a/src/gui/painting/qtextureglyphcache_p.h b/src/gui/painting/qtextureglyphcache_p.h index f84d1e6..94cb555 100644 --- a/src/gui/painting/qtextureglyphcache_p.h +++ b/src/gui/painting/qtextureglyphcache_p.h @@ -118,7 +118,7 @@ public: QImage textureMapForGlyph(glyph_t g) const; virtual int maxTextureWidth() const { return QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH; } - virtual int maxTextureHeight() const { return 32768; } + virtual int maxTextureHeight() const { return -1; } protected: QFontEngine *m_current_fontengine; -- cgit v0.12 From f234f248fa8f0d2bb74a14f5ee3cb489f256c0f2 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 19 Nov 2010 11:15:55 +0100 Subject: Fixed handling of QInputMethodEvents with nonzero replacementLength. These types of events replace text that is already in the widget, but WebKit did not check for replacementLength at all. RevBy: Janne Koskinen Task: QT-4303 Task: https://bugs.webkit.org/show_bug.cgi?id=49787 AutoTest: Included --- src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp | 10 ++++++++-- .../webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index ff92f0b..d9a2cbe 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -1257,9 +1257,15 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev) } } - if (!ev->commitString().isEmpty()) + if (renderTextControl && ev->replacementLength() > 0) { + renderTextControl->setSelectionStart(qMax(renderTextControl->selectionStart() + ev->replacementStart(), 0)); + renderTextControl->setSelectionEnd(qMin(renderTextControl->selectionStart() + ev->replacementLength(), static_cast(renderTextControl->text().length()))); + // Commit regardless of whether commitString is empty, to get rid of selection. editor->confirmComposition(ev->commitString()); - else if (!ev->preeditString().isEmpty()) { + } else if (!ev->commitString().isEmpty()) { + editor->confirmComposition(ev->commitString()); + } + if (!ev->preeditString().isEmpty()) { QString preedit = ev->preeditString(); editor->setComposition(preedit, underlines, preedit.length(), 0); } diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 55ee42a..b566365 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -1494,6 +1494,20 @@ void tst_QWebPage::inputMethods() QCOMPARE(value, QString("QtWebKit")); #endif + { + QList attributes; + QInputMethodEvent event(QString(), attributes); + event.setCommitString("XXX", 0, 0); + page->event(&event); + event.setCommitString(QString(), -2, 2); // Erase two characters. + page->event(&event); + event.setCommitString(QString(), -1, 1); // Erase one character. + page->event(&event); + variant = page->inputMethodQuery(Qt::ImSurroundingText); + value = variant.value(); + QCOMPARE(value, QString("QtWebKit")); + } + //ImhHiddenText QMouseEvent evpresPassword(QEvent::MouseButtonPress, inputs.at(1).geometry().center(), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); page->event(&evpresPassword); -- cgit v0.12 From c82ba87a0e8e416099e95898386ea25c790c3da3 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Fri, 19 Nov 2010 16:16:46 +0100 Subject: Doc: Fixing typo. --- tests/auto/qkeysequence/tst_qkeysequence.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qkeysequence/tst_qkeysequence.cpp b/tests/auto/qkeysequence/tst_qkeysequence.cpp index 60f022f..55c7edf 100644 --- a/tests/auto/qkeysequence/tst_qkeysequence.cpp +++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp @@ -405,7 +405,7 @@ void tst_QKeySequence::mnemonic() #ifndef QT_NO_DEBUG if (warning) { - QString str = QString::fromLatin1("QKeySequence::mnemonic: \"%1\" contains multiple occurences of '&'").arg(string); + QString str = QString::fromLatin1("QKeySequence::mnemonic: \"%1\" contains multiple occurrences of '&'").arg(string); QTest::ignoreMessage(QtWarningMsg, qPrintable(str)); // qWarning(qPrintable(str)); } -- cgit v0.12 From 9743d1ae8dcec6b64bf497e76bd49a029c8f3ecc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 19 Nov 2010 20:12:04 +0100 Subject: Doc: Documented that border width does not affect rectangle geometry. Task-number: QTBUG-15458 --- src/declarative/graphicsitems/qdeclarativerectangle.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp index fc3954f..7686dde 100644 --- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp +++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp @@ -260,6 +260,9 @@ void QDeclarativeRectangle::doUpdate() A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color. + \note The width of the rectangle's border does not affect the geometry of the + rectangle itself or its position relative to other items if anchors are used. + If \c border.width is an odd number, the rectangle is painted at a half-pixel offset to retain border smoothness. Also, the border is rendered evenly on either side of the rectangle's boundaries, and the spare pixel is rendered to the right and below the -- cgit v0.12 From e6d15b58a7f5ac086e1af2d8735caeabaaa6159c Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Mon, 22 Nov 2010 10:32:02 +1000 Subject: Doc Task-number: QTBUG-15456 --- doc/src/declarative/qtbinding.qdoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 8a969eb..fb457be 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -448,7 +448,8 @@ now be used from QML: \snippet doc/src/snippets/declarative/qtbinding/enums/standalone.qml 0 The C++ type must be registered with QML to use its enums. If your C++ type is not instantiable, it -can be registered using qmlRegisterUncreatableType(). +can be registered using qmlRegisterUncreatableType(). To be accessible from QML, the names of enum values +must begin with a capital letter. See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++} tutorial and the \l {Extending QML in C++} reference documentation for more information. -- cgit v0.12 From e6a09f87f3224588324218b6f9498bee81d178fc Mon Sep 17 00:00:00 2001 From: Peter Yard Date: Mon, 22 Nov 2010 14:48:17 +1000 Subject: Docs: QTBUG-10866 Description of how AutoConnection is resolved. --- doc/src/frameworks-technologies/threads.qdoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/src/frameworks-technologies/threads.qdoc b/doc/src/frameworks-technologies/threads.qdoc index 3ef617c..001b29d 100644 --- a/doc/src/frameworks-technologies/threads.qdoc +++ b/doc/src/frameworks-technologies/threads.qdoc @@ -459,11 +459,10 @@ \list - \o \l{Qt::AutoConnection}{Auto Connection} (default) The behavior - is the same as the Direct Connection, if the emitter and - receiver are in the same thread. The behavior is the same as - the Queued Connection, if the emitter and receiver are in - different threads. + \o \l{Qt::AutoConnection}{Auto Connection} (default) If the signal is + emitted in the thread which the receiving object has affinity then + the behavior is the same as the Direct Connection. Otherwise, + the behavior is the same as the Queued Connection." \o \l{Qt::DirectConnection}{Direct Connection} The slot is invoked immediately, when the signal is emitted. The slot is executed -- cgit v0.12 From ea440d1897c7c9d69401ac293663fbc4f2866d08 Mon Sep 17 00:00:00 2001 From: Joaquim Rocha Date: Mon, 15 Nov 2010 13:46:40 +0100 Subject: Fix wrong error assumption when converting "0.0" to double The function qstrtod calls strtod without first resetting the errno but verifying it nonetheless. This could lead to situations where the errno was already set to ERANGE and hence it would mistakenly assume the conversion could not be done right. Merge-request: 2507 Reviewed-by: Harald Fernengel (cherry picked from commit 759c0b5ecf84201f36d44b4e6c46da1886d85dee) --- src/corelib/tools/qlocale.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index d152682..83d6dcd 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -7308,6 +7308,7 @@ Q_CORE_EXPORT char *qdtoa( double d, int mode, int ndigits, int *decpt, int *sig Q_CORE_EXPORT double qstrtod(const char *s00, const char **se, bool *ok) { + errno = 0; double ret = strtod((char*)s00, (char**)se); if (ok) { if((ret == 0.0l && errno == ERANGE) -- cgit v0.12 From 7c66efddd3662a3b0a43f621519e5d5a2f3c50b4 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Mon, 22 Nov 2010 16:37:47 +1000 Subject: Update qml visual tests on mac. Task-number: QTBUG-14792 --- .../data-X11/colorAnimation-visual.0.png | Bin 622 -> 0 bytes .../data-X11/colorAnimation-visual.1.png | Bin 627 -> 0 bytes .../data-X11/colorAnimation-visual.2.png | Bin 626 -> 0 bytes .../data-X11/colorAnimation-visual.3.png | Bin 625 -> 0 bytes .../data-X11/colorAnimation-visual.qml | 951 ----- .../data/colorAnimation-visual.0.png | Bin 627 -> 622 bytes .../data/colorAnimation-visual.1.png | Bin 626 -> 627 bytes .../data/colorAnimation-visual.2.png | Bin 625 -> 626 bytes .../data/colorAnimation-visual.3.png | Bin 0 -> 625 bytes .../colorAnimation/data/colorAnimation-visual.qml | 16 +- .../qmlvisual/focusscope/data-MAC/test3.0.png | Bin 1549 -> 0 bytes .../qmlvisual/focusscope/data-MAC/test3.1.png | Bin 1140 -> 0 bytes .../qmlvisual/focusscope/data-MAC/test3.2.png | Bin 1338 -> 0 bytes .../qmlvisual/focusscope/data-MAC/test3.3.png | Bin 1221 -> 0 bytes .../qmlvisual/focusscope/data-MAC/test3.qml | 1327 ------ .../align/data-MAC/multilineAlign.0.png | Bin 2388 -> 2569 bytes .../align/data-MAC/multilineAlign.qml | 120 +- .../baseline/data-MAC/parentanchor.0.png | Bin 0 -> 5648 bytes .../baseline/data-MAC/parentanchor.qml | 62 +- .../qdeclarativetext/data-MAC/qtbug_14865.0.png | Bin 1640 -> 1083 bytes .../qdeclarativetext/data-MAC/qtbug_14865.1.png | Bin 625 -> 1083 bytes .../qdeclarativetext/data-MAC/qtbug_14865.qml | 220 +- .../qdeclarativetext/elide/data-MAC/elide.0.png | Bin 1706 -> 1353 bytes .../qdeclarativetext/elide/data-MAC/elide.1.png | Bin 0 -> 1353 bytes .../qdeclarativetext/elide/data-MAC/elide.qml | 134 +- .../qdeclarativetext/elide/data-MAC/elide2.0.png | Bin 3564 -> 3572 bytes .../qdeclarativetext/elide/data-MAC/elide2.1.png | Bin 3271 -> 3320 bytes .../qdeclarativetext/elide/data-MAC/elide2.2.png | Bin 2549 -> 2953 bytes .../qdeclarativetext/elide/data-MAC/elide2.3.png | Bin 1574 -> 2386 bytes .../qdeclarativetext/elide/data-MAC/elide2.4.png | Bin 0 -> 1650 bytes .../qdeclarativetext/elide/data-MAC/elide2.qml | 490 +-- .../elide/data-MAC/multilength.0.png | Bin 2883 -> 2748 bytes .../elide/data-MAC/multilength.1.png | Bin 0 -> 3064 bytes .../elide/data-MAC/multilength.qml | 148 +- .../qdeclarativetext/font/data-MAC/plaintext.0.png | Bin 96247 -> 60155 bytes .../font/data-MAC/plaintext2.0.png | Bin 3481 -> 3805 bytes .../font/data-MAC/plaintext3.0.png | Bin 53503 -> 21056 bytes .../qdeclarativetext/font/data-MAC/richtext.0.png | Bin 118835 -> 62489 bytes .../qdeclarativetext/font/data-MAC/richtext2.0.png | Bin 0 -> 29962 bytes .../qdeclarativetext/font/data-MAC/richtext2.qml | 11 + .../data-MAC/cursorDelegate.0.png | Bin 3636 -> 1177 bytes .../data-MAC/cursorDelegate.1.png | Bin 3611 -> 1254 bytes .../data-MAC/cursorDelegate.2.png | Bin 3612 -> 1199 bytes .../data-MAC/cursorDelegate.3.png | Bin 3612 -> 1198 bytes .../data-MAC/cursorDelegate.4.png | Bin 3609 -> 1195 bytes .../data-MAC/cursorDelegate.5.png | Bin 3147 -> 1197 bytes .../data-MAC/cursorDelegate.qml | 658 +-- .../qdeclarativetextedit/data-MAC/qt-669.0.png | Bin 3273 -> 737 bytes .../qdeclarativetextedit/data-MAC/qt-669.1.png | Bin 3265 -> 740 bytes .../qdeclarativetextedit/data-MAC/qt-669.2.png | Bin 3266 -> 746 bytes .../qdeclarativetextedit/data-MAC/qt-669.3.png | Bin 3245 -> 739 bytes .../qdeclarativetextedit/data-MAC/qt-669.4.png | Bin 0 -> 737 bytes .../qdeclarativetextedit/data-MAC/qt-669.qml | 538 +-- .../data-MAC/usingMultilineEdit.0.png | Bin 5123 -> 1362 bytes .../data-MAC/usingMultilineEdit.1.png | Bin 5500 -> 1377 bytes .../data-MAC/usingMultilineEdit.10.png | Bin 8641 -> 2037 bytes .../data-MAC/usingMultilineEdit.11.png | Bin 8641 -> 2037 bytes .../data-MAC/usingMultilineEdit.12.png | Bin 0 -> 2037 bytes .../data-MAC/usingMultilineEdit.2.png | Bin 6163 -> 1461 bytes .../data-MAC/usingMultilineEdit.3.png | Bin 6785 -> 1577 bytes .../data-MAC/usingMultilineEdit.4.png | Bin 6943 -> 1704 bytes .../data-MAC/usingMultilineEdit.5.png | Bin 7043 -> 1778 bytes .../data-MAC/usingMultilineEdit.6.png | Bin 7428 -> 1797 bytes .../data-MAC/usingMultilineEdit.7.png | Bin 6860 -> 1859 bytes .../data-MAC/usingMultilineEdit.8.png | Bin 8659 -> 1835 bytes .../data-MAC/usingMultilineEdit.9.png | Bin 8641 -> 2028 bytes .../data-MAC/usingMultilineEdit.qml | 1452 +++---- .../qdeclarativetextedit/data-MAC/wrap.0.png | Bin 11626 -> 3756 bytes .../qdeclarativetextedit/data-MAC/wrap.1.png | Bin 11869 -> 3891 bytes .../qdeclarativetextedit/data-MAC/wrap.2.png | Bin 12264 -> 3964 bytes .../qdeclarativetextedit/data-MAC/wrap.3.png | Bin 12607 -> 4054 bytes .../qdeclarativetextedit/data-MAC/wrap.4.png | Bin 13243 -> 4132 bytes .../qdeclarativetextedit/data-MAC/wrap.5.png | Bin 13260 -> 4234 bytes .../qdeclarativetextedit/data-MAC/wrap.6.png | Bin 13260 -> 4238 bytes .../qdeclarativetextedit/data-MAC/wrap.7.png | Bin 0 -> 4238 bytes .../qdeclarativetextedit/data-MAC/wrap.qml | 858 ++-- .../data-MAC/cursorDelegate.0.png | Bin 3613 -> 1177 bytes .../data-MAC/cursorDelegate.1.png | Bin 4140 -> 1148 bytes .../data-MAC/cursorDelegate.2.png | Bin 3593 -> 1312 bytes .../data-MAC/cursorDelegate.3.png | Bin 3605 -> 1256 bytes .../data-MAC/cursorDelegate.4.png | Bin 3605 -> 1197 bytes .../data-MAC/cursorDelegate.5.png | Bin 805 -> 1197 bytes .../data-MAC/cursorDelegate.qml | 620 +-- .../qdeclarativetextinput/data-MAC/echoMode.0.png | Bin 703 -> 256 bytes .../qdeclarativetextinput/data-MAC/echoMode.1.png | Bin 1360 -> 715 bytes .../qdeclarativetextinput/data-MAC/echoMode.2.png | Bin 2031 -> 1295 bytes .../qdeclarativetextinput/data-MAC/echoMode.3.png | Bin 0 -> 1922 bytes .../qdeclarativetextinput/data-MAC/echoMode.qml | 340 +- .../qdeclarativetextinput/data-MAC/hAlign.0.png | Bin 0 -> 3987 bytes .../qdeclarativetextinput/data-MAC/hAlign.qml | 50 +- .../data-MAC/usingLineEdit.0.png | Bin 0 -> 1254 bytes .../data-MAC/usingLineEdit.1.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.10.png | Bin 0 -> 1345 bytes .../data-MAC/usingLineEdit.11.png | Bin 0 -> 1433 bytes .../data-MAC/usingLineEdit.2.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.3.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.4.png | Bin 0 -> 1316 bytes .../data-MAC/usingLineEdit.5.png | Bin 0 -> 1318 bytes .../data-MAC/usingLineEdit.6.png | Bin 0 -> 1321 bytes .../data-MAC/usingLineEdit.7.png | Bin 0 -> 1316 bytes .../data-MAC/usingLineEdit.8.png | Bin 0 -> 1362 bytes .../data-MAC/usingLineEdit.9.png | Bin 0 -> 1423 bytes .../data-MAC/usingLineEdit.qml | 4335 ++++++++++++++++++++ 103 files changed, 7199 insertions(+), 5131 deletions(-) delete mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png delete mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png delete mode 100644 tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png delete mode 100644 tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png delete mode 100644 tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png delete mode 100644 tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png delete mode 100644 tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml 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 deleted file mode 100644 index 99748a7..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png and /dev/null 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 deleted file mode 100644 index 5393dd8..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png and /dev/null 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 deleted file mode 100644 index 8c17bf7..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png and /dev/null 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 deleted file mode 100644 index 1317eef..0000000 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png and /dev/null 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 deleted file mode 100644 index dd2aeb4..0000000 --- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml +++ /dev/null @@ -1,951 +0,0 @@ -import Qt.VisualTest 4.7 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - image: "colorAnimation-visual.0.png" - } - Frame { - msec: 32 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 48 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 64 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 80 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 96 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 112 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 128 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 144 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 160 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 176 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 192 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 208 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 224 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 240 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 256 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 272 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 288 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 304 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 320 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 336 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 352 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 368 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 384 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 400 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 416 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 432 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 448 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 464 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 480 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 496 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 512 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 528 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 544 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 560 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 576 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 592 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 93; y: 136 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 608 - hash: "acc736435c9f84aa82941ba561bc5dbc" - } - Frame { - msec: 624 - hash: "e5bda0daf98288ce18db6ce06eda3ba0" - } - Frame { - msec: 640 - hash: "d35008f75b8c992f80fb16ba7203649d" - } - Frame { - msec: 656 - hash: "14f43e0784ddf42ea8550db88c501bf1" - } - Frame { - msec: 672 - hash: "02276e158b5391480b1bdeaadf1fb903" - } - Frame { - msec: 688 - hash: "35d9513eb97a2c482b7cd197de910934" - } - Frame { - msec: 704 - hash: "faf0fd681e60bb2489099f5df772b6cd" - } - Frame { - msec: 720 - hash: "a863d3e346f94785a3a392fdc91526eb" - } - Frame { - msec: 736 - hash: "fdf328d3f6eb8410da59a91345e41a44" - } - Frame { - msec: 752 - hash: "83514a3b10d5be8f6c3b128d0f3e0b1c" - } - Frame { - msec: 768 - hash: "ead0eae76cd00189075964671effbaea" - } - Frame { - msec: 784 - hash: "24d2457fcd51490fda23071bf9929d12" - } - Frame { - msec: 800 - hash: "1478683446cf543dacbe31d0b76a98a6" - } - Frame { - msec: 816 - hash: "99f7da1f31fe920f6c02add4042ae925" - } - Frame { - msec: 832 - hash: "22def892006cf66667770b0f17baf6c0" - } - Frame { - msec: 848 - hash: "6a36d5a77099bfd58baf285478ff04e4" - } - Frame { - msec: 864 - hash: "6258150666b59b20ab476724c07fc20c" - } - Frame { - msec: 880 - hash: "f1636315bc950a6dd400d9c7ed263b88" - } - Frame { - msec: 896 - hash: "18447ea8dc2e8da956788e5b3cf3790a" - } - Frame { - msec: 912 - hash: "1d2a6e65997a73e9e670356c8e8b63b2" - } - Frame { - msec: 928 - hash: "bed0242c0f9ef229d1392835286d5782" - } - Frame { - msec: 944 - hash: "88923c190e9e5beadef8a409c06df9d6" - } - Frame { - msec: 960 - hash: "2d133e7ee60c97386f57838b3f0976c7" - } - Frame { - msec: 976 - image: "colorAnimation-visual.1.png" - } - Frame { - msec: 992 - hash: "395195716d76bc0be7b2033ed37a7a1c" - } - Frame { - msec: 1008 - hash: "243dbffcf416926242bbcb7348974c4c" - } - Frame { - msec: 1024 - hash: "a755068679616d8ac65c2aa7431f2a19" - } - Frame { - msec: 1040 - hash: "e8249b35a47eb492cbdf2d91cc8426f0" - } - Frame { - msec: 1056 - hash: "15f3da1c0e6f0779b96859d51171dd27" - } - Frame { - msec: 1072 - hash: "258c0c756aac3de743b43051f2aace6b" - } - Frame { - msec: 1088 - hash: "a58b9fdf301d72b2cc5c93934cc8927b" - } - Frame { - msec: 1104 - hash: "a9181d30870d472521f8904818ce520f" - } - Frame { - msec: 1120 - hash: "7f9e94069ccf3897c26a71bd7becd903" - } - Frame { - msec: 1136 - hash: "bdf305c2f46cdb86dbf57b1e0cc5a65b" - } - Frame { - msec: 1152 - hash: "fe5b6865d7e4fc7d1d42c1e74f8666f7" - } - Frame { - msec: 1168 - hash: "734f0de45a6e34c9eab7ef606196f96a" - } - Frame { - msec: 1184 - hash: "02a361c4534fdf7f286dc3e6dc23275c" - } - Frame { - msec: 1200 - hash: "e649155ad69999c14b92f6561e4d1185" - } - Frame { - msec: 1216 - hash: "01af177084fab755d622973f64b92018" - } - Frame { - msec: 1232 - hash: "097cc4a082dfab995d213a3a73883c97" - } - Frame { - msec: 1248 - hash: "d7b4239a3280b1eb8e885e3f422df8e9" - } - Frame { - msec: 1264 - hash: "59893977994e34e83f91e7ce3ad65d6d" - } - Frame { - msec: 1280 - hash: "b68e3fbb5cdcd6bd96df7dec558db42b" - } - Frame { - msec: 1296 - hash: "94ad0580648f36a1e18a9ea7e249b04d" - } - Frame { - msec: 1312 - hash: "750a4c01d2f5806a89a1c6cc6a9b9a68" - } - Frame { - msec: 1328 - hash: "4f109f50f388f1bfa4bc6b03b3e6e514" - } - Frame { - msec: 1344 - hash: "c6168d5cf27a533e8ee636637667be47" - } - Frame { - msec: 1360 - hash: "f8120547bed987aa34c00da5a01a4d1e" - } - Frame { - msec: 1376 - hash: "cbff526136fa2c128c8b898fbbef9e5c" - } - Frame { - msec: 1392 - hash: "f29e52398fab1a239a63df4c32f2fc69" - } - Frame { - msec: 1408 - hash: "7178bfe86fd2fd513218b33760460f8d" - } - Frame { - msec: 1424 - hash: "ca83285bc8ac633403896fe976896eb0" - } - Frame { - msec: 1440 - hash: "96ba486c09cc69d5aa38c46c00df1181" - } - Frame { - msec: 1456 - hash: "b88eab335842787869f4a14824c19dd8" - } - Frame { - msec: 1472 - hash: "065aa59012729e1e1a246a2083142690" - } - Frame { - msec: 1488 - hash: "dd0e98c8398861002c5f178c5f9f612d" - } - Frame { - msec: 1504 - hash: "04192c2b545948048eccf4d81bbde198" - } - Frame { - msec: 1520 - hash: "bb7502c7208281ef9fd41714ab88a1a8" - } - Frame { - msec: 1536 - hash: "5397195471890d08b703dca101e5bc7c" - } - Frame { - msec: 1552 - hash: "4c678cdbebb2ffd2cbf012ca77800cde" - } - Frame { - msec: 1568 - hash: "0d7a34ecd0c7f52b2c015037bf1902c6" - } - Frame { - msec: 1584 - hash: "fd9d5048be749ac4369fda2d018b43ae" - } - Frame { - msec: 1600 - hash: "93ee03795cd57ae6f7fe3a020b039ad4" - } - Frame { - msec: 1616 - hash: "5e1118963f219c39761ca7fbf564a9ca" - } - Frame { - msec: 1632 - hash: "8f40038741903150136170503649d941" - } - Frame { - msec: 1648 - hash: "b087b7d0aa6224821f8e18718ff5e77d" - } - Frame { - msec: 1664 - hash: "aa46b04a3c67dc772265ed2901955565" - } - Frame { - msec: 1680 - hash: "ac024bf2aeb4becdf31a09fe0a6db8f3" - } - Frame { - msec: 1696 - hash: "13745a174e4d06e2108a5bf125ba50cc" - } - Frame { - msec: 1712 - hash: "bd972f0d8e230eca0b3fea1b8c960c08" - } - Frame { - msec: 1728 - hash: "cbdbec802a58e7ced0cf45b3ab0bc0ba" - } - Frame { - msec: 1744 - hash: "5128584c50305c7d218b81b8367fa3d5" - } - Frame { - msec: 1760 - hash: "a71461d3593f3685620668916de870bd" - } - Frame { - msec: 1776 - hash: "74ebac8f32cf044b58d9883dbcd9a722" - } - Frame { - msec: 1792 - hash: "fedc5b638f339b90fe59b478721e65b7" - } - Frame { - msec: 1808 - hash: "8593a81be812edf54ec94da8ae9c1314" - } - Frame { - msec: 1824 - hash: "4e9b083075bc5e9287a8abc982778b56" - } - Frame { - msec: 1840 - hash: "1d6f02aa99afa47d77fc49ab894b365a" - } - Frame { - msec: 1856 - hash: "a204feec783b3b05de4c209c21745826" - } - Frame { - msec: 1872 - hash: "665a2a8ff00b9663157802767f504754" - } - Frame { - msec: 1888 - hash: "624fb09ebe60cb87d767faf8d2420b1e" - } - Frame { - msec: 1904 - hash: "e5af0cdc33f3275a25abb09e9165f310" - } - Frame { - msec: 1920 - hash: "02bafb5a81ca66f7670ac93de5123860" - } - Frame { - msec: 1936 - image: "colorAnimation-visual.2.png" - } - Frame { - msec: 1952 - hash: "b5abd0dff1ab076faac7cc226e83f5d0" - } - Frame { - msec: 1968 - hash: "b759acc35bccff8efc2e6fe276ddc0f7" - } - Frame { - msec: 1984 - hash: "ce52e18c1f7732768779863b45314ff5" - } - Frame { - msec: 2000 - hash: "99d30652559dd6931e0c95543eeaa149" - } - Frame { - msec: 2016 - hash: "ffbd9a00e05e085b89296d19d5caec57" - } - Frame { - msec: 2032 - hash: "9c9d658b9c25602816b8066bf19105db" - } - Frame { - msec: 2048 - hash: "2b7fd058e6601e22a30bb7106b1c683b" - } - Frame { - msec: 2064 - hash: "f4c7e26b19ee0a3e7c9688685eb7bd05" - } - Frame { - msec: 2080 - hash: "0dc6d593bceff56b7f81f2a49d37fefb" - } - Frame { - msec: 2096 - hash: "9bfd7ad5091ccbdde43c593e133a7b10" - } - Frame { - msec: 2112 - hash: "2703b617937914a90ea42ebf249d79ee" - } - Frame { - msec: 2128 - hash: "b77e2983138254016c4cca53100f46fa" - } - Frame { - msec: 2144 - hash: "60c4dd24187d1281081479e586f02b37" - } - Frame { - msec: 2160 - hash: "62f2511abd99ef1231c9fa4b91d4abfe" - } - Frame { - msec: 2176 - hash: "e309b3353fd174e883d309571caddc98" - } - Frame { - msec: 2192 - hash: "1e2d6a134c7b12dde551b148ef4f088c" - } - Frame { - msec: 2208 - hash: "e5dc5450604a491cc24a0dcf5c278b58" - } - Frame { - msec: 2224 - hash: "c8dae97c10e1962c1e6a51ab3ab8579e" - } - Frame { - msec: 2240 - hash: "4e1b7e06f55fb084080689b474f1fe1d" - } - Frame { - msec: 2256 - hash: "b4639c907fa937bf15fac62421170cd8" - } - Frame { - msec: 2272 - hash: "c250208a0caeb5f6cb4d3aac3d7d350b" - } - Frame { - msec: 2288 - hash: "a73351eabecf0d71149efe31f197413e" - } - Frame { - msec: 2304 - hash: "479425f1b7aff79e4dfb7fca534af018" - } - Frame { - msec: 2320 - hash: "046d0f0040a52d1f26ba9f7c5de06ef4" - } - Frame { - msec: 2336 - hash: "655778bf13c6080903150b0eb43a7edc" - } - Frame { - msec: 2352 - hash: "72da0bbe81514870655fdd3354adac60" - } - Frame { - msec: 2368 - hash: "defe0bdf675c65fff55aaaced1e4dae7" - } - Frame { - msec: 2384 - hash: "c988628b6c3d3780e9a865c7694926cd" - } - Frame { - msec: 2400 - hash: "5ab17563655231089edd986ff13d6012" - } - Frame { - msec: 2416 - hash: "c1adff1d2e5800ed466d1691d3b17382" - } - Frame { - msec: 2432 - hash: "70129ba01fbb19592b9dc0d0a3b3e7df" - } - Frame { - msec: 2448 - hash: "0000829ef7ed908bf430d42904d59cc2" - } - Frame { - msec: 2464 - hash: "843d2927f50ab87b4a86b7a6aaeed91f" - } - Frame { - msec: 2480 - hash: "da86d21756025e7de8050586d5e2a1f8" - } - Frame { - msec: 2496 - hash: "48dd1bd6580133b0793fee327ea4f1e6" - } - Frame { - msec: 2512 - hash: "f0618193dcd0ba2837249515a1898b1c" - } - Frame { - msec: 2528 - hash: "a530184e57251065286c0cbba7301e9c" - } - Frame { - msec: 2544 - hash: "64a1d7203973d65dd342793007a61c58" - } - Frame { - msec: 2560 - hash: "5b830dfc6ba442772de87d75d5a578de" - } - Frame { - msec: 2576 - hash: "5563b056b0409b65f60dd16dd0dd890e" - } - Frame { - msec: 2592 - hash: "b8bcf9ad2ca8720c11563a23d8280804" - } - Frame { - msec: 2608 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2624 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2640 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2656 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2672 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2688 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2704 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2720 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2736 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2752 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2768 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2784 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2800 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2816 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2832 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2848 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2864 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2880 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2896 - image: "colorAnimation-visual.3.png" - } - Frame { - msec: 2912 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2928 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2944 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2960 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2976 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 2992 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3008 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3024 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3040 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3056 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3072 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3088 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3104 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3120 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3136 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3152 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3168 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3184 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3200 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3216 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3232 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3248 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3264 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3280 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3296 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3312 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3328 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3344 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3360 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3376 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3392 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3408 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3424 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3440 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3456 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3472 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3488 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3504 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3520 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3536 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3552 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3568 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3584 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3600 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3616 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3632 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3648 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3664 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } - Frame { - msec: 3680 - hash: "8c0fcda4f8956394c53fc4ba18caa850" - } -} diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png index e6ea16d..2a79113 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png index b75ba61..ebd1802 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png index 4320f6f..9b8ecbb 100644 Binary files a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png new file mode 100644 index 0000000..277cb9e Binary files /dev/null and b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png differ diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml index 9611d27..2b664d4 100644 --- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "acc736435c9f84aa82941ba561bc5dbc" + image: "colorAnimation-visual.0.png" } Frame { msec: 32 @@ -258,11 +258,11 @@ VisualTest { } Frame { msec: 960 - image: "colorAnimation-visual.0.png" + hash: "2d133e7ee60c97386f57838b3f0976c7" } Frame { msec: 976 - hash: "85b1821cc50f2a9f3ed6944f792b7a2f" + image: "colorAnimation-visual.1.png" } Frame { msec: 992 @@ -498,11 +498,11 @@ VisualTest { } Frame { msec: 1920 - image: "colorAnimation-visual.1.png" + hash: "02bafb5a81ca66f7670ac93de5123860" } Frame { msec: 1936 - hash: "e7aa6374c73832e57ceb2427a1e258aa" + image: "colorAnimation-visual.2.png" } Frame { msec: 1952 @@ -738,11 +738,11 @@ VisualTest { } Frame { msec: 2880 - image: "colorAnimation-visual.2.png" + hash: "8c0fcda4f8956394c53fc4ba18caa850" } Frame { msec: 2896 - hash: "8c0fcda4f8956394c53fc4ba18caa850" + image: "colorAnimation-visual.3.png" } Frame { msec: 2912 @@ -931,7 +931,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png deleted file mode 100644 index e469a79..0000000 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png deleted file mode 100644 index 905603f..0000000 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png deleted file mode 100644 index 5cbd3bd..0000000 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png deleted file mode 100644 index 851c1ba..0000000 Binary files a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png and /dev/null differ diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml deleted file mode 100644 index 0c9747e..0000000 --- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml +++ /dev/null @@ -1,1327 +0,0 @@ -import Qt.VisualTest 4.7 - -VisualTest { - Frame { - msec: 0 - } - Frame { - msec: 16 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 32 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 48 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 64 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 80 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 96 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 112 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 128 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 144 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 160 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 176 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 192 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 208 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 224 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 240 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 256 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 272 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 288 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 304 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 320 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 336 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 352 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 368 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 384 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 400 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 416 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 432 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 448 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 464 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 480 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 496 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 512 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 528 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 544 - hash: "be06cc567f08fbc0cd60d753a19df162" - } - Frame { - msec: 560 - hash: "c4cf6807b423553872e848146e79efb3" - } - Frame { - msec: 576 - hash: "b83923f1eef68a4a8dd36acad0f4b592" - } - Frame { - msec: 592 - hash: "5599829a04f2c2a6c6181c5857762ba0" - } - Frame { - msec: 608 - hash: "95da52b5add95150dd446bc5055a2b60" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 624 - hash: "9bb2757c3b1bbc051edd9ebd240611f8" - } - Frame { - msec: 640 - hash: "25213fbced4c67f42ce35d07db93bb32" - } - Frame { - msec: 656 - hash: "2a9ded25ed2dbb9563f9c14084234a22" - } - Frame { - msec: 672 - hash: "2f532511a50d743aa1c7ebcc9b2b7350" - } - Frame { - msec: 688 - hash: "2f532511a50d743aa1c7ebcc9b2b7350" - } - Frame { - msec: 704 - hash: "2f532511a50d743aa1c7ebcc9b2b7350" - } - Frame { - msec: 720 - hash: "2f532511a50d743aa1c7ebcc9b2b7350" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 736 - hash: "8c9f7d72e077a7e75d185a2ecbdcc77c" - } - Frame { - msec: 752 - hash: "55a417e91f182ebd28dd7264d8b76363" - } - Frame { - msec: 768 - hash: "01a637de9f60c82bfd9140e852e17574" - } - Frame { - msec: 784 - hash: "01194b2c3489ea7298e961979064aab3" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 800 - hash: "f6126328d483536d3f161f71d40821df" - } - Frame { - msec: 816 - hash: "b99dd9793a63bbdab37cfe236d56c589" - } - Frame { - msec: 832 - hash: "825f39b42d0b2e0d894874713b731cfc" - } - Frame { - msec: 848 - hash: "7729b9c2133c52e50f43d6100a24e9c2" - } - Frame { - msec: 864 - hash: "e2f3bec9571b08b451309221b34ace5e" - } - Frame { - msec: 880 - hash: "e2f3bec9571b08b451309221b34ace5e" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 896 - hash: "8e59b002437ec17043d11c92556365fd" - } - Frame { - msec: 912 - hash: "3809a54af9c9a4b15aa8b82caa5b703f" - } - Frame { - msec: 928 - hash: "96cb1ab7123c54d4fa0d93b6501a439d" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 944 - hash: "de74cd5be709954522dd02945d6da9c9" - } - Frame { - msec: 960 - image: "test3.0.png" - } - Frame { - msec: 976 - hash: "d3ff94471da3620701d62b87f37fca8b" - } - Frame { - msec: 992 - hash: "15bccb078b9061ef50c73a974e2f43fa" - } - Frame { - msec: 1008 - hash: "ea2059d511fdab60e77e9261f81aadfb" - } - Frame { - msec: 1024 - hash: "ea2059d511fdab60e77e9261f81aadfb" - } - Frame { - msec: 1040 - hash: "ea2059d511fdab60e77e9261f81aadfb" - } - Frame { - msec: 1056 - hash: "ea2059d511fdab60e77e9261f81aadfb" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1072 - hash: "5b68568968d0de3a9bad8d053045f45c" - } - Frame { - msec: 1088 - hash: "6b6da385fbc00e3542d7007524ff87f6" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1104 - hash: "bba5021ad78a5a142cf54d4db8d8689e" - } - Frame { - msec: 1120 - hash: "5c223d5dcf028cd3bac18b21359253f3" - } - Frame { - msec: 1136 - hash: "c5b09a11d466fd90e1014f58755ec77b" - } - Frame { - msec: 1152 - hash: "f4ba8fcc4f955e25c2364d8ee1054d0d" - } - Frame { - msec: 1168 - hash: "2a6009e790cd98e3a67c107b0f08e00b" - } - Frame { - msec: 1184 - hash: "caa1b5ee40dc20c87516b7292a86f79b" - } - Frame { - msec: 1200 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Frame { - msec: 1216 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1232 - hash: "2333dcdf0f46ade554e036caa5e3cb31" - } - Frame { - msec: 1248 - hash: "9b09c65db96f483dec7ba3a55b5a91e6" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1264 - hash: "49fc76245e741968095ab689195da40c" - } - Frame { - msec: 1280 - hash: "4e991b92348d813f5a3a1080270a88a3" - } - Frame { - msec: 1296 - hash: "1e4a07fc966dab9ee0d39b25a4c43c09" - } - Frame { - msec: 1312 - hash: "ade33b908f2a5e6916a74bc00b08414e" - } - Frame { - msec: 1328 - hash: "481b41b7bc8fafcb40b7d09fcfc2e86e" - } - Frame { - msec: 1344 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1360 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1376 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1392 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1408 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1424 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1440 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1456 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1472 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 1488 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1504 - hash: "2a8a2867f38ff05a9ef5fa50fe7de229" - } - Frame { - msec: 1520 - hash: "824ec4f9e596a67fe6ca17ea03529c1f" - } - Frame { - msec: 1536 - hash: "bf7d9c49d0a0ff4d03ceadf8d797a774" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1552 - hash: "3e3c62601c2965e851e8b5c0adb73651" - } - Frame { - msec: 1568 - hash: "ed7357b2596da4683bb19cbf1dcd6458" - } - Frame { - msec: 1584 - hash: "32ed0774f926341af504b716bd9394e1" - } - Frame { - msec: 1600 - hash: "2d4ffbd7cf53ca4824d206d4a4608ebb" - } - Frame { - msec: 1616 - hash: "a7a0b6bd336f00a10818bdd9992a29bb" - } - Frame { - msec: 1632 - hash: "55801794958126a1890bc0122084ee20" - } - Frame { - msec: 1648 - hash: "55801794958126a1890bc0122084ee20" - } - Frame { - msec: 1664 - hash: "55801794958126a1890bc0122084ee20" - } - Frame { - msec: 1680 - hash: "55801794958126a1890bc0122084ee20" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1696 - hash: "49573efd5a0bc65107a074fb35d67f63" - } - Frame { - msec: 1712 - hash: "c9bf07bc12f97c6d0eef816ce4423f5b" - } - Frame { - msec: 1728 - hash: "ab91f24c27d52123502815381e926cdc" - } - Frame { - msec: 1744 - hash: "32ca7e06569a63d56ab71c67c9f82d60" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1760 - hash: "9e5f04f019ccd1f27b511faeb7470e10" - } - Frame { - msec: 1776 - hash: "5544186a3338dd788367fa4262815204" - } - Frame { - msec: 1792 - hash: "c01aa7b7363faf99f69b90be8843f059" - } - Frame { - msec: 1808 - hash: "6bd1ec848b817ef978b4dfae4eb23c1e" - } - Frame { - msec: 1824 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Frame { - msec: 1840 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Frame { - msec: 1856 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Frame { - msec: 1872 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Key { - type: 6 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1888 - hash: "04a3efd4b810417632726048bdffa904" - } - Frame { - msec: 1904 - hash: "c347e7d3dccba41102e2b669c9e9c0a0" - } - Frame { - msec: 1920 - image: "test3.1.png" - } - Frame { - msec: 1936 - hash: "47c9794374c383e1f595e60ea6890e11" - } - Frame { - msec: 1952 - hash: "73cdfe34edab93baea779896169b4195" - } - Key { - type: 7 - key: 16777236 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 1968 - hash: "53add51d9e11a1fc4d0f6e3d1c6a70bc" - } - Frame { - msec: 1984 - hash: "90143346b171faf5bdb7d4d0c0556b24" - } - Frame { - msec: 2000 - hash: "e4e642507d3a631f5813a11cb7673c91" - } - Frame { - msec: 2016 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2032 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2048 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2064 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2080 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2096 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2112 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2128 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2144 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2160 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2176 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2192 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2208 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2224 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2240 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2256 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2272 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2288 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2304 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2320 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2336 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2352 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2368 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2384 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2400 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2416 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2432 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2448 - hash: "f5f1725edd19f1735139d178955533f8" - } - Frame { - msec: 2464 - hash: "f5f1725edd19f1735139d178955533f8" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2480 - hash: "512e992c6d621225735c37e2626714ad" - } - Frame { - msec: 2496 - hash: "1a708d62af48302e93dda0ef0822aebb" - } - Frame { - msec: 2512 - hash: "220660969092ba1b17addc6ba7148e06" - } - Frame { - msec: 2528 - hash: "9dcdd42efc9beb957abdeaf2ee01fc43" - } - Frame { - msec: 2544 - hash: "5995ac01ee680d6747dc78c36f70b577" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2560 - hash: "c6eb964d8f4bf849df63eebdfbf6e286" - } - Frame { - msec: 2576 - hash: "cff1925a172e278a36068886f0efbcbf" - } - Frame { - msec: 2592 - hash: "4c725a05332806387713ab54302c559f" - } - Frame { - msec: 2608 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Frame { - msec: 2624 - hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2640 - hash: "0cb7eeb24a6845d43ce0662c91b72bd3" - } - Frame { - msec: 2656 - hash: "6dedbf7dc59b05dc57355141de0b660d" - } - Frame { - msec: 2672 - hash: "5f82259afdabef688dd76729b5f847c7" - } - Frame { - msec: 2688 - hash: "b67d418427db34726ddada60f76178a6" - } - Frame { - msec: 2704 - hash: "780c9551f55fd46d294a1eef3b34aa34" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2720 - hash: "521efe1778b2d2031071b55f30999de9" - } - Frame { - msec: 2736 - hash: "49539356de68b7cd2cea52986ed2bb67" - } - Frame { - msec: 2752 - hash: "55801794958126a1890bc0122084ee20" - } - Frame { - msec: 2768 - hash: "55801794958126a1890bc0122084ee20" - } - Frame { - msec: 2784 - hash: "55801794958126a1890bc0122084ee20" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2800 - hash: "b08ee15bfd1916b9619a0a3eeeec90b6" - } - Frame { - msec: 2816 - hash: "3b4e65a0d4ee764d418d82a055ba9c87" - } - Frame { - msec: 2832 - hash: "269d37497b0cd292a5b03124d1687ff6" - } - Frame { - msec: 2848 - hash: "59fecd7ec62bf8c89e2222744d36e194" - } - Frame { - msec: 2864 - hash: "71deceeac8b42a70868bb3ff788543b5" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2880 - image: "test3.2.png" - } - Frame { - msec: 2896 - hash: "ad790d242e84fec0bd75e1d7771682d7" - } - Frame { - msec: 2912 - hash: "c09f4fca4ae14e0e41d9b58c1b83096f" - } - Frame { - msec: 2928 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Frame { - msec: 2944 - hash: "68b528414ba662f14ea71511a01f8d33" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 2960 - hash: "015bf8203d45e5d477242055a3f19bfb" - } - Frame { - msec: 2976 - hash: "ba2fb1258a2f3a81882780d3c7d5320a" - } - Frame { - msec: 2992 - hash: "3637ffd219d403ed433fd72cd68a9b23" - } - Frame { - msec: 3008 - hash: "b0d858f1d51872969022f717c12480ed" - } - Frame { - msec: 3024 - hash: "0504b13a8f7cd68a1d64a22e46ea8654" - } - Frame { - msec: 3040 - hash: "d07cffa36609433e4a677e373ee7a3ff" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3056 - hash: "c1fd98ebc22e512f7199e0f319e88728" - } - Frame { - msec: 3072 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Frame { - msec: 3088 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Frame { - msec: 3104 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Frame { - msec: 3120 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Frame { - msec: 3136 - hash: "200dd4ac9c40c6eb32ad43570995f17d" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3152 - hash: "5822b744b64944c515e8a01f52c7429f" - } - Frame { - msec: 3168 - hash: "7d4ab5a17e7d6184f124299053cf94e3" - } - Frame { - msec: 3184 - hash: "253cfd5001e4e4541d9cfd6370291cd2" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3200 - hash: "1b1cab9d331c613dde896829027110f5" - } - Frame { - msec: 3216 - hash: "8127f681a5c475133cfca95483fef2ce" - } - Frame { - msec: 3232 - hash: "1a944877735fe3531d95b418dd75d576" - } - Frame { - msec: 3248 - hash: "47ddcfaed130bf7dd539d965ebebedc1" - } - Frame { - msec: 3264 - hash: "d0c37d1a7e97034d0f41ea6c2fff8f34" - } - Frame { - msec: 3280 - hash: "ea2059d511fdab60e77e9261f81aadfb" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3296 - hash: "11a907436350afa5ff592880303b4344" - } - Frame { - msec: 3312 - hash: "39801aef92c2b1e0ca39bede36840911" - } - Frame { - msec: 3328 - hash: "93463b61a00078f488f3941bc4729100" - } - Frame { - msec: 3344 - hash: "f8d9cbe20b87017d81fbf627f3a3b2cd" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3360 - hash: "2b8d37e7dcfb14394caf19aa8bc4b956" - } - Frame { - msec: 3376 - hash: "bf91006930a3f22f12b62787c57bb91b" - } - Frame { - msec: 3392 - hash: "7ce1d106e9d78a4a64f35f5982d32298" - } - Frame { - msec: 3408 - hash: "e2f3bec9571b08b451309221b34ace5e" - } - Frame { - msec: 3424 - hash: "e2f3bec9571b08b451309221b34ace5e" - } - Frame { - msec: 3440 - hash: "e2f3bec9571b08b451309221b34ace5e" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3456 - hash: "71cd749e039a54aaaa05e1d3ccc738b4" - } - Frame { - msec: 3472 - hash: "39e7afb00d53e098c005a1d96a8cc727" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3488 - hash: "a9d2fa99fc70919e55293c07427147a2" - } - Frame { - msec: 3504 - hash: "96bb62cd9ebc2eba9797605190820349" - } - Frame { - msec: 3520 - hash: "111b0d230c44d5d156e082a50c2a2a66" - } - Frame { - msec: 3536 - hash: "1085cebcc8fdaefb2ec03392763c7657" - } - Frame { - msec: 3552 - hash: "451d670f44ae42d8cbb6a12cc6469d61" - } - Frame { - msec: 3568 - hash: "5c65a7b6ed7b4e85bb883c671aae5136" - } - Frame { - msec: 3584 - hash: "2f532511a50d743aa1c7ebcc9b2b7350" - } - Key { - type: 6 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3600 - hash: "41424200cb76a0d5d64f8919645f6afb" - } - Frame { - msec: 3616 - hash: "7a910e4b17fb7f5d10308e07ea8ce0a3" - } - Frame { - msec: 3632 - hash: "4d9cc5670105acf3bc080cba8e100376" - } - Frame { - msec: 3648 - hash: "a09d3b45bef532ed86d737839592ffc8" - } - Key { - type: 7 - key: 16777234 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 3664 - hash: "70179b7be24acd6d5d0d0de9d8fff74d" - } - Frame { - msec: 3680 - hash: "95964eef01bfc86216a8e91261b867ed" - } - Frame { - msec: 3696 - hash: "12b5e2bbfd573b2b8e33a745cd5af5a6" - } - Frame { - msec: 3712 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3728 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3744 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3760 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3776 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3792 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3808 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3824 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3840 - image: "test3.3.png" - } - Frame { - msec: 3856 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3872 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3888 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3904 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3920 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3936 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3952 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3968 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 3984 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4000 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4016 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4032 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4048 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4064 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4080 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4096 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4112 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4128 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4144 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4160 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4176 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4192 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4208 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4224 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4240 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } - Frame { - msec: 4256 - hash: "cb8a5743fd3c5093740bb2a4f57ade81" - } -} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png index 8b6329d..87bc640 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml index 85c0cce..f56f498 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml @@ -6,242 +6,242 @@ VisualTest { } Frame { msec: 16 - hash: "75c15f88551f961727b547082216d0bb" + image: "multilineAlign.0.png" } Frame { msec: 32 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 48 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 64 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 80 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 96 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 112 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 128 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 144 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 160 - hash: "75c15f88551f961727b547082216d0bb" + hash: "7fb2062f5786da9323db4286688682a0" } Frame { msec: 176 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 192 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 208 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 224 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 240 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 256 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 272 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 288 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 304 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 320 - hash: "1a58de7b864ae75e65f69461155cbfb2" + hash: "c67a5ae840827487ab618ff2d4e9a056" } Frame { msec: 336 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 352 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 368 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 384 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 400 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 416 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 432 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 448 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 464 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 480 - hash: "8a6b615ce522e7aa1011bc1d16193871" + hash: "c7986aca05835e238ee95be063bdd032" } Frame { msec: 496 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 512 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 528 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 544 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 560 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 576 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 592 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 608 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 624 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 640 - hash: "17141b7167d2249238c15cf751b3d8b6" + hash: "dd8ee9c060450beef6cc2494fa463e0a" } Frame { msec: 656 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 672 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 688 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 704 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 720 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 736 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 752 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 768 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 784 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 800 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 816 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 832 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 848 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 864 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 880 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 896 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 912 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 928 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 944 - hash: "92e4f7c09e41b5fb97feb0093e8d9c1f" + hash: "f55ebe08f1b538d085cda157f566859e" } Frame { msec: 960 - image: "multilineAlign.0.png" + hash: "f55ebe08f1b538d085cda157f566859e" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png new file mode 100644 index 0000000..4b78165 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml index d7428dd..7c557e0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml @@ -6,126 +6,126 @@ VisualTest { } Frame { msec: 16 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + image: "parentanchor.0.png" } Frame { msec: 32 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 48 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 64 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 80 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 96 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 112 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 128 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 144 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 160 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 176 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 192 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 208 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 224 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 240 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 256 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 272 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 288 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 304 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 320 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 336 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 352 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 368 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 384 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 400 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 416 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 432 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 448 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 464 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 480 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } Frame { msec: 496 - hash: "80e9ca4c4ffac9c032334a3369ef9db6" + hash: "455caf06270992e3367c2a5a4371b6ac" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png index 7547856..804a443 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png index 84430bb..804a443 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml index 6b9986f..efdb916 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml @@ -6,442 +6,442 @@ VisualTest { } Frame { msec: 16 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + image: "qtbug_14865.0.png" } Frame { msec: 32 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 48 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 64 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 80 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 96 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 112 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 128 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 144 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 160 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 176 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 192 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 208 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 224 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 240 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 256 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 272 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 288 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 304 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 320 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 336 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 352 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 368 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 384 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 400 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 416 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 432 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 448 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 464 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 480 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 496 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 512 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 528 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 544 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 560 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 576 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 592 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 608 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 624 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 640 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 656 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 672 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 688 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 704 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 720 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 736 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 752 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 768 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 784 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 800 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 816 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 832 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 848 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 864 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 880 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 896 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 912 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 928 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 944 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 960 - image: "qtbug_14865.0.png" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 976 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + image: "qtbug_14865.1.png" } Frame { msec: 992 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } Frame { msec: 1008 - hash: "35c278720fd30e14dce9cf8684dd2cd7" + hash: "9886d2b883d236bd0a346c6763c1f245" } 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/elide/data-MAC/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png index 88e065b..99f0eb7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png new file mode 100644 index 0000000..99f0eb7 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml index 96144e1..6dc7f4f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml @@ -6,274 +6,274 @@ VisualTest { } Frame { msec: 16 - hash: "7d056af7620fe8387955a1401a4f088a" + image: "elide.0.png" } Frame { msec: 32 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 48 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 64 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 80 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 96 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 112 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 128 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 144 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 160 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 176 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 192 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 208 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 224 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 240 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 256 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 272 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 288 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 304 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 320 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 336 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 352 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 368 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 384 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 400 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 416 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 432 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 448 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 464 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 480 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 496 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 512 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 528 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 544 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 560 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 576 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 592 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 608 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 624 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 640 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 656 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 672 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 688 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 704 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 720 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 736 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 752 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 768 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 784 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 800 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 816 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 832 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 848 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 864 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 880 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 896 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 912 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 928 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 944 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 960 - image: "elide.0.png" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 976 - hash: "7d056af7620fe8387955a1401a4f088a" + image: "elide.1.png" } Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 } Frame { msec: 992 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 1008 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 1024 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 1040 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } Frame { msec: 1056 - hash: "7d056af7620fe8387955a1401a4f088a" + hash: "8401ef19b1e07ca917b8b061888d4e70" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png index 4df514a..0b08fba 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png index e752fec..dbf8cd3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png index d2f8633..09646f8 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png index 0162321..b6734b4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png new file mode 100644 index 0000000..861f6b0 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml index b531942..026f880 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml @@ -6,986 +6,986 @@ VisualTest { } Frame { msec: 16 - hash: "90a45871fcfc509e60d4ee01527cde3b" + image: "elide2.0.png" } Frame { msec: 32 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "d482dd54c0f3876a11d80979ada91fa9" } Frame { msec: 48 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "d482dd54c0f3876a11d80979ada91fa9" } Frame { msec: 64 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "d482dd54c0f3876a11d80979ada91fa9" } Frame { msec: 80 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "d482dd54c0f3876a11d80979ada91fa9" } Frame { msec: 96 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "d482dd54c0f3876a11d80979ada91fa9" } Frame { msec: 112 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "3eb1cc8fa11ae88a3bf5004263805264" } Frame { msec: 128 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "3eb1cc8fa11ae88a3bf5004263805264" } Frame { msec: 144 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "3eb1cc8fa11ae88a3bf5004263805264" } Frame { msec: 160 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "3eb1cc8fa11ae88a3bf5004263805264" } Frame { msec: 176 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "3eb1cc8fa11ae88a3bf5004263805264" } Frame { msec: 192 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "b169f3828fafa79245bd5886d94a33b2" } Frame { msec: 208 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "b169f3828fafa79245bd5886d94a33b2" } Frame { msec: 224 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "b169f3828fafa79245bd5886d94a33b2" } Frame { msec: 240 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "b169f3828fafa79245bd5886d94a33b2" } Frame { msec: 256 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c9a22f77cce333ea041730bc76d9bb96" } Frame { msec: 272 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c9a22f77cce333ea041730bc76d9bb96" } Frame { msec: 288 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c9a22f77cce333ea041730bc76d9bb96" } Frame { msec: 304 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c9a22f77cce333ea041730bc76d9bb96" } Frame { msec: 320 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" } Frame { msec: 336 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" } Frame { msec: 352 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" } Frame { msec: 368 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" } Frame { msec: 384 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" } Frame { msec: 400 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "ed14c796dc2980f7a1bdedb15698ae01" } Frame { msec: 416 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "ed14c796dc2980f7a1bdedb15698ae01" } Frame { msec: 432 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "ed14c796dc2980f7a1bdedb15698ae01" } Frame { msec: 448 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "ed14c796dc2980f7a1bdedb15698ae01" } Frame { msec: 464 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "ed14c796dc2980f7a1bdedb15698ae01" } Frame { msec: 480 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "24d811c9b98b0cb140e7e82090e793ab" } Frame { msec: 496 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "24d811c9b98b0cb140e7e82090e793ab" } Frame { msec: 512 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "24d811c9b98b0cb140e7e82090e793ab" } Frame { msec: 528 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "24d811c9b98b0cb140e7e82090e793ab" } Frame { msec: 544 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "afa28a6a682128b1b44df31c78b63b04" } Frame { msec: 560 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "afa28a6a682128b1b44df31c78b63b04" } Frame { msec: 576 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "afa28a6a682128b1b44df31c78b63b04" } Frame { msec: 592 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "afa28a6a682128b1b44df31c78b63b04" } Frame { msec: 608 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c43bba2d3406fabdafac344102d7d72c" } Frame { msec: 624 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c43bba2d3406fabdafac344102d7d72c" } Frame { msec: 640 - hash: "90a45871fcfc509e60d4ee01527cde3b" + hash: "c43bba2d3406fabdafac344102d7d72c" } Frame { msec: 656 - hash: "c73bf21c0c9946e123372c660c78e7dd" + hash: "c43bba2d3406fabdafac344102d7d72c" } Frame { msec: 672 - hash: "c73bf21c0c9946e123372c660c78e7dd" + hash: "c43bba2d3406fabdafac344102d7d72c" } Frame { msec: 688 - hash: "c73bf21c0c9946e123372c660c78e7dd" + hash: "0e1fb18acb72ca1da6fd619e31dd2c86" } Frame { msec: 704 - hash: "bba29f9ce1a1d7dafdfe34b0ab952658" + hash: "0e1fb18acb72ca1da6fd619e31dd2c86" } Frame { msec: 720 - hash: "bba29f9ce1a1d7dafdfe34b0ab952658" + hash: "0e1fb18acb72ca1da6fd619e31dd2c86" } Frame { msec: 736 - hash: "bba29f9ce1a1d7dafdfe34b0ab952658" + hash: "0e1fb18acb72ca1da6fd619e31dd2c86" } Frame { msec: 752 - hash: "bba29f9ce1a1d7dafdfe34b0ab952658" + hash: "0e1fb18acb72ca1da6fd619e31dd2c86" } Frame { msec: 768 - hash: "bba29f9ce1a1d7dafdfe34b0ab952658" + hash: "d5780e5b30828f33d18c1f4e32ba8c3f" } Frame { msec: 784 - hash: "26f95496c4f1fa217d681a1ae79eff86" + hash: "d5780e5b30828f33d18c1f4e32ba8c3f" } Frame { msec: 800 - hash: "26f95496c4f1fa217d681a1ae79eff86" + hash: "d5780e5b30828f33d18c1f4e32ba8c3f" } Frame { msec: 816 - hash: "26f95496c4f1fa217d681a1ae79eff86" + hash: "d5780e5b30828f33d18c1f4e32ba8c3f" } Frame { msec: 832 - hash: "26f95496c4f1fa217d681a1ae79eff86" + hash: "28bdd1ab1c1af1b39a2f9d11be456682" } Frame { msec: 848 - hash: "96a83eae50a073573ace90239a64d326" + hash: "28bdd1ab1c1af1b39a2f9d11be456682" } Frame { msec: 864 - hash: "96a83eae50a073573ace90239a64d326" + hash: "28bdd1ab1c1af1b39a2f9d11be456682" } Frame { msec: 880 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + hash: "28bdd1ab1c1af1b39a2f9d11be456682" } Frame { msec: 896 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + hash: "28bdd1ab1c1af1b39a2f9d11be456682" } Frame { msec: 912 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + hash: "e34a9080716cebc0260e682960cc7c6e" } Frame { msec: 928 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + hash: "e34a9080716cebc0260e682960cc7c6e" } Frame { msec: 944 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + hash: "e34a9080716cebc0260e682960cc7c6e" } Frame { msec: 960 - image: "elide2.0.png" + hash: "e34a9080716cebc0260e682960cc7c6e" } Frame { msec: 976 - hash: "7b15d75c611f24977f2a1b44ef9e16d8" + image: "elide2.1.png" } Frame { msec: 992 - hash: "7b000cccb4e4cdaa53b025d235478b1c" + hash: "61959fc3d6f84a9fe88ec1a2979da9af" } Frame { msec: 1008 - hash: "7b000cccb4e4cdaa53b025d235478b1c" + hash: "61959fc3d6f84a9fe88ec1a2979da9af" } Frame { msec: 1024 - hash: "18366b01550fdd4a7dc7305a6289ac9b" + hash: "61959fc3d6f84a9fe88ec1a2979da9af" } Frame { msec: 1040 - hash: "18366b01550fdd4a7dc7305a6289ac9b" + hash: "47794b18771d6d558ebbca881de92377" } Frame { msec: 1056 - hash: "18366b01550fdd4a7dc7305a6289ac9b" + hash: "47794b18771d6d558ebbca881de92377" } Frame { msec: 1072 - hash: "18366b01550fdd4a7dc7305a6289ac9b" + hash: "47794b18771d6d558ebbca881de92377" } Frame { msec: 1088 - hash: "18366b01550fdd4a7dc7305a6289ac9b" + hash: "47794b18771d6d558ebbca881de92377" } Frame { msec: 1104 - hash: "cde86069e7f9809ef2c88cc6ea83910b" + hash: "47794b18771d6d558ebbca881de92377" } Frame { msec: 1120 - hash: "cde86069e7f9809ef2c88cc6ea83910b" + hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" } Frame { msec: 1136 - hash: "cde86069e7f9809ef2c88cc6ea83910b" + hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" } Frame { msec: 1152 - hash: "cde86069e7f9809ef2c88cc6ea83910b" + hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" } Frame { msec: 1168 - hash: "b8c7416944cb741ceb4ee0e8545037b1" + hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" } Frame { msec: 1184 - hash: "b8c7416944cb741ceb4ee0e8545037b1" + hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" } Frame { msec: 1200 - hash: "b8c7416944cb741ceb4ee0e8545037b1" + hash: "e94344268d2a118053ecc3aef278d91d" } Frame { msec: 1216 - hash: "74a03bf98bb205d7962e0fcc025c4ed3" + hash: "e94344268d2a118053ecc3aef278d91d" } Frame { msec: 1232 - hash: "74a03bf98bb205d7962e0fcc025c4ed3" + hash: "e94344268d2a118053ecc3aef278d91d" } Frame { msec: 1248 - hash: "74a03bf98bb205d7962e0fcc025c4ed3" + hash: "e94344268d2a118053ecc3aef278d91d" } Frame { msec: 1264 - hash: "74a03bf98bb205d7962e0fcc025c4ed3" + hash: "df1959605d3bd74e84e51cbd4d322235" } Frame { msec: 1280 - hash: "0d286d7e274868e87f7de4367b69386e" + hash: "df1959605d3bd74e84e51cbd4d322235" } Frame { msec: 1296 - hash: "0d286d7e274868e87f7de4367b69386e" + hash: "df1959605d3bd74e84e51cbd4d322235" } Frame { msec: 1312 - hash: "892e9e8feeb15bbad5f38cb354aa7290" + hash: "df1959605d3bd74e84e51cbd4d322235" } Frame { msec: 1328 - hash: "892e9e8feeb15bbad5f38cb354aa7290" + hash: "26e1c8d13f0dd3713dce24211a8d26c1" } Frame { msec: 1344 - hash: "892e9e8feeb15bbad5f38cb354aa7290" + hash: "26e1c8d13f0dd3713dce24211a8d26c1" } Frame { msec: 1360 - hash: "06d6ad94b01af5b441fd64536f7740ff" + hash: "26e1c8d13f0dd3713dce24211a8d26c1" } Frame { msec: 1376 - hash: "06d6ad94b01af5b441fd64536f7740ff" + hash: "26e1c8d13f0dd3713dce24211a8d26c1" } Frame { msec: 1392 - hash: "06d6ad94b01af5b441fd64536f7740ff" + hash: "26e1c8d13f0dd3713dce24211a8d26c1" } Frame { msec: 1408 - hash: "0552844f7915835d3a35a01137d4c310" + hash: "fd1344db48093182eb2c2872ceb887df" } Frame { msec: 1424 - hash: "0552844f7915835d3a35a01137d4c310" + hash: "fd1344db48093182eb2c2872ceb887df" } Frame { msec: 1440 - hash: "0552844f7915835d3a35a01137d4c310" + hash: "fd1344db48093182eb2c2872ceb887df" } Frame { msec: 1456 - hash: "0552844f7915835d3a35a01137d4c310" + hash: "fd1344db48093182eb2c2872ceb887df" } Frame { msec: 1472 - hash: "0552844f7915835d3a35a01137d4c310" + hash: "fd1344db48093182eb2c2872ceb887df" } Frame { msec: 1488 - hash: "afdf5d4d9e49a82a395afad6b3fe4f86" + hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" } Frame { msec: 1504 - hash: "afdf5d4d9e49a82a395afad6b3fe4f86" + hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" } Frame { msec: 1520 - hash: "afdf5d4d9e49a82a395afad6b3fe4f86" + hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" } Frame { msec: 1536 - hash: "afdf5d4d9e49a82a395afad6b3fe4f86" + hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" } Frame { msec: 1552 - hash: "bb434e586d40ae0ebcb89cde55a4ca11" + hash: "072a6c0e64853f57487845f2ff376c12" } Frame { msec: 1568 - hash: "bb434e586d40ae0ebcb89cde55a4ca11" + hash: "072a6c0e64853f57487845f2ff376c12" } Frame { msec: 1584 - hash: "bb434e586d40ae0ebcb89cde55a4ca11" + hash: "072a6c0e64853f57487845f2ff376c12" } Frame { msec: 1600 - hash: "bb434e586d40ae0ebcb89cde55a4ca11" + hash: "072a6c0e64853f57487845f2ff376c12" } Frame { msec: 1616 - hash: "bb434e586d40ae0ebcb89cde55a4ca11" + hash: "072a6c0e64853f57487845f2ff376c12" } Frame { msec: 1632 - hash: "771561a07b3eb2396231b17343da7125" + hash: "d4183aba9cd5607ea1ff1572c78d33cc" } Frame { msec: 1648 - hash: "771561a07b3eb2396231b17343da7125" + hash: "d4183aba9cd5607ea1ff1572c78d33cc" } Frame { msec: 1664 - hash: "771561a07b3eb2396231b17343da7125" + hash: "d4183aba9cd5607ea1ff1572c78d33cc" } Frame { msec: 1680 - hash: "771561a07b3eb2396231b17343da7125" + hash: "d4183aba9cd5607ea1ff1572c78d33cc" } Frame { msec: 1696 - hash: "771561a07b3eb2396231b17343da7125" + hash: "31cb8e151b34187f712b269b38a317a7" } Frame { msec: 1712 - hash: "771561a07b3eb2396231b17343da7125" + hash: "31cb8e151b34187f712b269b38a317a7" } Frame { msec: 1728 - hash: "d3d23db79c5f2a374b267bcda8919d1e" + hash: "31cb8e151b34187f712b269b38a317a7" } Frame { msec: 1744 - hash: "d3d23db79c5f2a374b267bcda8919d1e" + hash: "31cb8e151b34187f712b269b38a317a7" } Key { type: 6 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 } Frame { msec: 1760 - hash: "36a40dbdbb39122d30c26643e5924548" + hash: "31cb8e151b34187f712b269b38a317a7" } Frame { msec: 1776 - hash: "36a40dbdbb39122d30c26643e5924548" + hash: "e24ad0aed6a071d6da9f51af00c69300" } Frame { msec: 1792 - hash: "36a40dbdbb39122d30c26643e5924548" + hash: "e24ad0aed6a071d6da9f51af00c69300" } Frame { msec: 1808 - hash: "36a40dbdbb39122d30c26643e5924548" + hash: "e24ad0aed6a071d6da9f51af00c69300" } Frame { msec: 1824 - hash: "36a40dbdbb39122d30c26643e5924548" + hash: "e24ad0aed6a071d6da9f51af00c69300" } Frame { msec: 1840 - hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" + hash: "760eea420a5eb52ccd1f6a29d6701338" } Frame { msec: 1856 - hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" + hash: "760eea420a5eb52ccd1f6a29d6701338" } Frame { msec: 1872 - hash: "6a202f32d3d7a7c9edc97e55c2fe7aca" + hash: "760eea420a5eb52ccd1f6a29d6701338" } Frame { msec: 1888 - hash: "765b11a4fff9a7295440568899107159" + hash: "760eea420a5eb52ccd1f6a29d6701338" } Frame { msec: 1904 - hash: "765b11a4fff9a7295440568899107159" + hash: "760eea420a5eb52ccd1f6a29d6701338" } Frame { msec: 1920 - image: "elide2.1.png" + hash: "07cdcdb9b551750c4a742ee6dff9f3f9" } Frame { msec: 1936 - hash: "765b11a4fff9a7295440568899107159" + image: "elide2.2.png" } Frame { msec: 1952 - hash: "765b11a4fff9a7295440568899107159" + hash: "07cdcdb9b551750c4a742ee6dff9f3f9" } Frame { msec: 1968 - hash: "e2726e028d0a17a918a28d248a087d71" + hash: "07cdcdb9b551750c4a742ee6dff9f3f9" } Frame { msec: 1984 - hash: "e2726e028d0a17a918a28d248a087d71" + hash: "ec4dada16fb19fb4cf24367c9f25f161" } Frame { msec: 2000 - hash: "e2726e028d0a17a918a28d248a087d71" + hash: "ec4dada16fb19fb4cf24367c9f25f161" } Frame { msec: 2016 - hash: "e2726e028d0a17a918a28d248a087d71" + hash: "ec4dada16fb19fb4cf24367c9f25f161" } Frame { msec: 2032 - hash: "94243dc2a8013e86250c993103b2d789" + hash: "ec4dada16fb19fb4cf24367c9f25f161" } Frame { msec: 2048 - hash: "94243dc2a8013e86250c993103b2d789" + hash: "ec4dada16fb19fb4cf24367c9f25f161" } Frame { msec: 2064 - hash: "94243dc2a8013e86250c993103b2d789" + hash: "f5ef19dc69f8b6060056f7005f613ca3" } Frame { msec: 2080 - hash: "94243dc2a8013e86250c993103b2d789" + hash: "f5ef19dc69f8b6060056f7005f613ca3" } Frame { msec: 2096 - hash: "94243dc2a8013e86250c993103b2d789" + hash: "f5ef19dc69f8b6060056f7005f613ca3" } Frame { msec: 2112 - hash: "d8fdababa06e1cafa9047de16d5a07b5" + hash: "f5ef19dc69f8b6060056f7005f613ca3" } Frame { msec: 2128 - hash: "d8fdababa06e1cafa9047de16d5a07b5" + hash: "6bd00519ea14f0dd34d45de4deaaa65e" } Frame { msec: 2144 - hash: "d8fdababa06e1cafa9047de16d5a07b5" + hash: "6bd00519ea14f0dd34d45de4deaaa65e" } Frame { msec: 2160 - hash: "d8fdababa06e1cafa9047de16d5a07b5" + hash: "6bd00519ea14f0dd34d45de4deaaa65e" } Frame { msec: 2176 - hash: "d8fdababa06e1cafa9047de16d5a07b5" + hash: "6bd00519ea14f0dd34d45de4deaaa65e" } Frame { msec: 2192 - hash: "f31d3f99faff3289b38ec91a43108707" + hash: "6bd00519ea14f0dd34d45de4deaaa65e" } Frame { msec: 2208 - hash: "f31d3f99faff3289b38ec91a43108707" + hash: "1c3e491e889e408f705477f060103243" } Frame { msec: 2224 - hash: "f31d3f99faff3289b38ec91a43108707" + hash: "1c3e491e889e408f705477f060103243" } Frame { msec: 2240 - hash: "60468f768e70c91cd28dca9479ed7738" + hash: "1c3e491e889e408f705477f060103243" } Frame { msec: 2256 - hash: "60468f768e70c91cd28dca9479ed7738" + hash: "1c3e491e889e408f705477f060103243" } Frame { msec: 2272 - hash: "fd5e8714cdd406f5626682c15a6efa38" + hash: "80bc59211ffab64820e306e6eb13d2fc" } Frame { msec: 2288 - hash: "fd5e8714cdd406f5626682c15a6efa38" + hash: "80bc59211ffab64820e306e6eb13d2fc" } Frame { msec: 2304 - hash: "fd5e8714cdd406f5626682c15a6efa38" + hash: "80bc59211ffab64820e306e6eb13d2fc" } Frame { msec: 2320 - hash: "20f37569f7f3b374753b991b28d98e74" + hash: "80bc59211ffab64820e306e6eb13d2fc" } Frame { msec: 2336 - hash: "20f37569f7f3b374753b991b28d98e74" + hash: "80bc59211ffab64820e306e6eb13d2fc" } Frame { msec: 2352 - hash: "20f37569f7f3b374753b991b28d98e74" + hash: "7765c76dd2ef99e4d7286fcb3a172a07" } Frame { msec: 2368 - hash: "20f37569f7f3b374753b991b28d98e74" + hash: "7765c76dd2ef99e4d7286fcb3a172a07" } Frame { msec: 2384 - hash: "20f37569f7f3b374753b991b28d98e74" + hash: "7765c76dd2ef99e4d7286fcb3a172a07" } Frame { msec: 2400 - hash: "8ab72206d4ba87effd44844c67ab4d53" + hash: "7765c76dd2ef99e4d7286fcb3a172a07" } Frame { msec: 2416 - hash: "8ab72206d4ba87effd44844c67ab4d53" + hash: "7765c76dd2ef99e4d7286fcb3a172a07" } Frame { msec: 2432 - hash: "65fccdd3a8803ec1d70a12407366fb57" + hash: "8fedc4d5d4161922c1d9d50adcf67e4a" } Frame { msec: 2448 - hash: "65fccdd3a8803ec1d70a12407366fb57" + hash: "8fedc4d5d4161922c1d9d50adcf67e4a" } Frame { msec: 2464 - hash: "65fccdd3a8803ec1d70a12407366fb57" + hash: "8fedc4d5d4161922c1d9d50adcf67e4a" } Frame { msec: 2480 - hash: "65fccdd3a8803ec1d70a12407366fb57" + hash: "8fedc4d5d4161922c1d9d50adcf67e4a" } Frame { msec: 2496 - hash: "65fccdd3a8803ec1d70a12407366fb57" + hash: "4f26d7ab05e6d39a869be1259e33c739" } Frame { msec: 2512 - hash: "ea98cc56d2f402814d8c1b952c8bd9a0" + hash: "4f26d7ab05e6d39a869be1259e33c739" } Frame { msec: 2528 - hash: "ea98cc56d2f402814d8c1b952c8bd9a0" + hash: "4f26d7ab05e6d39a869be1259e33c739" } Frame { msec: 2544 - hash: "ea98cc56d2f402814d8c1b952c8bd9a0" + hash: "4f26d7ab05e6d39a869be1259e33c739" } Frame { msec: 2560 - hash: "ea98cc56d2f402814d8c1b952c8bd9a0" + hash: "d4ead42bcc2e283e513f1ab4f8a89f27" } Frame { msec: 2576 - hash: "6dd6532db6afba17d36930bfd71abb5d" + hash: "d4ead42bcc2e283e513f1ab4f8a89f27" } Frame { msec: 2592 - hash: "6dd6532db6afba17d36930bfd71abb5d" + hash: "d4ead42bcc2e283e513f1ab4f8a89f27" } Frame { msec: 2608 - hash: "6dd6532db6afba17d36930bfd71abb5d" + hash: "d4ead42bcc2e283e513f1ab4f8a89f27" } Frame { msec: 2624 - hash: "6dd6532db6afba17d36930bfd71abb5d" + hash: "d4ead42bcc2e283e513f1ab4f8a89f27" } Frame { msec: 2640 - hash: "6dd6532db6afba17d36930bfd71abb5d" + hash: "6d91b100f369381b24052e5a4466e24d" } Frame { msec: 2656 - hash: "70989ac02176a37beb2cf259cd2d9770" + hash: "6d91b100f369381b24052e5a4466e24d" } Frame { msec: 2672 - hash: "70989ac02176a37beb2cf259cd2d9770" + hash: "6d91b100f369381b24052e5a4466e24d" } Frame { msec: 2688 - hash: "70989ac02176a37beb2cf259cd2d9770" + hash: "6d91b100f369381b24052e5a4466e24d" } Frame { msec: 2704 - hash: "70989ac02176a37beb2cf259cd2d9770" + hash: "2d6082b41e3cfdc3be9c130311ac854a" } Frame { msec: 2720 - hash: "1c6d8786cb42afa2af611dec5ebdcda7" + hash: "2d6082b41e3cfdc3be9c130311ac854a" } Frame { msec: 2736 - hash: "1c6d8786cb42afa2af611dec5ebdcda7" + hash: "2d6082b41e3cfdc3be9c130311ac854a" } Frame { msec: 2752 - hash: "3e8215d2cb61404230284ddd0041a79c" + hash: "2d6082b41e3cfdc3be9c130311ac854a" } Frame { msec: 2768 - hash: "3e8215d2cb61404230284ddd0041a79c" + hash: "2d6082b41e3cfdc3be9c130311ac854a" } Frame { msec: 2784 - hash: "3e8215d2cb61404230284ddd0041a79c" + hash: "78732b58812f202768fa224aefce187d" } Frame { msec: 2800 - hash: "3e8215d2cb61404230284ddd0041a79c" + hash: "78732b58812f202768fa224aefce187d" } Frame { msec: 2816 - hash: "3e8215d2cb61404230284ddd0041a79c" + hash: "78732b58812f202768fa224aefce187d" } Frame { msec: 2832 - hash: "a4ed37665222950eab7fcb53dbe22bcf" + hash: "78732b58812f202768fa224aefce187d" } Frame { msec: 2848 - hash: "a4ed37665222950eab7fcb53dbe22bcf" + hash: "54d728d677cf3a07c4da7727a75e6c59" } Frame { msec: 2864 - hash: "a4ed37665222950eab7fcb53dbe22bcf" + hash: "54d728d677cf3a07c4da7727a75e6c59" } Frame { msec: 2880 - image: "elide2.2.png" + hash: "54d728d677cf3a07c4da7727a75e6c59" } Frame { msec: 2896 - hash: "a4ed37665222950eab7fcb53dbe22bcf" + image: "elide2.3.png" } Frame { msec: 2912 - hash: "a4ed37665222950eab7fcb53dbe22bcf" + hash: "54d728d677cf3a07c4da7727a75e6c59" } Frame { msec: 2928 - hash: "a7f26f5fbcc97f408974e4bc23fd0b70" + hash: "45ec3534077f6fa66d7710010cceb332" } Frame { msec: 2944 - hash: "a7f26f5fbcc97f408974e4bc23fd0b70" + hash: "45ec3534077f6fa66d7710010cceb332" } Frame { msec: 2960 - hash: "913478b8d5d05967efd1c83e80e773e2" + hash: "45ec3534077f6fa66d7710010cceb332" } Frame { msec: 2976 - hash: "913478b8d5d05967efd1c83e80e773e2" + hash: "45ec3534077f6fa66d7710010cceb332" } Frame { msec: 2992 - hash: "913478b8d5d05967efd1c83e80e773e2" + hash: "ef909728fa59292ffed1d047835439d6" } Frame { msec: 3008 - hash: "130749caf262b3055e7ac229b6b89548" + hash: "ef909728fa59292ffed1d047835439d6" } Frame { msec: 3024 - hash: "130749caf262b3055e7ac229b6b89548" + hash: "ef909728fa59292ffed1d047835439d6" } Frame { msec: 3040 - hash: "130749caf262b3055e7ac229b6b89548" + hash: "ef909728fa59292ffed1d047835439d6" } Frame { msec: 3056 - hash: "130749caf262b3055e7ac229b6b89548" + hash: "ef909728fa59292ffed1d047835439d6" } Frame { msec: 3072 - hash: "130749caf262b3055e7ac229b6b89548" + hash: "454741313d087e5d13ddeaf02663746f" } Frame { msec: 3088 - hash: "d7260d913c58065a671ff6b931bb2fb6" + hash: "454741313d087e5d13ddeaf02663746f" } Frame { msec: 3104 - hash: "d7260d913c58065a671ff6b931bb2fb6" + hash: "454741313d087e5d13ddeaf02663746f" } Frame { msec: 3120 - hash: "d7260d913c58065a671ff6b931bb2fb6" + hash: "454741313d087e5d13ddeaf02663746f" } Frame { msec: 3136 - hash: "d7260d913c58065a671ff6b931bb2fb6" + hash: "454741313d087e5d13ddeaf02663746f" } Frame { msec: 3152 - hash: "9059402dce5cb1813af8f7ebbd831bca" + hash: "02928f0a8f8f1011028114487b8dccf8" } Frame { msec: 3168 - hash: "9059402dce5cb1813af8f7ebbd831bca" + hash: "02928f0a8f8f1011028114487b8dccf8" } Frame { msec: 3184 - hash: "9059402dce5cb1813af8f7ebbd831bca" + hash: "02928f0a8f8f1011028114487b8dccf8" } Frame { msec: 3200 - hash: "80387fc8aedc0c490c689c3a1711fe9f" + hash: "02928f0a8f8f1011028114487b8dccf8" } Frame { msec: 3216 - hash: "80387fc8aedc0c490c689c3a1711fe9f" + hash: "e0fca67bb095c9891831cd9355b4880d" } Frame { msec: 3232 - hash: "80387fc8aedc0c490c689c3a1711fe9f" + hash: "e0fca67bb095c9891831cd9355b4880d" } Frame { msec: 3248 - hash: "f461bf58cbfd345a3f4e087cfcb0e9f0" + hash: "e0fca67bb095c9891831cd9355b4880d" } Frame { msec: 3264 - hash: "f461bf58cbfd345a3f4e087cfcb0e9f0" + hash: "e0fca67bb095c9891831cd9355b4880d" } Frame { msec: 3280 - hash: "d41a792b81cb891a91f2bff6dbee3bdd" + hash: "f5ae54931d953fc95cfbdbde1993bebe" } Frame { msec: 3296 - hash: "d41a792b81cb891a91f2bff6dbee3bdd" + hash: "f5ae54931d953fc95cfbdbde1993bebe" } Frame { msec: 3312 - hash: "d41a792b81cb891a91f2bff6dbee3bdd" + hash: "f5ae54931d953fc95cfbdbde1993bebe" } Frame { msec: 3328 - hash: "d41a792b81cb891a91f2bff6dbee3bdd" + hash: "f5ae54931d953fc95cfbdbde1993bebe" } Frame { msec: 3344 - hash: "d41a792b81cb891a91f2bff6dbee3bdd" + hash: "f5ae54931d953fc95cfbdbde1993bebe" } Frame { msec: 3360 - hash: "664ac430dd416e6d1ed7e001458202cf" + hash: "9afb0b2a185e2f825e9fad1c3644f6cb" } Frame { msec: 3376 - hash: "664ac430dd416e6d1ed7e001458202cf" + hash: "9afb0b2a185e2f825e9fad1c3644f6cb" } Frame { msec: 3392 - hash: "664ac430dd416e6d1ed7e001458202cf" + hash: "9afb0b2a185e2f825e9fad1c3644f6cb" } Frame { msec: 3408 - hash: "664ac430dd416e6d1ed7e001458202cf" + hash: "9afb0b2a185e2f825e9fad1c3644f6cb" } Frame { msec: 3424 - hash: "664ac430dd416e6d1ed7e001458202cf" + hash: "9afb0b2a185e2f825e9fad1c3644f6cb" } Frame { msec: 3440 - hash: "c7a9e47b613745858a76a57e1782b566" + hash: "f3f5a81d3b5f644a00cea6203f38994c" } Frame { msec: 3456 - hash: "c7a9e47b613745858a76a57e1782b566" + hash: "f3f5a81d3b5f644a00cea6203f38994c" } Frame { msec: 3472 - hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" + hash: "f3f5a81d3b5f644a00cea6203f38994c" } Frame { msec: 3488 - hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" + hash: "f3f5a81d3b5f644a00cea6203f38994c" } Frame { msec: 3504 - hash: "b90d46cbd9d7d1d82cb9abfbe27fc549" + hash: "bd9884712fd5afe67a3622c809bf4e76" } Frame { msec: 3520 - hash: "59c03ceae9b13576bd0e285234dfe264" + hash: "bd9884712fd5afe67a3622c809bf4e76" } Frame { msec: 3536 - hash: "59c03ceae9b13576bd0e285234dfe264" + hash: "bd9884712fd5afe67a3622c809bf4e76" } Frame { msec: 3552 - hash: "59c03ceae9b13576bd0e285234dfe264" + hash: "bd9884712fd5afe67a3622c809bf4e76" } Frame { msec: 3568 - hash: "59c03ceae9b13576bd0e285234dfe264" + hash: "c9324386954380a72ef4084d13e623b5" } Frame { msec: 3584 - hash: "59c03ceae9b13576bd0e285234dfe264" + hash: "c9324386954380a72ef4084d13e623b5" } Frame { msec: 3600 - hash: "b883d12eea2ec596cb6ee81f2d1db35f" + hash: "c9324386954380a72ef4084d13e623b5" } Frame { msec: 3616 - hash: "b883d12eea2ec596cb6ee81f2d1db35f" + hash: "c9324386954380a72ef4084d13e623b5" } Frame { msec: 3632 - hash: "b883d12eea2ec596cb6ee81f2d1db35f" + hash: "c9324386954380a72ef4084d13e623b5" } Frame { msec: 3648 - hash: "b883d12eea2ec596cb6ee81f2d1db35f" + hash: "6d05fd8e8690e44293af1809f359aa72" } Frame { msec: 3664 - hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" + hash: "6d05fd8e8690e44293af1809f359aa72" } Frame { msec: 3680 - hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" + hash: "6d05fd8e8690e44293af1809f359aa72" } Frame { msec: 3696 - hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" + hash: "6d05fd8e8690e44293af1809f359aa72" } Frame { msec: 3712 - hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" + hash: "6d05fd8e8690e44293af1809f359aa72" } Frame { msec: 3728 - hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0" + hash: "2d7350a79f5a68d3e3dfc994c6e002ed" } Frame { msec: 3744 - hash: "ee357c3850d0f328db859e7b790bed83" + hash: "2d7350a79f5a68d3e3dfc994c6e002ed" } Frame { msec: 3760 - hash: "ee357c3850d0f328db859e7b790bed83" + hash: "2d7350a79f5a68d3e3dfc994c6e002ed" } Frame { msec: 3776 - hash: "f706095272153c1e9fc4a4825ba54d91" + hash: "2d7350a79f5a68d3e3dfc994c6e002ed" } Frame { msec: 3792 - hash: "f706095272153c1e9fc4a4825ba54d91" + hash: "edb5d50f23a293a7791122fc159aaaa0" } Frame { msec: 3808 - hash: "34f4d03164469f99bb7bcb365041cf8e" + hash: "edb5d50f23a293a7791122fc159aaaa0" } Frame { msec: 3824 - hash: "34f4d03164469f99bb7bcb365041cf8e" + hash: "edb5d50f23a293a7791122fc159aaaa0" } Frame { msec: 3840 - image: "elide2.3.png" + hash: "edb5d50f23a293a7791122fc159aaaa0" } Frame { msec: 3856 - hash: "34f4d03164469f99bb7bcb365041cf8e" + image: "elide2.4.png" } Frame { msec: 3872 - hash: "34f4d03164469f99bb7bcb365041cf8e" + hash: "a863480fec9abf817752c5eb62a2ddf4" } Frame { msec: 3888 - hash: "97cb5f52e1a5e82a15542b7e5f772fba" + hash: "a863480fec9abf817752c5eb62a2ddf4" } Frame { msec: 3904 - hash: "97cb5f52e1a5e82a15542b7e5f772fba" + hash: "a863480fec9abf817752c5eb62a2ddf4" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png index 8caaf5f..e1d3b75 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png new file mode 100644 index 0000000..8013dc9 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml index 30df3fa..77a7b2f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml @@ -6,298 +6,298 @@ VisualTest { } Frame { msec: 16 - hash: "2e258ad7cb0a2cd7c6c47a0b0a9563c1" + image: "multilength.0.png" } Frame { msec: 32 - hash: "d818e0f4f1011a2a8f1d0d803fa18bc0" + hash: "ef2b4cc93e5bf5e64d3338921fe36336" } Frame { msec: 48 - hash: "44b37be97bbd1f0e26d81f76d9643e51" + hash: "3ddbd1a53a36b0f8b36d87e742f3b1bd" } Frame { msec: 64 - hash: "3079a5cf6b8277ae3e1b29ae09d04adc" + hash: "f7acfdaf29a3d7bd179b30db784ca01b" } Frame { msec: 80 - hash: "ba899e6f18abb7105f915cef4e60f1e1" + hash: "b5277d02ed63180e845c60e1dd4da7d0" } Frame { msec: 96 - hash: "6d2d2b3dc8afa60e32a39449ba90f78d" + hash: "a7964577d77943d5a62c02ea1e689eb7" } Frame { msec: 112 - hash: "965af350a8fc20c7bcffb370802bc9d9" + hash: "fc597a07209bfea49227ec491b033af1" } Frame { msec: 128 - hash: "8e088db1ff0eb9f5c28268dee929928c" + hash: "429a7dd5a23a5012f1985bcddd27ba0c" } Frame { msec: 144 - hash: "a0ba6c6bd1e491778294346eeabd8138" + hash: "fbf845e137e0b389babdcd71a95c3060" } Frame { msec: 160 - hash: "068a018a5c017cb76ebf3721e0acdb35" + hash: "1d1272df3a53cb9860d23be3343a143e" } Frame { msec: 176 - hash: "efa65cae0a4d027c2ec508deecef8aa5" + hash: "cef05f6564b21fd2cbd02f6def604c0b" } Frame { msec: 192 - hash: "9c224e97aa56c6b203a48fb689d72c9a" + hash: "be0ca54bc7aa23c2b9c56e3a0444197a" } Frame { msec: 208 - hash: "4f78af1e82a2dd46bab2d237d4f574e5" + hash: "5372a7052d10b8c6c2204efdc88c2f48" } Frame { msec: 224 - hash: "7d022c13e3ef07ca0b6618ae8865dbf1" + hash: "43b775c558843c1334e86ca4fcf07ae2" } Frame { msec: 240 - hash: "1dc2ecf6cb92cd7d9e467de0049a8598" + hash: "10daf71511454ef4db3692a19ecbcbaa" } Frame { msec: 256 - hash: "262174926ac657c3cd788e2383b5842b" + hash: "5c545ecb0ddfaa5d6cde266be6fae35c" } Frame { msec: 272 - hash: "984c40aaa927f9e9e73ad228f057d3d9" + hash: "1a3c05b189c3adf87710eeb03296aec2" } Frame { msec: 288 - hash: "0c74101beaeb0a59c1e6b1bf751ca71d" + hash: "de2c6f4d3bf4d245e45e47a743808f5d" } Frame { msec: 304 - hash: "1c2dd6a6675014255e83c2ae734d717b" + hash: "7c71dcbd8e2be19ac2d090ab3e012a62" } Frame { msec: 320 - hash: "f6ac3e9e82a9a710f500f8053b6030ac" + hash: "3bd42257fe4a5d941a8755e66db94870" } Frame { msec: 336 - hash: "9676fdc060e5784e96534a962992c024" + hash: "d52f57a1f289d2c697fd1db2086a4df3" } Frame { msec: 352 - hash: "c46634183e4bde82419bf757bd674a72" + hash: "5d9e22ca6b6f8e4805a49fcf9c6a4dd6" } Frame { msec: 368 - hash: "d04d082f4a1602a308da7f373cbb4094" + hash: "cbafada44b434ac7fe64fdebef7a816e" } Frame { msec: 384 - hash: "a4178c9ffbb74f3f221fc63bee26ca35" + hash: "4ac900c005cfedb9e3367a4612334cc1" } Frame { msec: 400 - hash: "0667b13789a501995b2846f7d93fb973" + hash: "3dbe30edac497ca316bf39e55ff9580a" } Frame { msec: 416 - hash: "fda46bf0beecbb4326b2fc6f6926f0a7" + hash: "e892891c063172d513f4f8c0a0b2644f" } Frame { msec: 432 - hash: "85cbdea027d76dee1dad376679a40a22" + hash: "7c214a442c8f37d22f74343fdb7f7faa" } Frame { msec: 448 - hash: "0fd56200749ea5882e1bd714e9803d44" + hash: "c4461c6c26eb9689e640149b7755bf14" } Frame { msec: 464 - hash: "10bf5c477f64f442990716b7eec8fd70" + hash: "e7be611f007716a80698558d0600f5b6" } Frame { msec: 480 - hash: "7cbd8ba3f09c3d00051cd33006381afb" + hash: "5a3abaa7b36fcd7e2279318671597386" } Frame { msec: 496 - hash: "dca10161836025808cddce9fd93f2412" + hash: "2dba1fcba5bdce948fa56ffc02a7f80c" } Frame { msec: 512 - hash: "b949ec6303ccaafc203066c7f9b33ef2" + hash: "55043bcce83e4f8899b1a692fe30fa67" } Frame { msec: 528 - hash: "853c521bad75c08c0dfe3a00bed01136" + hash: "f92df1fb28a7da39ed907dd2bc177ab8" } Frame { msec: 544 - hash: "dd76c440dc8cfcb7305409483d21d65d" + hash: "7dcf90cd5f81999359ed389c7050d934" } Frame { msec: 560 - hash: "c9b70db4b94e4b0cc855102f43b8e731" + hash: "021014366809103b76bd5d472c43b062" } Frame { msec: 576 - hash: "d196057b8aa1e11ec9cf11032b57ca03" + hash: "fff5b2c8d63083d132c0f106fad84fa1" } Frame { msec: 592 - hash: "0fae715746a8a340a8f3c4428cf96783" + hash: "ab3a6a6c646d31be97884484a6647330" } Frame { msec: 608 - hash: "dd2e89d00ce85b167fbc822fedbfb449" + hash: "d46a168f89d94a32496b75ee5d3794e4" } Frame { msec: 624 - hash: "a5228adf745f580364eafcbbdd994178" + hash: "f7b62e86595a4d2c7f5a2cd52e0938b9" } Frame { msec: 640 - hash: "f750f588ee00805bc3757940f95de9ae" + hash: "df95a29a101889c50537cfb1b027f9a6" } Frame { msec: 656 - hash: "55a79fefc2bf6d42b442e68150e3a9bc" + hash: "4c6691ef37222260dce72868ae809d68" } Frame { msec: 672 - hash: "7b932e7585e66cc7cd31f858ce78a6e1" + hash: "ad816534dcf446a1456894ff2b1afa33" } Frame { msec: 688 - hash: "10f204c59a5bff0c49dfc7691c35cef8" + hash: "bfa9f9f833f38aedf766e061f3a18c48" } Frame { msec: 704 - hash: "cf901c80729eb0b83b46777e727d43e2" + hash: "f4a6786e9db58cf3fd3f3b896d3cf84f" } Frame { msec: 720 - hash: "f6bf6e11ef6a71d7e746fae1d0a44531" + hash: "e51e8b766e5d4a0f061dc6885fcf8eb3" } Frame { msec: 736 - hash: "4a8795196ece8c0ef18319008dbc0f2f" + hash: "eab6d261429c36c4e37005f37b7823d5" } Frame { msec: 752 - hash: "44d32f0b5377ad3b08928413f20e95e1" + hash: "3cc5db209a98daef06127bae53b1929d" } Frame { msec: 768 - hash: "9e0dd160a465573cbac831a14e36ba6d" + hash: "230cd6e6ca18a921a21379dd85e24822" } Frame { msec: 784 - hash: "fb2e2522cee569632d9682aa04e7ca08" + hash: "e3a877e8f01bf17fe6ea8b9fbb780f14" } Frame { msec: 800 - hash: "71b0e8d7671cee10f4f71a80abcde7ec" + hash: "a19f504a81409dea775481f21f992ba6" } Frame { msec: 816 - hash: "4affee92d320d6eca9995ddd8989627f" + hash: "e77cc3ab14551638e704a1493189d5d1" } Frame { msec: 832 - hash: "b3e5e26a34cd491d3cd23f4e611266e2" + hash: "613bdf9d32358ab0db310ae1e2246d52" } Frame { msec: 848 - hash: "aa185efe8d0c4c61d4df55266830cfd8" + hash: "d4fab0193f567cce4ad1e1cf6b156ce5" } Frame { msec: 864 - hash: "19c01ead1135f84b4b3a32583815fd10" + hash: "03ce3083411d10b14ac0bb85b22bfbd1" } Frame { msec: 880 - hash: "a231a722225c26ff764f16570d1e6beb" + hash: "4be10fb14abf82705d8071cf75956ece" } Frame { msec: 896 - hash: "466fce12d10bd4b714d4ead14d1c5839" + hash: "4c1f150fb5ba1194ad198eb32f705af6" } Frame { msec: 912 - hash: "158650554c8467ed7d93c3c11177e041" + hash: "5ddfd98c8a49eefe08ae33d0c0ea52ff" } Frame { msec: 928 - hash: "ac16910bc816ca6c76a78160dda8380d" + hash: "f2018d16f38e113c9477c19431e3d1e4" } Frame { msec: 944 - hash: "23ac6eeb0c9bd48dbc844b1263a18cbb" + hash: "9fe6406d65978dba74716f1ba02bdf76" } Frame { msec: 960 - image: "multilength.0.png" + hash: "265d92edca113f465e624079c266b213" } Frame { msec: 976 - hash: "3da0b9d963113cfb58152bac1c757065" + image: "multilength.1.png" } Frame { msec: 992 - hash: "e1a33345ee1372069d9282406f1e5605" + hash: "6beb60f7645be5f1d07449610b5e13b0" } Frame { msec: 1008 - hash: "da872c570bccf17e88ac7db1d6d076ae" + hash: "55c34cb290732a1fa94b5037477fd882" } Frame { msec: 1024 - hash: "6feea54c6a7f9895001efeff177f9be9" + hash: "4d6ed8044e3ac5da61cf61f4d08c5a19" } Frame { msec: 1040 - hash: "09049b33ca46a2fc2d06855e29ae66bf" + hash: "83657cfa447060a01d5fbdb890ad3fb9" } Frame { msec: 1056 - hash: "cd96d789f57ac1d425942416337174f1" + hash: "b04b6cb7e5e464ecee15a2c9803a857f" } Frame { msec: 1072 - hash: "0a763dd626e27ad14963aecfb8d7673c" + hash: "ea4f1707e49527f6cae0a3df1b75137b" } Frame { msec: 1088 - hash: "3d81f68bb7aac95b66b0cd0defbb3657" + hash: "ae4893aca919be2d89f1107185b5fe9a" } Frame { msec: 1104 - hash: "469b862006f99dfefcca803bc49287e3" + hash: "d991c469947a94ffcfb63716226fa912" } Frame { msec: 1120 - hash: "c3f698102bd46231430ab9e8029b8192" + hash: "df63c1dba0399d1fe5e7b9c9c794b598" } Frame { msec: 1136 - hash: "421a9b4848a59281aea73c08a7219a33" + hash: "305d263f68b4ccd78bffccd887870f97" } Frame { msec: 1152 - hash: "0066eaa302678a4be35dca0c3ed33b1c" + hash: "f4d1f7245b519d623defdc12e76285d2" } Frame { msec: 1168 - hash: "4cceb05bfeb231189b66f1fbdfaeccd3" + hash: "5a47e6498ddf8a02cb1df7a3510bac37" } Frame { msec: 1184 - hash: "ccf229cdd6fde7ef663791d27a008bee" + hash: "358b9b6be7f8379815d8ee828eed3e43" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png index cd436b5..591c1ef 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png index e47b479..dc90e0d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png index 0d3c672..c787029 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png index ba833a2..fdd64ac 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png new file mode 100644 index 0000000..1286e54 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml new file mode 100644 index 0000000..afae3f8 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml @@ -0,0 +1,11 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "richtext2.0.png" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png index f41c165..adbdfa7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png index 539e4df..d3fbdc6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png index 47ceaac..9a96d46 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png index e24a453..2026aca 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png index ecf8335..c435029 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png index 3d8709f..70f273d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml index ff5db41..0f3bd2c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml @@ -6,87 +6,87 @@ VisualTest { } Frame { msec: 16 - hash: "c1bb09480464b7813bc10b0093d14745" + image: "cursorDelegate.0.png" } Frame { msec: 32 - hash: "9d0e449506ce93052216b7a952af3dea" + hash: "b742ebe441dde1f30dab6d19954a9e8c" } Frame { msec: 48 - hash: "52641f9d6dfba8bf2b94aa37ade140d1" + hash: "d3be942cfb93c4a5d5aa906410125d02" } Frame { msec: 64 - hash: "7610775f69a461d5487e8bc3db6b6e1f" + hash: "062574e74354b104db2ee6d3c3af5802" } Frame { msec: 80 - hash: "afe0c3fdcb498f1f6b877c5d808b2555" + hash: "575dd420067e4ebe5733eb4e35a447ab" } Frame { msec: 96 - hash: "97dabf3984492d2f868b36c3e7bfce50" + hash: "4213f35c4cd233a08d98ba0380b7ab0a" } Frame { msec: 112 - hash: "869624c2ae63b0a447401a955a6fefb1" + hash: "505e740aacf4ca7e6ad24367ddad8678" } Frame { msec: 128 - hash: "7031966f014d4acd5b00c46c89f61403" + hash: "007e76fb247e11a442802c7cfb4e6a24" } Frame { msec: 144 - hash: "bd5395e7e0aa0d50cb30504f9961c954" + hash: "5cf6cb0afffb791da1c4d0fe00cf6326" } Frame { msec: 160 - hash: "a7142c3c1eb9c934e0b258c163fcdfec" + hash: "aff4097bd39c87c5d1459d99f314dade" } Frame { msec: 176 - hash: "373c57edb812db59f40710305d80e9e9" + hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6" } Frame { msec: 192 - hash: "78b16507899c3c8de04b55389ea0ad49" + hash: "4bf8e82220ea0d0c4298d5374e149de2" } Frame { msec: 208 - hash: "b0fd95dc2ac09a1cbd67ad0f86682666" + hash: "938a6eea45c4412e847a8700172d80ac" } Frame { msec: 224 - hash: "5f073a4a89413b6a6c5d6ff52717bb2f" + hash: "6502416042993d05dd514119512ed61f" } Frame { msec: 240 - hash: "82e61a4d3f58ee5104893e254a77f13e" + hash: "5d6702b9475e69bda2ed38f6e2d583d9" } Frame { msec: 256 - hash: "a8fe05178e6339454d57575692fa3df3" + hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894" } Frame { msec: 272 - hash: "192f80add5f612b07dcb8d69f2161648" + hash: "c0249d07bcf25af69bf929b4d5ac00a3" } Frame { msec: 288 - hash: "cfd85885f59ea80b0b0152446a829fec" + hash: "efe333c2b8cccea0bd7135484049db06" } Frame { msec: 304 - hash: "a7295dcc92f80a5f343bf05076a03748" + hash: "57e49e9094691a204f7507b0231352b3" } Frame { msec: 320 - hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" + hash: "d0a45bd3cfc5e4e6f9a48534c768daba" } Frame { msec: 336 - hash: "419c538908d0226ff4485f1094eaa08e" + hash: "6960ab817c67a61af31cc187efe65016" } Key { type: 6 @@ -98,27 +98,27 @@ VisualTest { } Frame { msec: 352 - hash: "8afe64448d42419f97ca207487b3b0f8" + hash: "3b0d483ff765f36a196411967b6dfd70" } Frame { msec: 368 - hash: "86091218d2d066d8f95a460426266369" + hash: "559713749d65246b185c0c91eb7ad39e" } Frame { msec: 384 - hash: "fc45978cac92b6cdeeecc2dd4c29aa53" + hash: "9aea32722fd4f8b0cde3c06c61cecde6" } Frame { msec: 400 - hash: "03a90ae5cbe68cc210e303c78a14e065" + hash: "25dfa32ce92b6044f5ea68411ab5de5b" } Frame { msec: 416 - hash: "15603a997aa02afb688aa74cd930f3b4" + hash: "dab689ed2bbe663df309548e615e8621" } Frame { msec: 432 - hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" + hash: "26ad44cef380ff9f64c12180fb54c695" } Key { type: 6 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 448 - hash: "4dbdc16538cbbf1a87c6a54e09e02b16" + hash: "5e8bbcd46b5692e66963387b80971e90" } Frame { msec: 464 - hash: "2011ee59d2ec4bb0ae0d63727f091648" + hash: "747df5357daa951fbedeadf909f9dbf3" } Frame { msec: 480 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 496 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Key { type: 6 @@ -154,35 +154,35 @@ VisualTest { } Frame { msec: 512 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 528 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 544 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 560 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 576 - hash: "b4205f141a7a6b646cf641ba922d588b" + hash: "1684711d2c492de2093357168b8726c6" } Frame { msec: 592 - hash: "94c3adf5da700bb63ed6eaf0adf8d037" + hash: "6d960ca89faec6e3d81f78911b9b5ecf" } Frame { msec: 608 - hash: "62c4757a2e26341655e27417f85ba6d8" + hash: "1fdd91b57f5832d5c4d797d150892156" } Frame { msec: 624 - hash: "9de2ce48334b088c0a0960a581f43a36" + hash: "4e0f1ec936cacf3ab6fbc7899a6bc92d" } Key { type: 7 @@ -194,15 +194,15 @@ VisualTest { } Frame { msec: 640 - hash: "9ca827d4812521d1590ca6e7117bd788" + hash: "9e67145b58051fd7dc4a18ee0e6a72ad" } Frame { msec: 656 - hash: "66f65cd7215ea89e60d8f60337fffe97" + hash: "14dfb4b356ec851275ddd8e93f04e2d2" } Frame { msec: 672 - hash: "05caae5e0d092c4d0595286aa4baa6a0" + hash: "e9b8f691ad62d10877aacb94f98ea308" } Key { type: 6 @@ -214,31 +214,31 @@ VisualTest { } Frame { msec: 688 - hash: "2282153f3ae493aa6ad5377b12d88043" + hash: "a44b5f63ec1f98b6bc34e95214c9d79e" } Frame { msec: 704 - hash: "aee2503a5d4ec61795b0486da5c53867" + hash: "6bc0e035c90b74de024d379388fd7014" } Frame { msec: 720 - hash: "f564e1ae90bc6b1ea4bc84f1729eb487" + hash: "61d8f417f7ca5cba2e98a7a7427ea635" } Frame { msec: 736 - hash: "f5c70adef5725a0574b63dd5ab7d7b12" + hash: "f50adb10f55bcd4c2eb0955f6e1ff78e" } Frame { msec: 752 - hash: "74ed3230417c69b0dc82ce9cfe4b6cd0" + hash: "9e160aefac79a9804f6cb8622e45ba71" } Frame { msec: 768 - hash: "374270279bcc00167d2b63bf9a658785" + hash: "6555a0bd60dbbad66283fe37b2f0c362" } Frame { msec: 784 - hash: "68445a2b5470e44baf7af95efc20ba33" + hash: "0cacc38d86ebf497d31b01556b8a5924" } Key { type: 7 @@ -250,63 +250,63 @@ VisualTest { } Frame { msec: 800 - hash: "5add6c9527edf6bbdb3a79b8a524db70" + hash: "b2fe1d5cb5e0a5f07d84ff7a494ae07a" } Frame { msec: 816 - hash: "01a96c8407fa2c0f9e7a822249ac9adc" + hash: "2c6dbd777bba27b481a8a6ef34d213f9" } Frame { msec: 832 - hash: "6b9af295d8f2fb5ba8d9c234596d0a88" + hash: "989e53620edc6b9b0990545459e7f787" } Frame { msec: 848 - hash: "3837442e90c2a1534e21d21bfc3b46e1" + hash: "a89686a7802da3fd07a265a5814255f4" } Frame { msec: 864 - hash: "afd7d2494dae8e7ef40a165ccc627313" + hash: "9f707497eb0c224c8b0a3bba1533217a" } Frame { msec: 880 - hash: "6e7058d540b26d3c5f15804f2f93b835" + hash: "29df155c0b75de8e1bd6361372a51797" } Frame { msec: 896 - hash: "ffa489a15db741d8b835d998336bc1b3" + hash: "fb7cbeb1e3689cc38acf7a02d671a955" } Frame { msec: 912 - hash: "5a0308d1d2a6a36e16ddb312294fcbf8" + hash: "9045ada282ec37b1681cef89dfcc8f67" } Frame { msec: 928 - hash: "bd56ed24908c7e8ec4e5ebc75a19ca86" + hash: "b3816b225eaf5ab49bb31f86ecdd52cb" } Frame { msec: 944 - hash: "7bd56b12087226100da27776f8943427" + hash: "0956fccb8e1bf2c218a9e39947846aaa" } Frame { msec: 960 - image: "cursorDelegate.0.png" + hash: "01f4ba2e0b4eb018c620efa5e92ec9fe" } Frame { msec: 976 - hash: "f48a56350bba266c2f19deb46d39e174" + image: "cursorDelegate.1.png" } Frame { msec: 992 - hash: "9587bb118f2eb2bf8bb3cfc40ed18310" + hash: "c19ec2d067d30a6d42056c9799b0c0c3" } Frame { msec: 1008 - hash: "0f9e9622427ebaf85369b3013ae9aaf0" + hash: "43a9d066887a89372136619ae8eec100" } Frame { msec: 1024 - hash: "0f9e9622427ebaf85369b3013ae9aaf0" + hash: "43a9d066887a89372136619ae8eec100" } Key { type: 7 @@ -318,39 +318,39 @@ VisualTest { } Frame { msec: 1040 - hash: "9587bb118f2eb2bf8bb3cfc40ed18310" + hash: "c19ec2d067d30a6d42056c9799b0c0c3" } Frame { msec: 1056 - hash: "f48a56350bba266c2f19deb46d39e174" + hash: "8303d8b19e6e5b249aaf2ffbb6d29f91" } Frame { msec: 1072 - hash: "8234f16d07e76aeedb6ca14d622453cb" + hash: "01f4ba2e0b4eb018c620efa5e92ec9fe" } Frame { msec: 1088 - hash: "7bd56b12087226100da27776f8943427" + hash: "0956fccb8e1bf2c218a9e39947846aaa" } Frame { msec: 1104 - hash: "bd56ed24908c7e8ec4e5ebc75a19ca86" + hash: "b3816b225eaf5ab49bb31f86ecdd52cb" } Frame { msec: 1120 - hash: "5a0308d1d2a6a36e16ddb312294fcbf8" + hash: "9045ada282ec37b1681cef89dfcc8f67" } Frame { msec: 1136 - hash: "ffa489a15db741d8b835d998336bc1b3" + hash: "fb7cbeb1e3689cc38acf7a02d671a955" } Frame { msec: 1152 - hash: "6e7058d540b26d3c5f15804f2f93b835" + hash: "29df155c0b75de8e1bd6361372a51797" } Frame { msec: 1168 - hash: "afd7d2494dae8e7ef40a165ccc627313" + hash: "9f707497eb0c224c8b0a3bba1533217a" } Key { type: 6 @@ -362,31 +362,31 @@ VisualTest { } Frame { msec: 1184 - hash: "1d5c9458d568df773dbff4e333e14de0" + hash: "9f712a688504fff9719b38c067b32c50" } Frame { msec: 1200 - hash: "8eef242d89b7e2eff7678030f9fd808e" + hash: "24f1467e3be5f4d0509800bef97f4401" } Frame { msec: 1216 - hash: "97dc6ebbf64a19f5026c02ea4c79d63b" + hash: "d56e5fd86addad3bc53417b82ff68829" } Frame { msec: 1232 - hash: "52d2135428c3c2bf85f0fa7c2ba01a25" + hash: "f1c60934ef284840e61fd46c758dd14b" } Frame { msec: 1248 - hash: "c713bd1d1ab2df81292020e6e822546c" + hash: "7be9fc54278572116f9bd9be8f6994a4" } Frame { msec: 1264 - hash: "0c61ff34510168e324c53786720dd953" + hash: "0e0ea7ca1b8479d62ae81fb53a1ec264" } Frame { msec: 1280 - hash: "ba1488f2d9d4482cdf41c40af7642030" + hash: "f8b19dbaeec469896a081687d80a2ac4" } Key { type: 7 @@ -398,95 +398,95 @@ VisualTest { } Frame { msec: 1296 - hash: "91d2da369579bb72641d4e7e7cd696f5" + hash: "a28665925ec121a2bf01733e0a20e18b" } Frame { msec: 1312 - hash: "1cf1d30d6def868a60f434fe84c23c47" + hash: "baa0c601f3d84e344847dcb7f3bd18cf" } Frame { msec: 1328 - hash: "ba5b3005af3c44caaf7272cbb56e60da" + hash: "a80d59a1e5af45bc799c19200a3c44ec" } Frame { msec: 1344 - hash: "116ab7576b5e45e6009920854ff87f39" + hash: "2a6f833e2fd2930c8ec49016809d8cf6" } Frame { msec: 1360 - hash: "294c76d6f63c230af666b0b86e0c9844" + hash: "efdc2daad00aaec2c39541261d6d1a98" } Frame { msec: 1376 - hash: "c721a5b17b1eb4a063fa3b727d13ba62" + hash: "65b75f2a074d4ac5d84fb762d1762231" } Frame { msec: 1392 - hash: "a98bd750b67a0ef8831c9c66a0b06a28" + hash: "2a170e51a83e902d2699501877225ee3" } Frame { msec: 1408 - hash: "7739509b0f5e62207ba62262d8822388" + hash: "1e4c78e279ff4ab7a875e4d67f68f8ca" } Frame { msec: 1424 - hash: "62d70a7e3ce290c52d37090bf899377c" + hash: "fd515cf3ec7b987e0e36c02f1da5b8a7" } Frame { msec: 1440 - hash: "3f3c1137c02e14796c3a4537337d1dd8" + hash: "54126910ea7a303ea3e7726309d8bf39" } Frame { msec: 1456 - hash: "4997a45af699c1face114c72a9ce067d" + hash: "89263867df0cfa623f80e1578532d98d" } Frame { msec: 1472 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1488 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1504 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1520 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1536 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1552 - hash: "093cce71722904a32b030478f3af49bb" + hash: "1bf04aafab1177182eec9a0ff459cd7b" } Frame { msec: 1568 - hash: "a4810a97e51259350bb1543dffc156af" + hash: "c824a8bbf60514c20713b1fa583451b2" } Frame { msec: 1584 - hash: "838871072acbefc1c8c488f47312da9b" + hash: "f6282cd20d7f3f64415a0a24df578964" } Frame { msec: 1600 - hash: "8cfe8847729878519669caa8b702d910" + hash: "a4633c7dc825f20a7ada2079712f7b5e" } Frame { msec: 1616 - hash: "a2fd8e049d03b87a306bb5b81e3f7311" + hash: "240c839fc986573523b30567afe05623" } Frame { msec: 1632 - hash: "29bd4d5e36cb6b232f513b6bb0c00b28" + hash: "9e3098ea355a80e7e439f3cdecd15b77" } Frame { msec: 1648 - hash: "9637f14efb2e355bfe886d7c5f2a8d38" + hash: "d8ec7fd807f345509703f4ecf94b583d" } Key { type: 6 @@ -498,35 +498,35 @@ VisualTest { } Frame { msec: 1664 - hash: "0365fa8845c3c1e53ef35d22423eb973" + hash: "5b6e0bedeca1784610081762850813a1" } Frame { msec: 1680 - hash: "bf88d5d2cd2ff062c1cc8a391a238b1d" + hash: "13a596d7aefa3c8ce61660dd5ce27627" } Frame { msec: 1696 - hash: "46b22f33eb80f013e44da11153441864" + hash: "295bbee587f2fdbadab7aa4e3900b6e0" } Frame { msec: 1712 - hash: "05ae42e3a0296a569dec147c76be273d" + hash: "645da4001b1489b12e0bb5dd1b5c114b" } Frame { msec: 1728 - hash: "1a8cc65973d08bb949f7a71b0bb8be1a" + hash: "8e7e4f5b8eb437ab92e466b1d79aee01" } Frame { msec: 1744 - hash: "ca3bde8cd8de81c4210fcfd000fe0f5e" + hash: "1a7ec33aa8a19a36a7fc99c3040e427a" } Frame { msec: 1760 - hash: "e06d104d1ed451eea4c1d9bdae9d10f4" + hash: "85f6c7d9f86910e7cceeaf9efc375355" } Frame { msec: 1776 - hash: "c95153ae401ad8a2e839905841c074f3" + hash: "8e54b0699d681cfbfc3b605b010c6b76" } Key { type: 6 @@ -538,35 +538,35 @@ VisualTest { } Frame { msec: 1792 - hash: "82e61a4d3f58ee5104893e254a77f13e" + hash: "5d6702b9475e69bda2ed38f6e2d583d9" } Frame { msec: 1808 - hash: "5f073a4a89413b6a6c5d6ff52717bb2f" + hash: "6502416042993d05dd514119512ed61f" } Frame { msec: 1824 - hash: "b0fd95dc2ac09a1cbd67ad0f86682666" + hash: "938a6eea45c4412e847a8700172d80ac" } Frame { msec: 1840 - hash: "78b16507899c3c8de04b55389ea0ad49" + hash: "4bf8e82220ea0d0c4298d5374e149de2" } Frame { msec: 1856 - hash: "373c57edb812db59f40710305d80e9e9" + hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6" } Frame { msec: 1872 - hash: "a7142c3c1eb9c934e0b258c163fcdfec" + hash: "aff4097bd39c87c5d1459d99f314dade" } Frame { msec: 1888 - hash: "bd5395e7e0aa0d50cb30504f9961c954" + hash: "5cf6cb0afffb791da1c4d0fe00cf6326" } Frame { msec: 1904 - hash: "7031966f014d4acd5b00c46c89f61403" + hash: "007e76fb247e11a442802c7cfb4e6a24" } Key { type: 7 @@ -578,83 +578,83 @@ VisualTest { } Frame { msec: 1920 - image: "cursorDelegate.1.png" + hash: "505e740aacf4ca7e6ad24367ddad8678" } Frame { msec: 1936 - hash: "97dabf3984492d2f868b36c3e7bfce50" + image: "cursorDelegate.2.png" } Frame { msec: 1952 - hash: "afe0c3fdcb498f1f6b877c5d808b2555" + hash: "575dd420067e4ebe5733eb4e35a447ab" } Frame { msec: 1968 - hash: "7610775f69a461d5487e8bc3db6b6e1f" + hash: "062574e74354b104db2ee6d3c3af5802" } Frame { msec: 1984 - hash: "52641f9d6dfba8bf2b94aa37ade140d1" + hash: "d3be942cfb93c4a5d5aa906410125d02" } Frame { msec: 2000 - hash: "9d0e449506ce93052216b7a952af3dea" + hash: "b742ebe441dde1f30dab6d19954a9e8c" } Frame { msec: 2016 - hash: "c1bb09480464b7813bc10b0093d14745" + hash: "bbe3a292c59e2f7ae6b8877f6736c96e" } Frame { msec: 2032 - hash: "9d0e449506ce93052216b7a952af3dea" + hash: "b742ebe441dde1f30dab6d19954a9e8c" } Frame { msec: 2048 - hash: "52641f9d6dfba8bf2b94aa37ade140d1" + hash: "d3be942cfb93c4a5d5aa906410125d02" } Frame { msec: 2064 - hash: "7610775f69a461d5487e8bc3db6b6e1f" + hash: "062574e74354b104db2ee6d3c3af5802" } Frame { msec: 2080 - hash: "afe0c3fdcb498f1f6b877c5d808b2555" + hash: "575dd420067e4ebe5733eb4e35a447ab" } Frame { msec: 2096 - hash: "97dabf3984492d2f868b36c3e7bfce50" + hash: "4213f35c4cd233a08d98ba0380b7ab0a" } Frame { msec: 2112 - hash: "869624c2ae63b0a447401a955a6fefb1" + hash: "505e740aacf4ca7e6ad24367ddad8678" } Frame { msec: 2128 - hash: "7031966f014d4acd5b00c46c89f61403" + hash: "007e76fb247e11a442802c7cfb4e6a24" } Frame { msec: 2144 - hash: "bd5395e7e0aa0d50cb30504f9961c954" + hash: "5cf6cb0afffb791da1c4d0fe00cf6326" } Frame { msec: 2160 - hash: "a7142c3c1eb9c934e0b258c163fcdfec" + hash: "aff4097bd39c87c5d1459d99f314dade" } Frame { msec: 2176 - hash: "373c57edb812db59f40710305d80e9e9" + hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6" } Frame { msec: 2192 - hash: "78b16507899c3c8de04b55389ea0ad49" + hash: "4bf8e82220ea0d0c4298d5374e149de2" } Frame { msec: 2208 - hash: "b0fd95dc2ac09a1cbd67ad0f86682666" + hash: "938a6eea45c4412e847a8700172d80ac" } Frame { msec: 2224 - hash: "5f073a4a89413b6a6c5d6ff52717bb2f" + hash: "6502416042993d05dd514119512ed61f" } Key { type: 7 @@ -666,35 +666,35 @@ VisualTest { } Frame { msec: 2240 - hash: "82e61a4d3f58ee5104893e254a77f13e" + hash: "5d6702b9475e69bda2ed38f6e2d583d9" } Frame { msec: 2256 - hash: "a8fe05178e6339454d57575692fa3df3" + hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894" } Frame { msec: 2272 - hash: "192f80add5f612b07dcb8d69f2161648" + hash: "c0249d07bcf25af69bf929b4d5ac00a3" } Frame { msec: 2288 - hash: "cfd85885f59ea80b0b0152446a829fec" + hash: "efe333c2b8cccea0bd7135484049db06" } Frame { msec: 2304 - hash: "a7295dcc92f80a5f343bf05076a03748" + hash: "57e49e9094691a204f7507b0231352b3" } Frame { msec: 2320 - hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" + hash: "d0a45bd3cfc5e4e6f9a48534c768daba" } Frame { msec: 2336 - hash: "419c538908d0226ff4485f1094eaa08e" + hash: "6960ab817c67a61af31cc187efe65016" } Frame { msec: 2352 - hash: "8afe64448d42419f97ca207487b3b0f8" + hash: "3b0d483ff765f36a196411967b6dfd70" } Key { type: 6 @@ -706,35 +706,35 @@ VisualTest { } Frame { msec: 2368 - hash: "86091218d2d066d8f95a460426266369" + hash: "559713749d65246b185c0c91eb7ad39e" } Frame { msec: 2384 - hash: "fc45978cac92b6cdeeecc2dd4c29aa53" + hash: "9aea32722fd4f8b0cde3c06c61cecde6" } Frame { msec: 2400 - hash: "03a90ae5cbe68cc210e303c78a14e065" + hash: "25dfa32ce92b6044f5ea68411ab5de5b" } Frame { msec: 2416 - hash: "15603a997aa02afb688aa74cd930f3b4" + hash: "dab689ed2bbe663df309548e615e8621" } Frame { msec: 2432 - hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" + hash: "26ad44cef380ff9f64c12180fb54c695" } Frame { msec: 2448 - hash: "4dbdc16538cbbf1a87c6a54e09e02b16" + hash: "5e8bbcd46b5692e66963387b80971e90" } Frame { msec: 2464 - hash: "2011ee59d2ec4bb0ae0d63727f091648" + hash: "747df5357daa951fbedeadf909f9dbf3" } Frame { msec: 2480 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Key { type: 7 @@ -746,95 +746,95 @@ VisualTest { } Frame { msec: 2496 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 2512 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 2528 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 2544 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 2560 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 2576 - hash: "02996bef06c74f34cf8be4cf4d1392d5" + hash: "1568d4b93d2a284c46f23a0cb17acc24" } Frame { msec: 2592 - hash: "2d8cb2d213ce22132ba63a829c07f768" + hash: "0665a6cfc09981cd8a7ffd0d02e6fbdc" } Frame { msec: 2608 - hash: "0a16c282a18fdc657ea48fb208dea494" + hash: "49892aa44c8e3584239d245a7ca98af3" } Frame { msec: 2624 - hash: "86baec52ccb8ae818439c637c5be1514" + hash: "c9def393bb5d6c447c45b127d32b5e50" } Frame { msec: 2640 - hash: "72e2415581ba2a96b8f23cf8f5985afb" + hash: "679d94007b33197ce7decb4df6e8343c" } Frame { msec: 2656 - hash: "7776d964b2b5f80bac51a29d298a067f" + hash: "817987bcd9f1147ba047333b42ed289d" } Frame { msec: 2672 - hash: "3b5d0a9f961c2102a4118a8e2d2793ae" + hash: "fdd9331015c289b8e33b094999b11dce" } Frame { msec: 2688 - hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4" + hash: "e4fa13ba2770c0d390945ee4505fea9b" } Frame { msec: 2704 - hash: "d30e5d7c27b72ec95c41a87741061a3f" + hash: "69965c88d2273acf680af243610efcf3" } Frame { msec: 2720 - hash: "0374cc41cdb6528e212f678e0e049f2b" + hash: "6cbeb6787a0a7fb7f654f877e41eed57" } Frame { msec: 2736 - hash: "c80bc90c90b02d1d42176f16fa992f27" + hash: "e7528c074b3c65afe3873a3cdf96f041" } Frame { msec: 2752 - hash: "70182707dbdf87a2c8db556f030bec17" + hash: "c06c72abe46087f0db87a84fdcbcf601" } Frame { msec: 2768 - hash: "0c6c0c3d27d87128d65b40789714dd6b" + hash: "b6840f1d7cf2caed17d763b782553071" } Frame { msec: 2784 - hash: "46e1debee4ca606492a36de6191f4594" + hash: "71fdb77c4133f37180d581e4b1fe9c83" } Frame { msec: 2800 - hash: "f327bb2ea12b2baffc0a98d44a0ded16" + hash: "f5e2075ed86f146e0162ae4f0a9c6b90" } Frame { msec: 2816 - hash: "15bc04b65bde5e8ca69b6a1f88647c16" + hash: "5e76b741f49bd279b9f62ae3f474e5b5" } Frame { msec: 2832 - hash: "27156c3309835ec20a02877f1188e14a" + hash: "28c8003699352c3c9563556939d49cd8" } Frame { msec: 2848 - hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" + hash: "15ab751c8463326c870dc9ee1af3c1d7" } Key { type: 6 @@ -846,35 +846,35 @@ VisualTest { } Frame { msec: 2864 - hash: "c5569c3c06bcf01b7e69e7f7ad6203ef" + hash: "6035ef1252d4f28b965b0bf4771540e4" } Frame { msec: 2880 - image: "cursorDelegate.2.png" + hash: "7c79170b07db90ca94f5642f3c0d3998" } Frame { msec: 2896 - hash: "5d1c41e371b1a95426882b3991383b6b" + image: "cursorDelegate.3.png" } Frame { msec: 2912 - hash: "4b9581a767fc1c94451780c044baf003" + hash: "3b4d1f5e1506c851887c86883eb1a6ac" } Frame { msec: 2928 - hash: "39978ba9bb1a535d7735228c650add38" + hash: "5aff09b0e9078ca6d4ed93694d1fa6f9" } Frame { msec: 2944 - hash: "1a2afe394227dcf2da118559e2e58fd7" + hash: "16813ebf88f881a4cebf75a2325dc064" } Frame { msec: 2960 - hash: "2f6bdb7af9bf9334231180b6113b125f" + hash: "5b901505bb1ab80cd4d5bc85b73ae8ad" } Frame { msec: 2976 - hash: "85017ca5ca286830e2745abf2f1f963a" + hash: "04c7f2e959c31bf6d3e7bea25d27eb87" } Key { type: 7 @@ -886,63 +886,63 @@ VisualTest { } Frame { msec: 2992 - hash: "3760b42a25e332c6df49bd92109dae98" + hash: "408bb423b93cb48afb97a7744848fc5e" } Frame { msec: 3008 - hash: "7c0347f97f9e4d7fcf47a90b336d264a" + hash: "1a58d66b4d42736eea49a602923a0941" } Frame { msec: 3024 - hash: "7c0347f97f9e4d7fcf47a90b336d264a" + hash: "1a58d66b4d42736eea49a602923a0941" } Frame { msec: 3040 - hash: "3760b42a25e332c6df49bd92109dae98" + hash: "408bb423b93cb48afb97a7744848fc5e" } Frame { msec: 3056 - hash: "85017ca5ca286830e2745abf2f1f963a" + hash: "04c7f2e959c31bf6d3e7bea25d27eb87" } Frame { msec: 3072 - hash: "2f6bdb7af9bf9334231180b6113b125f" + hash: "5b901505bb1ab80cd4d5bc85b73ae8ad" } Frame { msec: 3088 - hash: "1a2afe394227dcf2da118559e2e58fd7" + hash: "16813ebf88f881a4cebf75a2325dc064" } Frame { msec: 3104 - hash: "39978ba9bb1a535d7735228c650add38" + hash: "5aff09b0e9078ca6d4ed93694d1fa6f9" } Frame { msec: 3120 - hash: "4b9581a767fc1c94451780c044baf003" + hash: "3b4d1f5e1506c851887c86883eb1a6ac" } Frame { msec: 3136 - hash: "5d1c41e371b1a95426882b3991383b6b" + hash: "6a0a21ed890b475ce506714cc0501381" } Frame { msec: 3152 - hash: "73c771b964becb418289e0674571eb6f" + hash: "7c79170b07db90ca94f5642f3c0d3998" } Frame { msec: 3168 - hash: "c5569c3c06bcf01b7e69e7f7ad6203ef" + hash: "6035ef1252d4f28b965b0bf4771540e4" } Frame { msec: 3184 - hash: "7c55078e04b56c9aba7d227917323021" + hash: "9529b5b70b76541ec82be173deedadfb" } Frame { msec: 3200 - hash: "01c6b78b296c00e4597ae1bd36a65f3a" + hash: "174bbd347422c46923d6a5831cb5cd94" } Frame { msec: 3216 - hash: "67e9271f71b2d6d9eb2e230953db06c5" + hash: "1eb95daf505b817161f1a251cdde1b3c" } Key { type: 6 @@ -954,31 +954,31 @@ VisualTest { } Frame { msec: 3232 - hash: "642a6f4d7b3f467263b8e033578927af" + hash: "10f59fadaa27f78b7a1fb25d3a30adf7" } Frame { msec: 3248 - hash: "9f000f97b33427860cb5daeb259c72ea" + hash: "b87417c77b43bdbfdc3d8293c9a23216" } Frame { msec: 3264 - hash: "d74e3f977b5decb89dda46ea608a933a" + hash: "64345c713d61638bcc32f277208f2665" } Frame { msec: 3280 - hash: "f4e446cd96a3eb1a0df83cf032e7a0b2" + hash: "753dbe02fa95ee2b1387b98d7d456dcf" } Frame { msec: 3296 - hash: "abe715855a79a8ced43000884c4bf04b" + hash: "fce9a58aaf8d5cadbb029194317dcae3" } Frame { msec: 3312 - hash: "29fd5c17b9a169c1850aa538b4006084" + hash: "367083bd88443558002601acbc355b1a" } Frame { msec: 3328 - hash: "cefdcaebb9c319ac358b0d7fc9424327" + hash: "8e6ffccf321fa30faec432a4b4138967" } Key { type: 7 @@ -990,103 +990,103 @@ VisualTest { } Frame { msec: 3344 - hash: "85bfa23957bb5cd947e0819ffa442ea3" + hash: "4dd4e0dafeed0fc11790145d39f7c85f" } Frame { msec: 3360 - hash: "48f18d9d12331dc8725ea9e4b7f79823" + hash: "d612765c6b43035ea4e4683f968a18d3" } Frame { msec: 3376 - hash: "63cde59ffbbe2b9087ca228733de18dd" + hash: "fa77d4d8d339b78e5a28dcf69336c116" } Frame { msec: 3392 - hash: "73f5d4594f23ff4aac5e42aee00dce81" + hash: "34cf572a432bdd6dcfcc4fdfa032a800" } Frame { msec: 3408 - hash: "51a1b8e79d209643d55d4cecc6a70ed0" + hash: "150b5a2f2e916b7023764c481c768492" } Frame { msec: 3424 - hash: "7f2ae476246b23d79997a2545723ff62" + hash: "fbc93f511d6f3093c2ecf624a2c63749" } Frame { msec: 3440 - hash: "996da2eff9302908a55308dbcc8fb3c2" + hash: "f9e0bd08b722c16493a8886a19920dda" } Frame { msec: 3456 - hash: "264f34128dfe563126b9f187c65df61e" + hash: "f499f4b3017c88c63f0a2035ad527a0e" } Frame { msec: 3472 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3488 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3504 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3520 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3536 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3552 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 3568 - hash: "70d6b73499c36138bee63e07afb0b186" + hash: "68d331f508b43e756d6e30ba9b60f9aa" } Frame { msec: 3584 - hash: "66500c2cc3d69b9fb48dc46e384aca6d" + hash: "c9147c159aebb7aa51d4bac28f96cb57" } Frame { msec: 3600 - hash: "6ccc70f6120acb53152b71bcf95514ca" + hash: "0636b7c5cc215882c60b50f62133c715" } Frame { msec: 3616 - hash: "5c10e6b0e541fe913b589601a55ea6ce" + hash: "10b52296e40380a915f7538d21d321a4" } Frame { msec: 3632 - hash: "2c62584e4c09c1d22f9016aa6fa74e10" + hash: "9c56e2c5e04e8767b70d357558e179de" } Frame { msec: 3648 - hash: "fd8f53e36a86ae22deb4f7af5aa1eb81" + hash: "0b1538af23c78cc779174df9fd01f60b" } Frame { msec: 3664 - hash: "e33226eb0e81a64bed7bcdb50e99cd13" + hash: "1632c7df93f1a735236eaa2464e75ba6" } Frame { msec: 3680 - hash: "a7053a2b7bc9f4749c290bace6b55634" + hash: "a08e8b921e61c79d57c0bc4fa5e79914" } Frame { msec: 3696 - hash: "782cb4e647e849ac7299d41f04bc89e3" + hash: "8220951034b6f1a5755bedd53b947b4a" } Frame { msec: 3712 - hash: "0f7d04fe594ae027364a7c2b570c5a27" + hash: "f4c18c333796ff10218fa9145781ea7f" } Frame { msec: 3728 - hash: "dfb00adcdc2f68bfb691bce47845b0e7" + hash: "7547d3bb0f9c4a53396cfe0252436395" } Key { type: 6 @@ -1098,31 +1098,31 @@ VisualTest { } Frame { msec: 3744 - hash: "cfd85885f59ea80b0b0152446a829fec" + hash: "efe333c2b8cccea0bd7135484049db06" } Frame { msec: 3760 - hash: "192f80add5f612b07dcb8d69f2161648" + hash: "c0249d07bcf25af69bf929b4d5ac00a3" } Frame { msec: 3776 - hash: "a8fe05178e6339454d57575692fa3df3" + hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894" } Frame { msec: 3792 - hash: "82e61a4d3f58ee5104893e254a77f13e" + hash: "5d6702b9475e69bda2ed38f6e2d583d9" } Frame { msec: 3808 - hash: "5f073a4a89413b6a6c5d6ff52717bb2f" + hash: "6502416042993d05dd514119512ed61f" } Frame { msec: 3824 - hash: "b0fd95dc2ac09a1cbd67ad0f86682666" + hash: "938a6eea45c4412e847a8700172d80ac" } Frame { msec: 3840 - image: "cursorDelegate.3.png" + hash: "4bf8e82220ea0d0c4298d5374e149de2" } Key { type: 7 @@ -1134,59 +1134,59 @@ VisualTest { } Frame { msec: 3856 - hash: "373c57edb812db59f40710305d80e9e9" + image: "cursorDelegate.4.png" } Frame { msec: 3872 - hash: "a7142c3c1eb9c934e0b258c163fcdfec" + hash: "aff4097bd39c87c5d1459d99f314dade" } Frame { msec: 3888 - hash: "bd5395e7e0aa0d50cb30504f9961c954" + hash: "5cf6cb0afffb791da1c4d0fe00cf6326" } Frame { msec: 3904 - hash: "7031966f014d4acd5b00c46c89f61403" + hash: "007e76fb247e11a442802c7cfb4e6a24" } Frame { msec: 3920 - hash: "869624c2ae63b0a447401a955a6fefb1" + hash: "505e740aacf4ca7e6ad24367ddad8678" } Frame { msec: 3936 - hash: "97dabf3984492d2f868b36c3e7bfce50" + hash: "4213f35c4cd233a08d98ba0380b7ab0a" } Frame { msec: 3952 - hash: "afe0c3fdcb498f1f6b877c5d808b2555" + hash: "575dd420067e4ebe5733eb4e35a447ab" } Frame { msec: 3968 - hash: "7610775f69a461d5487e8bc3db6b6e1f" + hash: "062574e74354b104db2ee6d3c3af5802" } Frame { msec: 3984 - hash: "52641f9d6dfba8bf2b94aa37ade140d1" + hash: "d3be942cfb93c4a5d5aa906410125d02" } Frame { msec: 4000 - hash: "9d0e449506ce93052216b7a952af3dea" + hash: "b742ebe441dde1f30dab6d19954a9e8c" } Frame { msec: 4016 - hash: "c1bb09480464b7813bc10b0093d14745" + hash: "bbe3a292c59e2f7ae6b8877f6736c96e" } Frame { msec: 4032 - hash: "9d0e449506ce93052216b7a952af3dea" + hash: "b742ebe441dde1f30dab6d19954a9e8c" } Frame { msec: 4048 - hash: "52641f9d6dfba8bf2b94aa37ade140d1" + hash: "d3be942cfb93c4a5d5aa906410125d02" } Frame { msec: 4064 - hash: "7610775f69a461d5487e8bc3db6b6e1f" + hash: "062574e74354b104db2ee6d3c3af5802" } Key { type: 7 @@ -1198,302 +1198,302 @@ VisualTest { } Frame { msec: 4080 - hash: "afe0c3fdcb498f1f6b877c5d808b2555" + hash: "575dd420067e4ebe5733eb4e35a447ab" } Frame { msec: 4096 - hash: "97dabf3984492d2f868b36c3e7bfce50" + hash: "4213f35c4cd233a08d98ba0380b7ab0a" } Frame { msec: 4112 - hash: "869624c2ae63b0a447401a955a6fefb1" + hash: "505e740aacf4ca7e6ad24367ddad8678" } Frame { msec: 4128 - hash: "7031966f014d4acd5b00c46c89f61403" + hash: "007e76fb247e11a442802c7cfb4e6a24" } Frame { msec: 4144 - hash: "bd5395e7e0aa0d50cb30504f9961c954" + hash: "5cf6cb0afffb791da1c4d0fe00cf6326" } Frame { msec: 4160 - hash: "a7142c3c1eb9c934e0b258c163fcdfec" + hash: "aff4097bd39c87c5d1459d99f314dade" } Frame { msec: 4176 - hash: "373c57edb812db59f40710305d80e9e9" + hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6" } Frame { msec: 4192 - hash: "78b16507899c3c8de04b55389ea0ad49" + hash: "4bf8e82220ea0d0c4298d5374e149de2" } Frame { msec: 4208 - hash: "b0fd95dc2ac09a1cbd67ad0f86682666" + hash: "938a6eea45c4412e847a8700172d80ac" } Frame { msec: 4224 - hash: "5f073a4a89413b6a6c5d6ff52717bb2f" + hash: "6502416042993d05dd514119512ed61f" } Frame { msec: 4240 - hash: "82e61a4d3f58ee5104893e254a77f13e" + hash: "5d6702b9475e69bda2ed38f6e2d583d9" } Frame { msec: 4256 - hash: "a8fe05178e6339454d57575692fa3df3" + hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894" } Frame { msec: 4272 - hash: "192f80add5f612b07dcb8d69f2161648" + hash: "c0249d07bcf25af69bf929b4d5ac00a3" } Frame { msec: 4288 - hash: "cfd85885f59ea80b0b0152446a829fec" + hash: "efe333c2b8cccea0bd7135484049db06" } Frame { msec: 4304 - hash: "a7295dcc92f80a5f343bf05076a03748" + hash: "57e49e9094691a204f7507b0231352b3" } Frame { msec: 4320 - hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57" + hash: "d0a45bd3cfc5e4e6f9a48534c768daba" } Frame { msec: 4336 - hash: "419c538908d0226ff4485f1094eaa08e" + hash: "6960ab817c67a61af31cc187efe65016" } Frame { msec: 4352 - hash: "8afe64448d42419f97ca207487b3b0f8" + hash: "3b0d483ff765f36a196411967b6dfd70" } Frame { msec: 4368 - hash: "86091218d2d066d8f95a460426266369" + hash: "559713749d65246b185c0c91eb7ad39e" } Frame { msec: 4384 - hash: "fc45978cac92b6cdeeecc2dd4c29aa53" + hash: "9aea32722fd4f8b0cde3c06c61cecde6" } Frame { msec: 4400 - hash: "03a90ae5cbe68cc210e303c78a14e065" + hash: "25dfa32ce92b6044f5ea68411ab5de5b" } Frame { msec: 4416 - hash: "15603a997aa02afb688aa74cd930f3b4" + hash: "dab689ed2bbe663df309548e615e8621" } Frame { msec: 4432 - hash: "90bf6b2bf89e1440f0c4d1044c1bd22c" + hash: "26ad44cef380ff9f64c12180fb54c695" } Frame { msec: 4448 - hash: "4dbdc16538cbbf1a87c6a54e09e02b16" + hash: "5e8bbcd46b5692e66963387b80971e90" } Frame { msec: 4464 - hash: "2011ee59d2ec4bb0ae0d63727f091648" + hash: "747df5357daa951fbedeadf909f9dbf3" } Frame { msec: 4480 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4496 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4512 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4528 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4544 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4560 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4576 - hash: "02996bef06c74f34cf8be4cf4d1392d5" + hash: "1568d4b93d2a284c46f23a0cb17acc24" } Frame { msec: 4592 - hash: "2d8cb2d213ce22132ba63a829c07f768" + hash: "0665a6cfc09981cd8a7ffd0d02e6fbdc" } Frame { msec: 4608 - hash: "0a16c282a18fdc657ea48fb208dea494" + hash: "49892aa44c8e3584239d245a7ca98af3" } Frame { msec: 4624 - hash: "86baec52ccb8ae818439c637c5be1514" + hash: "c9def393bb5d6c447c45b127d32b5e50" } Frame { msec: 4640 - hash: "72e2415581ba2a96b8f23cf8f5985afb" + hash: "679d94007b33197ce7decb4df6e8343c" } Frame { msec: 4656 - hash: "7776d964b2b5f80bac51a29d298a067f" + hash: "817987bcd9f1147ba047333b42ed289d" } Frame { msec: 4672 - hash: "3b5d0a9f961c2102a4118a8e2d2793ae" + hash: "fdd9331015c289b8e33b094999b11dce" } Frame { msec: 4688 - hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4" + hash: "e4fa13ba2770c0d390945ee4505fea9b" } Frame { msec: 4704 - hash: "d30e5d7c27b72ec95c41a87741061a3f" + hash: "69965c88d2273acf680af243610efcf3" } Frame { msec: 4720 - hash: "0374cc41cdb6528e212f678e0e049f2b" + hash: "6cbeb6787a0a7fb7f654f877e41eed57" } Frame { msec: 4736 - hash: "c80bc90c90b02d1d42176f16fa992f27" + hash: "e7528c074b3c65afe3873a3cdf96f041" } Frame { msec: 4752 - hash: "70182707dbdf87a2c8db556f030bec17" + hash: "c06c72abe46087f0db87a84fdcbcf601" } Frame { msec: 4768 - hash: "0c6c0c3d27d87128d65b40789714dd6b" + hash: "b6840f1d7cf2caed17d763b782553071" } Frame { msec: 4784 - hash: "46e1debee4ca606492a36de6191f4594" + hash: "71fdb77c4133f37180d581e4b1fe9c83" } Frame { msec: 4800 - image: "cursorDelegate.4.png" + hash: "f5e2075ed86f146e0162ae4f0a9c6b90" } Frame { msec: 4816 - hash: "15bc04b65bde5e8ca69b6a1f88647c16" + image: "cursorDelegate.5.png" } Frame { msec: 4832 - hash: "27156c3309835ec20a02877f1188e14a" + hash: "28c8003699352c3c9563556939d49cd8" } Frame { msec: 4848 - hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" + hash: "15ab751c8463326c870dc9ee1af3c1d7" } Frame { msec: 4864 - hash: "35f243da98f9934d5ac0a7cc1fde73ef" + hash: "b745b2aee5ec623163ea22614b8ab54b" } Frame { msec: 4880 - hash: "42d393d75e0c1d5aea0e1694190e4507" + hash: "b3f3b8e325dcd56b696eab7228c3db09" } Frame { msec: 4896 - hash: "0ec47c6c74efd66d339d9be13148e334" + hash: "12ba65e0f70a670b2832235391d3ed05" } Frame { msec: 4912 - hash: "2e7597e8d03f0a05cf96fe7e2a3ee540" + hash: "9dfac03113b662a63bddcac9c7ae8f64" } Frame { msec: 4928 - hash: "093c9e5ac431284de7e81e082868c5db" + hash: "085bbc44102ae0d1d62531f6b6dbda98" } Frame { msec: 4944 - hash: "60ae71c4a6c905f47b2b457d9167153b" + hash: "007887862e2234f4c308778ecac5e16b" } Frame { msec: 4960 - hash: "e4be7897b1b30ab916a53df2998282d7" + hash: "61e8e34755db1fb99b44830676ad95ad" } Frame { msec: 4976 - hash: "c082b97799dffdb73ad65b2920507e9c" + hash: "48c8b1b0d549f7b6d85a81803b9fe31d" } Frame { msec: 4992 - hash: "aadaab0547a4f15c533589b531f39504" + hash: "834cf51445f88394e33a3f3f0a5569f4" } Frame { msec: 5008 - hash: "847f0a1faf094e73d533692fa47a030a" + hash: "a43224f77583bb7235895506f49daee6" } Frame { msec: 5024 - hash: "847f0a1faf094e73d533692fa47a030a" + hash: "a43224f77583bb7235895506f49daee6" } Frame { msec: 5040 - hash: "aadaab0547a4f15c533589b531f39504" + hash: "834cf51445f88394e33a3f3f0a5569f4" } Frame { msec: 5056 - hash: "c082b97799dffdb73ad65b2920507e9c" + hash: "48c8b1b0d549f7b6d85a81803b9fe31d" } Frame { msec: 5072 - hash: "e4be7897b1b30ab916a53df2998282d7" + hash: "61e8e34755db1fb99b44830676ad95ad" } Frame { msec: 5088 - hash: "60ae71c4a6c905f47b2b457d9167153b" + hash: "007887862e2234f4c308778ecac5e16b" } Frame { msec: 5104 - hash: "093c9e5ac431284de7e81e082868c5db" + hash: "085bbc44102ae0d1d62531f6b6dbda98" } Frame { msec: 5120 - hash: "2e7597e8d03f0a05cf96fe7e2a3ee540" + hash: "9dfac03113b662a63bddcac9c7ae8f64" } Frame { msec: 5136 - hash: "0ec47c6c74efd66d339d9be13148e334" + hash: "12ba65e0f70a670b2832235391d3ed05" } Frame { msec: 5152 - hash: "42d393d75e0c1d5aea0e1694190e4507" + hash: "b3f3b8e325dcd56b696eab7228c3db09" } Frame { msec: 5168 - hash: "35f243da98f9934d5ac0a7cc1fde73ef" + hash: "b745b2aee5ec623163ea22614b8ab54b" } Frame { msec: 5184 - hash: "a163019c9feff0f4d1bb4aaedcd2ecd4" + hash: "15ab751c8463326c870dc9ee1af3c1d7" } Frame { msec: 5200 - hash: "27156c3309835ec20a02877f1188e14a" + hash: "28c8003699352c3c9563556939d49cd8" } Frame { msec: 5216 - hash: "15bc04b65bde5e8ca69b6a1f88647c16" + hash: "5e76b741f49bd279b9f62ae3f474e5b5" } Frame { msec: 5232 - hash: "f327bb2ea12b2baffc0a98d44a0ded16" + hash: "f5e2075ed86f146e0162ae4f0a9c6b90" } Frame { msec: 5248 - hash: "46e1debee4ca606492a36de6191f4594" + hash: "71fdb77c4133f37180d581e4b1fe9c83" } Frame { msec: 5264 - hash: "0c6c0c3d27d87128d65b40789714dd6b" + hash: "b6840f1d7cf2caed17d763b782553071" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png index dfd30f6..852fc66 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png index 9d4eb9b..4b283d0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png index 968517e..342fe05 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png index eb62c19..fb4a774 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png new file mode 100644 index 0000000..852fc66 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml index a7df61f..d7b26cb 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml @@ -6,99 +6,99 @@ VisualTest { } Frame { msec: 16 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + image: "qt-669.0.png" } Frame { msec: 32 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 48 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 64 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 80 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 96 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 112 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 128 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 144 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 160 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 176 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 192 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 208 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 224 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 240 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 256 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 272 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 288 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 304 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 320 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 336 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 352 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 368 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 384 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Key { type: 6 @@ -110,15 +110,15 @@ VisualTest { } Frame { msec: 400 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 416 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 432 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Key { type: 7 @@ -130,27 +130,27 @@ VisualTest { } Frame { msec: 448 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 464 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 480 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 496 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 512 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 528 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Key { type: 6 @@ -162,15 +162,15 @@ VisualTest { } Frame { msec: 544 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 560 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 576 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Key { type: 7 @@ -182,27 +182,27 @@ VisualTest { } Frame { msec: 592 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 608 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 624 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 640 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 656 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 672 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Key { type: 6 @@ -214,19 +214,19 @@ VisualTest { } Frame { msec: 688 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 704 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 720 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 736 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Key { type: 7 @@ -238,23 +238,23 @@ VisualTest { } Frame { msec: 752 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 768 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 784 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 800 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 816 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Key { type: 6 @@ -266,19 +266,19 @@ VisualTest { } Frame { msec: 832 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 848 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 864 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 880 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Key { type: 7 @@ -290,19 +290,19 @@ VisualTest { } Frame { msec: 896 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 912 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 928 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 944 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Key { type: 6 @@ -314,19 +314,19 @@ VisualTest { } Frame { msec: 960 - image: "qt-669.0.png" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 976 - hash: "0873eebe3bbcb864644811670642028e" + image: "qt-669.1.png" } Frame { msec: 992 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 1008 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Key { type: 7 @@ -338,23 +338,23 @@ VisualTest { } Frame { msec: 1024 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 1040 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 1056 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 1072 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 1088 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 1104 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1120 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1136 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Key { type: 7 @@ -386,23 +386,23 @@ VisualTest { } Frame { msec: 1152 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1168 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1184 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1200 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 1216 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Key { type: 6 @@ -414,19 +414,19 @@ VisualTest { } Frame { msec: 1232 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1248 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1264 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1280 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Key { type: 7 @@ -438,19 +438,19 @@ VisualTest { } Frame { msec: 1296 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1312 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1328 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 1344 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Key { type: 6 @@ -462,19 +462,19 @@ VisualTest { } Frame { msec: 1360 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1376 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1392 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1408 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Key { type: 7 @@ -486,23 +486,23 @@ VisualTest { } Frame { msec: 1424 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1440 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1456 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1472 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1488 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Key { type: 6 @@ -514,15 +514,15 @@ VisualTest { } Frame { msec: 1504 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1520 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1536 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Key { type: 7 @@ -534,79 +534,79 @@ VisualTest { } Frame { msec: 1552 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1568 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1584 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1600 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1616 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1632 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1648 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1664 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1680 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1696 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1712 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1728 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1744 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1760 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1776 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1792 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1808 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1824 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Frame { msec: 1840 - hash: "ab021c71945620eba0b0cd70c7cffe5d" + hash: "389d0ac399e709482600181b4869be43" } Key { type: 6 @@ -618,39 +618,39 @@ VisualTest { } Frame { msec: 1856 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1872 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1888 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1904 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1920 - image: "qt-669.1.png" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1936 - hash: "2ce295d30754b14d889795d2192fef41" + image: "qt-669.2.png" } Frame { msec: 1952 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1968 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 1984 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Key { type: 7 @@ -662,23 +662,23 @@ VisualTest { } Frame { msec: 2000 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 2016 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 2032 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 2048 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Frame { msec: 2064 - hash: "2ce295d30754b14d889795d2192fef41" + hash: "9ec7c9965d3ce810553b1182b746d148" } Key { type: 6 @@ -690,23 +690,23 @@ VisualTest { } Frame { msec: 2080 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2096 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2112 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2128 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2144 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Key { type: 7 @@ -718,23 +718,23 @@ VisualTest { } Frame { msec: 2160 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2176 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2192 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2208 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Frame { msec: 2224 - hash: "22bdd816325b5466ca937cf2535a3ef8" + hash: "fca9d1748195f0d4388694baf901c498" } Key { type: 6 @@ -746,11 +746,11 @@ VisualTest { } Frame { msec: 2240 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 2256 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Key { type: 7 @@ -762,23 +762,23 @@ VisualTest { } Frame { msec: 2272 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 2288 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 2304 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 2320 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Frame { msec: 2336 - hash: "a88ac2f56d3d75a277b0855e2baeda33" + hash: "f531e8dd89482e3d7c501d0b3a8b3392" } Key { type: 6 @@ -790,15 +790,15 @@ VisualTest { } Frame { msec: 2352 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2368 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2384 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Key { type: 7 @@ -810,55 +810,55 @@ VisualTest { } Frame { msec: 2400 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2416 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2432 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2448 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2464 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2480 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2496 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2512 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2528 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2544 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2560 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2576 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Frame { msec: 2592 - hash: "0873eebe3bbcb864644811670642028e" + hash: "a719560bf7912aa6cf4e8e5bfc13cb06" } Key { type: 6 @@ -870,23 +870,23 @@ VisualTest { } Frame { msec: 2608 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2624 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2640 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2656 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2672 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Key { type: 7 @@ -898,23 +898,23 @@ VisualTest { } Frame { msec: 2688 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2704 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2720 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2736 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Frame { msec: 2752 - hash: "94d3da7909c84467c62deb2861104d21" + hash: "86e1ba72951c0c193bfd2cd2162c500e" } Key { type: 6 @@ -926,15 +926,15 @@ VisualTest { } Frame { msec: 2768 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 2784 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 2800 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Key { type: 7 @@ -946,19 +946,19 @@ VisualTest { } Frame { msec: 2816 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 2832 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 2848 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Frame { msec: 2864 - hash: "5a7abe3d30f7dc66c2cda37b03ff339f" + hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f" } Key { type: 6 @@ -970,19 +970,19 @@ VisualTest { } Frame { msec: 2880 - image: "qt-669.2.png" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 2896 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + image: "qt-669.3.png" } Frame { msec: 2912 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 2928 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Key { type: 7 @@ -994,23 +994,23 @@ VisualTest { } Frame { msec: 2944 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 2960 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 2976 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 2992 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Frame { msec: 3008 - hash: "ddf97bfd6216415dd2a56871f19c2d49" + hash: "e2a49d72741ba08c258bb70d3a13c7f6" } Key { type: 6 @@ -1022,23 +1022,23 @@ VisualTest { } Frame { msec: 3024 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3040 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3056 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3072 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3088 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Key { type: 7 @@ -1050,155 +1050,155 @@ VisualTest { } Frame { msec: 3104 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3120 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3136 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3152 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3168 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3184 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3200 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3216 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3232 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3248 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3264 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3280 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3296 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3312 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3328 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3344 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3360 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3376 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3392 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3408 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3424 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3440 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3456 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3472 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3488 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3504 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3520 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3536 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3552 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3568 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3584 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3600 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3616 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3632 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3648 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3664 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3680 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Frame { msec: 3696 - hash: "5db508bc5a66018d9732cf8427461ef2" + hash: "1d69ccdf88fa78b44a77147190bf1dfc" } Key { type: 6 @@ -1210,27 +1210,27 @@ VisualTest { } Frame { msec: 3712 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3728 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3744 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3760 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3776 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3792 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Key { type: 7 @@ -1242,130 +1242,130 @@ VisualTest { } Frame { msec: 3808 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3824 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3840 - image: "qt-669.3.png" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3856 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + image: "qt-669.4.png" } Frame { msec: 3872 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3888 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3904 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3920 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3936 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3952 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3968 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 3984 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4000 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4016 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4032 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4048 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4064 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4080 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4096 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4112 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4128 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4144 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4160 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4176 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4192 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4208 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4224 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4240 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4256 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4272 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4288 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } Frame { msec: 4304 - hash: "9d4f0f25239a53ed9ac917df0c4a5f8e" + hash: "32c2b08a6123015ca72f283f89ee1663" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png index 5049c3f..0b4ca4e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png index ee6e16a..251beb6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png index d9d2252..5cd2d7d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png index d9d2252..5cd2d7d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png new file mode 100644 index 0000000..5cd2d7d Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png index cf99d98..bf6a44e 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png index e3937f0..1089578 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png index 2fe3337..c9113de 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png index 97b9913..47b4744 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png index 08e059f..c518204 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png index bbc5ba2..9f1c26a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png index 465b64e..cd8d0a5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png index d9d2252..8f5f872 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml index a8173be..a064bf3 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml @@ -6,83 +6,83 @@ VisualTest { } Frame { msec: 16 - hash: "e742c08c259034e879b95eea60794e77" + image: "usingMultilineEdit.0.png" } Frame { msec: 32 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 48 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 64 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 80 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 96 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 112 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 128 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 144 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 160 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 176 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 192 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 208 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 224 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 240 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 256 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 272 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 288 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 304 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 320 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Mouse { type: 2 @@ -94,23 +94,23 @@ VisualTest { } Frame { msec: 336 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 352 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 368 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 384 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 400 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Mouse { type: 3 @@ -122,63 +122,63 @@ VisualTest { } Frame { msec: 416 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 432 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 448 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 464 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 480 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 496 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 512 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 528 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 544 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 560 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 576 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 592 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 608 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 624 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Frame { msec: 640 - hash: "e742c08c259034e879b95eea60794e77" + hash: "9d5bfe023a03fde612678d000e7d4135" } Mouse { type: 2 @@ -190,11 +190,11 @@ VisualTest { } Frame { msec: 656 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 672 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Mouse { type: 3 @@ -206,159 +206,159 @@ VisualTest { } Frame { msec: 688 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 704 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 720 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 736 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 752 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 768 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 784 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 800 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 816 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 832 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 848 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 864 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 880 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 896 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 912 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 928 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 944 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 960 - image: "usingMultilineEdit.0.png" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 976 - hash: "3eaecb73d32414207c898a36c9c41da3" + image: "usingMultilineEdit.1.png" } Frame { msec: 992 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1008 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1024 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1040 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1056 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1072 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1088 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1104 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1120 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1136 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1152 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1168 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1184 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1200 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1216 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1232 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1248 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1264 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1280 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Frame { msec: 1296 - hash: "3eaecb73d32414207c898a36c9c41da3" + hash: "73232e1c199b5dda158a7e765386a716" } Key { type: 6 @@ -370,23 +370,23 @@ VisualTest { } Frame { msec: 1312 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Frame { msec: 1328 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Frame { msec: 1344 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Frame { msec: 1360 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Frame { msec: 1376 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Key { type: 7 @@ -398,7 +398,7 @@ VisualTest { } Frame { msec: 1392 - hash: "c101a1d74691605f2740452950693e43" + hash: "75aa32bf4bfdda0dfcf04768bf931da6" } Key { type: 6 @@ -410,19 +410,19 @@ VisualTest { } Frame { msec: 1408 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1424 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1440 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1456 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Key { type: 7 @@ -434,27 +434,27 @@ VisualTest { } Frame { msec: 1472 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1488 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1504 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1520 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1536 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Frame { msec: 1552 - hash: "e3e33c9f73352079db2f5e96c0069974" + hash: "7243b903b5b7d8c323a233ae13a2ddf3" } Key { type: 6 @@ -466,15 +466,15 @@ VisualTest { } Frame { msec: 1568 - hash: "0e79208365ec4b5a609d13b9e6c5c8d8" + hash: "676834a4ee84cb251c6ed102be89ea2e" } Frame { msec: 1584 - hash: "0e79208365ec4b5a609d13b9e6c5c8d8" + hash: "676834a4ee84cb251c6ed102be89ea2e" } Frame { msec: 1600 - hash: "0e79208365ec4b5a609d13b9e6c5c8d8" + hash: "676834a4ee84cb251c6ed102be89ea2e" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1616 - hash: "0e79208365ec4b5a609d13b9e6c5c8d8" + hash: "676834a4ee84cb251c6ed102be89ea2e" } Key { type: 6 @@ -498,23 +498,23 @@ VisualTest { } Frame { msec: 1632 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Frame { msec: 1648 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Frame { msec: 1664 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Frame { msec: 1680 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Frame { msec: 1696 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Key { type: 7 @@ -526,11 +526,11 @@ VisualTest { } Frame { msec: 1712 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Frame { msec: 1728 - hash: "5485c9cf4050ef8c1dda227d27326f78" + hash: "74a81081cd0547624cc4168e824b48b8" } Key { type: 6 @@ -542,15 +542,15 @@ VisualTest { } Frame { msec: 1744 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Frame { msec: 1760 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Frame { msec: 1776 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Key { type: 7 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1792 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Frame { msec: 1808 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Frame { msec: 1824 - hash: "1063a2e6164b372ba364c15c1c8b6ade" + hash: "4c736b2bffb38df898478e3d0ce37fb0" } Key { type: 6 @@ -582,23 +582,23 @@ VisualTest { } Frame { msec: 1840 - hash: "213c0057171a86bd4e2d898fac4d6642" + hash: "fd070c77e33e1498bacf0076903d33d7" } Frame { msec: 1856 - hash: "213c0057171a86bd4e2d898fac4d6642" + hash: "fd070c77e33e1498bacf0076903d33d7" } Frame { msec: 1872 - hash: "213c0057171a86bd4e2d898fac4d6642" + hash: "fd070c77e33e1498bacf0076903d33d7" } Frame { msec: 1888 - hash: "213c0057171a86bd4e2d898fac4d6642" + hash: "fd070c77e33e1498bacf0076903d33d7" } Frame { msec: 1904 - hash: "213c0057171a86bd4e2d898fac4d6642" + hash: "fd070c77e33e1498bacf0076903d33d7" } Key { type: 7 @@ -618,19 +618,19 @@ VisualTest { } Frame { msec: 1920 - image: "usingMultilineEdit.1.png" + hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab" } Frame { msec: 1936 - hash: "df9766751a5698f84f98faa0ac0e6f1a" + image: "usingMultilineEdit.2.png" } Frame { msec: 1952 - hash: "df9766751a5698f84f98faa0ac0e6f1a" + hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab" } Frame { msec: 1968 - hash: "df9766751a5698f84f98faa0ac0e6f1a" + hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab" } Key { type: 6 @@ -642,11 +642,11 @@ VisualTest { } Frame { msec: 1984 - hash: "47cb63f13c81ac6557ecc68d4e6f9c99" + hash: "77f7b91dba63e20e92b47575ae2f1a85" } Frame { msec: 2000 - hash: "47cb63f13c81ac6557ecc68d4e6f9c99" + hash: "77f7b91dba63e20e92b47575ae2f1a85" } Key { type: 7 @@ -658,7 +658,7 @@ VisualTest { } Frame { msec: 2016 - hash: "47cb63f13c81ac6557ecc68d4e6f9c99" + hash: "77f7b91dba63e20e92b47575ae2f1a85" } Key { type: 6 @@ -670,11 +670,11 @@ VisualTest { } Frame { msec: 2032 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Frame { msec: 2048 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Key { type: 7 @@ -686,19 +686,19 @@ VisualTest { } Frame { msec: 2064 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Frame { msec: 2080 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Frame { msec: 2096 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Frame { msec: 2112 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2128 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Frame { msec: 2144 - hash: "4f39251d7a0071a67435d088f46fc4fe" + hash: "6c881ac1c94b6648ce1a2c39e477906c" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Frame { msec: 2176 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Frame { msec: 2192 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Frame { msec: 2208 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Frame { msec: 2224 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Frame { msec: 2240 - hash: "722715a78e99d0f1f9a2830090c98f3c" + hash: "8799a9ee6ae4334c0e595c75160cbb35" } Key { type: 7 @@ -766,23 +766,23 @@ VisualTest { } Frame { msec: 2256 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Frame { msec: 2272 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Frame { msec: 2288 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Frame { msec: 2304 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Frame { msec: 2320 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Key { type: 7 @@ -794,11 +794,11 @@ VisualTest { } Frame { msec: 2336 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Frame { msec: 2352 - hash: "aa085c20f74a765297f7904680c7591e" + hash: "1947b07da95b6fb20dfa0189d2e099f4" } Key { type: 6 @@ -810,19 +810,19 @@ VisualTest { } Frame { msec: 2368 - hash: "0cc1397ce700d4a84647dddee65241b3" + hash: "f4831fddbb6dccd2add6c381abe18ff5" } Frame { msec: 2384 - hash: "0cc1397ce700d4a84647dddee65241b3" + hash: "f4831fddbb6dccd2add6c381abe18ff5" } Frame { msec: 2400 - hash: "0cc1397ce700d4a84647dddee65241b3" + hash: "f4831fddbb6dccd2add6c381abe18ff5" } Frame { msec: 2416 - hash: "0cc1397ce700d4a84647dddee65241b3" + hash: "f4831fddbb6dccd2add6c381abe18ff5" } Key { type: 7 @@ -834,7 +834,7 @@ VisualTest { } Frame { msec: 2432 - hash: "0cc1397ce700d4a84647dddee65241b3" + hash: "f4831fddbb6dccd2add6c381abe18ff5" } Key { type: 6 @@ -846,27 +846,27 @@ VisualTest { } Frame { msec: 2448 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Frame { msec: 2464 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Frame { msec: 2480 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Frame { msec: 2496 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Frame { msec: 2512 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Frame { msec: 2528 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Key { type: 7 @@ -878,7 +878,7 @@ VisualTest { } Frame { msec: 2544 - hash: "ac693aa9030cc388dce9004916734aed" + hash: "c8e601e39d6399c3bcbe99080e10e77b" } Key { type: 6 @@ -890,19 +890,19 @@ VisualTest { } Frame { msec: 2560 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2576 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2592 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2608 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Key { type: 7 @@ -914,23 +914,23 @@ VisualTest { } Frame { msec: 2624 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2640 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2656 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2672 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Frame { msec: 2688 - hash: "e1f1b75892dc186e7f9546661722e259" + hash: "895b6084f9cd58d0746270468d037fc3" } Key { type: 6 @@ -942,27 +942,27 @@ VisualTest { } Frame { msec: 2704 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Frame { msec: 2720 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Frame { msec: 2736 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Frame { msec: 2752 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Frame { msec: 2768 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Frame { msec: 2784 - hash: "4c1829c6c263cf290e0e71035f678589" + hash: "ded3a272885f24140fb8d21835ae6b3a" } Key { type: 6 @@ -974,7 +974,7 @@ VisualTest { } Frame { msec: 2800 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Key { type: 7 @@ -986,19 +986,19 @@ VisualTest { } Frame { msec: 2816 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Frame { msec: 2832 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Frame { msec: 2848 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Frame { msec: 2864 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Key { type: 7 @@ -1010,19 +1010,19 @@ VisualTest { } Frame { msec: 2880 - image: "usingMultilineEdit.2.png" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Frame { msec: 2896 - hash: "fa5cf022b185f178d0121b442af01c00" + image: "usingMultilineEdit.3.png" } Frame { msec: 2912 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Frame { msec: 2928 - hash: "fa5cf022b185f178d0121b442af01c00" + hash: "9339ea22fd115b8ae025c0b3a588ca1c" } Key { type: 6 @@ -1034,15 +1034,15 @@ VisualTest { } Frame { msec: 2944 - hash: "b0748cac94695eb95774e0cdfabf47cc" + hash: "1f219781fb7a7682d27cb875900d077a" } Frame { msec: 2960 - hash: "b0748cac94695eb95774e0cdfabf47cc" + hash: "1f219781fb7a7682d27cb875900d077a" } Frame { msec: 2976 - hash: "b0748cac94695eb95774e0cdfabf47cc" + hash: "1f219781fb7a7682d27cb875900d077a" } Key { type: 7 @@ -1062,19 +1062,19 @@ VisualTest { } Frame { msec: 2992 - hash: "b05fc4c21113146463372b1ea981e265" + hash: "20bd65f158440301e6cf14463e498368" } Frame { msec: 3008 - hash: "b05fc4c21113146463372b1ea981e265" + hash: "20bd65f158440301e6cf14463e498368" } Frame { msec: 3024 - hash: "b05fc4c21113146463372b1ea981e265" + hash: "20bd65f158440301e6cf14463e498368" } Frame { msec: 3040 - hash: "b05fc4c21113146463372b1ea981e265" + hash: "20bd65f158440301e6cf14463e498368" } Key { type: 7 @@ -1086,7 +1086,7 @@ VisualTest { } Frame { msec: 3056 - hash: "b05fc4c21113146463372b1ea981e265" + hash: "20bd65f158440301e6cf14463e498368" } Key { type: 6 @@ -1098,15 +1098,15 @@ VisualTest { } Frame { msec: 3072 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Frame { msec: 3088 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Frame { msec: 3104 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Key { type: 6 @@ -1118,7 +1118,7 @@ VisualTest { } Frame { msec: 3120 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Key { type: 7 @@ -1130,11 +1130,11 @@ VisualTest { } Frame { msec: 3136 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Frame { msec: 3152 - hash: "01b789845bf308fc896d53bbbfe0dd01" + hash: "3e73d53051a3175393f4ecb486645bf9" } Key { type: 6 @@ -1146,19 +1146,19 @@ VisualTest { } Frame { msec: 3168 - hash: "433d805d957203918fc4a8edfc93290e" + hash: "6f566097d23557bef60969852cd3515e" } Frame { msec: 3184 - hash: "433d805d957203918fc4a8edfc93290e" + hash: "6f566097d23557bef60969852cd3515e" } Frame { msec: 3200 - hash: "433d805d957203918fc4a8edfc93290e" + hash: "6f566097d23557bef60969852cd3515e" } Frame { msec: 3216 - hash: "433d805d957203918fc4a8edfc93290e" + hash: "6f566097d23557bef60969852cd3515e" } Key { type: 7 @@ -1170,7 +1170,7 @@ VisualTest { } Frame { msec: 3232 - hash: "433d805d957203918fc4a8edfc93290e" + hash: "6f566097d23557bef60969852cd3515e" } Key { type: 7 @@ -1190,19 +1190,19 @@ VisualTest { } Frame { msec: 3248 - hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" + hash: "4767592fe68e8d32d286cf5eaf4510ff" } Frame { msec: 3264 - hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" + hash: "4767592fe68e8d32d286cf5eaf4510ff" } Frame { msec: 3280 - hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" + hash: "4767592fe68e8d32d286cf5eaf4510ff" } Frame { msec: 3296 - hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" + hash: "4767592fe68e8d32d286cf5eaf4510ff" } Key { type: 7 @@ -1214,7 +1214,7 @@ VisualTest { } Frame { msec: 3312 - hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d" + hash: "4767592fe68e8d32d286cf5eaf4510ff" } Key { type: 6 @@ -1226,23 +1226,23 @@ VisualTest { } Frame { msec: 3328 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Frame { msec: 3344 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Frame { msec: 3360 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Frame { msec: 3376 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Frame { msec: 3392 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Key { type: 7 @@ -1254,7 +1254,7 @@ VisualTest { } Frame { msec: 3408 - hash: "b4bc12141255c91630e775fcf4935f22" + hash: "d7fd1a19be4f061fc39c4accf18ba0dc" } Key { type: 6 @@ -1266,23 +1266,23 @@ VisualTest { } Frame { msec: 3424 - hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" + hash: "03e74ddf4c94d322c1b1b35419157948" } Frame { msec: 3440 - hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" + hash: "03e74ddf4c94d322c1b1b35419157948" } Frame { msec: 3456 - hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" + hash: "03e74ddf4c94d322c1b1b35419157948" } Frame { msec: 3472 - hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" + hash: "03e74ddf4c94d322c1b1b35419157948" } Frame { msec: 3488 - hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52" + hash: "03e74ddf4c94d322c1b1b35419157948" } Key { type: 7 @@ -1302,27 +1302,27 @@ VisualTest { } Frame { msec: 3504 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Frame { msec: 3520 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Frame { msec: 3536 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Frame { msec: 3552 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Frame { msec: 3568 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Frame { msec: 3584 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Key { type: 7 @@ -1334,7 +1334,7 @@ VisualTest { } Frame { msec: 3600 - hash: "3f154d5eace7e0e688fe609d7eebe80d" + hash: "32712a89ba577f55319fe90873668138" } Key { type: 6 @@ -1346,19 +1346,19 @@ VisualTest { } Frame { msec: 3616 - hash: "8cecca2b1a586b7121692a8f618a1a50" + hash: "9f1cf9784c0659f4902d632542fe9d52" } Frame { msec: 3632 - hash: "8cecca2b1a586b7121692a8f618a1a50" + hash: "9f1cf9784c0659f4902d632542fe9d52" } Frame { msec: 3648 - hash: "8cecca2b1a586b7121692a8f618a1a50" + hash: "9f1cf9784c0659f4902d632542fe9d52" } Frame { msec: 3664 - hash: "8cecca2b1a586b7121692a8f618a1a50" + hash: "9f1cf9784c0659f4902d632542fe9d52" } Key { type: 6 @@ -1370,7 +1370,7 @@ VisualTest { } Frame { msec: 3680 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Key { type: 7 @@ -1382,15 +1382,15 @@ VisualTest { } Frame { msec: 3696 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3712 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3728 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Key { type: 7 @@ -1402,63 +1402,63 @@ VisualTest { } Frame { msec: 3744 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3760 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3776 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3792 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3808 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3824 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3840 - image: "usingMultilineEdit.3.png" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3856 - hash: "90bd87209b6d26785689779641b1f506" + image: "usingMultilineEdit.4.png" } Frame { msec: 3872 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3888 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3904 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3920 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3936 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3952 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Frame { msec: 3968 - hash: "90bd87209b6d26785689779641b1f506" + hash: "b350f3b710a0d36ba56bdce6c86f902e" } Key { type: 6 @@ -1470,23 +1470,23 @@ VisualTest { } Frame { msec: 3984 - hash: "7fac93ef3184d5a844448c75b0aa8e18" + hash: "2b44bf2548bd887f22e5689946e24de5" } Frame { msec: 4000 - hash: "7fac93ef3184d5a844448c75b0aa8e18" + hash: "2b44bf2548bd887f22e5689946e24de5" } Frame { msec: 4016 - hash: "7fac93ef3184d5a844448c75b0aa8e18" + hash: "2b44bf2548bd887f22e5689946e24de5" } Frame { msec: 4032 - hash: "7fac93ef3184d5a844448c75b0aa8e18" + hash: "2b44bf2548bd887f22e5689946e24de5" } Frame { msec: 4048 - hash: "7fac93ef3184d5a844448c75b0aa8e18" + hash: "2b44bf2548bd887f22e5689946e24de5" } Key { type: 6 @@ -1498,7 +1498,7 @@ VisualTest { } Frame { msec: 4064 - hash: "591366861f9e23276042250d5b1da7f9" + hash: "925c7c96166cc75dc92bd280fd354e43" } Key { type: 7 @@ -1510,19 +1510,19 @@ VisualTest { } Frame { msec: 4080 - hash: "591366861f9e23276042250d5b1da7f9" + hash: "925c7c96166cc75dc92bd280fd354e43" } Frame { msec: 4096 - hash: "591366861f9e23276042250d5b1da7f9" + hash: "925c7c96166cc75dc92bd280fd354e43" } Frame { msec: 4112 - hash: "591366861f9e23276042250d5b1da7f9" + hash: "925c7c96166cc75dc92bd280fd354e43" } Frame { msec: 4128 - hash: "591366861f9e23276042250d5b1da7f9" + hash: "925c7c96166cc75dc92bd280fd354e43" } Key { type: 6 @@ -1534,11 +1534,11 @@ VisualTest { } Frame { msec: 4144 - hash: "c5c33e5f4429698b1a1bc084a41d303d" + hash: "61d6f7583f143917b86adcad6a5ba909" } Frame { msec: 4160 - hash: "c5c33e5f4429698b1a1bc084a41d303d" + hash: "61d6f7583f143917b86adcad6a5ba909" } Key { type: 7 @@ -1550,15 +1550,15 @@ VisualTest { } Frame { msec: 4176 - hash: "c5c33e5f4429698b1a1bc084a41d303d" + hash: "61d6f7583f143917b86adcad6a5ba909" } Frame { msec: 4192 - hash: "c5c33e5f4429698b1a1bc084a41d303d" + hash: "61d6f7583f143917b86adcad6a5ba909" } Frame { msec: 4208 - hash: "c5c33e5f4429698b1a1bc084a41d303d" + hash: "61d6f7583f143917b86adcad6a5ba909" } Key { type: 6 @@ -1570,11 +1570,11 @@ VisualTest { } Frame { msec: 4224 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4240 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Key { type: 7 @@ -1586,11 +1586,11 @@ VisualTest { } Frame { msec: 4256 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4272 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Key { type: 7 @@ -1602,27 +1602,27 @@ VisualTest { } Frame { msec: 4288 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4304 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4320 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4336 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4352 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Frame { msec: 4368 - hash: "36223521c9ab06661239329c14e4fabe" + hash: "679e0940be9c40435aebb05a6e0da685" } Key { type: 6 @@ -1634,23 +1634,23 @@ VisualTest { } Frame { msec: 4384 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Frame { msec: 4400 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Frame { msec: 4416 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Frame { msec: 4432 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Frame { msec: 4448 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Key { type: 7 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4464 - hash: "22ab171b9805302b729afd314e55a0f4" + hash: "e819d25f605ec1347e89de65682edb7d" } Key { type: 6 @@ -1674,23 +1674,23 @@ VisualTest { } Frame { msec: 4480 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4496 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4512 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4528 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4544 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Key { type: 7 @@ -1702,15 +1702,15 @@ VisualTest { } Frame { msec: 4560 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4576 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4592 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Key { type: 6 @@ -1722,63 +1722,63 @@ VisualTest { } Frame { msec: 4608 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4624 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4640 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4656 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4672 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4688 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4704 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4720 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4736 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4752 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4768 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4784 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4800 - image: "usingMultilineEdit.4.png" + hash: "ef65860a90a96d521a860c4e73e833ee" } Frame { msec: 4816 - hash: "beaad223234484e21f824ceb7f1edc2a" + image: "usingMultilineEdit.5.png" } Frame { msec: 4832 - hash: "beaad223234484e21f824ceb7f1edc2a" + hash: "ef65860a90a96d521a860c4e73e833ee" } Key { type: 6 @@ -1790,31 +1790,31 @@ VisualTest { } Frame { msec: 4848 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4864 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4880 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4896 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4912 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4928 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4944 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Key { type: 7 @@ -1826,19 +1826,19 @@ VisualTest { } Frame { msec: 4960 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4976 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 4992 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5008 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Key { type: 7 @@ -1850,191 +1850,191 @@ VisualTest { } Frame { msec: 5024 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5040 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5056 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5072 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5088 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5104 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5120 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5136 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5152 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5168 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5184 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5200 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5216 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5232 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5248 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5264 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5280 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5296 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5312 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5328 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5344 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5360 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5376 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5392 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5408 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5424 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5440 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5456 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5472 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5488 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5504 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5520 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5536 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5552 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5568 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5584 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5600 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5616 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5632 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5648 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5664 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5680 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5696 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5712 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5728 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5744 - hash: "49b26f36a10d808fdcb8248a384a4da6" + hash: "84497b5307b95f59693b71dc13c838ef" } Frame { msec: 5760 - image: "usingMultilineEdit.5.png" + hash: "84497b5307b95f59693b71dc13c838ef" } Mouse { type: 2 @@ -2046,19 +2046,19 @@ VisualTest { } Frame { msec: 5776 - hash: "476040951352f144bda4ed7fb817cd7f" + image: "usingMultilineEdit.6.png" } Frame { msec: 5792 - hash: "476040951352f144bda4ed7fb817cd7f" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 5808 - hash: "476040951352f144bda4ed7fb817cd7f" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 5824 - hash: "476040951352f144bda4ed7fb817cd7f" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 5 @@ -2078,7 +2078,7 @@ VisualTest { } Frame { msec: 5840 - hash: "476040951352f144bda4ed7fb817cd7f" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 5 @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 5856 - hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" + hash: "ee9722d220435828b919fa4d8e314b78" } Mouse { type: 5 @@ -2118,7 +2118,7 @@ VisualTest { } Frame { msec: 5872 - hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" + hash: "ee9722d220435828b919fa4d8e314b78" } Mouse { type: 5 @@ -2138,7 +2138,7 @@ VisualTest { } Frame { msec: 5888 - hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4" + hash: "8a06a84965166774ff160984ed05b5ad" } Mouse { type: 5 @@ -2158,7 +2158,7 @@ VisualTest { } Frame { msec: 5904 - hash: "173735fb4be11da603fb8ae8cffc609d" + hash: "0a9ec173aa0436b9b9edf3f20946ae5a" } Mouse { type: 5 @@ -2178,7 +2178,7 @@ VisualTest { } Frame { msec: 5920 - hash: "173735fb4be11da603fb8ae8cffc609d" + hash: "0a9ec173aa0436b9b9edf3f20946ae5a" } Mouse { type: 5 @@ -2198,7 +2198,7 @@ VisualTest { } Frame { msec: 5936 - hash: "b337a09f359fb2a237731c66ab95c92c" + hash: "5511590b6b6826d8e863956220eee2e4" } Mouse { type: 5 @@ -2218,7 +2218,7 @@ VisualTest { } Frame { msec: 5952 - hash: "32719becb40f8c6bd49b5f5754786913" + hash: "4d413c13e43c57809af8ee83a165dcb1" } Mouse { type: 5 @@ -2238,7 +2238,7 @@ VisualTest { } Frame { msec: 5968 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2250,7 +2250,7 @@ VisualTest { } Frame { msec: 5984 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2270,7 +2270,7 @@ VisualTest { } Frame { msec: 6000 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2290,7 +2290,7 @@ VisualTest { } Frame { msec: 6016 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2310,7 +2310,7 @@ VisualTest { } Frame { msec: 6032 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2330,7 +2330,7 @@ VisualTest { } Frame { msec: 6048 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2350,7 +2350,7 @@ VisualTest { } Frame { msec: 6064 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2370,7 +2370,7 @@ VisualTest { } Frame { msec: 6080 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2390,7 +2390,7 @@ VisualTest { } Frame { msec: 6096 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2410,7 +2410,7 @@ VisualTest { } Frame { msec: 6112 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2430,7 +2430,7 @@ VisualTest { } Frame { msec: 6128 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2450,7 +2450,7 @@ VisualTest { } Frame { msec: 6144 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2470,7 +2470,7 @@ VisualTest { } Frame { msec: 6160 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2490,7 +2490,7 @@ VisualTest { } Frame { msec: 6176 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2502,23 +2502,23 @@ VisualTest { } Frame { msec: 6192 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Frame { msec: 6208 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Frame { msec: 6224 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Frame { msec: 6240 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Frame { msec: 6256 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2530,7 +2530,7 @@ VisualTest { } Frame { msec: 6272 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2550,7 +2550,7 @@ VisualTest { } Frame { msec: 6288 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2570,7 +2570,7 @@ VisualTest { } Frame { msec: 6304 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2590,7 +2590,7 @@ VisualTest { } Frame { msec: 6320 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2610,7 +2610,7 @@ VisualTest { } Frame { msec: 6336 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2630,7 +2630,7 @@ VisualTest { } Frame { msec: 6352 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2650,7 +2650,7 @@ VisualTest { } Frame { msec: 6368 - hash: "e6bff88d0a5e2e7df4b3355749ecc902" + hash: "cc0c5811bc845540c2c550cefe45ab1c" } Mouse { type: 5 @@ -2670,7 +2670,7 @@ VisualTest { } Frame { msec: 6384 - hash: "5de7bbfdf96d84c8fbe74b4817a3c88a" + hash: "b35bc1db0fd5b95bb830a9be9ded1659" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 6400 - hash: "5de7bbfdf96d84c8fbe74b4817a3c88a" + hash: "b35bc1db0fd5b95bb830a9be9ded1659" } Mouse { type: 5 @@ -2702,7 +2702,7 @@ VisualTest { } Frame { msec: 6416 - hash: "056d22660f6feedfb453755978aa4c1d" + hash: "576bbe32d2b6f582cbb0102d2b0e079b" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6432 - hash: "9d8568931fdca572dd31ea62ebbaf76a" + hash: "15a7ee7f58f286ae22385c2817b9b697" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6448 - hash: "29aa2da8a830d5605a8d2d2543097177" + hash: "5cd516c20c91c407ca9932ea89afd100" } Mouse { type: 5 @@ -2754,7 +2754,7 @@ VisualTest { } Frame { msec: 6464 - hash: "154e312998b32cc09daf1693d07eda2f" + hash: "40ce8b3c3588727a37e03dd83cb3d536" } Mouse { type: 5 @@ -2774,7 +2774,7 @@ VisualTest { } Frame { msec: 6480 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 5 @@ -2794,7 +2794,7 @@ VisualTest { } Frame { msec: 6496 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2814,7 +2814,7 @@ VisualTest { } Frame { msec: 6512 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2834,7 +2834,7 @@ VisualTest { } Frame { msec: 6528 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2854,7 +2854,7 @@ VisualTest { } Frame { msec: 6544 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2874,7 +2874,7 @@ VisualTest { } Frame { msec: 6560 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2894,7 +2894,7 @@ VisualTest { } Frame { msec: 6576 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2914,27 +2914,27 @@ VisualTest { } Frame { msec: 6592 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Frame { msec: 6608 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Frame { msec: 6624 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Frame { msec: 6640 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Frame { msec: 6656 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Frame { msec: 6672 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2954,7 +2954,7 @@ VisualTest { } Frame { msec: 6688 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2974,7 +2974,7 @@ VisualTest { } Frame { msec: 6704 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -2994,7 +2994,7 @@ VisualTest { } Frame { msec: 6720 - image: "usingMultilineEdit.6.png" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3014,7 +3014,7 @@ VisualTest { } Frame { msec: 6736 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + image: "usingMultilineEdit.7.png" } Mouse { type: 5 @@ -3034,7 +3034,7 @@ VisualTest { } Frame { msec: 6752 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3054,7 +3054,7 @@ VisualTest { } Frame { msec: 6768 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3074,7 +3074,7 @@ VisualTest { } Frame { msec: 6784 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3094,7 +3094,7 @@ VisualTest { } Frame { msec: 6800 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3114,7 +3114,7 @@ VisualTest { } Frame { msec: 6816 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3134,7 +3134,7 @@ VisualTest { } Frame { msec: 6832 - hash: "5b3a17fd92fe5117aa405d4c737e6673" + hash: "384cc9f557dd56079a54c1f0460bf96f" } Mouse { type: 5 @@ -3154,7 +3154,7 @@ VisualTest { } Frame { msec: 6848 - hash: "476040951352f144bda4ed7fb817cd7f" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 5 @@ -3174,7 +3174,7 @@ VisualTest { } Frame { msec: 6864 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 5 @@ -3194,7 +3194,7 @@ VisualTest { } Frame { msec: 6880 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 3 @@ -3206,55 +3206,55 @@ VisualTest { } Frame { msec: 6896 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6912 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6928 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6944 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6960 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6976 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 6992 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7008 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7024 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7040 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7056 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7072 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Frame { msec: 7088 - hash: "2cb10cb75beb454df7918b6948c6ad8a" + hash: "a3d9bdf8086303458ae5d35294551894" } Mouse { type: 2 @@ -3266,23 +3266,23 @@ VisualTest { } Frame { msec: 7104 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7120 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7136 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7152 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7168 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Mouse { type: 3 @@ -3294,103 +3294,103 @@ VisualTest { } Frame { msec: 7184 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7200 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7216 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7232 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7248 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7264 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7280 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7296 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7312 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7328 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7344 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7360 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7376 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7392 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7408 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7424 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7440 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7456 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7472 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7488 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7504 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7520 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7536 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7552 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Frame { msec: 7568 - hash: "eafa794e0c09cc2558575bafa945ecdf" + hash: "a5755969d822cae00af992085c419a17" } Key { type: 6 @@ -3402,15 +3402,15 @@ VisualTest { } Frame { msec: 7584 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7600 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7616 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Key { type: 7 @@ -3422,27 +3422,27 @@ VisualTest { } Frame { msec: 7632 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7648 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7664 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7680 - image: "usingMultilineEdit.7.png" + hash: "2395700fc4c3080e99b8871518113778" } Frame { msec: 7696 - hash: "0444d714b801f88685df9722390faf4f" + image: "usingMultilineEdit.8.png" } Frame { msec: 7712 - hash: "0444d714b801f88685df9722390faf4f" + hash: "2395700fc4c3080e99b8871518113778" } Key { type: 6 @@ -3454,63 +3454,63 @@ VisualTest { } Frame { msec: 7728 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7744 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7760 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7776 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7792 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7808 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7824 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7840 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7856 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7872 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7888 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7904 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7920 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7936 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Frame { msec: 7952 - hash: "250a49b60ad8e9b901977e01063ec20a" + hash: "71e055a9dbd940b3445d5ad9e277b483" } Key { type: 7 @@ -3530,11 +3530,11 @@ VisualTest { } Frame { msec: 7968 - hash: "bec2aea61fef64475e638848b96d28c3" + hash: "2ed8cb467e60f2fb253abb37bdc18a9a" } Frame { msec: 7984 - hash: "bec2aea61fef64475e638848b96d28c3" + hash: "2ed8cb467e60f2fb253abb37bdc18a9a" } Key { type: 7 @@ -3554,11 +3554,11 @@ VisualTest { } Frame { msec: 8000 - hash: "54177e0d53373636850e18399640fee8" + hash: "5783992a07652cfc53bfa0e1f36c1415" } Frame { msec: 8016 - hash: "54177e0d53373636850e18399640fee8" + hash: "5783992a07652cfc53bfa0e1f36c1415" } Key { type: 7 @@ -3578,11 +3578,11 @@ VisualTest { } Frame { msec: 8032 - hash: "81c03bd9dfd562e9f13784c906fa0d9e" + hash: "0fa5790dcbcb740d530b6333063629d6" } Frame { msec: 8048 - hash: "81c03bd9dfd562e9f13784c906fa0d9e" + hash: "0fa5790dcbcb740d530b6333063629d6" } Key { type: 7 @@ -3602,11 +3602,11 @@ VisualTest { } Frame { msec: 8064 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8080 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Key { type: 6 @@ -3626,31 +3626,31 @@ VisualTest { } Frame { msec: 8096 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8112 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8128 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8144 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8160 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8176 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Frame { msec: 8192 - hash: "2547fbe956bab6566c2b9137c0edc841" + hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed" } Key { type: 6 @@ -3662,19 +3662,19 @@ VisualTest { } Frame { msec: 8208 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8224 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8240 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8256 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Key { type: 7 @@ -3686,19 +3686,19 @@ VisualTest { } Frame { msec: 8272 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8288 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8304 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Frame { msec: 8320 - hash: "c757d4e60d18ce16f87c66e42cc81a99" + hash: "8f59f9f91dbcf608143925ff1f974151" } Key { type: 6 @@ -3710,19 +3710,19 @@ VisualTest { } Frame { msec: 8336 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8352 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8368 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8384 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Key { type: 7 @@ -3734,23 +3734,23 @@ VisualTest { } Frame { msec: 8400 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8416 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8432 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8448 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Frame { msec: 8464 - hash: "2ef578193024153dc85a2a92d10dc6c0" + hash: "fc48aa2746eaaf31312de3c37d821ff0" } Key { type: 6 @@ -3762,19 +3762,19 @@ VisualTest { } Frame { msec: 8480 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8496 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8512 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8528 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Key { type: 7 @@ -3786,35 +3786,35 @@ VisualTest { } Frame { msec: 8544 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8560 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8576 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8592 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8608 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8624 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8640 - image: "usingMultilineEdit.8.png" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8656 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + image: "usingMultilineEdit.9.png" } Key { type: 7 @@ -3826,139 +3826,139 @@ VisualTest { } Frame { msec: 8672 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8688 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8704 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8720 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8736 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8752 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8768 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8784 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8800 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8816 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8832 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8848 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8864 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8880 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8896 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8912 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8928 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8944 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8960 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8976 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 8992 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9008 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9024 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9040 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9056 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9072 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9088 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9104 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9120 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9136 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9152 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9168 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9184 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9200 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 2 @@ -3970,11 +3970,11 @@ VisualTest { } Frame { msec: 9216 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9232 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 5 @@ -3986,7 +3986,7 @@ VisualTest { } Frame { msec: 9248 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 5 @@ -4006,7 +4006,7 @@ VisualTest { } Frame { msec: 9264 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 5 @@ -4026,7 +4026,7 @@ VisualTest { } Frame { msec: 9280 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 3 @@ -4038,43 +4038,43 @@ VisualTest { } Frame { msec: 9296 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9312 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9328 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9344 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9360 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9376 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9392 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9408 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9424 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Frame { msec: 9440 - hash: "47e926162c6d695d2bdb7ec9de05f0cc" + hash: "61856cf1f8f2ef6d0b365ab3d7eece51" } Mouse { type: 2 @@ -4086,27 +4086,27 @@ VisualTest { } Frame { msec: 9456 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9472 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9488 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9504 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9520 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9536 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Mouse { type: 3 @@ -4118,35 +4118,35 @@ VisualTest { } Frame { msec: 9552 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9568 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9584 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9600 - image: "usingMultilineEdit.9.png" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9616 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + image: "usingMultilineEdit.10.png" } Frame { msec: 9632 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9648 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9664 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Key { type: 6 @@ -4158,111 +4158,111 @@ VisualTest { } Frame { msec: 9680 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9696 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9712 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9728 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9744 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9760 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9776 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9792 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9808 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9824 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9840 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9856 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9872 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9888 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9904 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9920 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9936 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9952 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9968 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 9984 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10000 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10016 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10032 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10048 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10064 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10080 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10096 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Key { type: 6 @@ -4274,35 +4274,35 @@ VisualTest { } Frame { msec: 10112 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10128 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10144 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10160 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10176 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10192 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10208 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10224 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Key { type: 7 @@ -4314,35 +4314,35 @@ VisualTest { } Frame { msec: 10240 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10256 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10272 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10288 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10304 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10320 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10336 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Frame { msec: 10352 - hash: "2ef5e7b2c0edc631765ea12d1f7abf33" + hash: "2ccfdac58b836aa89d2a75d0bdca6624" } Key { type: 6 @@ -4354,27 +4354,27 @@ VisualTest { } Frame { msec: 10368 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10384 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10400 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10416 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10432 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10448 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Key { type: 7 @@ -4386,51 +4386,51 @@ VisualTest { } Frame { msec: 10464 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10480 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10496 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10512 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10528 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10544 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10560 - image: "usingMultilineEdit.10.png" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10576 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + image: "usingMultilineEdit.11.png" } Frame { msec: 10592 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10608 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10624 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10640 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Key { type: 7 @@ -4442,246 +4442,246 @@ VisualTest { } Frame { msec: 10656 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10672 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10688 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10704 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10720 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10736 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10752 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10768 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10784 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10800 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10816 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10832 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10848 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10864 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10880 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10896 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10912 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10928 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10944 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10960 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10976 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 10992 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11008 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11024 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11040 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11056 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11072 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11088 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11104 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11120 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11136 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11152 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11168 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11184 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11200 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11216 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11232 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11248 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11264 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11280 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11296 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11312 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11328 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11344 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11360 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11376 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11392 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11408 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11424 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11440 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11456 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11472 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11488 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11504 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11520 - image: "usingMultilineEdit.11.png" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11536 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + image: "usingMultilineEdit.12.png" } Frame { msec: 11552 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11568 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11584 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11600 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } Frame { msec: 11616 - hash: "c3914ed0d035a39423a1f2cf9ac6c165" + hash: "37a675ab007d0e0a8f3735d4d84505de" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png index 61606b2..a61ba5a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png index a4b28fc..2a28c96 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png index 5be6bbb..d1ddaa6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png index a220f65..493c5cd 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png index 6946707..2b2ce59 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png index 4eeb8ec..044eea4 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png index 4eeb8ec..f0748b2 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png new file mode 100644 index 0000000..f0748b2 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml index f1bb5a9..f5af59f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "b6611676a7d38162d5c0210ea9d0e291" + image: "wrap.0.png" } Key { type: 6 @@ -18,7 +18,7 @@ VisualTest { } Frame { msec: 32 - hash: "b7fc43d4344c8d39f4240dadead86b1e" + hash: "2b7fa5ced204393f05bf68d33e0ca2ad" } Key { type: 7 @@ -30,11 +30,11 @@ VisualTest { } Frame { msec: 48 - hash: "b7fc43d4344c8d39f4240dadead86b1e" + hash: "2b7fa5ced204393f05bf68d33e0ca2ad" } Frame { msec: 64 - hash: "b7fc43d4344c8d39f4240dadead86b1e" + hash: "2b7fa5ced204393f05bf68d33e0ca2ad" } Key { type: 7 @@ -46,11 +46,11 @@ VisualTest { } Frame { msec: 80 - hash: "b7fc43d4344c8d39f4240dadead86b1e" + hash: "2b7fa5ced204393f05bf68d33e0ca2ad" } Frame { msec: 96 - hash: "b7fc43d4344c8d39f4240dadead86b1e" + hash: "2b7fa5ced204393f05bf68d33e0ca2ad" } Key { type: 6 @@ -62,15 +62,15 @@ VisualTest { } Frame { msec: 112 - hash: "23006a07263b8b3240c4080fb1d587e9" + hash: "5fe2c4c01922f0b0d3f65152bd80f689" } Frame { msec: 128 - hash: "23006a07263b8b3240c4080fb1d587e9" + hash: "5fe2c4c01922f0b0d3f65152bd80f689" } Frame { msec: 144 - hash: "23006a07263b8b3240c4080fb1d587e9" + hash: "5fe2c4c01922f0b0d3f65152bd80f689" } Key { type: 6 @@ -82,15 +82,15 @@ VisualTest { } Frame { msec: 160 - hash: "8a60fd38fb9c171a15bf7e6e51bee664" + hash: "9645f4ad60570c8a95e9ae6dda3f5060" } Frame { msec: 176 - hash: "8a60fd38fb9c171a15bf7e6e51bee664" + hash: "9645f4ad60570c8a95e9ae6dda3f5060" } Frame { msec: 192 - hash: "8a60fd38fb9c171a15bf7e6e51bee664" + hash: "9645f4ad60570c8a95e9ae6dda3f5060" } Key { type: 7 @@ -102,11 +102,11 @@ VisualTest { } Frame { msec: 208 - hash: "8a60fd38fb9c171a15bf7e6e51bee664" + hash: "9645f4ad60570c8a95e9ae6dda3f5060" } Frame { msec: 224 - hash: "8a60fd38fb9c171a15bf7e6e51bee664" + hash: "9645f4ad60570c8a95e9ae6dda3f5060" } Key { type: 6 @@ -118,7 +118,7 @@ VisualTest { } Frame { msec: 240 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Key { type: 7 @@ -130,19 +130,19 @@ VisualTest { } Frame { msec: 256 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Frame { msec: 272 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Frame { msec: 288 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Frame { msec: 304 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Key { type: 7 @@ -154,11 +154,11 @@ VisualTest { } Frame { msec: 320 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Frame { msec: 336 - hash: "33cdfa214f071848ed374407b4601c5a" + hash: "f28f446cb8de8af0a49ae6e728c996fc" } Key { type: 6 @@ -170,19 +170,19 @@ VisualTest { } Frame { msec: 352 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 368 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 384 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 400 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Key { type: 7 @@ -194,19 +194,19 @@ VisualTest { } Frame { msec: 416 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 432 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 448 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Frame { msec: 464 - hash: "80794c72fe7dda72997122a89f33e6e4" + hash: "98c390c519cd0476de17be8bb49b0f65" } Key { type: 6 @@ -218,19 +218,19 @@ VisualTest { } Frame { msec: 480 - hash: "bfcd901aee3d9db796597834bec1f173" + hash: "d842a866459f3ecb4fa4fc1426a05411" } Frame { msec: 496 - hash: "bfcd901aee3d9db796597834bec1f173" + hash: "d842a866459f3ecb4fa4fc1426a05411" } Frame { msec: 512 - hash: "bfcd901aee3d9db796597834bec1f173" + hash: "d842a866459f3ecb4fa4fc1426a05411" } Frame { msec: 528 - hash: "bfcd901aee3d9db796597834bec1f173" + hash: "d842a866459f3ecb4fa4fc1426a05411" } Key { type: 6 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 544 - hash: "965102cb74dcf695b950616ce5c42875" + hash: "4c858bfd2e8ba7a959bbf2d1e17865e7" } Frame { msec: 560 - hash: "965102cb74dcf695b950616ce5c42875" + hash: "4c858bfd2e8ba7a959bbf2d1e17865e7" } Frame { msec: 576 - hash: "965102cb74dcf695b950616ce5c42875" + hash: "4c858bfd2e8ba7a959bbf2d1e17865e7" } Frame { msec: 592 - hash: "965102cb74dcf695b950616ce5c42875" + hash: "4c858bfd2e8ba7a959bbf2d1e17865e7" } Frame { msec: 608 - hash: "965102cb74dcf695b950616ce5c42875" + hash: "4c858bfd2e8ba7a959bbf2d1e17865e7" } Key { type: 7 @@ -286,19 +286,19 @@ VisualTest { } Frame { msec: 624 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Frame { msec: 640 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Frame { msec: 656 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Frame { msec: 672 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Key { type: 7 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 688 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Frame { msec: 704 - hash: "73556f0cf2c8d77881a7d3881025e343" + hash: "9eed9c764b2c5b73a60df84fc0d68756" } Key { type: 6 @@ -326,23 +326,23 @@ VisualTest { } Frame { msec: 720 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Frame { msec: 736 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Frame { msec: 752 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Frame { msec: 768 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Frame { msec: 784 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Key { type: 7 @@ -354,7 +354,7 @@ VisualTest { } Frame { msec: 800 - hash: "a75bdb09a48b90936d2d4de647e7323d" + hash: "7a1d64574a0a6b90695629fd443274e6" } Key { type: 6 @@ -366,15 +366,15 @@ VisualTest { } Frame { msec: 816 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Frame { msec: 832 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Frame { msec: 848 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Key { type: 7 @@ -386,15 +386,15 @@ VisualTest { } Frame { msec: 864 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Frame { msec: 880 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Frame { msec: 896 - hash: "f37ab5f03e7cf86e3589fc0711b23a53" + hash: "31e9c4500448142ee2be3171a2bd5385" } Key { type: 6 @@ -406,27 +406,27 @@ VisualTest { } Frame { msec: 912 - hash: "219e5edd5f138cd113f0b929460cf074" + hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d" } Frame { msec: 928 - hash: "219e5edd5f138cd113f0b929460cf074" + hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d" } Frame { msec: 944 - hash: "219e5edd5f138cd113f0b929460cf074" + hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d" } Frame { msec: 960 - image: "wrap.0.png" + hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d" } Frame { msec: 976 - hash: "219e5edd5f138cd113f0b929460cf074" + image: "wrap.1.png" } Frame { msec: 992 - hash: "219e5edd5f138cd113f0b929460cf074" + hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d" } Key { type: 6 @@ -446,23 +446,23 @@ VisualTest { } Frame { msec: 1008 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1024 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1040 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1056 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1072 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Key { type: 7 @@ -474,31 +474,31 @@ VisualTest { } Frame { msec: 1088 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1104 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1120 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1136 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1152 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1168 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Frame { msec: 1184 - hash: "79cf23a46fbbeddbef10ef2a62533342" + hash: "c05191599361c4171c086630f9608cd0" } Key { type: 6 @@ -510,23 +510,23 @@ VisualTest { } Frame { msec: 1200 - hash: "ccb17209d85c7e49fbb0b5f9134fc39c" + hash: "088e0567dd568019ccb2114d3108a1dd" } Frame { msec: 1216 - hash: "ccb17209d85c7e49fbb0b5f9134fc39c" + hash: "088e0567dd568019ccb2114d3108a1dd" } Frame { msec: 1232 - hash: "ccb17209d85c7e49fbb0b5f9134fc39c" + hash: "088e0567dd568019ccb2114d3108a1dd" } Frame { msec: 1248 - hash: "ccb17209d85c7e49fbb0b5f9134fc39c" + hash: "088e0567dd568019ccb2114d3108a1dd" } Frame { msec: 1264 - hash: "ccb17209d85c7e49fbb0b5f9134fc39c" + hash: "088e0567dd568019ccb2114d3108a1dd" } Key { type: 7 @@ -546,11 +546,11 @@ VisualTest { } Frame { msec: 1280 - hash: "29aaa213e4b146199289b5383528bc88" + hash: "35fde81ed66c4804b2b31c0d93fb010a" } Frame { msec: 1296 - hash: "29aaa213e4b146199289b5383528bc88" + hash: "35fde81ed66c4804b2b31c0d93fb010a" } Key { type: 6 @@ -562,15 +562,15 @@ VisualTest { } Frame { msec: 1312 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1328 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1344 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Key { type: 7 @@ -582,11 +582,11 @@ VisualTest { } Frame { msec: 1360 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1376 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1392 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1408 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1424 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Frame { msec: 1440 - hash: "7f9da386497bca2dc19b1c3ab475f453" + hash: "0b212b2b1354e99db328c30d4c8e8b4e" } Key { type: 6 @@ -622,23 +622,23 @@ VisualTest { } Frame { msec: 1456 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Frame { msec: 1472 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Frame { msec: 1488 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Frame { msec: 1504 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Frame { msec: 1520 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Key { type: 7 @@ -650,11 +650,11 @@ VisualTest { } Frame { msec: 1536 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Frame { msec: 1552 - hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2" + hash: "1d19bc237d8de1598a629f2aea7e8e97" } Key { type: 6 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1568 - hash: "c5c789ca287cf673be808f3e10e054a2" + hash: "df3025b2de2cf6cee2b918c6d13834c6" } Frame { msec: 1584 - hash: "c5c789ca287cf673be808f3e10e054a2" + hash: "df3025b2de2cf6cee2b918c6d13834c6" } Frame { msec: 1600 - hash: "c5c789ca287cf673be808f3e10e054a2" + hash: "df3025b2de2cf6cee2b918c6d13834c6" } Frame { msec: 1616 - hash: "c5c789ca287cf673be808f3e10e054a2" + hash: "df3025b2de2cf6cee2b918c6d13834c6" } Frame { msec: 1632 - hash: "c5c789ca287cf673be808f3e10e054a2" + hash: "df3025b2de2cf6cee2b918c6d13834c6" } Key { type: 6 @@ -702,23 +702,23 @@ VisualTest { } Frame { msec: 1648 - hash: "5e39fc7058b64afa7036002a2dae8976" + hash: "b19baef8a5d8efd96d5ec9e729a9d42a" } Frame { msec: 1664 - hash: "5e39fc7058b64afa7036002a2dae8976" + hash: "b19baef8a5d8efd96d5ec9e729a9d42a" } Frame { msec: 1680 - hash: "5e39fc7058b64afa7036002a2dae8976" + hash: "b19baef8a5d8efd96d5ec9e729a9d42a" } Frame { msec: 1696 - hash: "5e39fc7058b64afa7036002a2dae8976" + hash: "b19baef8a5d8efd96d5ec9e729a9d42a" } Frame { msec: 1712 - hash: "5e39fc7058b64afa7036002a2dae8976" + hash: "b19baef8a5d8efd96d5ec9e729a9d42a" } Key { type: 6 @@ -730,15 +730,15 @@ VisualTest { } Frame { msec: 1728 - hash: "687e69083430812cd42eff708229a176" + hash: "914e61f38d7f2b5a465037d6ef1ddaba" } Frame { msec: 1744 - hash: "687e69083430812cd42eff708229a176" + hash: "914e61f38d7f2b5a465037d6ef1ddaba" } Frame { msec: 1760 - hash: "687e69083430812cd42eff708229a176" + hash: "914e61f38d7f2b5a465037d6ef1ddaba" } Key { type: 7 @@ -750,7 +750,7 @@ VisualTest { } Frame { msec: 1776 - hash: "687e69083430812cd42eff708229a176" + hash: "914e61f38d7f2b5a465037d6ef1ddaba" } Key { type: 6 @@ -762,11 +762,11 @@ VisualTest { } Frame { msec: 1792 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1808 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Key { type: 7 @@ -778,19 +778,19 @@ VisualTest { } Frame { msec: 1824 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1840 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1856 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1872 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Key { type: 7 @@ -802,23 +802,23 @@ VisualTest { } Frame { msec: 1888 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1904 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1920 - image: "wrap.1.png" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Frame { msec: 1936 - hash: "f33cd379acd2785298aa74f78e22bdfb" + image: "wrap.2.png" } Frame { msec: 1952 - hash: "f33cd379acd2785298aa74f78e22bdfb" + hash: "e816134a8fef0bbee8e94c0f9561750b" } Key { type: 6 @@ -830,27 +830,27 @@ VisualTest { } Frame { msec: 1968 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Frame { msec: 1984 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Frame { msec: 2000 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Frame { msec: 2016 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Frame { msec: 2032 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Frame { msec: 2048 - hash: "205e79eb4a7e515ffa5bd24677408e79" + hash: "9552729028c8e129e19c06ff35bb085b" } Key { type: 6 @@ -862,7 +862,7 @@ VisualTest { } Frame { msec: 2064 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Key { type: 7 @@ -874,15 +874,15 @@ VisualTest { } Frame { msec: 2080 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2096 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2112 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Key { type: 7 @@ -894,27 +894,27 @@ VisualTest { } Frame { msec: 2128 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2144 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2160 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2176 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2192 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Frame { msec: 2208 - hash: "2c1570a63d3eff7346c58356610a2f44" + hash: "2dbdfe3bd309b98af7ed8980725f3ee7" } Key { type: 6 @@ -926,23 +926,23 @@ VisualTest { } Frame { msec: 2224 - hash: "8202436b4e184adc69cdf7dd735afe33" + hash: "28748f90f61954b94377768788f1634d" } Frame { msec: 2240 - hash: "8202436b4e184adc69cdf7dd735afe33" + hash: "28748f90f61954b94377768788f1634d" } Frame { msec: 2256 - hash: "8202436b4e184adc69cdf7dd735afe33" + hash: "28748f90f61954b94377768788f1634d" } Frame { msec: 2272 - hash: "8202436b4e184adc69cdf7dd735afe33" + hash: "28748f90f61954b94377768788f1634d" } Frame { msec: 2288 - hash: "8202436b4e184adc69cdf7dd735afe33" + hash: "28748f90f61954b94377768788f1634d" } Key { type: 6 @@ -954,7 +954,7 @@ VisualTest { } Frame { msec: 2304 - hash: "855069b52f6714d54f4005751b8e2930" + hash: "2cf8ad2ba8ddcde4dd8549f034a77005" } Key { type: 7 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 2320 - hash: "855069b52f6714d54f4005751b8e2930" + hash: "2cf8ad2ba8ddcde4dd8549f034a77005" } Frame { msec: 2336 - hash: "855069b52f6714d54f4005751b8e2930" + hash: "2cf8ad2ba8ddcde4dd8549f034a77005" } Frame { msec: 2352 - hash: "855069b52f6714d54f4005751b8e2930" + hash: "2cf8ad2ba8ddcde4dd8549f034a77005" } Key { type: 6 @@ -986,11 +986,11 @@ VisualTest { } Frame { msec: 2368 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Frame { msec: 2384 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Key { type: 7 @@ -1002,15 +1002,15 @@ VisualTest { } Frame { msec: 2400 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Frame { msec: 2416 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Frame { msec: 2432 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Key { type: 7 @@ -1022,15 +1022,15 @@ VisualTest { } Frame { msec: 2448 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Frame { msec: 2464 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Frame { msec: 2480 - hash: "6e1a97a3e491f24e34d4b24bf3091afc" + hash: "95b6ce7c01461847a3f7aff88aa8ad9d" } Key { type: 6 @@ -1042,19 +1042,19 @@ VisualTest { } Frame { msec: 2496 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2512 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2528 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2544 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 2560 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2576 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2592 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2608 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2624 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Frame { msec: 2640 - hash: "12eb5152181e0bff993dc1be087969f9" + hash: "81872138f3cafb1cf06009df77af1461" } Key { type: 6 @@ -1098,19 +1098,19 @@ VisualTest { } Frame { msec: 2656 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Frame { msec: 2672 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Frame { msec: 2688 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Frame { msec: 2704 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Key { type: 7 @@ -1122,15 +1122,15 @@ VisualTest { } Frame { msec: 2720 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Frame { msec: 2736 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Frame { msec: 2752 - hash: "8a77655cae6c04453e6dc8a2321d1a32" + hash: "dfa35c08894d7ed748b8846fa3ce8fac" } Key { type: 6 @@ -1142,23 +1142,23 @@ VisualTest { } Frame { msec: 2768 - hash: "c42349fe4b75e5d56a04ec6462cb0780" + hash: "9decac3d9243bebdc7699fcb77a31f21" } Frame { msec: 2784 - hash: "c42349fe4b75e5d56a04ec6462cb0780" + hash: "9decac3d9243bebdc7699fcb77a31f21" } Frame { msec: 2800 - hash: "c42349fe4b75e5d56a04ec6462cb0780" + hash: "9decac3d9243bebdc7699fcb77a31f21" } Frame { msec: 2816 - hash: "c42349fe4b75e5d56a04ec6462cb0780" + hash: "9decac3d9243bebdc7699fcb77a31f21" } Frame { msec: 2832 - hash: "c42349fe4b75e5d56a04ec6462cb0780" + hash: "9decac3d9243bebdc7699fcb77a31f21" } Key { type: 6 @@ -1178,19 +1178,19 @@ VisualTest { } Frame { msec: 2848 - hash: "973c163b1ea4e6189e788b7f37013185" + hash: "6a1bb7dd22f3e090008ba265c30f9c2d" } Frame { msec: 2864 - hash: "973c163b1ea4e6189e788b7f37013185" + hash: "6a1bb7dd22f3e090008ba265c30f9c2d" } Frame { msec: 2880 - image: "wrap.2.png" + hash: "6a1bb7dd22f3e090008ba265c30f9c2d" } Frame { msec: 2896 - hash: "973c163b1ea4e6189e788b7f37013185" + image: "wrap.3.png" } Key { type: 6 @@ -1202,11 +1202,11 @@ VisualTest { } Frame { msec: 2912 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 2928 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Key { type: 7 @@ -1218,11 +1218,11 @@ VisualTest { } Frame { msec: 2944 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 2960 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Key { type: 7 @@ -1234,35 +1234,35 @@ VisualTest { } Frame { msec: 2976 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 2992 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3008 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3024 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3040 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3056 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3072 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Frame { msec: 3088 - hash: "a847abc1ef9a41a741f8dce6bc68e6a1" + hash: "ee39b3014e140aff2f974f3b919f85f4" } Key { type: 6 @@ -1274,23 +1274,23 @@ VisualTest { } Frame { msec: 3104 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3120 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3136 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3152 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3168 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Key { type: 7 @@ -1302,23 +1302,23 @@ VisualTest { } Frame { msec: 3184 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3200 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3216 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3232 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Frame { msec: 3248 - hash: "93d3b56a5070a84164169ab1869d6ed0" + hash: "d448179ec6bba91f3f70be821710a8c7" } Key { type: 6 @@ -1330,15 +1330,15 @@ VisualTest { } Frame { msec: 3264 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Frame { msec: 3280 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Frame { msec: 3296 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Key { type: 7 @@ -1350,15 +1350,15 @@ VisualTest { } Frame { msec: 3312 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Frame { msec: 3328 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Frame { msec: 3344 - hash: "60480b61f29a34c790da8fe1bfd98755" + hash: "e30b5aa9b5d08fba758fe781812f096d" } Key { type: 6 @@ -1370,23 +1370,23 @@ VisualTest { } Frame { msec: 3360 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3376 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3392 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3408 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3424 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Key { type: 7 @@ -1398,15 +1398,15 @@ VisualTest { } Frame { msec: 3440 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3456 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Frame { msec: 3472 - hash: "c6f235590c03170581dfabc07bf9c20b" + hash: "ba932735c5079ad6562050b6e332d2e7" } Key { type: 6 @@ -1418,19 +1418,19 @@ VisualTest { } Frame { msec: 3488 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Frame { msec: 3504 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Frame { msec: 3520 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Frame { msec: 3536 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Key { type: 7 @@ -1442,11 +1442,11 @@ VisualTest { } Frame { msec: 3552 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Frame { msec: 3568 - hash: "10a29af771a5c17b1443b10abd45c9aa" + hash: "01dacbcc21c541e0cbf272ee01292b7c" } Key { type: 6 @@ -1458,27 +1458,27 @@ VisualTest { } Frame { msec: 3584 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Frame { msec: 3600 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Frame { msec: 3616 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Frame { msec: 3632 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Frame { msec: 3648 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Frame { msec: 3664 - hash: "68449dbef331f4bdf4c4bc443ec98e89" + hash: "7b493045fb2b7373525ce570d86542d7" } Key { type: 6 @@ -1490,7 +1490,7 @@ VisualTest { } Frame { msec: 3680 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Key { type: 7 @@ -1502,23 +1502,23 @@ VisualTest { } Frame { msec: 3696 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3712 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3728 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3744 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3760 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Key { type: 7 @@ -1530,39 +1530,39 @@ VisualTest { } Frame { msec: 3776 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3792 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3808 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3824 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3840 - image: "wrap.3.png" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3856 - hash: "5c773045e3ccab933749a3f6a74dc25a" + image: "wrap.4.png" } Frame { msec: 3872 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3888 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Frame { msec: 3904 - hash: "5c773045e3ccab933749a3f6a74dc25a" + hash: "7c11ac5b8dfee4708b7b49c2a1a7db57" } Key { type: 6 @@ -1574,23 +1574,23 @@ VisualTest { } Frame { msec: 3920 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Frame { msec: 3936 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Frame { msec: 3952 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Frame { msec: 3968 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Frame { msec: 3984 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Key { type: 7 @@ -1602,11 +1602,11 @@ VisualTest { } Frame { msec: 4000 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Frame { msec: 4016 - hash: "f1ef12790a0548cfaa4176680566680d" + hash: "46a6db4f63965f019fc1966e2a6caf98" } Key { type: 6 @@ -1618,15 +1618,15 @@ VisualTest { } Frame { msec: 4032 - hash: "22575a03b4c58e4391845d495c2ca48b" + hash: "abc8cf4650aa07a9a26ad04a082bc269" } Frame { msec: 4048 - hash: "22575a03b4c58e4391845d495c2ca48b" + hash: "abc8cf4650aa07a9a26ad04a082bc269" } Frame { msec: 4064 - hash: "22575a03b4c58e4391845d495c2ca48b" + hash: "abc8cf4650aa07a9a26ad04a082bc269" } Key { type: 7 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4080 - hash: "22575a03b4c58e4391845d495c2ca48b" + hash: "abc8cf4650aa07a9a26ad04a082bc269" } Key { type: 6 @@ -1650,19 +1650,19 @@ VisualTest { } Frame { msec: 4096 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Frame { msec: 4112 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Frame { msec: 4128 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Frame { msec: 4144 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Key { type: 7 @@ -1674,15 +1674,15 @@ VisualTest { } Frame { msec: 4160 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Frame { msec: 4176 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Frame { msec: 4192 - hash: "3243dc4562f073136782415365b7b42d" + hash: "23ee54c88cd70b6c66137ce32702cf01" } Key { type: 6 @@ -1694,23 +1694,23 @@ VisualTest { } Frame { msec: 4208 - hash: "44cd04d2a2bf12654cb96ec9af92b9aa" + hash: "dc0899573a995421b57a6689d300a421" } Frame { msec: 4224 - hash: "44cd04d2a2bf12654cb96ec9af92b9aa" + hash: "dc0899573a995421b57a6689d300a421" } Frame { msec: 4240 - hash: "44cd04d2a2bf12654cb96ec9af92b9aa" + hash: "dc0899573a995421b57a6689d300a421" } Frame { msec: 4256 - hash: "44cd04d2a2bf12654cb96ec9af92b9aa" + hash: "dc0899573a995421b57a6689d300a421" } Frame { msec: 4272 - hash: "44cd04d2a2bf12654cb96ec9af92b9aa" + hash: "dc0899573a995421b57a6689d300a421" } Key { type: 6 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 4288 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Key { type: 7 @@ -1734,15 +1734,15 @@ VisualTest { } Frame { msec: 4304 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4320 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4336 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Key { type: 7 @@ -1754,23 +1754,23 @@ VisualTest { } Frame { msec: 4352 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4368 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4384 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4400 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Frame { msec: 4416 - hash: "cf1eb35cb9a793769303abee0a2fcad8" + hash: "4d42c63a0324c1573818ebb081d8927f" } Key { type: 6 @@ -1782,15 +1782,15 @@ VisualTest { } Frame { msec: 4432 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4448 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4464 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Key { type: 7 @@ -1802,23 +1802,23 @@ VisualTest { } Frame { msec: 4480 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4496 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4512 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4528 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Frame { msec: 4544 - hash: "252838a495502ba5b836ffd1b20711f4" + hash: "9d2239e4b71da17a6f8f2ef979f4bf85" } Key { type: 6 @@ -1830,19 +1830,19 @@ VisualTest { } Frame { msec: 4560 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4576 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4592 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4608 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Key { type: 7 @@ -1854,19 +1854,19 @@ VisualTest { } Frame { msec: 4624 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4640 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4656 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Frame { msec: 4672 - hash: "4010bb0f50630f067974e6ddb3177693" + hash: "289059d77547c9ec548b33d8bbe9fca9" } Key { type: 6 @@ -1878,19 +1878,19 @@ VisualTest { } Frame { msec: 4688 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Frame { msec: 4704 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Frame { msec: 4720 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Frame { msec: 4736 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Key { type: 7 @@ -1902,15 +1902,15 @@ VisualTest { } Frame { msec: 4752 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Frame { msec: 4768 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Frame { msec: 4784 - hash: "14dc6ee8cd3b4747650f2a458b42a6e3" + hash: "4b60bfb67c5007b4054241e581ce92ac" } Key { type: 6 @@ -1922,11 +1922,11 @@ VisualTest { } Frame { msec: 4800 - image: "wrap.4.png" + hash: "dbabce81e44f912d6a30ff4cc3289da8" } Frame { msec: 4816 - hash: "7d4a56854715772c92706522d2dcac56" + image: "wrap.5.png" } Key { type: 7 @@ -1938,19 +1938,19 @@ VisualTest { } Frame { msec: 4832 - hash: "7d4a56854715772c92706522d2dcac56" + hash: "dbabce81e44f912d6a30ff4cc3289da8" } Frame { msec: 4848 - hash: "7d4a56854715772c92706522d2dcac56" + hash: "dbabce81e44f912d6a30ff4cc3289da8" } Frame { msec: 4864 - hash: "7d4a56854715772c92706522d2dcac56" + hash: "dbabce81e44f912d6a30ff4cc3289da8" } Frame { msec: 4880 - hash: "7d4a56854715772c92706522d2dcac56" + hash: "dbabce81e44f912d6a30ff4cc3289da8" } Key { type: 6 @@ -1962,19 +1962,19 @@ VisualTest { } Frame { msec: 4896 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 4912 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 4928 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 4944 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Key { type: 7 @@ -1986,482 +1986,482 @@ VisualTest { } Frame { msec: 4960 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 4976 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 4992 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5008 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5024 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5040 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5056 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5072 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5088 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5104 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5120 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5136 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5152 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5168 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5184 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5200 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5216 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5232 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5248 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5264 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5280 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5296 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5312 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5328 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5344 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5360 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5376 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5392 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5408 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5424 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5440 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5456 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5472 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5488 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5504 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5520 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5536 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5552 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5568 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5584 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5600 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5616 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5632 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5648 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5664 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5680 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5696 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5712 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5728 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5744 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5760 - image: "wrap.5.png" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5776 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + image: "wrap.6.png" } Frame { msec: 5792 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5808 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5824 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5840 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5856 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5872 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5888 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5904 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5920 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5936 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5952 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5968 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 5984 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6000 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6016 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6032 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6048 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6064 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6080 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6096 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6112 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6128 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6144 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6160 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6176 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6192 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6208 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6224 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6240 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6256 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6272 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6288 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6304 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6320 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6336 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6352 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6368 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6384 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6400 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6416 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6432 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6448 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6464 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6480 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6496 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6512 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6528 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6544 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6560 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6576 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6592 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6608 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6624 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6640 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6656 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6672 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6688 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6704 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6720 - image: "wrap.6.png" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6736 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + image: "wrap.7.png" } Frame { msec: 6752 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6768 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6784 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6800 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6816 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6832 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6848 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } Frame { msec: 6864 - hash: "0c75eb65cf70c883ee4dcd2f7ee092ce" + hash: "e9633d239e0a9ca008ed033565322c24" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png index 1d96795..b65bc37 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png index a3a9bfa..ebaa011 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png index b50028c..57ee370 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png index 1c4876e..4b70b4a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png index 9d110cb..18ae753 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png index 9289dc0..2b463f0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml index bd4af6a..6b8ba9b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml @@ -6,115 +6,115 @@ VisualTest { } Frame { msec: 16 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + image: "cursorDelegate.0.png" } Frame { msec: 32 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 48 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 64 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 80 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 96 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 112 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 128 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 144 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 160 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 176 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 192 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 208 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 224 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 240 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 256 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 272 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 288 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 304 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 320 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 336 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 352 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 368 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 384 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 400 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 416 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 432 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Frame { msec: 448 - hash: "c0ffaa97d1be341fafafc18762f5cb67" + hash: "a7af287992f894f9cf76e834b922f5b3" } Key { type: 6 @@ -126,23 +126,23 @@ VisualTest { } Frame { msec: 464 - hash: "eadbfc95de35a0d1880809b2bbaec562" + hash: "74b6ebfbe8246f0b2b43f88d9f6028d1" } Frame { msec: 480 - hash: "eadbfc95de35a0d1880809b2bbaec562" + hash: "74b6ebfbe8246f0b2b43f88d9f6028d1" } Frame { msec: 496 - hash: "eadbfc95de35a0d1880809b2bbaec562" + hash: "74b6ebfbe8246f0b2b43f88d9f6028d1" } Frame { msec: 512 - hash: "eadbfc95de35a0d1880809b2bbaec562" + hash: "74b6ebfbe8246f0b2b43f88d9f6028d1" } Frame { msec: 528 - hash: "227cbfe5fc07906060951e19ebb3ad30" + hash: "0f0e9ced5d2f9f20a2b5f1b5bde0be62" } Key { type: 7 @@ -154,19 +154,19 @@ VisualTest { } Frame { msec: 544 - hash: "066256a59ad290b3725193955e3c48a6" + hash: "bec7fff73d6d869d2d15b3ea35fa0605" } Frame { msec: 560 - hash: "6709f77cbcde82886d1c5a07f06b55a5" + hash: "e3afffc91ed0a78a0022421e6d1bd0d2" } Frame { msec: 576 - hash: "da0028083048837b4756a2d3ff468378" + hash: "45f44411121d335ed7a844803313e566" } Frame { msec: 592 - hash: "5f265351bed34357d603794d868dbcbc" + hash: "b951279da53fe76ab62ca9837ecbd7a6" } Key { type: 6 @@ -178,19 +178,19 @@ VisualTest { } Frame { msec: 608 - hash: "3b8030849229e90b69842219e8b2d3f1" + hash: "b5678202f08099b09ce88cef5eeea20a" } Frame { msec: 624 - hash: "0b08356d9b00313b2d892175dd93095a" + hash: "93f6663d083a2bd3b4079241f3fc0159" } Frame { msec: 640 - hash: "4780555b277d65e3e4c0c60817b63eb4" + hash: "8c802943d3030214cb7af7fd1db1c813" } Frame { msec: 656 - hash: "6b31c8f0569d01d97a371423a0f379c0" + hash: "01396c0332523ba2a8971a99c6962516" } Key { type: 7 @@ -202,19 +202,19 @@ VisualTest { } Frame { msec: 672 - hash: "e9a5695636f7957d33f1c902a37a605d" + hash: "fc5dd253219d1a8aca7fcf31be0e7d69" } Frame { msec: 688 - hash: "27a783cd4ef5caab382721a98f7966da" + hash: "545071a58d8db4f73e1cb6981e9ec62e" } Frame { msec: 704 - hash: "c50598c0a5f8d501fd3ac9cddecee506" + hash: "13bc1aa8ce4fc3d9ba9a6c3046e14c92" } Frame { msec: 720 - hash: "2a2d0e202bc3bf7991409391a2ce2934" + hash: "ba7d13545fb7384dcb3edd32979c9442" } Key { type: 6 @@ -226,19 +226,19 @@ VisualTest { } Frame { msec: 736 - hash: "2d97b8503c739b210615971ad08c2714" + hash: "8f9e1abd8eb2d072907b910630e93c9a" } Frame { msec: 752 - hash: "f27fd7f1d8c6dfb7393ab0d39ed5cd02" + hash: "003d0e4a01909aa51cb1967738383ede" } Frame { msec: 768 - hash: "32d256543e3e1ba722860e5143af9f09" + hash: "223cce18cef44b3945d0a1d45554c5c1" } Frame { msec: 784 - hash: "9123b724613ef4d3d8431afde6e9eb6b" + hash: "fcd7f862bdce75d7e6df574ff0146ca6" } Key { type: 7 @@ -250,23 +250,23 @@ VisualTest { } Frame { msec: 800 - hash: "be5249a7effc94ec2be3d6053eba7b45" + hash: "21f5e3696987222106b00f0efe3bb165" } Frame { msec: 816 - hash: "57f2c119c9eca3d1e4acd2f775af5207" + hash: "6380ce26303da8180dff8fcc88caaf1d" } Frame { msec: 832 - hash: "23b79a2630448e99f27a657fd9789354" + hash: "52bfa995405a3d6523d97b2c36428d89" } Frame { msec: 848 - hash: "c8faab137cbc014aef5e3212889d00b8" + hash: "7169d69c2adb50bf80c075e30eb8e965" } Frame { msec: 864 - hash: "c9616f6fde5d6a8ecf346ece9952f09b" + hash: "f5ad55885a4fc2b47a5420e9e0d7c59c" } Key { type: 6 @@ -278,15 +278,15 @@ VisualTest { } Frame { msec: 880 - hash: "11a861ca71d789e3d97d599608a793be" + hash: "831081f829df0a226c75389bc457a768" } Frame { msec: 896 - hash: "5a6c57df0c33b83985aeb194f291ad6c" + hash: "2306a9c9cb570bc922f120f2f63e26e4" } Frame { msec: 912 - hash: "2c047359db6946cb740462b0d6c695be" + hash: "23d6728fe34436e53a449e26962c3ad5" } Key { type: 7 @@ -298,23 +298,23 @@ VisualTest { } Frame { msec: 928 - hash: "d0bb54caf661be021be8fe2691de24e8" + hash: "db2de48337701cbb36a14e32f1846683" } Frame { msec: 944 - hash: "80f0a60239f4d81b18b9cb3e80faf346" + hash: "04bb83a694d293fd4ba956fc79db79e7" } Frame { msec: 960 - image: "cursorDelegate.0.png" + hash: "7a1a71b2d7e42934163990d5c011c464" } Frame { msec: 976 - hash: "c526315dd5eec117266c68a7b6b64a3f" + image: "cursorDelegate.1.png" } Frame { msec: 992 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Key { type: 6 @@ -326,15 +326,15 @@ VisualTest { } Frame { msec: 1008 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 1024 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 1040 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Key { type: 7 @@ -346,23 +346,23 @@ VisualTest { } Frame { msec: 1056 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 1072 - hash: "5f6cc0c97e4748aeeaa4a00c8a8c8928" + hash: "20f1db4245d1689e980371d7b1bcb903" } Frame { msec: 1088 - hash: "b1d71160d9a8a8edeb4cf7e00df36cfc" + hash: "6a3629223845d352ba02e3ad8569f698" } Frame { msec: 1104 - hash: "5bfd4269145cc0962e0fa9c294e8f5aa" + hash: "ee3dd4535fcf24249c41ebebb5f4fca6" } Frame { msec: 1120 - hash: "4e22c95802d83f0099017c6be9d93214" + hash: "7bf5df6a807da0c8d316420ced34e267" } Key { type: 6 @@ -374,23 +374,23 @@ VisualTest { } Frame { msec: 1136 - hash: "0f31d8f4867af7c2f4fb8e86aa077afd" + hash: "4f5ce98428d5fba11a6322f88cab14c3" } Frame { msec: 1152 - hash: "21a552133320008a4d4f77752a3cfb55" + hash: "14406e8d0e120a0f30864fa8793f2e8d" } Frame { msec: 1168 - hash: "3a30a4a785de21da0ff939e303202a81" + hash: "6e891d584ce4f636708cee1111193878" } Frame { msec: 1184 - hash: "b0e3ed2468538aacec354cb96d90c362" + hash: "cd6bbc72108cfffd043a31d0d3655851" } Frame { msec: 1200 - hash: "56bf6e3fe47e52046b443481fc17a3ec" + hash: "d4069e606ab2b10c90e6f567be462c10" } Key { type: 7 @@ -402,27 +402,27 @@ VisualTest { } Frame { msec: 1216 - hash: "ce80807cde9b902ebf33281fce50d9fb" + hash: "de8e00d6116b1aa900478a41c7ac78f1" } Frame { msec: 1232 - hash: "ed67b18b5f7b90d3bcd9f662e70dc7b8" + hash: "5a0c4e31eb9ecb2ffc9380d474861846" } Frame { msec: 1248 - hash: "930950ce5c6b12da47eea1b92d5176eb" + hash: "bbacdb359c6206b50a859169b106ec92" } Frame { msec: 1264 - hash: "5a2eeca0f1533d323cc4d7ffbb7ad6aa" + hash: "c4f4ed5a4842f1bbdda67a27d74fd5f4" } Frame { msec: 1280 - hash: "3f7f3ef2d4c1353dfe7027930505f4fd" + hash: "4deb6d0a83b14abef80f2bfa0491cbd0" } Frame { msec: 1296 - hash: "1a3a781ac5a1e90a4415944e0c54ea4e" + hash: "9caca7068ce5b289d70c39667e87a57f" } Key { type: 6 @@ -434,7 +434,7 @@ VisualTest { } Frame { msec: 1312 - hash: "d11dae0dd461fc82a73bf319905320d4" + hash: "e3ca7a8a860efc3811b8befe0a97d7f1" } Key { type: 6 @@ -446,19 +446,19 @@ VisualTest { } Frame { msec: 1328 - hash: "00957049ea51866138cfc33451f12e17" + hash: "ddb3dcb40f412c087d0ae21b5a8e47aa" } Frame { msec: 1344 - hash: "386847af9b173db7ef1554d2c85c748e" + hash: "325d8356c3e14467c54d03d096a3c1a5" } Frame { msec: 1360 - hash: "4b715060d29d6228a40217bc769fc140" + hash: "83f4c541b94180863e538e6c0a0e1ae0" } Frame { msec: 1376 - hash: "e58a9a3623afa08819351c22435ba03f" + hash: "16623dc34067800f3c7d6aabe1076927" } Key { type: 6 @@ -470,31 +470,31 @@ VisualTest { } Frame { msec: 1392 - hash: "6378e3faf5578818fc282de2a077da59" + hash: "e7319b080b621c5d176d6913cd9a8f7e" } Frame { msec: 1408 - hash: "07efb3687d29e65680e1cc831762348f" + hash: "353a200418b2cc0fbe925329224e658a" } Frame { msec: 1424 - hash: "5292e7c95b3c5b11e4088b5010984257" + hash: "98fd3f1fc108de1d78f07587f9e94ec4" } Frame { msec: 1440 - hash: "ffe95603f5fe9d63abb3b77c399c3b11" + hash: "f75fbda5a1403f7b1dd8e9d05e30ebeb" } Frame { msec: 1456 - hash: "ad7cb73893c27b69704c5b821738a3c1" + hash: "c2742ff9a04bbae6c6de13f08d514913" } Frame { msec: 1472 - hash: "e25971a61888ded93b651891ec9661b0" + hash: "a73b65c18ba10e6b6d310fc325d7ccb2" } Frame { msec: 1488 - hash: "80f90b3623bf34544438dd00abee7037" + hash: "bbe72b26a6f3f518a3c8b6cd9e8dbfd1" } Key { type: 7 @@ -506,51 +506,51 @@ VisualTest { } Frame { msec: 1504 - hash: "797dd70572e532d4acb374230b2c8efe" + hash: "679205439a359f3ffb05f631a1979596" } Frame { msec: 1520 - hash: "0673db1283d874a5711520f272572cf8" + hash: "7ada5f6a58a6a7f9a3b4199a412fccfd" } Frame { msec: 1536 - hash: "fbc8434912f08a93b5f884258bc754b7" + hash: "66749c0e5b97cec02f4908a709201604" } Frame { msec: 1552 - hash: "e41ebaf8f2114a6e8f38f731ea164e8a" + hash: "373bfac053f5cfeceabe2979f3e6f444" } Frame { msec: 1568 - hash: "d14bdb5bf1b4756166ecf6f3255bf3cc" + hash: "c7ab2bcdcd1b7fd25ac775c4dd382635" } Frame { msec: 1584 - hash: "5fb04569aa0e530b898a3c11725b947e" + hash: "3116b1a0cf1724bdae2cb71b9e15c73e" } Frame { msec: 1600 - hash: "03d24457fae160864fec985765f6d8d1" + hash: "9bdc4513c30bf2d1eca61317cc22ebaa" } Frame { msec: 1616 - hash: "56dad740bb9032d113a0dacbe986c9c0" + hash: "bbecf871ff569ac1020272c1ccc9aa14" } Frame { msec: 1632 - hash: "70d9acda83aa7db59780cf56f03e38ec" + hash: "beef5a84dcc7794cf0aabfc8b7f811bc" } Frame { msec: 1648 - hash: "a272e39bc1af0f4d1bab9c3f64e746e2" + hash: "2db7161f3591ef0b3f1e3cb2aa357c8b" } Frame { msec: 1664 - hash: "cf0379de604b9bb33b4456cb89e09afd" + hash: "b8b5ffef5e52a8ae94ddb5ec3328fa0e" } Frame { msec: 1680 - hash: "332e7a10d75c0d21a24fc8be34269629" + hash: "b65c4657ffb97a59455f2c3e23e3eb51" } Key { type: 6 @@ -562,31 +562,31 @@ VisualTest { } Frame { msec: 1696 - hash: "c07eb71d90e74393205338bc946c1e43" + hash: "9702981b8eb5f035f2f4da6708ad1a92" } Frame { msec: 1712 - hash: "984477de7c103ff3aebc2634785dce09" + hash: "a6f46dd869daf69c5a5a3c887ae35a05" } Frame { msec: 1728 - hash: "958f79dd7c57387042746df2ca01779e" + hash: "902c0f174b16b1b0d419c13220937e06" } Frame { msec: 1744 - hash: "53bb3f0718d6333ca40dc279b6300b85" + hash: "97a5ea7449a1f313d0d5e818edc29bf6" } Frame { msec: 1760 - hash: "c16877cb99997cc47f1fff5af1d22bd7" + hash: "d5b69638452ea2260861c17991fc8bef" } Frame { msec: 1776 - hash: "dea3e1eb6c72f0d37398e3e301a23c19" + hash: "5fa21c53d65b078d1b30830d99a0fbaf" } Frame { msec: 1792 - hash: "6bb7918f0794e6a7cbdb8847cdcf6e35" + hash: "668de1d2fa5780f5088637d919db0a0d" } Key { type: 7 @@ -598,19 +598,19 @@ VisualTest { } Frame { msec: 1808 - hash: "6858cd874abb1ed2fec34862f76044fa" + hash: "1989592754c28456aa917562fa3620bd" } Frame { msec: 1824 - hash: "47b546ea0d5b1d4573991d4738c37f4d" + hash: "89cd0ef7c366bbcee8e4404e9a2285a7" } Frame { msec: 1840 - hash: "6c9e636dee2bb5f2a72a2c08ab9fb970" + hash: "d062d4b132ee3086a00220d47e8907fc" } Frame { msec: 1856 - hash: "42c2b2a7f41c88ae7bb19403e2460a17" + hash: "198bd9fc763c70fb84bdae122f0bdd8b" } Key { type: 7 @@ -622,7 +622,7 @@ VisualTest { } Frame { msec: 1872 - hash: "80b7986af693b89dc4d4f9533dae85cb" + hash: "304f7f6cef5b09c09db1284b8095e9a2" } Key { type: 6 @@ -634,43 +634,43 @@ VisualTest { } Frame { msec: 1888 - hash: "631bea21dde9b7647f5843bc3513f3ba" + hash: "565003fef7b9810ffe95c3bbeeda5bbc" } Frame { msec: 1904 - hash: "cc40335abbea0d589180096f7d8f5426" + hash: "2fa85a19ba2bb7d04264a246c4982eb4" } Frame { msec: 1920 - image: "cursorDelegate.1.png" + hash: "7be44eca358924dc11c5123e406f1c99" } Frame { msec: 1936 - hash: "1c03b5384a889fe233eb1c6d14a55f36" + image: "cursorDelegate.2.png" } Frame { msec: 1952 - hash: "7762cc4e6cf681311f5296de698c950b" + hash: "a08502b3fbb425c7b1cad93e4bc5701e" } Frame { msec: 1968 - hash: "678eed1d1fec30b02156d690777397c1" + hash: "fba3a88b7fe6f7583daf07db78f3598c" } Frame { msec: 1984 - hash: "96f51fee5c7baf78a3465420d63a9e5f" + hash: "509d75aa56bcdb6718c18b56e138ef3c" } Frame { msec: 2000 - hash: "96f51fee5c7baf78a3465420d63a9e5f" + hash: "509d75aa56bcdb6718c18b56e138ef3c" } Frame { msec: 2016 - hash: "96f51fee5c7baf78a3465420d63a9e5f" + hash: "509d75aa56bcdb6718c18b56e138ef3c" } Frame { msec: 2032 - hash: "96f51fee5c7baf78a3465420d63a9e5f" + hash: "509d75aa56bcdb6718c18b56e138ef3c" } Key { type: 7 @@ -682,7 +682,7 @@ VisualTest { } Frame { msec: 2048 - hash: "96f51fee5c7baf78a3465420d63a9e5f" + hash: "509d75aa56bcdb6718c18b56e138ef3c" } Key { type: 7 @@ -694,27 +694,27 @@ VisualTest { } Frame { msec: 2064 - hash: "678eed1d1fec30b02156d690777397c1" + hash: "fba3a88b7fe6f7583daf07db78f3598c" } Frame { msec: 2080 - hash: "7762cc4e6cf681311f5296de698c950b" + hash: "a08502b3fbb425c7b1cad93e4bc5701e" } Frame { msec: 2096 - hash: "1c03b5384a889fe233eb1c6d14a55f36" + hash: "86ad5a9e06d19ea79e0fc9f7f36cdb0f" } Frame { msec: 2112 - hash: "2cd264339edc0338fc610e0d766425cc" + hash: "7be44eca358924dc11c5123e406f1c99" } Frame { msec: 2128 - hash: "cc40335abbea0d589180096f7d8f5426" + hash: "2fa85a19ba2bb7d04264a246c4982eb4" } Frame { msec: 2144 - hash: "631bea21dde9b7647f5843bc3513f3ba" + hash: "565003fef7b9810ffe95c3bbeeda5bbc" } Key { type: 6 @@ -726,27 +726,27 @@ VisualTest { } Frame { msec: 2160 - hash: "c5199c908df1f550d7c4f133eb926134" + hash: "39c81c6efdbc32b6e0378810404bef2c" } Frame { msec: 2176 - hash: "483eca22c50750e7591785ed60813d1f" + hash: "756f36cf41c2bae3a8a8716701e55e37" } Frame { msec: 2192 - hash: "4091de379d8f6ccc7f19ea39f6c7993a" + hash: "fb09d44a5a5b5b795d562512e9547301" } Frame { msec: 2208 - hash: "cd58c0d4f7248315a787542b0edcb4fb" + hash: "183538d04cf009f100a1e49a3229c143" } Frame { msec: 2224 - hash: "458895f9ede4d56e0b851c6ed124405d" + hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce" } Frame { msec: 2240 - hash: "29a28a97fc78a1b01252b852fb0446e2" + hash: "f34175acc261ad79bc9d2083af04ae10" } Key { type: 7 @@ -758,31 +758,31 @@ VisualTest { } Frame { msec: 2256 - hash: "4fd9f22ad06e02b68319c298c2286e36" + hash: "39a59b2e9e0bee87d3ba50e1408bea1c" } Frame { msec: 2272 - hash: "a588e9dbeabd7519cd0cf2d26a123529" + hash: "db61ba19d56b69d148aeb182de596713" } Frame { msec: 2288 - hash: "bb74f706477e277284fad50752f078b5" + hash: "e0b07106a5adc1603788444d48b9c3db" } Frame { msec: 2304 - hash: "38f16a7deeaea6828edd15b00024fc19" + hash: "1dd5625fb6a0ddbaa3919a1702695e9c" } Frame { msec: 2320 - hash: "30c4aa33a6672f4df24186ad1e28bcf9" + hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc" } Frame { msec: 2336 - hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" + hash: "d7a226b40a049dee56755af9206246b4" } Frame { msec: 2352 - hash: "e1c083d0235ff5a2e002ce78f43009b0" + hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a" } Key { type: 6 @@ -802,23 +802,23 @@ VisualTest { } Frame { msec: 2368 - hash: "eaee6483a2a4a0b09a8e40bb1785a498" + hash: "21008b3a5179e25f9b132a4c05b8b8c4" } Frame { msec: 2384 - hash: "26530bded6311640c4d3f6d1485fa7d3" + hash: "a6f05fb5206a456bea790ba7ba31868c" } Frame { msec: 2400 - hash: "e54102edbf6cc0c9a32b09858f760ee5" + hash: "754e2fca1b3ed5ee9875aafb1a0c62d3" } Frame { msec: 2416 - hash: "27434828de3ba8f6a3b83f042b70eb8b" + hash: "75d1ae9c60573f9e27cd7c2d1706cbfc" } Frame { msec: 2432 - hash: "fdf68e988b988d068ea78a5a09ef349e" + hash: "c78608cde907bc09760d858795b43bbf" } Key { type: 6 @@ -830,23 +830,23 @@ VisualTest { } Frame { msec: 2448 - hash: "0e1e9a2cf891cf65f30ead539becf408" + hash: "348438b012690f63956e6a865c4173c5" } Frame { msec: 2464 - hash: "46602c03632f6a47c9d523e1ea61baaf" + hash: "b0c970656fdb5af48efc4bf0e1879f36" } Frame { msec: 2480 - hash: "5c758ee2aa3f92b6506533f6d615bc20" + hash: "7291a68c8e790f58e2440dfbe896c36d" } Frame { msec: 2496 - hash: "25edbdaae72e03426c9dfa75c08c33e6" + hash: "9bcbf9f7b35987c3acbd80031a688279" } Frame { msec: 2512 - hash: "a4bd11f15594932b996a069f3098c596" + hash: "48a00bd3f844e863338898bd28d845a4" } Key { type: 7 @@ -858,23 +858,23 @@ VisualTest { } Frame { msec: 2528 - hash: "e4090b920ce2456149155f61fb586a6f" + hash: "dc5f63ee9e8d50f744f7b375a52e32c3" } Frame { msec: 2544 - hash: "ce71f4dc76f90fa300d715ed77e8a5a8" + hash: "f52d2f475a335a75fad0a0f84e812809" } Frame { msec: 2560 - hash: "59414694d42a3942c4832fd7a3e93145" + hash: "bc54cefc8f0b84fc2432b0fb01203b9c" } Frame { msec: 2576 - hash: "1213fc9d9c1d58ceefc213a59f970679" + hash: "e6f14d1181a0db90d2c2891fd6e82883" } Frame { msec: 2592 - hash: "bbfa8471ab3fa5fc146946a6c8e0ce86" + hash: "1edc2fff7b3d76bbe2615810a5d15d41" } Key { type: 6 @@ -886,15 +886,15 @@ VisualTest { } Frame { msec: 2608 - hash: "22a49c3b5234b4b7a2b935d58027f834" + hash: "5bc156937a29989a3a39761b58958fbd" } Frame { msec: 2624 - hash: "7b81c14d5350fb55775c1cb0f3945c46" + hash: "071d45235a669e870356efc60ba8016c" } Frame { msec: 2640 - hash: "8ebf266de0df228e47cc6e5a8758a6ea" + hash: "1d588fb1f8321e4b437f924077fa7d60" } Key { type: 7 @@ -906,23 +906,23 @@ VisualTest { } Frame { msec: 2656 - hash: "6344eb333dc28672f863bcb7ca5d6cfe" + hash: "ca9aff6590dda45a66cdca601dccaf59" } Frame { msec: 2672 - hash: "8efc9b4a6c27b8918cba629a5a1c0f24" + hash: "2553146fff0d367cc6fa2d11f0a5c83a" } Frame { msec: 2688 - hash: "b586c24ce0c04391a9095c0ac4b7a05a" + hash: "05bd919cd91ff449027b188d9a24b61f" } Frame { msec: 2704 - hash: "191413fe51a6887ae92c135252fdeeae" + hash: "35d6ce9ecef79d006d6416c3b0d75e79" } Frame { msec: 2720 - hash: "fc0b37abf12827af41e7037eab8ba5c8" + hash: "1459a2410a971e344d4dacccff1eb7da" } Key { type: 6 @@ -934,19 +934,19 @@ VisualTest { } Frame { msec: 2736 - hash: "5efe28d02b93e094192d7fd6fe753acd" + hash: "bd04cc87db0138b57bf0feeafa7630f5" } Frame { msec: 2752 - hash: "dadc1f7b14fbf9f8a174821c4197da46" + hash: "81521187d5d88b62f4f7578ea4ee5f68" } Frame { msec: 2768 - hash: "124deac57a3eeaef4cb3c0c802bacc05" + hash: "f2f8d1e8232787da1e36d7e8a27b6d93" } Frame { msec: 2784 - hash: "e022a6d66a7b37d72885a7a7f6919433" + hash: "a5dbd1f572419ca4a4b91629e522867f" } Key { type: 7 @@ -958,75 +958,75 @@ VisualTest { } Frame { msec: 2800 - hash: "5faa6543469753948b1636351d044329" + hash: "23ab256301d7190f56c4f0af7f57bcc2" } Frame { msec: 2816 - hash: "a7dcf5a0b9bb00105eed173b498cb95c" + hash: "3a106a01b1cf6b53b5f8721415538f15" } Frame { msec: 2832 - hash: "29ac83d169af2c74ffd134d771c88718" + hash: "881f4de48cf79636f5cb292f4cacf842" } Frame { msec: 2848 - hash: "0a04648fdc90ec86fb55ad3a165573c4" + hash: "4abe8abf4f29a31220c03af143ef9978" } Frame { msec: 2864 - hash: "d699c713ba939612f1e552e48db19b18" + hash: "50db0e06ceb12795d3e11b2c4a04df9c" } Frame { msec: 2880 - image: "cursorDelegate.2.png" + hash: "39f759d5b58ffdaa79d438f932a72582" } Frame { msec: 2896 - hash: "adf564652cfae394869755ff2fe5b534" + image: "cursorDelegate.3.png" } Frame { msec: 2912 - hash: "d1453f663217ee45a8462b7d077d7f6a" + hash: "0cf83e3a000b8ae6a21ef64e5470430f" } Frame { msec: 2928 - hash: "9f1461d63ccc49f83e58245ba75685e1" + hash: "07116cd7cf46fc692542ac57c3e30aea" } Frame { msec: 2944 - hash: "8cece1543e7e9190eefaa92c2024cbd1" + hash: "bd92a36fad90de909b5a29a6fead2160" } Frame { msec: 2960 - hash: "555abf8bc3fdb1eef85b1e4bd54932a3" + hash: "95c4d0cc52903dc70c9118e26cd58b7b" } Frame { msec: 2976 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 2992 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 3008 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 3024 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 3040 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 3056 - hash: "7fc65284b99fc548de0985d94a145fa7" + hash: "cb6ca047657a99dbbb037c1c45b40866" } Frame { msec: 3072 - hash: "555abf8bc3fdb1eef85b1e4bd54932a3" + hash: "95c4d0cc52903dc70c9118e26cd58b7b" } Key { type: 6 @@ -1038,23 +1038,23 @@ VisualTest { } Frame { msec: 3088 - hash: "996da2eff9302908a55308dbcc8fb3c2" + hash: "f9e0bd08b722c16493a8886a19920dda" } Frame { msec: 3104 - hash: "6ccc70f6120acb53152b71bcf95514ca" + hash: "0636b7c5cc215882c60b50f62133c715" } Frame { msec: 3120 - hash: "51a1b8e79d209643d55d4cecc6a70ed0" + hash: "150b5a2f2e916b7023764c481c768492" } Frame { msec: 3136 - hash: "944dc7026c6487838ede9ef94003ec90" + hash: "14bc879f562ace9d2d1a3f3980a72e1f" } Frame { msec: 3152 - hash: "4abbd51b620ac4ea91af95bc2d0881d7" + hash: "2bdc09121f13e95e15e331ac90fbbe5e" } Key { type: 7 @@ -1066,27 +1066,27 @@ VisualTest { } Frame { msec: 3168 - hash: "ba721988a1708b8c0762d706820c48fc" + hash: "b701aa41aff9df45cc4b35d23789ad46" } Frame { msec: 3184 - hash: "5dba56a5bb5f8a6539a0066af35c73b8" + hash: "ad77330d51b1251576905a45fdbdf576" } Frame { msec: 3200 - hash: "bc3efeeebe7075cd09a6e57eef43d610" + hash: "4ab6780997a5a598d2da7fbbc19877b7" } Frame { msec: 3216 - hash: "0bd9f7de32b01d8144280bf252d9a18f" + hash: "43b324d0e4882147d316a5dc16eff4a5" } Frame { msec: 3232 - hash: "29db710e47b13f26e2bf92568d52bf52" + hash: "4379bfd0da6fedac77e2111d9fdc5ecb" } Frame { msec: 3248 - hash: "a27c65c0a49deb18b0766bba41a32e54" + hash: "ca35937be71e1f982cedd33bdd09d127" } Key { type: 6 @@ -1098,31 +1098,31 @@ VisualTest { } Frame { msec: 3264 - hash: "484ee552e1a9c5eafcfe1ac583fcdffd" + hash: "f6bac38774fa8a09084c045e34fd1732" } Frame { msec: 3280 - hash: "40b336a0e337b66d813089a82a88c712" + hash: "6d8b58612860febb13800958cab3aecd" } Frame { msec: 3296 - hash: "b7a8d4b8bb2b83e4c886aa51c1a73895" + hash: "7f921d2293cf547de3b5573dbf98d5bb" } Frame { msec: 3312 - hash: "43b3bf8425e7a6b7115d8e6a0bcfd677" + hash: "18771337bbe826b5a34bd9705c79f56a" } Frame { msec: 3328 - hash: "e2ce168241b043db74867fe7ed6de956" + hash: "3dd49406c4b39980908d8869dc3c060a" } Frame { msec: 3344 - hash: "0c713bbd7bb694d87f0fe14f87098b9b" + hash: "8cae649565b5655d606f216334a0b5b5" } Frame { msec: 3360 - hash: "316f6bd365ca4b4f2e6fbf34a047e307" + hash: "27c59b474d706ce79b5d075713c1ea88" } Key { type: 7 @@ -1134,39 +1134,39 @@ VisualTest { } Frame { msec: 3376 - hash: "421fb8881fe7b300dcec0f44ff1743e3" + hash: "6d70d654998bbc0a2431ca7c4a58cd3c" } Frame { msec: 3392 - hash: "e8376079434393467b47a56ff00efb2b" + hash: "bf55fffd1727c0d076e05e274dcebb0d" } Frame { msec: 3408 - hash: "63259de84a6e07d42c9df94ec2a25920" + hash: "d5b0696cbe2969723bb2fe740deeb81f" } Frame { msec: 3424 - hash: "f9194d82b81f5ac58862c382caf5cf59" + hash: "27968050a9cf7d57d016274709086be1" } Frame { msec: 3440 - hash: "e185f2594f038532a37b351384dc97ea" + hash: "3bc037fd17d0d394b82ba19914f31b90" } Frame { msec: 3456 - hash: "91edc3ca1e6c532bd92006a761073da2" + hash: "117d7ad2d2ae47f3a0c2a68928534b76" } Frame { msec: 3472 - hash: "b47390495539756048ccc71047ebef7b" + hash: "a538ce971f34a497c05258da2567a208" } Frame { msec: 3488 - hash: "7c83d3bdb9abf8ab2cfe7f9464673a49" + hash: "91e2e5cc6efcffc9e58646a008a57c9d" } Frame { msec: 3504 - hash: "b686f4013f45885ab794aba9ff491286" + hash: "13db17cc3c6513014a95210a443e5842" } Key { type: 7 @@ -1178,11 +1178,11 @@ VisualTest { } Frame { msec: 3520 - hash: "0c55d6ea330b7365825864d4bdacafcb" + hash: "03325597bd4e7d7b6f7c84c848018872" } Frame { msec: 3536 - hash: "2bb72f191201572308e461021872fb4c" + hash: "e96dc6d611d23553b363a765195604f9" } Key { type: 7 @@ -1194,358 +1194,358 @@ VisualTest { } Frame { msec: 3552 - hash: "81b04a84982698ee80d13d392742edd3" + hash: "942476dd6fb7a4f3d10c398503cb7b90" } Frame { msec: 3568 - hash: "63f582dc2a9f707c1ec99f4285d13a84" + hash: "cbe34fd18b6355ae9be469a594b44192" } Frame { msec: 3584 - hash: "f91cb29101f80f5dcb1e9e8c82e823b7" + hash: "3dce89f398d2c856bcd32da34867ebd8" } Frame { msec: 3600 - hash: "fdf68e988b988d068ea78a5a09ef349e" + hash: "c78608cde907bc09760d858795b43bbf" } Frame { msec: 3616 - hash: "27434828de3ba8f6a3b83f042b70eb8b" + hash: "75d1ae9c60573f9e27cd7c2d1706cbfc" } Frame { msec: 3632 - hash: "e54102edbf6cc0c9a32b09858f760ee5" + hash: "754e2fca1b3ed5ee9875aafb1a0c62d3" } Frame { msec: 3648 - hash: "26530bded6311640c4d3f6d1485fa7d3" + hash: "a6f05fb5206a456bea790ba7ba31868c" } Frame { msec: 3664 - hash: "eaee6483a2a4a0b09a8e40bb1785a498" + hash: "21008b3a5179e25f9b132a4c05b8b8c4" } Frame { msec: 3680 - hash: "e1c083d0235ff5a2e002ce78f43009b0" + hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a" } Frame { msec: 3696 - hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" + hash: "d7a226b40a049dee56755af9206246b4" } Frame { msec: 3712 - hash: "30c4aa33a6672f4df24186ad1e28bcf9" + hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc" } Frame { msec: 3728 - hash: "38f16a7deeaea6828edd15b00024fc19" + hash: "1dd5625fb6a0ddbaa3919a1702695e9c" } Frame { msec: 3744 - hash: "bb74f706477e277284fad50752f078b5" + hash: "e0b07106a5adc1603788444d48b9c3db" } Frame { msec: 3760 - hash: "a588e9dbeabd7519cd0cf2d26a123529" + hash: "db61ba19d56b69d148aeb182de596713" } Frame { msec: 3776 - hash: "4fd9f22ad06e02b68319c298c2286e36" + hash: "39a59b2e9e0bee87d3ba50e1408bea1c" } Frame { msec: 3792 - hash: "29a28a97fc78a1b01252b852fb0446e2" + hash: "f34175acc261ad79bc9d2083af04ae10" } Frame { msec: 3808 - hash: "458895f9ede4d56e0b851c6ed124405d" + hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce" } Frame { msec: 3824 - hash: "cd58c0d4f7248315a787542b0edcb4fb" + hash: "183538d04cf009f100a1e49a3229c143" } Frame { msec: 3840 - image: "cursorDelegate.3.png" + hash: "fb09d44a5a5b5b795d562512e9547301" } Frame { msec: 3856 - hash: "483eca22c50750e7591785ed60813d1f" + image: "cursorDelegate.4.png" } Frame { msec: 3872 - hash: "c5199c908df1f550d7c4f133eb926134" + hash: "39c81c6efdbc32b6e0378810404bef2c" } Frame { msec: 3888 - hash: "efaa5e4483ed9cfec792e8f270b5079e" + hash: "23d9a9a6a9d032c7e447407193ca51ef" } Frame { msec: 3904 - hash: "7ffcff87e27dcb0be0047eb6fbcc9549" + hash: "bdd00cfe933985fe77626114902ce823" } Frame { msec: 3920 - hash: "04339417259ddee10134e1479729ae1b" + hash: "1d25c2753ccabdaaf47a669c28d9e2cb" } Frame { msec: 3936 - hash: "0f1e6a0d9db7b6b8b874333682866ffa" + hash: "20fde9bbe26ebede31fc8c21dec3fcc5" } Frame { msec: 3952 - hash: "66500c2cc3d69b9fb48dc46e384aca6d" + hash: "c9147c159aebb7aa51d4bac28f96cb57" } Frame { msec: 3968 - hash: "70d6b73499c36138bee63e07afb0b186" + hash: "68d331f508b43e756d6e30ba9b60f9aa" } Frame { msec: 3984 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4000 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4016 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4032 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4048 - hash: "c526315dd5eec117266c68a7b6b64a3f" + hash: "af99069cdddfa9d099fbe25ba586e138" } Frame { msec: 4064 - hash: "70d6b73499c36138bee63e07afb0b186" + hash: "68d331f508b43e756d6e30ba9b60f9aa" } Frame { msec: 4080 - hash: "66500c2cc3d69b9fb48dc46e384aca6d" + hash: "c9147c159aebb7aa51d4bac28f96cb57" } Frame { msec: 4096 - hash: "0f1e6a0d9db7b6b8b874333682866ffa" + hash: "20fde9bbe26ebede31fc8c21dec3fcc5" } Frame { msec: 4112 - hash: "04339417259ddee10134e1479729ae1b" + hash: "1d25c2753ccabdaaf47a669c28d9e2cb" } Frame { msec: 4128 - hash: "7ffcff87e27dcb0be0047eb6fbcc9549" + hash: "bdd00cfe933985fe77626114902ce823" } Frame { msec: 4144 - hash: "efaa5e4483ed9cfec792e8f270b5079e" + hash: "23d9a9a6a9d032c7e447407193ca51ef" } Frame { msec: 4160 - hash: "c5199c908df1f550d7c4f133eb926134" + hash: "39c81c6efdbc32b6e0378810404bef2c" } Frame { msec: 4176 - hash: "483eca22c50750e7591785ed60813d1f" + hash: "756f36cf41c2bae3a8a8716701e55e37" } Frame { msec: 4192 - hash: "4091de379d8f6ccc7f19ea39f6c7993a" + hash: "fb09d44a5a5b5b795d562512e9547301" } Frame { msec: 4208 - hash: "cd58c0d4f7248315a787542b0edcb4fb" + hash: "183538d04cf009f100a1e49a3229c143" } Frame { msec: 4224 - hash: "458895f9ede4d56e0b851c6ed124405d" + hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce" } Frame { msec: 4240 - hash: "29a28a97fc78a1b01252b852fb0446e2" + hash: "f34175acc261ad79bc9d2083af04ae10" } Frame { msec: 4256 - hash: "4fd9f22ad06e02b68319c298c2286e36" + hash: "39a59b2e9e0bee87d3ba50e1408bea1c" } Frame { msec: 4272 - hash: "a588e9dbeabd7519cd0cf2d26a123529" + hash: "db61ba19d56b69d148aeb182de596713" } Frame { msec: 4288 - hash: "bb74f706477e277284fad50752f078b5" + hash: "e0b07106a5adc1603788444d48b9c3db" } Frame { msec: 4304 - hash: "38f16a7deeaea6828edd15b00024fc19" + hash: "1dd5625fb6a0ddbaa3919a1702695e9c" } Frame { msec: 4320 - hash: "30c4aa33a6672f4df24186ad1e28bcf9" + hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc" } Frame { msec: 4336 - hash: "7f2ac0854ddbcca94a2ad160ead5d4d3" + hash: "d7a226b40a049dee56755af9206246b4" } Frame { msec: 4352 - hash: "e1c083d0235ff5a2e002ce78f43009b0" + hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a" } Frame { msec: 4368 - hash: "eaee6483a2a4a0b09a8e40bb1785a498" + hash: "21008b3a5179e25f9b132a4c05b8b8c4" } Frame { msec: 4384 - hash: "26530bded6311640c4d3f6d1485fa7d3" + hash: "a6f05fb5206a456bea790ba7ba31868c" } Frame { msec: 4400 - hash: "e54102edbf6cc0c9a32b09858f760ee5" + hash: "754e2fca1b3ed5ee9875aafb1a0c62d3" } Frame { msec: 4416 - hash: "27434828de3ba8f6a3b83f042b70eb8b" + hash: "75d1ae9c60573f9e27cd7c2d1706cbfc" } Frame { msec: 4432 - hash: "fdf68e988b988d068ea78a5a09ef349e" + hash: "c78608cde907bc09760d858795b43bbf" } Frame { msec: 4448 - hash: "f91cb29101f80f5dcb1e9e8c82e823b7" + hash: "3dce89f398d2c856bcd32da34867ebd8" } Frame { msec: 4464 - hash: "63f582dc2a9f707c1ec99f4285d13a84" + hash: "cbe34fd18b6355ae9be469a594b44192" } Frame { msec: 4480 - hash: "81b04a84982698ee80d13d392742edd3" + hash: "942476dd6fb7a4f3d10c398503cb7b90" } Frame { msec: 4496 - hash: "2bb72f191201572308e461021872fb4c" + hash: "e96dc6d611d23553b363a765195604f9" } Frame { msec: 4512 - hash: "0c55d6ea330b7365825864d4bdacafcb" + hash: "03325597bd4e7d7b6f7c84c848018872" } Frame { msec: 4528 - hash: "b686f4013f45885ab794aba9ff491286" + hash: "13db17cc3c6513014a95210a443e5842" } Frame { msec: 4544 - hash: "7c83d3bdb9abf8ab2cfe7f9464673a49" + hash: "91e2e5cc6efcffc9e58646a008a57c9d" } Frame { msec: 4560 - hash: "b47390495539756048ccc71047ebef7b" + hash: "a538ce971f34a497c05258da2567a208" } Frame { msec: 4576 - hash: "91edc3ca1e6c532bd92006a761073da2" + hash: "117d7ad2d2ae47f3a0c2a68928534b76" } Frame { msec: 4592 - hash: "e185f2594f038532a37b351384dc97ea" + hash: "3bc037fd17d0d394b82ba19914f31b90" } Frame { msec: 4608 - hash: "f9194d82b81f5ac58862c382caf5cf59" + hash: "27968050a9cf7d57d016274709086be1" } Frame { msec: 4624 - hash: "63259de84a6e07d42c9df94ec2a25920" + hash: "d5b0696cbe2969723bb2fe740deeb81f" } Frame { msec: 4640 - hash: "e8376079434393467b47a56ff00efb2b" + hash: "bf55fffd1727c0d076e05e274dcebb0d" } Frame { msec: 4656 - hash: "421fb8881fe7b300dcec0f44ff1743e3" + hash: "6d70d654998bbc0a2431ca7c4a58cd3c" } Frame { msec: 4672 - hash: "316f6bd365ca4b4f2e6fbf34a047e307" + hash: "27c59b474d706ce79b5d075713c1ea88" } Frame { msec: 4688 - hash: "0c713bbd7bb694d87f0fe14f87098b9b" + hash: "8cae649565b5655d606f216334a0b5b5" } Frame { msec: 4704 - hash: "e2ce168241b043db74867fe7ed6de956" + hash: "3dd49406c4b39980908d8869dc3c060a" } Frame { msec: 4720 - hash: "43b3bf8425e7a6b7115d8e6a0bcfd677" + hash: "18771337bbe826b5a34bd9705c79f56a" } Frame { msec: 4736 - hash: "b7a8d4b8bb2b83e4c886aa51c1a73895" + hash: "7f921d2293cf547de3b5573dbf98d5bb" } Frame { msec: 4752 - hash: "40b336a0e337b66d813089a82a88c712" + hash: "6d8b58612860febb13800958cab3aecd" } Frame { msec: 4768 - hash: "484ee552e1a9c5eafcfe1ac583fcdffd" + hash: "f6bac38774fa8a09084c045e34fd1732" } Frame { msec: 4784 - hash: "a27c65c0a49deb18b0766bba41a32e54" + hash: "ca35937be71e1f982cedd33bdd09d127" } Frame { msec: 4800 - image: "cursorDelegate.4.png" + hash: "4379bfd0da6fedac77e2111d9fdc5ecb" } Frame { msec: 4816 - hash: "0bd9f7de32b01d8144280bf252d9a18f" + image: "cursorDelegate.5.png" } Frame { msec: 4832 - hash: "bc3efeeebe7075cd09a6e57eef43d610" + hash: "4ab6780997a5a598d2da7fbbc19877b7" } Frame { msec: 4848 - hash: "5dba56a5bb5f8a6539a0066af35c73b8" + hash: "ad77330d51b1251576905a45fdbdf576" } Frame { msec: 4864 - hash: "ba721988a1708b8c0762d706820c48fc" + hash: "b701aa41aff9df45cc4b35d23789ad46" } Frame { msec: 4880 - hash: "4abbd51b620ac4ea91af95bc2d0881d7" + hash: "2bdc09121f13e95e15e331ac90fbbe5e" } Frame { msec: 4896 - hash: "944dc7026c6487838ede9ef94003ec90" + hash: "14bc879f562ace9d2d1a3f3980a72e1f" } Frame { msec: 4912 - hash: "51a1b8e79d209643d55d4cecc6a70ed0" + hash: "150b5a2f2e916b7023764c481c768492" } Frame { msec: 4928 - hash: "6ccc70f6120acb53152b71bcf95514ca" + hash: "0636b7c5cc215882c60b50f62133c715" } Frame { msec: 4944 - hash: "996da2eff9302908a55308dbcc8fb3c2" + hash: "f9e0bd08b722c16493a8886a19920dda" } Frame { msec: 4960 - hash: "264f34128dfe563126b9f187c65df61e" + hash: "f499f4b3017c88c63f0a2035ad527a0e" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png index 57a1599..5f632d0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png index d327d5b..05dd690 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png index c1e3dce..eb74cc5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png new file mode 100644 index 0000000..3aed06c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml index 9a26f57..2de4a10 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml @@ -6,7 +6,7 @@ VisualTest { } Frame { msec: 16 - hash: "0e7c7dc19aab217751411568b58830ef" + image: "echoMode.0.png" } Frame { msec: 32 @@ -110,23 +110,23 @@ VisualTest { } Frame { msec: 368 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 384 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 400 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 416 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 432 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Key { type: 7 @@ -138,27 +138,27 @@ VisualTest { } Frame { msec: 448 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 464 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 480 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 496 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 512 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 528 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Key { type: 7 @@ -170,43 +170,43 @@ VisualTest { } Frame { msec: 544 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 560 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 576 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 592 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 608 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 624 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 640 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 656 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 672 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Frame { msec: 688 - hash: "d3151ba24f0011bf1add83377f32ec85" + hash: "bc06530170cf26690a09ed9f6c4014fd" } Key { type: 6 @@ -218,23 +218,23 @@ VisualTest { } Frame { msec: 704 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 720 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 736 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 752 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 768 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Key { type: 7 @@ -246,23 +246,23 @@ VisualTest { } Frame { msec: 784 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 800 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 816 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 832 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Frame { msec: 848 - hash: "6b7c333ce19fede43aee84cc66c4c1bc" + hash: "8c64a986ce7bd19dcc88785309456f4e" } Key { type: 6 @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 880 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 896 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Key { type: 7 @@ -294,23 +294,23 @@ VisualTest { } Frame { msec: 912 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 928 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 944 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 960 - image: "echoMode.0.png" + hash: "4cfca8edcb96b1d9986db4ee491bf857" } Frame { msec: 976 - hash: "a5386e9b39daa0a5aad8a8cd5191909b" + image: "echoMode.1.png" } Key { type: 6 @@ -322,19 +322,19 @@ VisualTest { } Frame { msec: 992 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1008 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1024 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1040 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Key { type: 7 @@ -346,51 +346,51 @@ VisualTest { } Frame { msec: 1056 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1072 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1088 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1104 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1120 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1136 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1152 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1168 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1184 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1200 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1216 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Frame { msec: 1232 - hash: "f9149723166015ed066b794cf86b27d0" + hash: "3d25316ea23ace5a88dbe8765b743eb3" } Key { type: 6 @@ -402,15 +402,15 @@ VisualTest { } Frame { msec: 1248 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Frame { msec: 1264 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Frame { msec: 1280 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Key { type: 7 @@ -422,15 +422,15 @@ VisualTest { } Frame { msec: 1296 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Frame { msec: 1312 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Frame { msec: 1328 - hash: "56dd8557435509e5a96c2f2907d474eb" + hash: "fea82a32ec46a88027cc9b0c00aa0aba" } Key { type: 6 @@ -442,39 +442,39 @@ VisualTest { } Frame { msec: 1344 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1360 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1376 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1392 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1408 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1424 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1440 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1456 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Frame { msec: 1472 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1488 - hash: "b311772a9bf92f4222b1c1c7ddbe96c4" + hash: "fffa6f462ea15fe3bdbf2c199881fce4" } Key { type: 6 @@ -498,19 +498,19 @@ VisualTest { } Frame { msec: 1504 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1520 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1536 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1552 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1584 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1600 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1616 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1632 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Frame { msec: 1648 - hash: "8feb240ad13e1e9d8392bfeb484261db" + hash: "d874584748e4aa14fd71730aa36d676c" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "cd240ccffd4b4a6304b47cfd1e55cf49" + hash: "5eac6452c3c01de25633be412b2c9fd6" } Frame { msec: 1680 - hash: "cd240ccffd4b4a6304b47cfd1e55cf49" + hash: "5eac6452c3c01de25633be412b2c9fd6" } Frame { msec: 1696 - hash: "cd240ccffd4b4a6304b47cfd1e55cf49" + hash: "5eac6452c3c01de25633be412b2c9fd6" } Frame { msec: 1712 - hash: "cd240ccffd4b4a6304b47cfd1e55cf49" + hash: "5eac6452c3c01de25633be412b2c9fd6" } Frame { msec: 1728 - hash: "cd240ccffd4b4a6304b47cfd1e55cf49" + hash: "5eac6452c3c01de25633be412b2c9fd6" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Frame { msec: 1776 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Frame { msec: 1792 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Frame { msec: 1824 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Frame { msec: 1840 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Frame { msec: 1856 - hash: "437370a412fccbeee3d1f095e32c3584" + hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" } Key { type: 6 @@ -638,19 +638,19 @@ VisualTest { } Frame { msec: 1872 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 1888 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 1904 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 1920 - image: "echoMode.1.png" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Key { type: 7 @@ -662,27 +662,27 @@ VisualTest { } Frame { msec: 1936 - hash: "eb4a45722e365b103ff5423117236fd3" + image: "echoMode.2.png" } Frame { msec: 1952 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 1968 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 1984 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 2000 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Frame { msec: 2016 - hash: "eb4a45722e365b103ff5423117236fd3" + hash: "4a31bba56f9adaccf47e6335ed4e284f" } Key { type: 6 @@ -694,11 +694,11 @@ VisualTest { } Frame { msec: 2032 - hash: "b53d0651627d008545e54063ceb8d689" + hash: "8bbabbbe84de490438d1111aa728c15f" } Frame { msec: 2048 - hash: "b53d0651627d008545e54063ceb8d689" + hash: "8bbabbbe84de490438d1111aa728c15f" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2064 - hash: "b53d0651627d008545e54063ceb8d689" + hash: "8bbabbbe84de490438d1111aa728c15f" } Frame { msec: 2080 - hash: "b53d0651627d008545e54063ceb8d689" + hash: "8bbabbbe84de490438d1111aa728c15f" } Key { type: 6 @@ -726,19 +726,19 @@ VisualTest { } Frame { msec: 2096 - hash: "173b36137940b37001750e02d434b8e8" + hash: "5877f1d527fecaf1077ff5bd2fe1934f" } Frame { msec: 2112 - hash: "173b36137940b37001750e02d434b8e8" + hash: "5877f1d527fecaf1077ff5bd2fe1934f" } Frame { msec: 2128 - hash: "173b36137940b37001750e02d434b8e8" + hash: "5877f1d527fecaf1077ff5bd2fe1934f" } Frame { msec: 2144 - hash: "173b36137940b37001750e02d434b8e8" + hash: "5877f1d527fecaf1077ff5bd2fe1934f" } Key { type: 6 @@ -758,19 +758,19 @@ VisualTest { } Frame { msec: 2160 - hash: "2e636a964b4a1ab74ad3e23399c2ae8c" + hash: "1593ef669fdff28c33f54c12c7e7424e" } Frame { msec: 2176 - hash: "2e636a964b4a1ab74ad3e23399c2ae8c" + hash: "1593ef669fdff28c33f54c12c7e7424e" } Frame { msec: 2192 - hash: "2e636a964b4a1ab74ad3e23399c2ae8c" + hash: "1593ef669fdff28c33f54c12c7e7424e" } Frame { msec: 2208 - hash: "2e636a964b4a1ab74ad3e23399c2ae8c" + hash: "1593ef669fdff28c33f54c12c7e7424e" } Key { type: 6 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2224 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Key { type: 7 @@ -794,23 +794,23 @@ VisualTest { } Frame { msec: 2240 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Frame { msec: 2256 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Frame { msec: 2272 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Frame { msec: 2288 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Frame { msec: 2304 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Key { type: 7 @@ -822,11 +822,11 @@ VisualTest { } Frame { msec: 2320 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Frame { msec: 2336 - hash: "631c6034372c2e7675ebce0ec415f230" + hash: "da746581451954d7d941fbac825a1009" } Key { type: 6 @@ -838,27 +838,27 @@ VisualTest { } Frame { msec: 2352 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2368 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2384 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2400 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2416 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2432 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Key { type: 7 @@ -870,19 +870,19 @@ VisualTest { } Frame { msec: 2448 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2464 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2480 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Frame { msec: 2496 - hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f" + hash: "3e008b7ead8459c1667f4f385d4c5372" } Key { type: 6 @@ -894,15 +894,15 @@ VisualTest { } Frame { msec: 2512 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2528 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2544 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Key { type: 7 @@ -914,130 +914,130 @@ VisualTest { } Frame { msec: 2560 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2576 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2592 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2608 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2624 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2640 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2656 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2672 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2688 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2704 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2720 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2736 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2752 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2768 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2784 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2800 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2816 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2832 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2848 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2864 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2880 - image: "echoMode.2.png" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2896 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + image: "echoMode.3.png" } Frame { msec: 2912 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2928 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2944 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2960 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2976 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 2992 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 3008 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 3024 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 3040 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } Frame { msec: 3056 - hash: "91ef7f08d8fec2e0d353b1bf5da99c41" + hash: "1dbc7e1ab58dcec8691ff4195b0d581c" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png new file mode 100644 index 0000000..6a32f0d Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml index 4c402ea..fd64d64 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml @@ -6,102 +6,102 @@ VisualTest { } Frame { msec: 16 - hash: "840c5f54c105f90c7b0c2254fee2e434" + image: "hAlign.0.png" } Frame { msec: 32 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 48 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 64 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 80 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 96 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 112 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 128 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 144 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 160 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 176 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 192 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 208 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 224 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 240 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 256 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 272 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 288 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 304 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 320 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 336 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 352 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 368 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 384 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } Frame { msec: 400 - hash: "840c5f54c105f90c7b0c2254fee2e434" + hash: "043c40378d2707bd231a448cd242aa3c" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png new file mode 100644 index 0000000..6ca52b6 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png new file mode 100644 index 0000000..31d6b2c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png new file mode 100644 index 0000000..d89e2d8 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png new file mode 100644 index 0000000..834516a Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png new file mode 100644 index 0000000..31d6b2c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png new file mode 100644 index 0000000..31d6b2c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png new file mode 100644 index 0000000..8147bda Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png new file mode 100644 index 0000000..c67e619 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png new file mode 100644 index 0000000..646855f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png new file mode 100644 index 0000000..c1a9d5c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png new file mode 100644 index 0000000..d6c92b7 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png new file mode 100644 index 0000000..e798d3b Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml new file mode 100644 index 0000000..a1a0821 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml @@ -0,0 +1,4335 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "usingLineEdit.0.png" + } + Frame { + msec: 32 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 48 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 64 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 80 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 96 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 112 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 128 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 144 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 160 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 176 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 192 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 208 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 224 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 240 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 256 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 272 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 288 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 304 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 320 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 336 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 352 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 368 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 384 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 400 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 416 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 432 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 448 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 464 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 480 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 496 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 512 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 528 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 544 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 560 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 576 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 592 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 608 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 624 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 640 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 656 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 672 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 688 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 704 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 720 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 736 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 752 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 768 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 784 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 800 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 816 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 832 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 848 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 864 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 880 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 896 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 912 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Frame { + msec: 928 + hash: "b2bcfe5c299742bf7da166e9ae1e1126" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 85; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 944 + hash: "1e95a74868a748e11efdc6fbb500f6e8" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 85; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 960 + hash: "1e95a74868a748e11efdc6fbb500f6e8" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 85; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 976 + image: "usingLineEdit.1.png" + } + Frame { + msec: 992 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1008 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1024 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1040 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1056 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 85; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1088 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1104 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1120 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1136 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1152 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1168 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1184 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1200 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1216 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1232 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1248 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1264 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1280 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1296 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1312 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1328 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1344 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1360 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 1376 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1392 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1408 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1424 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1440 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1456 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1472 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1488 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1504 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1520 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1536 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1552 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1568 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1584 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1600 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1616 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1632 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1648 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1664 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1680 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1696 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1712 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1728 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1744 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1760 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1776 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1792 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1808 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1824 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1840 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1856 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1872 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1888 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1904 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1920 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1936 + image: "usingLineEdit.2.png" + } + Frame { + msec: 1952 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1968 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 1984 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 6 + key: 67 + modifiers: 67108864 + text: "03" + autorep: false + count: 1 + } + Frame { + msec: 2000 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2016 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2032 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2048 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2064 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2080 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2096 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2112 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 7 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 7 + key: 67 + modifiers: 0 + text: "63" + autorep: false + count: 1 + } + Frame { + msec: 2128 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2144 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2160 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2176 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2192 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2208 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2224 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2240 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2256 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2272 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2288 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2304 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2320 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2336 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2352 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2368 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2384 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2400 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2416 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2432 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2448 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2464 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2480 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 6 + key: 16777233 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 2496 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2512 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2528 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2544 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2560 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2576 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 7 + key: 16777233 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 2592 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2608 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2624 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2640 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2656 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2672 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2688 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2704 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2720 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2736 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2752 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2768 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2784 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 2800 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2816 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2832 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2848 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2864 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2880 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2896 + image: "usingLineEdit.3.png" + } + Frame { + msec: 2912 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2928 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2944 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2960 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2976 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 2992 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3008 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3024 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3040 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3056 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3072 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3088 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3104 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3120 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3136 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3152 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3168 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3184 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3200 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Frame { + msec: 3216 + hash: "c346bd1c6a8c04dff75bc14882a4d964" + } + Key { + type: 6 + key: 86 + modifiers: 67108864 + text: "16" + autorep: false + count: 1 + } + Frame { + msec: 3232 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3248 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3264 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3280 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3296 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3312 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3328 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Key { + type: 7 + key: 86 + modifiers: 67108864 + text: "16" + autorep: false + count: 1 + } + Frame { + msec: 3344 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3360 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3376 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3392 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3408 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3424 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3440 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3456 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3472 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3488 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3504 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3520 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3536 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Frame { + msec: 3552 + hash: "4e24e7e6a205160479b0d23057a50b37" + } + Key { + type: 6 + key: 86 + modifiers: 67108864 + text: "16" + autorep: false + count: 1 + } + Frame { + msec: 3568 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3584 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3600 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3616 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3632 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3648 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3664 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3680 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Key { + type: 7 + key: 86 + modifiers: 67108864 + text: "16" + autorep: false + count: 1 + } + Frame { + msec: 3696 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3712 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3728 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3744 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3760 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3776 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3792 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3808 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3824 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3840 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3856 + image: "usingLineEdit.4.png" + } + Frame { + msec: 3872 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3888 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3904 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3920 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3936 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3952 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3968 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 3984 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4000 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4016 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4032 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4048 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4064 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4080 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4096 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4112 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4128 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4144 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4160 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4176 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4192 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Key { + type: 7 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 4208 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4224 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4240 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4256 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4272 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4288 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4304 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4320 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4336 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4352 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4368 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4384 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4400 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4416 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4432 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4448 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4464 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4480 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4496 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4512 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4528 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4544 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4560 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4576 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4592 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4608 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4624 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4640 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4656 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4672 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4688 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Frame { + msec: 4704 + hash: "c6354c09a2bdf6ff23cae30640abdd65" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 69; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4720 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4736 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4752 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4768 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4784 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4800 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 69; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4816 + image: "usingLineEdit.5.png" + } + Frame { + msec: 4832 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4848 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4864 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4880 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4896 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4912 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4928 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4944 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4960 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4976 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 4992 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5008 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5024 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5040 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5056 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5072 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5088 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5104 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5120 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5136 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5152 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5168 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5184 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5200 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5216 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5232 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5248 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5264 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5280 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5296 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5312 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5328 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5344 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Frame { + msec: 5360 + hash: "b7e9475cc88b099f9e17b67f4d0c8ed0" + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5376 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5392 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5408 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5424 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5440 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5456 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5472 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5488 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5504 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5520 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5536 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5552 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5568 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5584 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5600 + hash: "5435254889b22b00b043f0d748021369" + } + Frame { + msec: 5616 + hash: "5435254889b22b00b043f0d748021369" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5632 + hash: "94fa3848acc33accfb607ce31029f06d" + } + Frame { + msec: 5648 + hash: "94fa3848acc33accfb607ce31029f06d" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5664 + hash: "1ea423dd8084001f2357f1613a77daa4" + } + Frame { + msec: 5680 + hash: "1ea423dd8084001f2357f1613a77daa4" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5696 + hash: "b0f808e85cc5721473da7cd84b1987dc" + } + Frame { + msec: 5712 + hash: "b0f808e85cc5721473da7cd84b1987dc" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5728 + hash: "0667aaf2eb49c2375b831301fefb0035" + } + Frame { + msec: 5744 + hash: "0667aaf2eb49c2375b831301fefb0035" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5760 + hash: "7680aca6b9feccc7e73efa79c1473ce8" + } + Frame { + msec: 5776 + image: "usingLineEdit.6.png" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5792 + hash: "fbbc99bf6a697d60ef348148c0a48bc2" + } + Frame { + msec: 5808 + hash: "fbbc99bf6a697d60ef348148c0a48bc2" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5824 + hash: "9550d8fab2512470dd9dde62f3494450" + } + Frame { + msec: 5840 + hash: "9550d8fab2512470dd9dde62f3494450" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5856 + hash: "9550d8fab2512470dd9dde62f3494450" + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5872 + hash: "ab79f5095d60f5cef526a074ef6d4e96" + } + Frame { + msec: 5888 + hash: "ab79f5095d60f5cef526a074ef6d4e96" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5904 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Key { + type: 7 + key: 16777236 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 5920 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 5936 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 5952 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 5968 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 5984 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6000 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6016 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6032 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6048 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6064 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6080 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6096 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6112 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6128 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Frame { + msec: 6144 + hash: "4e6ef470ed2c2a2418a4838c6e4ae64b" + } + Key { + type: 6 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6160 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6176 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6192 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6208 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6224 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6240 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6256 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6272 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6288 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6304 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6320 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6336 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6352 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6368 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6384 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6400 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 7 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6416 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6432 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 7 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6448 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6464 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 7 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Key { + type: 6 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Key { + type: 7 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6480 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6496 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6512 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6528 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6544 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6560 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6576 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6592 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6608 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6624 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6640 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6656 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6672 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6688 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6704 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6720 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6736 + image: "usingLineEdit.7.png" + } + Frame { + msec: 6752 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6768 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6784 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 6 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6800 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 7 + key: 16777234 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6816 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6832 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6848 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6864 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6880 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6896 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6912 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6928 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Frame { + msec: 6944 + hash: "ed2a8fae3e94e2f90232d172246d3783" + } + Key { + type: 6 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6960 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 6976 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 6992 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7008 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 7 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7024 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7040 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7056 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7072 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7088 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 6 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7104 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7120 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7136 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7152 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 7 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7168 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7184 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7200 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7216 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7232 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7248 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7264 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 6 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7280 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7296 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7312 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7328 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7344 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 7 + key: 16777236 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7360 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7376 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7392 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7408 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7424 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7440 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7456 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7472 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7488 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7504 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7520 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Key { + type: 7 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 7536 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7552 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7568 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7584 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7600 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7616 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7632 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7648 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7664 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7680 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7696 + image: "usingLineEdit.8.png" + } + Frame { + msec: 7712 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7728 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7744 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7760 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7776 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7792 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7808 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7824 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7840 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7856 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7872 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7888 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7904 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7920 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7936 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7952 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7968 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 7984 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8000 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8016 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8032 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8048 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8064 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8080 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8096 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8112 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8128 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8144 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8160 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8176 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8192 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8208 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8224 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8240 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8256 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8272 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8288 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8304 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8320 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8336 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8352 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8368 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8384 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8400 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8416 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8432 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8448 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8464 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8480 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Frame { + msec: 8496 + hash: "f1c4f46ee86ce1eb24fcd72106da0248" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 61; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8512 + hash: "e779fc73a3ca131452f62e889d5c96ea" + } + Frame { + msec: 8528 + hash: "e779fc73a3ca131452f62e889d5c96ea" + } + Frame { + msec: 8544 + hash: "e779fc73a3ca131452f62e889d5c96ea" + } + Frame { + msec: 8560 + hash: "e779fc73a3ca131452f62e889d5c96ea" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 60; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 58; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8576 + hash: "e779fc73a3ca131452f62e889d5c96ea" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8592 + hash: "400b446983d944bac62889fb47e8d405" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 41; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8608 + hash: "400b446983d944bac62889fb47e8d405" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 32; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8624 + hash: "769278730ba7e2a31333496a0c99499f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 31; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 30; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8640 + hash: "769278730ba7e2a31333496a0c99499f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 29; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8656 + image: "usingLineEdit.9.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 28; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 27; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8672 + hash: "c193a6f52a967c97961df08ebffe50c1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 26; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8688 + hash: "c193a6f52a967c97961df08ebffe50c1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 25; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 24; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8704 + hash: "c193a6f52a967c97961df08ebffe50c1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 23; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 22; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8720 + hash: "c193a6f52a967c97961df08ebffe50c1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 20; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 19; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8736 + hash: "ce0d865bf18c5c3ff93bda82f95e97c2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 18; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 17; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8752 + hash: "ce0d865bf18c5c3ff93bda82f95e97c2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 16; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 15; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8768 + hash: "ce0d865bf18c5c3ff93bda82f95e97c2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 14; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 13; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8784 + hash: "ce0d865bf18c5c3ff93bda82f95e97c2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 12; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 11; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8800 + hash: "ce0d865bf18c5c3ff93bda82f95e97c2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 10; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 8; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8816 + hash: "af2a9c17451a89153e04418e056d9ea5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 6; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 5; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8832 + hash: "749a1ccf2050c809be5e3820d3b2fba9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 3; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 2; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8848 + hash: "74f183256682200a804baa620a6ce978" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 0; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -1; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8864 + hash: "9d837fb68c47ac3659b93e9f77cea0af" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -2; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -3; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8880 + hash: "2dc20ba694548e05c80383d0fcc429fc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -5; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -6; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8896 + hash: "0f5b95fbbdd932c8dbfaffd0cdd44dec" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -7; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -9; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8912 + hash: "dd9e9d86eacd44b19c6c9c64c2abf007" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -10; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -11; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8928 + hash: "7c67140abcbe7b8a36a7324016377272" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -12; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -13; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8944 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -14; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -15; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8960 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 8976 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -16; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -17; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 8992 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -18; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9008 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9024 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9040 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9056 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9072 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9088 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9104 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9120 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9136 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9152 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9168 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9184 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Frame { + msec: 9200 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -17; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9216 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -16; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9232 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -14; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -13; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9248 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -11; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -10; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9264 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -8; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -7; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9280 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -6; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -5; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9296 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -3; y: 32 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: -1; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9312 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 1; y: 31 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 3; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9328 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 4; y: 31 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 6; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9344 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 7; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 8; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9360 + hash: "a085e2633649f0328f109bc4143eaccc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 10; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 11; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9376 + hash: "fe89231a1ac7f48eee7cea14167b6616" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 12; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 14; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9392 + hash: "fe89231a1ac7f48eee7cea14167b6616" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 15; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 17; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9408 + hash: "fe89231a1ac7f48eee7cea14167b6616" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 21; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 24; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9424 + hash: "e816757e030c8927d6721295f8685162" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 27; y: 31 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 30; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9440 + hash: "48f3a7d217ff85ad6088e18c1b88d6d7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 33; y: 32 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 35; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9456 + hash: "48f3a7d217ff85ad6088e18c1b88d6d7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 38; y: 32 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 39; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9472 + hash: "6cb50f458ba606cc4204727a02e9191b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 43; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 45; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9488 + hash: "6cb50f458ba606cc4204727a02e9191b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9504 + hash: "936d1a2ceed861a48fb3dd0c54cb0982" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9520 + hash: "936d1a2ceed861a48fb3dd0c54cb0982" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 55; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9536 + hash: "936d1a2ceed861a48fb3dd0c54cb0982" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 56; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 58; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9552 + hash: "9fb9dbff35b91d65e1e7ce569baede55" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 61; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 64; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9568 + hash: "9fb9dbff35b91d65e1e7ce569baede55" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 67; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9584 + hash: "78038f8df4ef17a164172c5bce16527d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 73; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 74; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9600 + hash: "b390e534fe43678ff031ec9de32b50d0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 76; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9616 + image: "usingLineEdit.10.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 77; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 78; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9632 + hash: "b390e534fe43678ff031ec9de32b50d0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 79; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 80; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9648 + hash: "b390e534fe43678ff031ec9de32b50d0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 84; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9664 + hash: "94fa3848acc33accfb607ce31029f06d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 88; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9680 + hash: "b0f808e85cc5721473da7cd84b1987dc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9696 + hash: "7680aca6b9feccc7e73efa79c1473ce8" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 94; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9712 + hash: "ab79f5095d60f5cef526a074ef6d4e96" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 96; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9728 + hash: "35c718664fc8e817e26054c307f908f9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 100; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9744 + hash: "23267fdc8202daba400140e51f5e3bdc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 102; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 104; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9760 + hash: "0b2765ae503f0194e6e526ea6f9ed8f9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 105; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 108; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9776 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 110; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9792 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 111; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9808 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 112; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9824 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 113; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9840 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 114; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9856 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 9872 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 115; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9888 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 116; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9904 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 117; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9920 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9936 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 9952 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 119; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9968 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 120; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 9984 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 121; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 10000 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10016 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 10032 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10048 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10064 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10080 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10096 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10112 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10128 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10144 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10160 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10176 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10192 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10208 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10224 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10240 + hash: "6f6154528c95da216e1f3830de000195" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 122; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 10256 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10272 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10288 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10304 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10320 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10336 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10352 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10368 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10384 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10400 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10416 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10432 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10448 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10464 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10480 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10496 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10512 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10528 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10544 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10560 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10576 + image: "usingLineEdit.11.png" + } + Frame { + msec: 10592 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10608 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10624 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10640 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10656 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10672 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10688 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10704 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10720 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10736 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10752 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10768 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10784 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10800 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10816 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10832 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10848 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10864 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10880 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10896 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10912 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10928 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10944 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10960 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10976 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 10992 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11008 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11024 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11040 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11056 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11072 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11088 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11104 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11120 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11136 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11152 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11168 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11184 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11200 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11216 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11232 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11248 + hash: "6f6154528c95da216e1f3830de000195" + } + Frame { + msec: 11264 + hash: "6f6154528c95da216e1f3830de000195" + } +} -- cgit v0.12 From bafdb949583a3178449f68afe2e2621687e29de7 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Mon, 22 Nov 2010 10:03:00 +0100 Subject: Dynamically register the event number. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Samuel Rødal --- tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp | 12 +++++++++++- tools/qmeegographicssystemhelper/qmeegoswitchevent.h | 12 +++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp index b136ce8..22ea0fe 100644 --- a/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp @@ -41,7 +41,9 @@ #include "qmeegoswitchevent.h" -QMeeGoSwitchEvent::QMeeGoSwitchEvent(const QString &graphicsSystemName, QMeeGoSwitchEvent::State s) : QEvent((QEvent::Type) QMeeGoSwitchEvent::SwitchEvent) +static int switchEventNumber = -1; + +QMeeGoSwitchEvent::QMeeGoSwitchEvent(const QString &graphicsSystemName, QMeeGoSwitchEvent::State s) : QEvent(QMeeGoSwitchEvent::eventNumber()) { name = graphicsSystemName; switchState = s; @@ -55,4 +57,12 @@ QString QMeeGoSwitchEvent::graphicsSystemName() const QMeeGoSwitchEvent::State QMeeGoSwitchEvent::state() const { return switchState; +} + +QEvent::Type QMeeGoSwitchEvent::eventNumber() +{ + if (switchEventNumber < 0) + switchEventNumber = QEvent::registerEventType(); + + return (QEvent::Type) switchEventNumber; } \ No newline at end of file diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h index 2d8371e..0ddbd3d 100644 --- a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h @@ -62,11 +62,6 @@ public: DidSwitch }; - //! The event type id to use to detect this event. - enum Type { - SwitchEvent = QEvent::User + 1024 - }; - //! Constructor for the event. /*! Creates a new event with the given name and the given state. @@ -83,6 +78,13 @@ public: //! Returns the state represented by this event. State state() const; + //! Returns the event type/number for QMeeGoSwitchEvent. + /*! + The type is registered on first access. Use this to detect incoming + QMeeGoSwitchEvents. + */ + QEvent::Type eventNumber(); + private: QString name; State switchState; -- cgit v0.12 From 1ab855cd61581a073da86d2c64be0b889f004327 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 8 Nov 2010 21:48:52 +0100 Subject: Doc: Q_PROPERTY, implements the setter/getter in the example Some developer thought the implementation of the getters and setters needed to have some metaobject magic Also add a NOTIFY signal in the example Reviewed-by: Joao --- doc/src/snippets/code/doc_src_properties.qdoc | 17 ++++++++++++++--- doc/src/snippets/moc/myclass2.h | 7 +++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/doc/src/snippets/code/doc_src_properties.qdoc b/doc/src/snippets/code/doc_src_properties.qdoc index 7704160..a4ed409 100644 --- a/doc/src/snippets/code/doc_src_properties.qdoc +++ b/doc/src/snippets/code/doc_src_properties.qdoc @@ -91,7 +91,7 @@ for (int i=0; i Date: Tue, 9 Nov 2010 11:17:45 +0100 Subject: Compile on OpenBSD Fail to compile since f3405a516ac30fc7dee1 Reviewed-by: Joao --- src/corelib/thread/qthread_unix.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index a44a0e8..e3b587d 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -97,6 +97,11 @@ # define SCHED_IDLE 5 #endif +#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#define QT_HAS_THREAD_PRIORITY_SCHEDULING +#endif + + QT_BEGIN_NAMESPACE #ifndef QT_NO_THREAD @@ -503,6 +508,7 @@ void QThread::usleep(unsigned long usecs) thread_sleep(&ti); } +#ifdef QT_HAS_THREAD_PRIORITY_SCHEDULING // Does some magic and calculate the Unix scheduler priorities // sched_policy is IN/OUT: it must be set to a valid policy before calling this function // sched_priority is OUT only @@ -533,6 +539,7 @@ static bool calculateUnixPriority(int priority, int *sched_policy, int *sched_pr *sched_priority = prio; return true; } +#endif void QThread::start(Priority priority) { @@ -553,7 +560,7 @@ void QThread::start(Priority priority) d->priority = priority; -#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && !defined(Q_OS_SYMBIAN) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#if defined(QT_HAS_THREAD_PRIORITY_SCHEDULING) && !defined(Q_OS_SYMBIAN) // ### Need to implement thread sheduling and priorities for symbian os. Implementation removed for now switch (priority) { case InheritPriority: @@ -594,7 +601,7 @@ void QThread::start(Priority priority) break; } } -#endif // _POSIX_THREAD_PRIORITY_SCHEDULING +#endif // QT_HAS_THREAD_PRIORITY_SCHEDULING #ifdef Q_OS_SYMBIAN if (d->stackSize == 0) @@ -757,7 +764,7 @@ void QThread::setPriority(Priority priority) // copied from start() with a few modifications: -#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#ifdef QT_HAS_THREAD_PRIORITY_SCHEDULING int sched_policy; sched_param param; -- cgit v0.12 From 98337a5f32e58c0ea14e2b86b9fe8dcb22bfa4e3 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 5 Nov 2010 10:05:47 +0100 Subject: QMessageBox: change the documentation to reflect that it is application modal QMessageBox was documented to be window modal, but it is actually application modal. Changing the behaviour now would be dangerous, as QMessageBox reenter the event loop. So update the documentation. Task-bumber: QTBUG-14499 Reviewed-by: Joao Reviewed-by: Denis --- src/gui/dialogs/qmessagebox.cpp | 88 ++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 58 deletions(-) diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp index fe25b0f..2f8b9e2 100644 --- a/src/gui/dialogs/qmessagebox.cpp +++ b/src/gui/dialogs/qmessagebox.cpp @@ -776,10 +776,8 @@ QMessageBox::QMessageBox(QWidget *parent) added at any time using addButton(). The \a parent and \a f arguments are passed to the QDialog constructor. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. On Mac OS X, if \a parent is not 0 and you want your message box to appear as a Qt::Sheet of that parent, set the message box's @@ -1549,10 +1547,8 @@ static QMessageBox::StandardButton showNewMessageBox(QWidget *parent, \key Esc was pressed instead, the \l{Default and Escape Keys} {escape button} is returned. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \sa question(), warning(), critical() */ @@ -1579,10 +1575,8 @@ QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QStr \key Esc was pressed instead, the \l{Default and Escape Keys} {escape button} is returned. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \sa information(), warning(), critical() */ @@ -1607,10 +1601,8 @@ QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString \key Esc was pressed instead, the \l{Default and Escape Keys} {escape button} is returned. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \sa question(), information(), critical() */ @@ -1635,10 +1627,8 @@ QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString \key Esc was pressed instead, the \l{Default and Escape Keys} {escape button} is returned. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -1670,7 +1660,7 @@ QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString The about box has a single button labelled "OK". On Mac OS X, the about box is popped up as a modeless window; on other platforms, - it is currently a window modal. + it is currently application modal. \sa QWidget::windowIcon(), QApplication::activeWindow() */ @@ -1723,7 +1713,7 @@ void QMessageBox::about(QWidget *parent, const QString &title, const QString &te QApplication provides this functionality as a slot. On Mac OS X, the about box is popped up as a modeless window; on - other platforms, it is currently window modal. + other platforms, it is currently application modal. \sa QApplication::aboutQt() */ @@ -1983,10 +1973,8 @@ void QMessageBoxPrivate::retranslateStrings() \snippet doc/src/snippets/dialogs/dialogs.cpp 2 - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. The \a parent and \a f arguments are passed to the QDialog constructor. @@ -2035,10 +2023,8 @@ QMessageBox::QMessageBox(const QString &title, const QString &text, Icon icon, Returns the identity (QMessageBox::Ok, or QMessageBox::No, etc.) of the button that was clicked. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2073,10 +2059,8 @@ int QMessageBox::information(QWidget *parent, const QString &title, const QStrin supply 0, 1 or 2 to make pressing \key Esc equivalent to clicking the relevant button. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2125,10 +2109,8 @@ int QMessageBox::information(QWidget *parent, const QString &title, const QStrin Returns the identity (QMessageBox::Yes, or QMessageBox::No, etc.) of the button that was clicked. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2163,10 +2145,8 @@ int QMessageBox::question(QWidget *parent, const QString &title, const QString& supply 0, 1 or 2 to make pressing Escape equivalent to clicking the relevant button. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2215,10 +2195,8 @@ int QMessageBox::question(QWidget *parent, const QString &title, const QString& Returns the identity (QMessageBox::Ok or QMessageBox::No or ...) of the button that was clicked. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2253,10 +2231,8 @@ int QMessageBox::warning(QWidget *parent, const QString &title, const QString& t supply 0, 1, or 2 to make pressing Escape equivalent to clicking the relevant button. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2304,10 +2280,8 @@ int QMessageBox::warning(QWidget *parent, const QString &title, const QString& t Returns the identity (QMessageBox::Ok, or QMessageBox::No, etc.) of the button that was clicked. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog @@ -2343,10 +2317,8 @@ int QMessageBox::critical(QWidget *parent, const QString &title, const QString& supply 0, 1, or 2 to make pressing Escape equivalent to clicking the relevant button. - If \a parent is 0, the message box is an \l{Qt::ApplicationModal} - {application modal} dialog box. If \a parent is a widget, the - message box is \l{Qt::WindowModal} {window modal} relative to \a - parent. + The message box is an \l{Qt::ApplicationModal} {application modal} + dialog box. \warning Do not delete \a parent during the execution of the dialog. If you want to do this, you should create the dialog -- cgit v0.12 From 202433ee1fd377ac36dc55fb466b9fc616b4d4fd Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 19 Nov 2010 09:57:18 +0100 Subject: QThread::exec(): Fix possibility to enter several time the event loop If one call exit() before calling exec(), this should prevent the event loop from starting once, but later calls to exec() should work. This is a regression against Qt 4.6 introduced when fixing QTBUG-1184 Task-number: QTBUG-15378 Reviewed-by: Joao Reviewed-by: Brad --- src/corelib/thread/qthread.cpp | 4 +++- tests/auto/qthread/tst_qthread.cpp | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp index 69b70cb..6fb182b 100644 --- a/src/corelib/thread/qthread.cpp +++ b/src/corelib/thread/qthread.cpp @@ -482,8 +482,10 @@ int QThread::exec() Q_D(QThread); QMutexLocker locker(&d->mutex); d->data->quitNow = false; - if (d->exited) + if (d->exited) { + d->exited = false; return d->returnCode; + } locker.unlock(); QEventLoop eventLoop; diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp index 843749a..85b8f04 100644 --- a/tests/auto/qthread/tst_qthread.cpp +++ b/tests/auto/qthread/tst_qthread.cpp @@ -106,6 +106,7 @@ private slots: void adoptMultipleThreads(); void QTBUG13810_exitAndStart(); + void QTBUG15378_exitAndExec(); void stressTest(); }; @@ -976,5 +977,44 @@ void tst_QThread::QTBUG13810_exitAndStart() } +void tst_QThread::QTBUG15378_exitAndExec() +{ + class Thread : public QThread { + public: + QSemaphore sem1; + QSemaphore sem2; + volatile int value; + void run() { + sem1.acquire(); + value = exec(); //First entrence + sem2.release(); + value = exec(); // Second loop + } + }; + Thread thread; + thread.value = 0; + thread.start(); + thread.exit(556); + thread.sem1.release(); //should exit the first loop + thread.sem2.acquire(); + QCOMPARE(int(thread.value), 556); + + //test that the thread is running by executing queued connected signal there + Syncronizer sync1; + sync1.moveToThread(&thread); + Syncronizer sync2; + sync2.moveToThread(&thread); + connect(&sync2, SIGNAL(propChanged(int)), &sync1, SLOT(setProp(int)), Qt::QueuedConnection); + connect(&sync1, SIGNAL(propChanged(int)), &thread, SLOT(quit()), Qt::QueuedConnection); + QMetaObject::invokeMethod(&sync2, "setProp", Qt::QueuedConnection , Q_ARG(int, 89)); + QTest::qWait(50); + while(!thread.wait(10)) + QTest::qWait(10); + QCOMPARE(sync2.m_prop, 89); + QCOMPARE(sync1.m_prop, 89); +} + + + QTEST_MAIN(tst_QThread) #include "tst_qthread.moc" -- cgit v0.12 From 4214d58abd394eea2793f05a554bd9885b53d418 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Mon, 22 Nov 2010 10:52:31 +0100 Subject: Compile when USER_TIMER_MINIMUM isn't defined Just user a value of zero instead. Windows will use USER_TIMER_MINIMUM anyways (according to the SetTimer() docs). Reviewed-by: trustme --- src/corelib/kernel/qeventdispatcher_win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 3dccda6..4eb0073 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -538,7 +538,7 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) // there are still input and timer messages in the message queue d->sendPostedEventsWindowsTimerId = SetTimer(d->internalHwnd, SendPostedEventsWindowsTimerId, - USER_TIMER_MINIMUM, + 0, // we specify zero, but Windows uses USER_TIMER_MINIMUM NULL); // we don't check the return value of SetTimer()... if creating the timer failed, there's little // we can do. we just have to accept that posted events will be starved -- cgit v0.12 From 348fef0a406006ac813732ad5b8a143d8a63e879 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 22 Nov 2010 12:55:43 +0200 Subject: Fix a build break when namespace is defined Reviewed-by: Jani Hautakangas --- src/opengl/gl2paintengineex/qtriangulator.cpp | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/opengl/gl2paintengineex/qtriangulator.cpp b/src/opengl/gl2paintengineex/qtriangulator.cpp index 4c3deb6..75d5ce2 100644 --- a/src/opengl/gl2paintengineex/qtriangulator.cpp +++ b/src/opengl/gl2paintengineex/qtriangulator.cpp @@ -339,7 +339,7 @@ static inline qint64 qPointDistanceFromLine(const QPodPoint &p, const QPodPoint static inline bool qPointIsLeftOfLine(const QPodPoint &p, const QPodPoint &v1, const QPodPoint &v2) { - return ::qPointDistanceFromLine(p, v1, v2) < 0; + return QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(p, v1, v2) < 0; } // Return: @@ -1741,7 +1741,7 @@ bool QTriangulator::ComplexToSimple::calculateIntersection(int left, int righ Intersection intersection; intersection.leftEdge = left; intersection.rightEdge = right; - intersection.intersectionPoint = ::qIntersectionPoint(u1, u2, v1, v2); + intersection.intersectionPoint = QT_PREPEND_NAMESPACE(qIntersectionPoint)(u1, u2, v1, v2); if (!intersection.intersectionPoint.isValid()) return false; @@ -1767,10 +1767,10 @@ bool QTriangulator::ComplexToSimple::edgeIsLeftOfEdge(int leftEdgeIndex, int return true; if (upper.x > qMax(l.x, u.x)) return false; - qint64 d = ::qPointDistanceFromLine(upper, l, u); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(upper, l, u); // d < 0: left, d > 0: right, d == 0: on top if (d == 0) - d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); + d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.lower()), l, u); return d < 0; } @@ -1814,7 +1814,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); if (d == 0) { result.first = result.second = current; break; @@ -1828,7 +1828,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); Q_ASSERT(d >= 0); if (d == 0) { result.first = current; @@ -1842,7 +1842,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); Q_ASSERT(d <= 0); if (d == 0) { result.second = current; @@ -1864,7 +1864,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); if (d == 0) break; if (d < 0) { @@ -1885,7 +1885,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); Q_ASSERT(d >= 0); if (d == 0) { current = current->left; @@ -1899,7 +1899,7 @@ QPair::Node *, QRBTree::Node *> QTriangulator::ComplexToSim while (current) { const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(point, v1, v2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2); Q_ASSERT(d <= 0); if (d == 0) { current = current->right; @@ -1962,7 +1962,7 @@ void QTriangulator::ComplexToSimple::reorderEdgeListRange(QRBTree::Node template void QTriangulator::ComplexToSimple::sortEdgeList(const QPodPoint eventPoint) { - QIntersectionPoint eventPoint2 = ::qIntersectionPoint(eventPoint); + QIntersectionPoint eventPoint2 = QT_PREPEND_NAMESPACE(qIntersectionPoint)(eventPoint); while (!m_topIntersection.isEmpty() && m_topIntersection.top().intersectionPoint < eventPoint2) { Intersection intersection = m_topIntersection.pop(); @@ -2056,7 +2056,7 @@ void QTriangulator::ComplexToSimple::calculateIntersections() QPair::Node *, QRBTree::Node *> range = bounds(event.point); QRBTree::Node *leftNode = range.first ? m_edgeList.previous(range.first) : 0; int vertex = (event.type == Event::Upper ? m_edges.at(event.edge).upper() : m_edges.at(event.edge).lower()); - QIntersectionPoint eventPoint = ::qIntersectionPoint(event.point); + QIntersectionPoint eventPoint = QT_PREPEND_NAMESPACE(qIntersectionPoint)(event.point); if (range.first != 0) { splitEdgeListRange(range.first, range.second, vertex, eventPoint); @@ -2213,7 +2213,7 @@ void QTriangulator::ComplexToSimple::removeUnwantedEdgesAndConnect() while (current != b.second) { Q_ASSERT(current); Q_ASSERT(m_edges.at(current->data).node == current); - Q_ASSERT(::qIntersectionPoint(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to))); + Q_ASSERT(QT_PREPEND_NAMESPACE(qIntersectionPoint)(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to))); Q_ASSERT(m_parent->m_vertices.at(m_edges.at(current->data).from) == event.point || m_parent->m_vertices.at(m_edges.at(current->data).to) == event.point); insertEdgeIntoVectorIfWanted(orderedEdges, current->data); current = m_edgeList.next(current); @@ -2612,10 +2612,10 @@ bool QTriangulator::SimpleToMonotone::edgeIsLeftOfEdge(int leftEdgeIndex, int const Edge &rightEdge = m_edges.at(rightEdgeIndex); const QPodPoint &u = m_parent->m_vertices.at(rightEdge.upper()); const QPodPoint &l = m_parent->m_vertices.at(rightEdge.lower()); - qint64 d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.upper()), l, u); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.upper()), l, u); // d < 0: left, d > 0: right, d == 0: on top if (d == 0) - d = ::qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u); + d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.lower()), l, u); return d < 0; } @@ -2645,7 +2645,7 @@ QRBTree::Node *QTriangulator::SimpleToMonotone::searchEdgeLeftOfPoint(in while (current) { const QPodPoint &p1 = m_parent->m_vertices.at(m_edges.at(current->data).lower()); const QPodPoint &p2 = m_parent->m_vertices.at(m_edges.at(current->data).upper()); - qint64 d = ::qPointDistanceFromLine(m_parent->m_vertices.at(pointIndex), p1, p2); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(pointIndex), p1, p2); if (d <= 0) { current = current->left; } else { @@ -2668,7 +2668,7 @@ void QTriangulator::SimpleToMonotone::classifyVertex(int i) const QPodPoint &p1 = m_parent->m_vertices.at(e1.from); const QPodPoint &p2 = m_parent->m_vertices.at(e2.from); const QPodPoint &p3 = m_parent->m_vertices.at(e2.to); - qint64 d = ::qPointDistanceFromLine(p1, p2, p3); + qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(p1, p2, p3); Q_ASSERT(d != 0 || (!startOrSplit && !endOrMerge)); e2.type = RegularVertex; -- cgit v0.12 From 7abb03d75155cef86df58f117031b092b637876f Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 22 Nov 2010 12:07:01 +0100 Subject: Round origin of text in OpenVG engine The origin of text needs to be rounded, just like the translation in the transform because text drawn at subpixel positions is unsupported on some devices. Since the font is integer-based, the advance-array does not need to be rounded. Task-number: QTBUG-15263 Reviewed-by: Jason Barron --- src/openvg/qpaintengine_vg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index aea203f..430575b 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3543,8 +3543,8 @@ void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem) // Set the glyph drawing origin. VGfloat origin[2]; - origin[0] = positions[0].x.toReal(); - origin[1] = positions[0].y.toReal(); + origin[0] = positions[0].x.round().toReal(); + origin[1] = positions[0].y.round().toReal(); vgSetfv(VG_GLYPH_ORIGIN, 2, origin); // Fast anti-aliasing for paths, better for images. -- cgit v0.12 From d7d0b1528fd200fc3110093244b8265fdf457238 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 22 Nov 2010 15:14:25 +0200 Subject: Fix symbian-mmp.conf include path Use $$[QT_INSTALL_DATA] instead of $$[QT_INSTALL_PREFIX] when adding include path that points under mkspecs. Task-number: QTBUG-15501 Reviewed-by: axis --- mkspecs/common/symbian/symbian-mmp.conf | 4 ++-- mkspecs/features/symbian/stl.prf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf index 1fbd302..4d554bd 100644 --- a/mkspecs/common/symbian/symbian-mmp.conf +++ b/mkspecs/common/symbian/symbian-mmp.conf @@ -18,8 +18,8 @@ MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6 INCLUDEPATH = \ - $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \ - $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \ + $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off \ + $$[QT_INSTALL_DATA]/mkspecs/common/symbian \ $${EPOCROOT}epoc32/include \ $$OS_LAYER_LIBC_SYSTEMINCLUDE \ $$INCLUDEPATH diff --git a/mkspecs/features/symbian/stl.prf b/mkspecs/features/symbian/stl.prf index 65d4b93..1fd5e16 100644 --- a/mkspecs/features/symbian/stl.prf +++ b/mkspecs/features/symbian/stl.prf @@ -12,7 +12,7 @@ INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE # Remove mkspecs/common/symbian/stl-off from beginning of includepath # in order to use new and delete operators from STL -INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off +INCLUDEPATH -= $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off # libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new # STDCPP turns on standard C++ new behaviour (ie. throwing new) -- cgit v0.12 From d99d8953d2c45ca3ad05fea35ac71407237ab59d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 22 Nov 2010 16:51:41 +0100 Subject: Doc: Fixed broken link by referring to the errors() method instead. Task-number: QTBUG-15506 --- src/declarative/util/qdeclarativeview.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/util/qdeclarativeview.cpp b/src/declarative/util/qdeclarativeview.cpp index 0e31a20..c22f200 100644 --- a/src/declarative/util/qdeclarativeview.cpp +++ b/src/declarative/util/qdeclarativeview.cpp @@ -192,7 +192,7 @@ void QDeclarativeViewPrivate::itemGeometryChanged(QDeclarativeItem *resizeItem, /*! \class QDeclarativeView - \since 4.7 + \since 4.7 \brief The QDeclarativeView class provides a widget for displaying a Qt Declarative user interface. QDeclarativeItem objects can be placed on a standard QGraphicsScene and @@ -360,13 +360,14 @@ QDeclarativeContext* QDeclarativeView::rootContext() const } /*! - \enum QDeclarativeView::Status + \enum QDeclarativeView::Status Specifies the loading status of the QDeclarativeView. \value Null This QDeclarativeView has no source set. \value Ready This QDeclarativeView has loaded and created the QML component. \value Loading This QDeclarativeView is loading network data. - \value Error An error has occurred. Call errorDescription() to retrieve a description. + \value Error One or more errors has occurred. Call errors() to retrieve a list + of errors. */ /*! \enum QDeclarativeView::ResizeMode -- cgit v0.12 From d468fe4ca99561e9e575edc0e9d99080e93d91a3 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 22 Nov 2010 17:08:00 +0100 Subject: Removed unused code. --- tools/qdoc3/codemarker.cpp | 1 - tools/qdoc3/cppcodemarker.cpp | 15 -------- tools/qdoc3/cppcodeparser.cpp | 10 ----- tools/qdoc3/doc.cpp | 23 ------------ tools/qdoc3/generator.cpp | 14 +------ tools/qdoc3/htmlgenerator.cpp | 86 ------------------------------------------- tools/qdoc3/location.cpp | 4 -- tools/qdoc3/node.cpp | 5 --- tools/qdoc3/tree.cpp | 16 +------- 9 files changed, 2 insertions(+), 172 deletions(-) diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp index ec86ae3..f1b6346 100644 --- a/tools/qdoc3/codemarker.cpp +++ b/tools/qdoc3/codemarker.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include -#include #include "codemarker.h" #include "config.h" #include "node.h" diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 3615a84..576d103 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -455,21 +455,6 @@ QString CppCodeMarker::functionEndRegExp(const QString& /* funcName */) return "^\\}$"; } -#if 0 - FastSection privateReimpFuncs(classe, - "Private Reimplemented Functions", - "private reimplemented function", - "private reimplemented functions"); - FastSection protectedReimpFuncs(classe, - "Protected Reimplemented Functions", - "protected reimplemented function", - "protected reimplemented functions"); - FastSection publicReimpFuncs(classe, - "Public Reimplemented Functions", - "public reimplemented function", - "public reimplemented functions"); -#endif - QList
CppCodeMarker::sections(const InnerNode *inner, SynopsisStyle style, Status status) diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp index a120e45..8e891b8 100644 --- a/tools/qdoc3/cppcodeparser.cpp +++ b/tools/qdoc3/cppcodeparser.cpp @@ -966,16 +966,6 @@ void CppCodeParser::processOtherMetaCommand(const Doc& doc, .arg(COMMAND_REIMP).arg(node->name())); } -#if 0 - // Reimplemented functions now reported in separate sections. - /* - Note: Setting the access to Private hides the documentation, - but setting the status to Internal makes the node available - in the XML output when the WebXMLGenerator is used. - */ - func->setAccess(Node::Private); - func->setStatus(Node::Internal); -#endif func->setReimp(true); } else { diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp index 280f055..be16c59 100644 --- a/tools/qdoc3/doc.cpp +++ b/tools/qdoc3/doc.cpp @@ -1685,13 +1685,6 @@ void DocParser::startSection(Doc::SectioningUnit unit, int cmd) leavePara(); if (currentSectioningUnit == Doc::Book) { -#if 0 - // mws didn't think this was necessary. - if (unit > Doc::Section1) - location().warning(tr("Unexpected '\\%1' without '\\%2'") - .arg(cmdName(cmd)) - .arg(cmdName(CMD_SECTION1))); -#endif currentSectioningUnit = (Doc::SectioningUnit) (unit - 1); priv->constructExtra(); priv->extra->sectioningUnit = currentSectioningUnit; @@ -1866,9 +1859,6 @@ void DocParser::enterPara(Atom::Type leftType, pendingParaRightType = rightType; pendingParaString = string; if ( -#if 0 - leftType == Atom::BriefLeft || -#endif leftType == Atom::SectionHeadingLeft) { paraState = InsideSingleLinePara; } @@ -2273,12 +2263,6 @@ QString DocParser::getCode(int cmd, CodeMarker *marker) QString DocParser::getUnmarkedCode(int cmd) { QString code = getUntilEnd(cmd); -#if 0 - int indent = indentLevel(code); - if (indent < minIndent) - minIndent = indent; - code = unindent(minIndent, code); -#endif return code; } @@ -3043,13 +3027,6 @@ QString Doc::canonicalTitle(const QString &title) result += QLatin1Char('-'); dashAppended = true; } -#if 0 - // This was screwing things up. - else { - result += title[i]; - lastAlnum = result.size(); - } -#endif } result.truncate(lastAlnum); return result; diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp index 74e966a..0f2454e 100644 --- a/tools/qdoc3/generator.cpp +++ b/tools/qdoc3/generator.cpp @@ -383,14 +383,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker) { bool quiet = false; - if (node->type() == Node::Function) { -#if 0 - const FunctionNode *func = (const FunctionNode *) node; - if (func->isOverload() && func->metaness() != FunctionNode::Ctor) - generateOverload(node, marker); -#endif - } - else if (node->type() == Node::Fake) { + if (node->type() == Node::Fake) { const FakeNode *fake = static_cast(node); if (fake->subType() == Node::Example) generateExampleFiles(fake, marker); @@ -510,11 +503,6 @@ void Generator::generateBody(const Node *node, CodeMarker *marker) if (!body.contains("return", Qt::CaseInsensitive)) node->doc().location().warning(tr("Undocumented return value")); } -#if 0 - // Now we put this at the top, before the other text. - if (func->reimplementedFrom() != 0) - generateReimplementedFrom(func, marker); -#endif } } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 0cd534e..4faab50 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -63,10 +63,6 @@ QT_BEGIN_NAMESPACE int HtmlGenerator::id = 0; bool HtmlGenerator::debugging_on = false; -#if 0 -QString HtmlGenerator::divNavTop = "
"; -#endif - QString HtmlGenerator::divNavTop = ""; QString HtmlGenerator::sinceTitles[] = @@ -1020,26 +1016,8 @@ int HtmlGenerator::generateAtom(const Atom *atom, out() << atom->string(); break; case Atom::SectionLeft: -#if 0 - { - int nextLevel = atom->string().toInt(); - if (sectionNumber.size() < nextLevel) { - do { - sectionNumber.append("1"); - } while (sectionNumber.size() < nextLevel); - } - else { - while (sectionNumber.size() > nextLevel) { - sectionNumber.removeLast(); - } - sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); - } - out() << "" << divNavTop << "\n"; - } -#else out() << "" << divNavTop << "\n"; -#endif break; case Atom::SectionRight: break; @@ -2022,39 +2000,6 @@ void HtmlGenerator::generateTableOfContents(const Node *node, inLink = false; } -#if 0 -void HtmlGenerator::generateNavigationBar(const NavigationBar& bar, - const Node *node, - CodeMarker *marker) -{ - if (bar.prev.begin() != 0 || bar.current.begin() != 0 || - bar.next.begin() != 0) { - out() << "

"; - if (bar.prev.begin() != 0) { -#if 0 - out() << "[Prev: "; - generateText(section.previousHeading(), node, marker); - out() << "]\n"; -#endif - } - if (fake->name() != QString("index.html")) { - if (bar.current.begin() != 0) { - out() << "[Home]\n"; - } - if (bar.next.begin() != 0) { - out() << "[Next: "; - generateText(Text::sectionHeading(bar.next.begin()), node, marker); - out() << "]\n"; - } - out() << "

\n"; - } - } -} -#endif - QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner, CodeMarker *marker) { @@ -3237,29 +3182,6 @@ QString HtmlGenerator::fileBase(const Node *node) return result; } -#if 0 -QString HtmlGenerator::fileBase(const Node *node, - const SectionIterator& section) -{ - QStringList::ConstIterator s = section.sectionNumber().end(); - QStringList::ConstIterator b = section.baseNameStack().end(); - - QString suffix; - QString base = fileBase(node); - - while (s != section.sectionNumber().begin()) { - --s; - --b; - if (!(*b).isEmpty()) { - base = *b; - break; - } - suffix.prepend("-" + *s); - } - return base + suffix; -} -#endif - QString HtmlGenerator::fileName(const Node *node) { if (node->type() == Node::Fake) { @@ -3813,14 +3735,6 @@ QString HtmlGenerator::getLink(const Atom *atom, << (*node)->name() << "no relative"; } } -#if 0 - else if ((*node)->status() == Node::Deprecated) { - qDebug() << "Link to Deprecated entity"; - } - else if ((*node)->status() == Node::Internal) { - qDebug() << "Link to Internal entity"; - } -#endif } while (!path.isEmpty()) { diff --git a/tools/qdoc3/location.cpp b/tools/qdoc3/location.cpp index dee87d1..1257a45 100644 --- a/tools/qdoc3/location.cpp +++ b/tools/qdoc3/location.cpp @@ -390,10 +390,6 @@ QString Location::top() const if (lineNo() >= 1) { str += QLatin1Char(':'); str += QString::number(lineNo()); -#if 0 - if (columnNo() >= 1) - str += ":" + QString::number(columnNo()); -#endif } if (etc()) str += QLatin1String(" (etc.)"); diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index 41f90d5..e043f5d 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -1545,11 +1545,6 @@ void QmlClassNode::clear() */ QString QmlClassNode::fileBase() const { -#if 0 - if (Node::fileBase() == "item") - qDebug() << "FILEBASE: qmlitem" << name(); - return "qml_" + Node::fileBase(); -#endif return Node::fileBase(); } diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index 540ffa9..9946f0b 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -591,12 +591,6 @@ void Tree::resolveGroups() if (fake && fake->subType() == Node::Group) { fake->addGroupMember(i.value()); } -#if 0 - else { - if (prevGroup != i.key()) - i.value()->doc().location().warning(tr("No such group '%1'").arg(i.key())); - } -#endif prevGroup = i.key(); } @@ -1986,15 +1980,7 @@ QString Tree::fullDocumentLocation(const Node *node) const else parentName = fullDocumentLocation(node->parent()); } -#if 0 - if (node->type() == Node::QmlProperty) { - qDebug() << "Node::QmlProperty:" << node->name() - << "parentName:" << parentName; - if (parentNode) - qDebug() << "PARENT NODE" << parentNode->type() - << parentNode->subType() << parentNode->name(); - } -#endif + switch (node->type()) { case Node::Class: case Node::Namespace: -- cgit v0.12 From be99e778d361068e81936773def14c731553991f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 22 Nov 2010 19:42:25 +0100 Subject: Doc: Removed incorrect statement about the C locale. Task-number: QTBUG-15488 --- src/corelib/tools/qlocale.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index d152682..be1dc08 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -1576,8 +1576,6 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l) defaults to the default locale (see setDefault()). \endlist - The "C" locale is identical in behavior to \l{English}/\l{UnitedStates}. - Use language() and country() to determine the actual language and country values used. -- cgit v0.12 From 37f4e51127081f393743b5023f61ec48674cf7a2 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 22 Nov 2010 20:37:18 +0100 Subject: tst_qthread: fix compilation --- tests/auto/qthread/tst_qthread.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp index 85b8f04..b0efb5a 100644 --- a/tests/auto/qthread/tst_qthread.cpp +++ b/tests/auto/qthread/tst_qthread.cpp @@ -997,7 +997,8 @@ void tst_QThread::QTBUG15378_exitAndExec() thread.exit(556); thread.sem1.release(); //should exit the first loop thread.sem2.acquire(); - QCOMPARE(int(thread.value), 556); + int v = thread.value; + QCOMPARE(v, 556); //test that the thread is running by executing queued connected signal there Syncronizer sync1; -- cgit v0.12 From ea84d7431810951aff2d6f85dca5f4ae4aeb4490 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Mon, 22 Nov 2010 22:49:36 +0100 Subject: Doc: Fixing typo --- src/gui/text/qfontengine_x11.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/text/qfontengine_x11.cpp b/src/gui/text/qfontengine_x11.cpp index b7e4be2..c06be3b 100644 --- a/src/gui/text/qfontengine_x11.cpp +++ b/src/gui/text/qfontengine_x11.cpp @@ -429,7 +429,7 @@ void QFontEngineXLFD::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFl { int i = glyphs->numGlyphs; XCharStruct *xcs; - // inlined for better perfomance + // inlined for better performance if (!_fs->per_char) { xcs = &_fs->min_bounds; while (i != 0) { -- cgit v0.12 From 787fd44a917f31d52b35cf168f2821d23d8be694 Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Tue, 23 Nov 2010 12:04:23 +1000 Subject: Prevent crash when calling reload() from within a .qml Task-number: QTBUG-15493 --- tools/qml/qmlruntime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index 78bc409..7ea77d1 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -1012,7 +1012,7 @@ void QDeclarativeViewer::addPluginPath(const QString& plugin) void QDeclarativeViewer::reload() { - open(currentFileOrUrl); + launch(currentFileOrUrl); } void QDeclarativeViewer::openFile() -- cgit v0.12 From 52068f57f9c32098a90cc217730a530f85590f65 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 23 Nov 2010 13:44:39 +1000 Subject: Ensure WebView press delay timer is cancelled when grab is taken. Flickable steals the grab, but the timer was not stopped and the keepGrab flag is set and the mouse grabbed. This means that the WebView now has the grab and subsequent clicks on another element are ignored. Task-number: QTBUG-15529 Reviewed-by: Joona Petrell --- .../WebKit/qt/declarative/qdeclarativewebview.cpp | 10 + .../WebKit/qt/declarative/qdeclarativewebview_p.h | 2 + .../webview/flickable/data/flickweb.0.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.1.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.10.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.2.png | Bin 0 -> 3466 bytes .../webview/flickable/data/flickweb.3.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.4.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.5.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.6.png | Bin 0 -> 2768 bytes .../webview/flickable/data/flickweb.7.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.8.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.9.png | Bin 0 -> 2829 bytes .../qmlvisual/webview/flickable/data/flickweb.qml | 6083 ++++++++++++++++++++ .../qmlvisual/webview/flickable/flickweb.qml | 35 + .../qmlvisual/webview/flickable/qtlogo.png | Bin 0 -> 2738 bytes .../qmlvisual/webview/flickable/test.html | 3 + 17 files changed, 6133 insertions(+) create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/test.html diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp index e4f70de..7a8aae7 100644 --- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp +++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp @@ -141,6 +141,16 @@ void GraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent* event) QGraphicsWebView::mouseMoveEvent(event); } +bool GraphicsWebView::sceneEvent(QEvent *event) +{ + bool rv = QGraphicsWebView::sceneEvent(event); + if (event->type() == QEvent::UngrabMouse) { + pressTimer.stop(); + parent->setKeepMouseGrab(false); + } + return rv; +} + /*! \qmlclass WebView QDeclarativeWebView \ingroup qml-view-elements diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h index b2055bf..ca15a1e 100644 --- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h +++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h @@ -70,6 +70,8 @@ protected: void mouseMoveEvent(QGraphicsSceneMouseEvent* event); void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); void timerEvent(QTimerEvent* event); + bool sceneEvent(QEvent *event); + Q_SIGNALS: void doubleClick(int clickX, int clickY); private: diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png new file mode 100644 index 0000000..513aab6 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png new file mode 100644 index 0000000..513aab6 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png new file mode 100644 index 0000000..1357551 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png new file mode 100644 index 0000000..513aab6 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png new file mode 100644 index 0000000..c61ae3f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png new file mode 100644 index 0000000..bb22d01 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml new file mode 100644 index 0000000..c248167 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml @@ -0,0 +1,6083 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "flickweb.0.png" + } + Frame { + msec: 32 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 48 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 64 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 80 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 96 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 112 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 128 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 144 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 160 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 176 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 192 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 208 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 224 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 240 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 256 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 272 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 288 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 304 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 320 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 336 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 352 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 368 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 384 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 400 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 416 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 432 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 448 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 464 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 480 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 496 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 512 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 528 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 544 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 0; y: 7 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 0; y: 7 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 560 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 12; y: 10 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 576 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 15; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 592 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 608 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 624 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 640 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 12; y: 10 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 11; y: 10 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 656 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 9; y: 10 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 672 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 688 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 9; y: 11 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 704 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 9; y: 12 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 9; y: 15 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 720 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 9; y: 18 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 12; y: 24 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 736 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 14; y: 28 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 18; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 752 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 19; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 22; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 768 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 22; y: 44 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 23; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 784 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 800 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 23; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 816 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 24; y: 45 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 832 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 848 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 29; y: 51 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 32; y: 55 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 864 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 34; y: 57 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 36; y: 61 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 880 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 38; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 41; y: 66 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 896 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 43; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 48; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 912 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 50; y: 76 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 80 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 928 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 85 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 87 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 944 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 93 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 960 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 97 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 99 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 976 + image: "flickweb.1.png" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 102 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 103 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 992 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 103 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 104 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1008 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 1024 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 1040 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 105 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1056 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 106 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 108 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1088 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 109 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 110 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1120 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 112 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1136 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 113 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 114 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1152 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 115 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 116 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1168 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 92; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1184 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 1200 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 92; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1216 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 116 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 115 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1232 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 112 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1248 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 104 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "e891b00cd44578b4a8e635ffe4c6d3fd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 101 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 96 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1280 + hash: "61a543282ffb5e751ea1d97f0c95b208" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 93 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 85 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "102e4b664bade46ab3bbb611acee22c9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 87; y: 70 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "6bf42ac28a14db681442aeb7ed0c7610" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 85; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "ef531060d6b75cec8a6e3c01b3f69cc0" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 51 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1344 + hash: "e839af9d67f6214f0901977b3aa96d1a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 46 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 41 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1376 + hash: "e4a562aa35aa532d15c9b129e22797bb" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1392 + hash: "029d347e9c99dd4a9cec5120ac7fc25e" + } + Frame { + msec: 1408 + hash: "3c16a74e18a59630f35511ab5514c769" + } + Frame { + msec: 1424 + hash: "5dc472d6c5198d5a628510bd45a61a11" + } + Frame { + msec: 1440 + hash: "430d60127ed59dbc5904647424ead40d" + } + Frame { + msec: 1456 + hash: "cb27cfcfbbb77b55c2a8bf7e51c0af07" + } + Frame { + msec: 1472 + hash: "46f2eb33b0e8316c4123ddbee2f60ae2" + } + Frame { + msec: 1488 + hash: "1df306111ca012c9f405018778c0a12b" + } + Frame { + msec: 1504 + hash: "1eafab8fd457ad9acda068344178b4a8" + } + Frame { + msec: 1520 + hash: "286656898100e53d6d7728b51ce93df5" + } + Frame { + msec: 1536 + hash: "e2a88f0ba3030a430028147930989bbb" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1552 + hash: "fb23cf265c4d253470c2515043bc5dd8" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1568 + hash: "1dba4f0e5e5948b7133725ea8bbef3e7" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1584 + hash: "8578965c5ad012284e4e0a14a42da25e" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1600 + hash: "3ef187decae08baa2ec92998c2cbb7f7" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "4e0491128eac0bbfa7a131b1f18f243c" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1632 + hash: "c2d0799526e908204efbd3aa980e086c" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 23 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1648 + hash: "cc87e09a6784d61680f8c6ab0d6a38fa" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 22 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 16 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1664 + hash: "13dec7e835b4f26970f98b66533f84f1" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 14 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1680 + hash: "e5d2862bee024b64326b7d85e5e45399" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 12 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1696 + hash: "0b1401ce4a91811ac9c3eec5f94b380d" + } + Frame { + msec: 1712 + hash: "0de290542c9d3e03ed78f51423011c16" + } + Frame { + msec: 1728 + hash: "4c9aa06ad1e246b4b026742fc8cf37bc" + } + Frame { + msec: 1744 + hash: "c33003a8262c2ba25510ece181e61bc9" + } + Frame { + msec: 1760 + hash: "c33003a8262c2ba25510ece181e61bc9" + } + Frame { + msec: 1776 + hash: "ad184fa88c4299b8911c9b7ada5b3736" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 85; y: 12 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 13 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 15 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1792 + hash: "ad184fa88c4299b8911c9b7ada5b3736" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 17 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 23 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1808 + hash: "c2d0799526e908204efbd3aa980e086c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1824 + hash: "b343a9ed7e9740ec1725837fad766745" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 41 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1840 + hash: "b33260ad955474452f204ed5d468ef78" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 51 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 86; y: 55 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1856 + hash: "9a647c54e378bd0ee35ef4164892722c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 87; y: 61 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 88; y: 67 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 88; y: 67 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1872 + hash: "dc553d1a7b678dffea41147fc6b841f6" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 74 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1888 + hash: "2d61b4fb1e5a8beb6e3c3cb53c21db42" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 79 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 82 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1904 + hash: "209faf0b20fd53d9a1c261c8cae9666f" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 82 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1920 + hash: "3497258aa07c76f0e31b5a492ee7e7cb" + } + Frame { + msec: 1936 + image: "flickweb.2.png" + } + Frame { + msec: 1952 + hash: "64c677ac4fea0e525279e86bf831d5d3" + } + Frame { + msec: 1968 + hash: "76c6c887fea94288e9fd975655e5181c" + } + Frame { + msec: 1984 + hash: "71b85e596c88b84a851a52aa3389e63a" + } + Frame { + msec: 2000 + hash: "e4a562aa35aa532d15c9b129e22797bb" + } + Frame { + msec: 2016 + hash: "148484dd95c88720cc5ef196334cb9a8" + } + Frame { + msec: 2032 + hash: "924c6254ffa1707b69174f49e4e95213" + } + Frame { + msec: 2048 + hash: "9e61907acedb27941d8be2befa364cfb" + } + Frame { + msec: 2064 + hash: "9e61907acedb27941d8be2befa364cfb" + } + Frame { + msec: 2080 + hash: "f2c4e99db1bb087a40b277ce8ce628f6" + } + Frame { + msec: 2096 + hash: "f2c4e99db1bb087a40b277ce8ce628f6" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 91; y: 82 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2112 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 82 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2128 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 89; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 80 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2144 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 79 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 77 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2160 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 76 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2176 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 73 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 71 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2192 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 67 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2208 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 61 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 59 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2224 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 54 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 51 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2240 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2256 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2272 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 45 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2288 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 43 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 41 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2304 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 40 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2320 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2336 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2352 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2384 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 32 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2400 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 31 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2416 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 29 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2432 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 27 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2448 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 24 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 22 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2464 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 21 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 20 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2480 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 18 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2496 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 16 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 15 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2512 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 14 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2528 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Frame { + msec: 2544 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Frame { + msec: 2560 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 73; y: 14 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2576 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 73; y: 15 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 72; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2592 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 72; y: 24 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 72; y: 29 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2608 + hash: "b2d6b68f1f7229e8e65bb37e4c418a1b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 72; y: 40 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 47 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2624 + hash: "c4dd48fca556c2760c8f81db7fea6938" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2640 + hash: "9dbad8cb2692807d67f74e7ac4a4a70e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 96 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 70; y: 96 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2656 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 99 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 70; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2672 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 103 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 103 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2688 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Frame { + msec: 2704 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Frame { + msec: 2720 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Frame { + msec: 2736 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Frame { + msec: 2752 + hash: "152648affe4045a81f0d6ff9150889f1" + } + Frame { + msec: 2768 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2784 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2800 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2816 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2832 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2848 + hash: "c9eee2b7529b07a17151e7140444c099" + } + Frame { + msec: 2864 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 2880 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 2896 + image: "flickweb.3.png" + } + Frame { + msec: 2912 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 2928 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2944 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 74; y: 101 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 98 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2960 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 93 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 91 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2976 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 62; y: 85 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 60; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2992 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 77 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3008 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 52; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 49; y: 67 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3024 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 49; y: 65 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 48; y: 61 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3040 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 48; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 46; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3056 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 45; y: 54 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 42; y: 50 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3072 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 39; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 38; y: 45 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3088 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 37; y: 44 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 36; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3104 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 35; y: 41 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 35; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3120 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 33; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 33; y: 38 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3136 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 32; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3152 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 32; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 31; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3168 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 31; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3184 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 30; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 30; y: 33 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3200 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 32 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3216 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 29 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 28 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3232 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 27 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3248 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3264 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3280 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3296 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3312 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 25; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3328 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3344 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3360 + hash: "d045839439e4091210c745f0ea173e52" + } + Frame { + msec: 3376 + hash: "d045839439e4091210c745f0ea173e52" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 25; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3392 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 27 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3408 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 27 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 28 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3424 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 27; y: 28 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 27; y: 29 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3440 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3456 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3472 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3488 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3504 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 27; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3520 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 31 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 29; y: 34 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3536 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 31; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 37; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3552 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 40; y: 48 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 50; y: 59 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3568 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3584 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 69; y: 77 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3600 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 85 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 86 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3616 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 89 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3632 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3648 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3664 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3680 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3696 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3712 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3728 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3744 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3760 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 89 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3776 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3792 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 87 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 85 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3824 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3840 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3856 + image: "flickweb.4.png" + } + Frame { + msec: 3872 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3888 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3904 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3920 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3936 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3952 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3968 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 3984 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4000 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4016 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 84 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4032 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 87 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4048 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 88 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4064 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4080 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4096 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4112 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4128 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 89 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4144 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4160 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 92 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4176 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 93 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4192 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 97 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 100 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4208 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 101 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 105 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4224 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 110 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4240 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 113 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 114 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4256 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 115 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 116 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4272 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4288 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4304 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4320 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4336 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4352 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4368 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4384 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4400 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4416 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4432 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4448 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4464 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4480 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 116 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4496 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4512 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4528 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4544 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4560 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4576 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4592 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4608 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 116 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4624 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4640 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4656 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4672 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4688 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 118 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4704 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4720 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4736 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4752 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4768 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4784 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4800 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4816 + image: "flickweb.5.png" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 83; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4832 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 4848 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 84; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4864 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 118 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4880 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 86; y: 113 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 87; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4896 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 104 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4912 + hash: "f10fa114e248809ed280788d03a3e234" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 99 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 93; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4928 + hash: "442357340d9690811d582f548f933d92" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 98; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4944 + hash: "188b8f78b2a2180a8e96a8a05bb20fe2" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 77 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 69 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4960 + hash: "2b8ee42c5660f4f938cf10507690abbe" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 66 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 60 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4976 + hash: "3d4aab388f62e64c5f72c631fb8584aa" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 59 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4992 + hash: "439364cea3330411f526093d58ece463" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 55 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 53 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5008 + hash: "27653ec59651e6b3cb2ebf2bc81a975a" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 52 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 51 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5024 + hash: "d9c0fb2cbf968e0524291ae2570ca585" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5040 + hash: "ef75df694a972985f410e21182dbb12b" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5056 + hash: "adda6aa851c1587c1bb2605809348725" + } + Frame { + msec: 5072 + hash: "196c12052069f0f8c775aa38d3291bef" + } + Frame { + msec: 5088 + hash: "eaa025b6aee87edf95643cc46880d0db" + } + Frame { + msec: 5104 + hash: "edeab897b82df47ae6deb858eca3087e" + } + Frame { + msec: 5120 + hash: "46e3b5da149cfc40036a860e74e0cd78" + } + Frame { + msec: 5136 + hash: "46e3b5da149cfc40036a860e74e0cd78" + } + Frame { + msec: 5152 + hash: "0fe9b13b9b0752ab4ad74f4e43f94d86" + } + Frame { + msec: 5168 + hash: "0fe9b13b9b0752ab4ad74f4e43f94d86" + } + Frame { + msec: 5184 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5200 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5216 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5232 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5248 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5264 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5280 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5296 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5312 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5328 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5344 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5360 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 45 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 45 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5376 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 44 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5392 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 43 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5408 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 42 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 42 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5424 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 41 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 40 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5440 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5456 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 38 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5472 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 35 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5488 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 33 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 30 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5504 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 29 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 28 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5520 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 26 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 25 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5536 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 24 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 23 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5552 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 23 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 22 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5568 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5584 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5600 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5616 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5632 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 97; y: 22 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5648 + hash: "695e9c7292475cad011ca76799452042" + } + Frame { + msec: 5664 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 24 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 26 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5680 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 28 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5696 + hash: "695e9c7292475cad011ca76799452042" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 37 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 42 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5712 + hash: "27653ec59651e6b3cb2ebf2bc81a975a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 58 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5728 + hash: "f2a68c3a60002a796b0cd595ae89e477" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 71 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5744 + hash: "2628ffe66f06c997d9c9b66febc04ce8" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 97; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5760 + hash: "9b68c76d622f7b883a13927a112179f0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 99; y: 86 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 101; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 101; y: 91 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5776 + image: "flickweb.6.png" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 95 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5792 + hash: "6d6d87355037ec4a15b2a81c8d48b74d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 95 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 94 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5808 + hash: "6d6d87355037ec4a15b2a81c8d48b74d" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 107; y: 93 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5824 + hash: "6d6d87355037ec4a15b2a81c8d48b74d" + } + Frame { + msec: 5840 + hash: "6d6d87355037ec4a15b2a81c8d48b74d" + } + Frame { + msec: 5856 + hash: "34c3edc4500a268a326b5c2156c12f09" + } + Frame { + msec: 5872 + hash: "34c3edc4500a268a326b5c2156c12f09" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 105; y: 91 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5888 + hash: "34c3edc4500a268a326b5c2156c12f09" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 104; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 103; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5904 + hash: "ac600900160ab37ec8a3e67eb82d0259" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 101; y: 89 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 100; y: 88 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5920 + hash: "ac600900160ab37ec8a3e67eb82d0259" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 86 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 98; y: 86 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5936 + hash: "dc3cef419e3b7d59f450d3307aeebefa" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 97; y: 85 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 96; y: 85 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5952 + hash: "dc3cef419e3b7d59f450d3307aeebefa" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 84 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 93; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5968 + hash: "9b68c76d622f7b883a13927a112179f0" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 82 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5984 + hash: "9b68c76d622f7b883a13927a112179f0" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 80 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 79 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6000 + hash: "9b68c76d622f7b883a13927a112179f0" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 79; y: 78 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 76; y: 76 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6016 + hash: "9b68c76d622f7b883a13927a112179f0" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 76 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 72; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6032 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 68 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6048 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 65 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 61; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6064 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 59 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6080 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 54; y: 56 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 53; y: 54 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6096 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 51; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 48; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6112 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 48; y: 45 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 46; y: 41 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6128 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 45; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 43; y: 36 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6144 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 43; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 41; y: 32 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6160 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 40; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 38; y: 28 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6176 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 36; y: 26 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 35; y: 24 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6192 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 33; y: 22 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 32; y: 21 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6208 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 31; y: 20 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 30; y: 19 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6224 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 29; y: 19 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 18 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6240 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 27; y: 18 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6256 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6272 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 24; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6288 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6304 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6320 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6336 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6352 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 24; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6368 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6384 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6400 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6416 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 24; y: 17 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6432 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 24; y: 18 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6448 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 18 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 25; y: 19 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6464 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 26; y: 19 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 27; y: 20 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6480 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 28; y: 21 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6496 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6512 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6528 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 29; y: 22 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6544 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 30; y: 23 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 31; y: 24 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6560 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 32; y: 25 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 33; y: 25 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6576 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 34; y: 26 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 34; y: 27 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6592 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 37; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 38; y: 31 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6608 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 41; y: 35 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 42; y: 37 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6624 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 45; y: 42 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 50; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6640 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 52; y: 49 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 53 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6656 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 60; y: 55 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 65; y: 58 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6672 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 59 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 61 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6688 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 77; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6704 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 81; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6720 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 84; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6736 + image: "flickweb.7.png" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 85; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 86; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6752 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 87; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 88; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6768 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 90; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 93; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6784 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 94; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 99; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6800 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 102; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 106; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6816 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 110; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 116; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6832 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 122; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 124; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6848 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 125; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6864 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6880 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6896 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6912 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6928 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6944 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6960 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6976 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 6992 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7008 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7024 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7040 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7056 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7072 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7088 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 126; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7104 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 127; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 129; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7120 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 132; y: 65 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 134; y: 66 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7136 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 139; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 144; y: 69 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7152 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 148; y: 69 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 154; y: 69 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7168 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 158; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 162; y: 66 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7184 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 164; y: 65 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 165; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7200 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 165; y: 60 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 165; y: 54 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7216 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 162; y: 45 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 159; y: 39 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7232 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 151; y: 27 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 146; y: 22 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7248 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 129; y: 3 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7264 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7280 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7296 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7312 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7328 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7344 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7360 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7376 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7392 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7408 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7424 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7440 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7456 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7472 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7488 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7504 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7520 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7536 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7552 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7568 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7584 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7600 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7616 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7632 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7648 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7664 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7680 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7696 + image: "flickweb.8.png" + } + Frame { + msec: 7712 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7728 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7744 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7760 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7776 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7792 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7808 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7824 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7840 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7856 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7872 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7888 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7904 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7920 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7936 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7952 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7968 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 7984 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8000 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8016 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8032 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8048 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8064 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8080 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8096 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8112 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8128 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8144 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8160 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8176 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8192 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8208 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8224 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8240 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8256 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8272 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8288 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8304 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8320 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8336 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8352 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8368 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8384 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8400 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8416 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8432 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8448 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8464 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8480 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8496 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8512 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8528 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8544 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8560 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8576 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8592 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8608 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8624 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8640 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8656 + image: "flickweb.9.png" + } + Frame { + msec: 8672 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8688 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8704 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8720 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8736 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8752 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8768 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8784 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8800 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8816 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8832 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8848 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8864 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8880 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8896 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8912 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8928 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8944 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8960 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8976 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 8992 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9008 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9024 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9040 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9056 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9072 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9088 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9104 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9120 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9136 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9152 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9168 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9184 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9200 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9216 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9232 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9248 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9264 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9280 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9296 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9312 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9328 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9344 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9360 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9376 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9392 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9408 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9424 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9440 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9456 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9472 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9488 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9504 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9520 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9536 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9552 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9568 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9584 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9600 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9616 + image: "flickweb.10.png" + } + Frame { + msec: 9632 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9648 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9664 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9680 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9696 + hash: "98990f624351f88347b2eb010bb5cd13" + } + Frame { + msec: 9712 + hash: "98990f624351f88347b2eb010bb5cd13" + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml new file mode 100644 index 0000000..6063226 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml @@ -0,0 +1,35 @@ +import QtQuick 1.0 +import QtWebKit 1.0 + +Flickable { + id: flickable + width: 320 + height: 200 + contentWidth: Math.max(flickable.width,webView.width) + contentHeight: Math.max(flickable.height,webView.height) + pressDelay: 100 + + WebView { + id: webView + transformOrigin: Item.TopLeft + smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions + url: "test.html" + preferredWidth: flickable.width + preferredHeight: flickable.height + contentsScale: 1 + onContentsSizeChanged: { + // zoom out + contentsScale = Math.min(1,flickable.width / contentsSize.width) + } + } + + Rectangle { + id: button + width: 50; height: 50; color: "red" + MouseArea { + anchors.fill: parent + onPressed: button.color = "blue" + onReleased: button.color = "green" + } + } +} diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png b/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png new file mode 100644 index 0000000..399bd0b Binary files /dev/null and b/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png differ diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/test.html b/tests/auto/declarative/qmlvisual/webview/flickable/test.html new file mode 100644 index 0000000..35eb718 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/webview/flickable/test.html @@ -0,0 +1,3 @@ + + + -- cgit v0.12 From cd7e76b2ac2894c7c18a3806f8074b03f581d5d2 Mon Sep 17 00:00:00 2001 From: Petri Latvala Date: Wed, 13 Oct 2010 10:25:14 +0300 Subject: Ignore .pc/ Reviewed-By: Rohan McGovern (cherry picked from commit 561a72c2568768f9adf34aa1077717f9311ce56d) --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index af52197..f9a4454 100644 --- a/.gitignore +++ b/.gitignore @@ -235,3 +235,5 @@ qtc-debugging-helper src/corelib/lib src/network/lib src/xml/lib/ + +.pc/ -- cgit v0.12 From 0df002ad600800a6c4ccadb969e1b1de7f8353e7 Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Mon, 22 Nov 2010 14:56:14 +0100 Subject: Fix non-stroked filled paths in OpenVG paint engine. The QPainter::fillRect() functions are optimizations to avoid state changes in the paint engines. Since these functions should be completely independant of state, ideally they should only call functions that are also stateless. QVGPaintEngine::fillRect() has two different code paths for this. The vgClearRect() path of this function is stateless however in the case of non-opaque or complex fills, this code path cannot be used and instead we use the normal path fill function which is not entirely stateless because ensureTransform() will apply the aliased coordinate transform if the current state includes a stroked pen. To avoid this happening for a pure fill (no stroke) we temporary set the pen state to be Qt::NoPen such that the state used by ensureTransform() is correct. Task-number: QTBUG-14717 Reviewed-by: Jani Hautakangas --- src/openvg/qpaintengine_vg.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index aea203f..03d756d 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -1502,7 +1502,10 @@ void QVGPaintEnginePrivate::fill(VGPath path, const QBrush& brush, VGint rule) return; ensureBrush(brush); setFillRule(rule); + QPen savedPen = currentPen; + currentPen = Qt::NoPen; ensurePathTransform(); + currentPen = savedPen; vgDrawPath(path, VG_FILL_PATH); } -- cgit v0.12 From a9467c8542ff745471e077ac8be554d3a0087e4a Mon Sep 17 00:00:00 2001 From: Milla Pohjanheimo Date: Fri, 19 Nov 2010 13:10:57 +0200 Subject: Native color dialog on symbian Native color dialog implementation for Symbian. During merge extra libraries removed. Task-number: QT-3917 Reviewed-by: Sami Merila Merge-Request: 932 Reviewed-by: Janne Koskinen --- src/gui/dialogs/dialogs.pri | 9 +-- src/gui/dialogs/qcolordialog.cpp | 21 ++++++ src/gui/dialogs/qcolordialog_symbian.cpp | 107 +++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 6 deletions(-) create mode 100644 src/gui/dialogs/qcolordialog_symbian.cpp diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri index 443c5e9..c25b6d5 100644 --- a/src/gui/dialogs/dialogs.pri +++ b/src/gui/dialogs/dialogs.pri @@ -109,12 +109,9 @@ SOURCES += \ dialogs/qprintpreviewdialog.cpp symbian:contains(QT_CONFIG, s60) { - LIBS += -lcommondialogs \ - -lavkon \ - -lplatformenv \ - -lefsrv \ - -lgdi - SOURCES += dialogs/qfiledialog_symbian.cpp + LIBS += -lcommondialogs + SOURCES += dialogs/qfiledialog_symbian.cpp \ + dialogs/qcolordialog_symbian.cpp } FORMS += dialogs/qpagesetupwidget.ui diff --git a/src/gui/dialogs/qcolordialog.cpp b/src/gui/dialogs/qcolordialog.cpp index e9b5720..4ef2100 100644 --- a/src/gui/dialogs/qcolordialog.cpp +++ b/src/gui/dialogs/qcolordialog.cpp @@ -1952,6 +1952,12 @@ void QColorDialog::open(QObject *receiver, const char *member) \sa QDialog::open() */ +/* + For Symbian color dialogs +*/ +#ifdef Q_WS_S60 +extern QColor qtSymbianGetColor(const QColor &initial); +#endif /*! \since 4.5 @@ -1961,10 +1967,19 @@ void QColorDialog::open(QObject *receiver, const char *member) QColor::isValid()) color if the user cancels the dialog. The \a options argument allows you to customize the dialog. + + On Symbian, this static function will use the native color dialog and not a QColorDialog. + On Symbian the parameters \a title and \a parent has no relevance and the + \a options parameter is only used to define if the native color dialog is + used or not. */ QColor QColorDialog::getColor(const QColor &initial, QWidget *parent, const QString &title, ColorDialogOptions options) { +#ifdef Q_WS_S60 + if (!(options & DontUseNativeDialog)) + return qtSymbianGetColor(initial); +#endif QColorDialog dlg(parent); if (!title.isEmpty()) dlg.setWindowTitle(title); @@ -1979,10 +1994,16 @@ QColor QColorDialog::getColor(const QColor &initial, QWidget *parent, const QStr returns that color. The color is initially set to \a initial. The dialog is a child of \a parent. It returns an invalid (see QColor::isValid()) color if the user cancels the dialog. + + On Symbian, this static function will use the native + color dialog and not a QColorDialog. */ QColor QColorDialog::getColor(const QColor &initial, QWidget *parent) { +#ifdef Q_WS_S60 + return qtSymbianGetColor(initial); +#endif return getColor(initial, parent, QString(), ColorDialogOptions(0)); } diff --git a/src/gui/dialogs/qcolordialog_symbian.cpp b/src/gui/dialogs/qcolordialog_symbian.cpp new file mode 100644 index 0000000..3f8036c --- /dev/null +++ b/src/gui/dialogs/qcolordialog_symbian.cpp @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** 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 "qcolordialog_p.h" + +#ifndef QT_NO_COLORDIALOG + + +#include "qcolor.h" +#include "private/qguiplatformplugin_p.h" + +#ifdef Q_WS_S60 +#include +#endif + +#include "private/qt_s60_p.h" + +QT_BEGIN_NAMESPACE + +QColor launchSymbianColorDialog(QColor initial) +{ + QColor currentColor = QColor::Invalid; +#ifdef Q_WS_S60 + QT_TRAP_THROWING( + CArrayFixFlat* array = new( ELeave ) CArrayFixFlat(17); + CleanupStack::PushL(array); + array->AppendL(KRgbBlack); + array->AppendL(KRgbDarkGray); + array->AppendL(KRgbDarkRed); + array->AppendL(KRgbDarkGreen); + array->AppendL(KRgbDarkYellow); + array->AppendL(KRgbDarkBlue); + array->AppendL(KRgbDarkMagenta); + array->AppendL(KRgbDarkCyan); + array->AppendL(KRgbRed); + array->AppendL(KRgbGreen); + array->AppendL(KRgbYellow); + array->AppendL(KRgbBlue); + array->AppendL(KRgbMagenta); + array->AppendL(KRgbCyan); + array->AppendL(KRgbGray); + array->AppendL(KRgbWhite); + + TRgb initialColour(initial.red(), initial.green(), initial.blue(), initial.alpha()); + + TBool noneChosen = EFalse; // If true shows the default colour button + CAknColourSelectionGrid* colourSelectionGrid = + CAknColourSelectionGrid::NewL(array, EFalse, noneChosen, initialColour); + CleanupStack::PushL(colourSelectionGrid); + + if (colourSelectionGrid->ExecuteLD()) { + currentColor.setRgb(initialColour.Red(), initialColour.Green(), + initialColour.Blue(), initialColour.Alpha()); + } + CleanupStack::Pop(colourSelectionGrid); + CleanupStack::PopAndDestroy(array); + ); +#endif + return currentColor; +} + +QColor qtSymbianGetColor(const QColor &initial) +{ + return launchSymbianColorDialog(initial); +} + +QT_END_NAMESPACE + +#endif // QT_NO_COLORDIALOG -- cgit v0.12 From ea41bb4f6e097ee641e5fbee3242ccc5aa7e77b1 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 23 Nov 2010 20:13:09 +1000 Subject: Update QtGui emulator def file for bug QT-3971 --- src/s60installs/bwins/QtGuiu.def | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index dc8a865..6a33fc3 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12852,7 +12852,7 @@ EXPORTS ?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12851 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &) ?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12852 NONAME ; void QGraphicsViewPrivate::updateAll(void) ?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12853 NONAME ; void QGraphicsItem::updateMicroFocus(void) - ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12854 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *) + ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12854 NONAME ABSENT ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *) ?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12855 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const ?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12856 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &) ?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12857 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int) @@ -12904,4 +12904,5 @@ EXPORTS ?fontEngine@QStaticTextItem@@QBEPAVQFontEngine@@XZ @ 12903 NONAME ; class QFontEngine * QStaticTextItem::fontEngine(void) const ?reactivateDeferredActiveObjects@QEventDispatcherS60@@UAEXXZ @ 12904 NONAME ; void QEventDispatcherS60::reactivateDeferredActiveObjects(void) ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 12905 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const + ?populate@QTextureGlyphCache@@QAE_NPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12906 NONAME ; bool QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *) -- cgit v0.12 From f9c97d3a4ab7bbd0ca2f4cf33a53025af23fc47c Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Tue, 23 Nov 2010 11:13:41 +0100 Subject: Fix QPixmap::fromImage() in the OpenVG pixmap backend. If QPixmap::fromImage() was called with a QImage that has an alpha channel and with the 'Qt::NoOpaqueDetection' image conversion flag set, then we would always create an opaque (RGB32) pixmap. This is incorrect. The fix is to check if the source QImage has an alpha channel and if so, use sourceFormat(), otherwise use RGB32. Task-number: QT-4278 Reviewed-by: Jani Hautakangas --- src/openvg/qpixmapdata_vg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp index 509882b..c3c7def 100644 --- a/src/openvg/qpixmapdata_vg.cpp +++ b/src/openvg/qpixmapdata_vg.cpp @@ -214,7 +214,7 @@ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags else if (!(flags & Qt::NoOpaqueDetection) && const_cast(image).data_ptr()->checkForAlphaPixels()) format = sourceFormat(); else - format = QImage::Format_RGB32; + format = image.hasAlphaChannel() ? sourceFormat() : QImage::Format_RGB32; if (inPlace && image.data_ptr()->convertInPlace(format, flags)) source = image; -- cgit v0.12 From b5e5d6b39c01c4a3962d07d79c025c16aa1c24a5 Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Tue, 23 Nov 2010 12:30:02 +0200 Subject: Fix spaces Remove extra spaces Reviewed-by: Miikka Heikkinen --- src/gui/dialogs/qcolordialog.cpp | 2 +- src/gui/dialogs/qcolordialog_symbian.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/dialogs/qcolordialog.cpp b/src/gui/dialogs/qcolordialog.cpp index 4ef2100..a66a979 100644 --- a/src/gui/dialogs/qcolordialog.cpp +++ b/src/gui/dialogs/qcolordialog.cpp @@ -1968,7 +1968,7 @@ extern QColor qtSymbianGetColor(const QColor &initial); The \a options argument allows you to customize the dialog. - On Symbian, this static function will use the native color dialog and not a QColorDialog. + On Symbian, this static function will use the native color dialog and not a QColorDialog. On Symbian the parameters \a title and \a parent has no relevance and the \a options parameter is only used to define if the native color dialog is used or not. diff --git a/src/gui/dialogs/qcolordialog_symbian.cpp b/src/gui/dialogs/qcolordialog_symbian.cpp index 3f8036c..8f73f7c 100644 --- a/src/gui/dialogs/qcolordialog_symbian.cpp +++ b/src/gui/dialogs/qcolordialog_symbian.cpp @@ -79,7 +79,7 @@ QColor launchSymbianColorDialog(QColor initial) array->AppendL(KRgbGray); array->AppendL(KRgbWhite); - TRgb initialColour(initial.red(), initial.green(), initial.blue(), initial.alpha()); + TRgb initialColour(initial.red(), initial.green(), initial.blue(), initial.alpha()); TBool noneChosen = EFalse; // If true shows the default colour button CAknColourSelectionGrid* colourSelectionGrid = -- cgit v0.12 From 1689f5c557f686b7ad0ab68385402e928e590a13 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 23 Nov 2010 14:29:10 +0200 Subject: Use parent class function to generate Makefile headers in Symbian Qt Creator depends on some of the information generated into the makefile header by MakefileGenerator::writeHeader() function, so changed symmake*.cpp to use it instead of each having separate code for header generation. Task-number: QTBUG-15539 Reviewed-by: Janne Koskinen --- qmake/generators/symbian/symmake_abld.cpp | 11 +---------- qmake/generators/symbian/symmake_sbsv2.cpp | 12 ++---------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index cd64325..eb39d36 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -184,16 +184,7 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool QTextStream t(&wrapperFile); - t << "# ==============================================================================" << endl; - t << "# Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: "; - t << QDateTime::currentDateTime().toString() << endl; - t << "# This file is generated by qmake and should not be modified by the" << endl; - t << "# user." << endl; - t << "# Name : " << wrapperFile.fileName() << endl; - t << "# Description : Wrapper Makefile for calling Symbian build tools" << endl; - t << "#" << endl; - t << "# ==============================================================================" << "\n" << endl; - t << endl; + MakefileGenerator::writeHeader(t); t << "MAKEFILE = " << fileInfo(wrapperFile.fileName()).fileName() << endl; t << "QMAKE = " << var("QMAKE_QMAKE") << endl; diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index f4a6132..c4b51f2 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -324,16 +324,8 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo QTextStream t(&wrapperFile); - t << "# ==============================================================================" << endl; - t << "# Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: "; - t << QDateTime::currentDateTime().toString() << endl; - t << "# This file is generated by qmake and should not be modified by the" << endl; - t << "# user." << endl; - t << "# Name : " << wrapperFile.fileName() << endl; - t << "# Description : Wrapper Makefile for calling Symbian build tools" << endl; - t << "#" << endl; - t << "# ==============================================================================" << "\n" << endl; - t << endl; + MakefileGenerator::writeHeader(t); + t << "MAKEFILE = " << fileInfo(wrapperFile.fileName()).fileName() << endl; t << "QMAKE = " << var("QMAKE_QMAKE") << endl; t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; -- cgit v0.12 From 3dc88a6229afc72125fa5565eb565a6fbc92620f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 23 Nov 2010 15:21:20 +0100 Subject: Doc: Added general statements about reentrancy and thread safety. Task-number: QTBUG-14273 --- doc/src/frameworks-technologies/threads.qdoc | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/src/frameworks-technologies/threads.qdoc b/doc/src/frameworks-technologies/threads.qdoc index 3ef617c..3e0204f 100644 --- a/doc/src/frameworks-technologies/threads.qdoc +++ b/doc/src/frameworks-technologies/threads.qdoc @@ -213,10 +213,10 @@ /*! \page threads-reentrancy.html \title Reentrancy and Thread-Safety - + \keyword reentrant \keyword thread-safe - + \previouspage Synchronizing Threads \contentspage Thread Support in Qt \nextpage Threads and QObjects @@ -243,6 +243,15 @@ from multiple threads, even if all the threads use the \e{same} instance of the class. + \note Qt classes are only documented as \e{thread-safe} if they + are intended to be used by multiple threads. If a function is not + marked as thread-safe or reentrant, it should not be used from + different threads. If a class is not marked as thread-safe or + reentrant then a specific instance of that class should not be + accessed from different threads. + + \section1 Reentrancy + C++ classes are often reentrant, simply because they only access their own member data. Any thread can call a member function on an instance of a reentrant class, as long as no other thread can call @@ -268,6 +277,8 @@ end up overwriting each other, and the variable is incremented only once! + \section1 Thread-Safety + Clearly, the access must be serialized: Thread A must perform steps 1, 2, 3 without interruption (atomically) before thread B can perform the same steps; or vice versa. An easy way to make @@ -284,6 +295,8 @@ declared with the \c mutable qualifier because we need to lock and unlock the mutex in \c value(), which is a const function. + \section1 Notes on Qt Classes + Many Qt classes are \e{reentrant}, but they are not made \e{thread-safe}, because making them thread-safe would incur the extra overhead of repeatedly locking and unlocking a QMutex. For @@ -297,9 +310,6 @@ the thread-related classes (e.g. QMutex) and fundamental functions (e.g. QCoreApplication::postEvent()). - \note Qt Classes are only documented as \e{thread-safe} if they - are intended to be used by multiple threads. - \note Terminology in the multithreading domain isn't entirely standardized. POSIX uses definitions of reentrant and thread-safe that are somewhat different for its C APIs. When using other -- cgit v0.12 From ad1e82323225e996720136e8b2d669166b8d8441 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 17 Nov 2010 18:33:22 +0100 Subject: QNetworkAccessManager: enable synchronous HTTP calls To enable synchronous calls, an attribute in the QNetworkRequest has to be set. If set, when QNetworkAccessManager::get() (and post(), put()) returns, the reply is finished and all data has been read in case of success. This feature is semi-public for now (usable, but not documented). To enable this, an attribute in the QNetworkRequest must be set. If this attribute is set, we open a new connection to the server with only one channel and call the channels' sockets' waitFor* methods. Reviewed-by: Markus Goetz --- src/network/access/qhttpnetworkconnection.cpp | 9 +- src/network/access/qhttpnetworkconnection_p.h | 4 +- .../access/qhttpnetworkconnectionchannel.cpp | 2 +- .../access/qhttpnetworkconnectionchannel_p.h | 2 + src/network/access/qhttpnetworkreply.cpp | 6 + src/network/access/qhttpnetworkreply_p.h | 1 + src/network/access/qnetworkaccessbackend.cpp | 1 + src/network/access/qnetworkaccessbackend_p.h | 6 + src/network/access/qnetworkaccessdatabackend.cpp | 6 + src/network/access/qnetworkaccessdatabackend_p.h | 2 + src/network/access/qnetworkaccesshttpbackend.cpp | 140 +++++- src/network/access/qnetworkaccesshttpbackend_p.h | 4 +- src/network/access/qnetworkaccessmanager.cpp | 16 +- src/network/access/qnetworkreplyimpl.cpp | 47 +- src/network/access/qnetworkrequest.h | 3 + .../tst_qabstractnetworkcache.cpp | 111 ++++- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 506 ++++++++++++++++++++- 17 files changed, 799 insertions(+), 67 deletions(-) diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index 4d27531..0531595 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -327,8 +327,6 @@ bool QHttpNetworkConnectionPrivate::handleAuthenticateChallenge(QAbstractSocket Q_ASSERT(socket); Q_ASSERT(reply); - Q_Q(QHttpNetworkConnection); - resend = false; //create the response header to be used with QAuthenticatorPrivate. QList > fields = reply->header(); @@ -854,12 +852,17 @@ QHttpNetworkReply* QHttpNetworkConnection::sendRequest(const QHttpNetworkRequest return d->queueRequest(request); } -bool QHttpNetworkConnection::isEncrypted() const +bool QHttpNetworkConnection::isSsl() const { Q_D(const QHttpNetworkConnection); return d->encrypt; } +QHttpNetworkConnectionChannel *QHttpNetworkConnection::channels() const +{ + return d_func()->channels; +} + #ifndef QT_NO_NETWORKPROXY void QHttpNetworkConnection::setCacheProxy(const QNetworkProxy &networkProxy) { diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h index 8461426c..9f23cbf 100644 --- a/src/network/access/qhttpnetworkconnection_p.h +++ b/src/network/access/qhttpnetworkconnection_p.h @@ -108,7 +108,9 @@ public: QNetworkProxy transparentProxy() const; #endif - bool isEncrypted() const; + bool isSsl() const; + + QHttpNetworkConnectionChannel *channels() const; #ifndef QT_NO_OPENSSL void setSslConfiguration(const QSslConfiguration &config); diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index 02daa50..c8caad4 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -180,7 +180,6 @@ bool QHttpNetworkConnectionChannel::sendRequest() reply->d_func()->autoDecompress = request.d->autoDecompress; reply->d_func()->pipeliningUsed = false; - pendingEncrypt = false; // if the url contains authentication parameters, use the new ones // both channels will use the new authentication parameters if (!request.url().userInfo().isEmpty() && request.withCredentials()) { @@ -1019,6 +1018,7 @@ void QHttpNetworkConnectionChannel::_q_encrypted() if (!socket) return; // ### error state = QHttpNetworkConnectionChannel::IdleState; + pendingEncrypt = false; sendRequest(); } diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index 442086a..fd18042 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -158,6 +158,8 @@ public: bool isSocketWaiting() const; bool isSocketReading() const; + friend class QNetworkAccessHttpBackend; + protected slots: void _q_receiveReply(); void _q_bytesWritten(qint64 bytes); // proceed sending diff --git a/src/network/access/qhttpnetworkreply.cpp b/src/network/access/qhttpnetworkreply.cpp index e4eb7c4..21bc427 100644 --- a/src/network/access/qhttpnetworkreply.cpp +++ b/src/network/access/qhttpnetworkreply.cpp @@ -188,6 +188,12 @@ QByteArray QHttpNetworkReply::readAny() return d->responseData.read(); } +QByteArray QHttpNetworkReply::readAll() +{ + Q_D(QHttpNetworkReply); + return d->responseData.readAll(); +} + void QHttpNetworkReply::setDownstreamLimited(bool dsl) { Q_D(QHttpNetworkReply); diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h index 3f79d81..9cf805c 100644 --- a/src/network/access/qhttpnetworkreply_p.h +++ b/src/network/access/qhttpnetworkreply_p.h @@ -126,6 +126,7 @@ public: qint64 bytesAvailable() const; qint64 bytesAvailableNextBlock() const; QByteArray readAny(); + QByteArray readAll(); void setDownstreamLimited(bool t); bool isFinished() const; diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp index 05eb6cb..12b6400 100644 --- a/src/network/access/qnetworkaccessbackend.cpp +++ b/src/network/access/qnetworkaccessbackend.cpp @@ -142,6 +142,7 @@ void QNetworkAccessBackend::emitReplyUploadProgress(qint64 bytesSent, qint64 byt QNetworkAccessBackend::QNetworkAccessBackend() : manager(0) , reply(0) + , synchronous(false) { } diff --git a/src/network/access/qnetworkaccessbackend_p.h b/src/network/access/qnetworkaccessbackend_p.h index 7faa5cb..c9ec37e 100644 --- a/src/network/access/qnetworkaccessbackend_p.h +++ b/src/network/access/qnetworkaccessbackend_p.h @@ -157,6 +157,9 @@ public: QVariant attribute(QNetworkRequest::Attribute code) const; void setAttribute(QNetworkRequest::Attribute code, const QVariant &value); + bool isSynchronous() { return synchronous; } + void setSynchronous(bool sync) { synchronous = sync; } + // return true if the QNonContiguousByteDevice of the upload // data needs to support reset(). Currently needed for HTTP. // This will possibly enable buffering of the upload data. @@ -166,6 +169,8 @@ public: virtual bool canResume() const { return false; } virtual void setResumeOffset(quint64 offset) { Q_UNUSED(offset); } + virtual bool processRequestSynchronously() { return false; } + protected: // Create the device used for reading the upload data QNonContiguousByteDevice* createUploadByteDevice(); @@ -200,6 +205,7 @@ private: friend class QNetworkReplyImplPrivate; QNetworkAccessManagerPrivate *manager; QNetworkReplyImplPrivate *reply; + bool synchronous; }; class QNetworkAccessBackendFactory diff --git a/src/network/access/qnetworkaccessdatabackend.cpp b/src/network/access/qnetworkaccessdatabackend.cpp index efb6e3e..74aebdb 100644 --- a/src/network/access/qnetworkaccessdatabackend.cpp +++ b/src/network/access/qnetworkaccessdatabackend.cpp @@ -122,4 +122,10 @@ bool QNetworkAccessDataBackend::waitForUpstreamBytesWritten(int) return false; } +bool QNetworkAccessDataBackend::processRequestSynchronously() +{ + start(); + return true; +} + QT_END_NAMESPACE diff --git a/src/network/access/qnetworkaccessdatabackend_p.h b/src/network/access/qnetworkaccessdatabackend_p.h index a7c63d5..0e5a494 100644 --- a/src/network/access/qnetworkaccessdatabackend_p.h +++ b/src/network/access/qnetworkaccessdatabackend_p.h @@ -68,6 +68,8 @@ public: virtual void closeUpstreamChannel(); virtual bool waitForDownstreamReadyRead(int msecs); virtual bool waitForUpstreamBytesWritten(int msecs); + + virtual bool processRequestSynchronously(); }; class QNetworkAccessDataBackendFactory: public QNetworkAccessBackendFactory diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp index 80b05a4..070111d 100644 --- a/src/network/access/qnetworkaccesshttpbackend.cpp +++ b/src/network/access/qnetworkaccesshttpbackend.cpp @@ -50,6 +50,7 @@ #include "qnetworkrequest_p.h" #include "qnetworkcookie_p.h" #include "QtCore/qdatetime.h" +#include "QtCore/qelapsedtimer.h" #include "QtNetwork/qsslconfiguration.h" #ifndef QT_NO_HTTP @@ -318,7 +319,10 @@ void QNetworkAccessHttpBackend::disconnectFromHttp() // Get the object cache that stores our QHttpNetworkConnection objects QNetworkAccessCache *cache = QNetworkAccessManagerPrivate::getObjectCache(this); - cache->releaseEntry(cacheKey); + + // synchronous calls are not put into the cache, so for them the key is empty + if (!cacheKey.isEmpty()) + cache->releaseEntry(cacheKey); } // This is abut disconnecting signals, not about disconnecting TCP connections @@ -639,34 +643,49 @@ void QNetworkAccessHttpBackend::open() if (transparentProxy.type() == QNetworkProxy::DefaultProxy && cacheProxy.type() == QNetworkProxy::DefaultProxy) { // unsuitable proxies - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, - Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ProxyNotFoundError), - Q_ARG(QString, tr("No suitable proxy found"))); - QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); - return; + if (isSynchronous()) { + error(QNetworkReply::ProxyNotFoundError, tr("No suitable proxy found")); + finished(); + } else { + QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, + Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ProxyNotFoundError), + Q_ARG(QString, tr("No suitable proxy found"))); + QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); + } + return; } #endif - // check if we have an open connection to this host - cacheKey = makeCacheKey(this, theProxy); - QNetworkAccessCache *cache = QNetworkAccessManagerPrivate::getObjectCache(this); - // the http object is actually a QHttpNetworkConnection - http = static_cast(cache->requestEntryNow(cacheKey)); - if (http == 0) { - // no entry in cache; create an object - // the http object is actually a QHttpNetworkConnection - http = new QNetworkAccessCachedHttpConnection(url.host(), url.port(), encrypt); - + if (isSynchronous()) { + // for synchronous requests, we just create a new connection + http = new QHttpNetworkConnection(1, url.host(), url.port(), encrypt, this); #ifndef QT_NO_NETWORKPROXY http->setTransparentProxy(transparentProxy); http->setCacheProxy(cacheProxy); #endif + postRequest(); + processRequestSynchronously(); + } else { + // check if we have an open connection to this host + cacheKey = makeCacheKey(this, theProxy); + QNetworkAccessCache *cache = QNetworkAccessManagerPrivate::getObjectCache(this); + // the http object is actually a QHttpNetworkConnection + http = static_cast(cache->requestEntryNow(cacheKey)); + if (http == 0) { + // no entry in cache; create an object + // the http object is actually a QHttpNetworkConnection + http = new QNetworkAccessCachedHttpConnection(url.host(), url.port(), encrypt); - // cache the QHttpNetworkConnection corresponding to this cache key - cache->addEntry(cacheKey, http); - } +#ifndef QT_NO_NETWORKPROXY + http->setTransparentProxy(transparentProxy); + http->setCacheProxy(cacheProxy); +#endif - postRequest(); + // cache the QHttpNetworkConnection corresponding to this cache key + cache->addEntry(cacheKey, static_cast(http.data())); + } + postRequest(); + } } void QNetworkAccessHttpBackend::closeDownstreamChannel() @@ -1125,6 +1144,87 @@ void QNetworkAccessHttpBackend::setResumeOffset(quint64 offset) resumeOffset = offset; } +bool QNetworkAccessHttpBackend::processRequestSynchronously() +{ + QHttpNetworkConnectionChannel *channel = &http->channels()[0]; + + // Disconnect all socket signals. They will only confuse us when using waitFor* + QObject::disconnect(channel->socket, 0, 0, 0); + + qint64 timeout = 20*1000; // 20 sec + QElapsedTimer timeoutTimer; + + bool waitResult = channel->socket->waitForConnected(timeout); + timeoutTimer.start(); + + if (!waitResult || channel->socket->state() != QAbstractSocket::Connected) { + error(QNetworkReply::UnknownNetworkError, QLatin1String("could not connect")); + return false; + } + channel->_q_connected(); // this will send the request (via sendRequest()) + +#ifndef QT_NO_OPENSSL + if (http->isSsl()) { + qint64 remainingTimeEncrypted = timeout - timeoutTimer.elapsed(); + if (!static_cast(channel->socket)->waitForEncrypted(remainingTimeEncrypted)) { + error(QNetworkReply::SslHandshakeFailedError, + QLatin1String("could not encrypt or timeout while encrypting")); + return false; + } + channel->_q_encrypted(); + } +#endif + + // if we get a 401 or 407, we might need to send the request twice, see below + bool authenticating = false; + + do { + channel->sendRequest(); + + qint64 remainingTimeBytesWritten; + while(channel->socket->bytesToWrite() > 0 || + channel->state == QHttpNetworkConnectionChannel::WritingState) { + remainingTimeBytesWritten = timeout - timeoutTimer.elapsed(); + channel->sendRequest(); // triggers channel->socket->write() + if (!channel->socket->waitForBytesWritten(remainingTimeBytesWritten)) { + error(QNetworkReply::TimeoutError, + QLatin1String("could not write bytes to socket or timeout while writing")); + return false; + } + } + + qint64 remainingTimeBytesRead = timeout - timeoutTimer.elapsed(); + // Loop for at most remainingTime until either the socket disconnects + // or the reply is finished + do { + waitResult = channel->socket->waitForReadyRead(remainingTimeBytesRead); + remainingTimeBytesRead = timeout - timeoutTimer.elapsed(); + if (!waitResult || remainingTimeBytesRead <= 0 + || channel->socket->state() != QAbstractSocket::ConnectedState) { + error(QNetworkReply::TimeoutError, + QLatin1String("could not read from socket or timeout while reading")); + return false; + } + + if (channel->socket->bytesAvailable()) + channel->_q_readyRead(); + + if (!httpReply) + return false; // we got a 401 or 407 and cannot handle it (it might happen that + // disconnectFromHttp() was called, in that case the reply is zero) + // ### I am quite sure this does not work for NTLM + // ### how about uploading to an auth / proxyAuth site? + + authenticating = (httpReply->statusCode() == 401 || httpReply->statusCode() == 407); + + if (httpReply->isFinished()) + break; + } while (remainingTimeBytesRead > 0); + } while (authenticating); + + return true; +} + QT_END_NAMESPACE #endif // QT_NO_HTTP diff --git a/src/network/access/qnetworkaccesshttpbackend_p.h b/src/network/access/qnetworkaccesshttpbackend_p.h index 5de3429..cc2f9ac 100644 --- a/src/network/access/qnetworkaccesshttpbackend_p.h +++ b/src/network/access/qnetworkaccesshttpbackend_p.h @@ -99,6 +99,8 @@ public: bool canResume() const; void setResumeOffset(quint64 offset); + virtual bool processRequestSynchronously(); + private slots: void replyReadyRead(); void replyFinished(); @@ -111,7 +113,7 @@ private slots: private: QHttpNetworkReply *httpReply; - QPointer http; + QPointer http; QByteArray cacheKey; QNetworkAccessBackendUploadIODevice *uploadDevice; diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index effd79e..4bc036e 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1060,12 +1060,14 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera priv->backend->setParent(reply); priv->backend->reply = priv; } - // fourth step: setup the reply - priv->setup(op, request, outgoingData); #ifndef QT_NO_OPENSSL reply->setSslConfiguration(request.sslConfiguration()); #endif + + // fourth step: setup the reply + priv->setup(op, request, outgoingData); + return reply; } @@ -1141,6 +1143,11 @@ void QNetworkAccessManagerPrivate::authenticationRequired(QNetworkAccessBackend } } + // if we emit a signal here in synchronous mode, the user might spin + // an event loop, which might recurse and lead to problems + if (backend->isSynchronous()) + return; + backend->reply->urlForLastAuthentication = url; emit q->authenticationRequired(backend->reply->q_func(), authenticator); cacheCredentials(url, authenticator); @@ -1168,6 +1175,11 @@ void QNetworkAccessManagerPrivate::proxyAuthenticationRequired(QNetworkAccessBac } } + // if we emit a signal here in synchronous mode, the user might spin + // an event loop, which might recurse and lead to problems + if (backend->isSynchronous()) + return; + backend->reply->lastProxyAuthentication = proxy; emit q->proxyAuthenticationRequired(proxy, authenticator); cacheProxyCredentials(proxy, authenticator); diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index 5850494..cf6e674 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -85,7 +85,7 @@ void QNetworkReplyImplPrivate::_q_startOperation() } #ifndef QT_NO_BEARERMANAGEMENT - if (!backend->start()) { + if (!backend->start()) { // ### we should call that method even if bearer is not used // backend failed to start because the session state is not Connected. // QNetworkAccessManager will call reply->backend->start() again for us when the session // state changes. @@ -109,11 +109,15 @@ void QNetworkReplyImplPrivate::_q_startOperation() } #endif - if (state != Finished) { - if (operation == QNetworkAccessManager::GetOperation) - pendingNotifications.append(NotifyDownstreamReadyWrite); + if (backend->isSynchronous()) { + state = Finished; + } else { + if (state != Finished) { + if (operation == QNetworkAccessManager::GetOperation) + pendingNotifications.append(NotifyDownstreamReadyWrite); - handleNotifications(); + handleNotifications(); + } } } @@ -287,7 +291,25 @@ void QNetworkReplyImplPrivate::setup(QNetworkAccessManager::Operation op, const url = request.url(); operation = op; - if (outgoingData && backend) { + q->QIODevice::open(QIODevice::ReadOnly); + // Internal code that does a HTTP reply for the synchronous Ajax + // in QtWebKit. + QVariant synchronousHttpAttribute = req.attribute( + static_cast(QNetworkRequest::DownloadBufferAttribute + 1)); + if (synchronousHttpAttribute.toBool()) { + backend->setSynchronous(true); + if (outgoingData && outgoingData->isSequential()) { + outgoingDataBuffer = new QRingBuffer(); + QByteArray data; + do { + data = outgoingData->readAll(); + if (data.isEmpty()) + break; + outgoingDataBuffer->append(data); + } while (1); + } + } + if (outgoingData && backend && !backend->isSynchronous()) { // there is data to be uploaded, e.g. HTTP POST. if (!backend->needsResetableUploadData() || !outgoingData->isSequential()) { @@ -298,7 +320,7 @@ void QNetworkReplyImplPrivate::setup(QNetworkAccessManager::Operation op, const } else { bool bufferingDisallowed = req.attribute(QNetworkRequest::DoNotBufferUploadDataAttribute, - false).toBool(); + false).toBool(); if (bufferingDisallowed) { // if a valid content-length header for the request was supplied, we can disable buffering @@ -323,17 +345,18 @@ void QNetworkReplyImplPrivate::setup(QNetworkAccessManager::Operation op, const // for HTTP, we want to send out the request as fast as possible to the network, without // invoking methods in a QueuedConnection #ifndef QT_NO_HTTP - if (qobject_cast(backend)) { + if (qobject_cast(backend) || (backend && backend->isSynchronous())) { _q_startOperation(); } else { QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection); } #else - QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection); + if (backend->isSynchronous()) + _q_startOperation(); + else + QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection); #endif // QT_NO_HTTP - } - - q->QIODevice::open(QIODevice::ReadOnly); + } } void QNetworkReplyImplPrivate::backendNotify(InternalNotifications notification) diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h index cdadf0f..9bcc900 100644 --- a/src/network/access/qnetworkrequest.h +++ b/src/network/access/qnetworkrequest.h @@ -85,6 +85,9 @@ public: MaximumDownloadBufferSizeAttribute, // internal DownloadBufferAttribute, // internal + // (DownloadBufferAttribute + 1) is reserved internal for QSynchronousHttpNetworkReply + // add the enum in 4.8 + User = 1000, UserMax = 32767 }; diff --git a/tests/auto/qabstractnetworkcache/tst_qabstractnetworkcache.cpp b/tests/auto/qabstractnetworkcache/tst_qabstractnetworkcache.cpp index 04bd432..fc8a126 100644 --- a/tests/auto/qabstractnetworkcache/tst_qabstractnetworkcache.cpp +++ b/tests/auto/qabstractnetworkcache/tst_qabstractnetworkcache.cpp @@ -58,20 +58,29 @@ public: private slots: void expires_data(); void expires(); + void expiresSynchronous_data(); + void expiresSynchronous(); void lastModified_data(); void lastModified(); + void lastModifiedSynchronous_data(); + void lastModifiedSynchronous(); void etag_data(); void etag(); + void etagSynchronous_data(); + void etagSynchronous(); void cacheControl_data(); void cacheControl(); + void cacheControlSynchronous_data(); + void cacheControlSynchronous(); void deleteCache(); private: void check(); + void checkSynchronous(); }; class NetworkDiskCache : public QNetworkDiskCache @@ -142,6 +151,16 @@ void tst_QAbstractNetworkCache::expires() check(); } +void tst_QAbstractNetworkCache::expiresSynchronous_data() +{ + expires_data(); +} + +void tst_QAbstractNetworkCache::expiresSynchronous() +{ + checkSynchronous(); +} + void tst_QAbstractNetworkCache::lastModified_data() { QTest::addColumn("cacheLoadControl"); @@ -164,6 +183,16 @@ void tst_QAbstractNetworkCache::lastModified() check(); } +void tst_QAbstractNetworkCache::lastModifiedSynchronous_data() +{ + tst_QAbstractNetworkCache::lastModified_data(); +} + +void tst_QAbstractNetworkCache::lastModifiedSynchronous() +{ + checkSynchronous(); +} + void tst_QAbstractNetworkCache::etag_data() { QTest::addColumn("cacheLoadControl"); @@ -186,6 +215,16 @@ void tst_QAbstractNetworkCache::etag() check(); } +void tst_QAbstractNetworkCache::etagSynchronous_data() +{ + tst_QAbstractNetworkCache::etag_data(); +} + +void tst_QAbstractNetworkCache::etagSynchronous() +{ + checkSynchronous(); +} + void tst_QAbstractNetworkCache::cacheControl_data() { QTest::addColumn("cacheLoadControl"); @@ -217,6 +256,16 @@ void tst_QAbstractNetworkCache::cacheControl() check(); } +void tst_QAbstractNetworkCache::cacheControlSynchronous_data() +{ + tst_QAbstractNetworkCache::cacheControl_data(); +} + +void tst_QAbstractNetworkCache::cacheControlSynchronous() +{ + checkSynchronous(); +} + void tst_QAbstractNetworkCache::check() { QFETCH(QNetworkRequest::CacheLoadControl, cacheLoadControl); @@ -250,8 +299,6 @@ void tst_QAbstractNetworkCache::check() QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError); QCOMPARE(secondData, QByteArray()); } else { - if (reply2->error() != QNetworkReply::NoError) - qDebug() << reply2->errorString(); QCOMPARE(reply2->error(), QNetworkReply::NoError); QCOMPARE(QString(secondData), QString(goodData)); QCOMPARE(secondData, goodData); @@ -263,16 +310,60 @@ void tst_QAbstractNetworkCache::check() QList rawHeaderList2 = reply2->rawHeaderList(); qSort(rawHeaderList); qSort(rawHeaderList2); + } + QCOMPARE(diskCache->gotData, fetchFromCache); +} - // headers can change - for (int i = 0; i < rawHeaderList.count(); ++i) { - //qDebug() << i << rawHeaderList.value(i) << reply->rawHeader(rawHeaderList.value(i)); - //qDebug() << i << rawHeaderList2.value(i) << reply2->rawHeader(rawHeaderList2.value(i)); - //QCOMPARE(QString(rawHeaderList.value(i)), QString(rawHeaderList2.value(i))); - //QCOMPARE(QString(reply->rawHeader(rawHeaderList.value(i))), QString(reply2->rawHeader(rawHeaderList2.value(i)))); - } - //QCOMPARE(rawHeaderList.count(), rawHeaderList2.count()); +void tst_QAbstractNetworkCache::checkSynchronous() +{ + QSKIP("not working yet, see QTBUG-15221", SkipAll); + QFETCH(QNetworkRequest::CacheLoadControl, cacheLoadControl); + QFETCH(QString, url); + QFETCH(bool, fetchFromCache); + + QNetworkAccessManager manager; + NetworkDiskCache *diskCache = new NetworkDiskCache(&manager); + manager.setCache(diskCache); + QCOMPARE(diskCache->gotData, false); + + QUrl realUrl = url.contains("://") ? url : TESTFILE + url; + QNetworkRequest request(realUrl); + + request.setAttribute( + static_cast(QNetworkRequest::DownloadBufferAttribute + 1), + true); + + // prime the cache + QNetworkReply *reply = manager.get(request); + QVERIFY(reply->isFinished()); // synchronous + QCOMPARE(diskCache->gotData, false); + QByteArray goodData = reply->readAll(); + + request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, cacheLoadControl); + + // should be in the cache now + QNetworkReply *reply2 = manager.get(request); + QVERIFY(reply2->isFinished()); // synchronous + + QByteArray secondData = reply2->readAll(); + if (!fetchFromCache && cacheLoadControl == QNetworkRequest::AlwaysCache) { + QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError); + QCOMPARE(secondData, QByteArray()); + } else { + if (reply2->error() != QNetworkReply::NoError) + qDebug() << reply2->errorString(); + QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(QString(secondData), QString(goodData)); + QCOMPARE(secondData, goodData); + QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + } + + if (fetchFromCache) { + QList rawHeaderList = reply->rawHeaderList(); + QList rawHeaderList2 = reply2->rawHeaderList(); + qSort(rawHeaderList); + qSort(rawHeaderList2); } QCOMPARE(diskCache->gotData, fetchFromCache); } diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index ddb7687..90416f2 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -75,7 +75,6 @@ #include "../network-settings.h" - Q_DECLARE_METATYPE(QNetworkReply*) Q_DECLARE_METATYPE(QAuthenticator*) Q_DECLARE_METATYPE(QNetworkProxy) @@ -84,6 +83,8 @@ Q_DECLARE_METATYPE(QList) Q_DECLARE_METATYPE(QNetworkReply::NetworkError) Q_DECLARE_METATYPE(QBuffer*) +const int SynchronousRequestAttribute = QNetworkRequest::DownloadBufferAttribute + 1; + class QNetworkReplyPtr: public QSharedPointer { public: @@ -108,6 +109,16 @@ class tst_QNetworkReply: public QObject bool requiresAuthentication; }; + static bool seedCreated; + static QString createUniqueExtension() { + if (!seedCreated) { + qsrand(QTime(0,0,0).msecsTo(QTime::currentTime()) + QCoreApplication::applicationPid()); + seedCreated = true; // not thread-safe, but who cares + } + QString s = QString("%1-%2-%3").arg(QTime(0,0,0).msecsTo(QTime::currentTime())).arg(QCoreApplication::applicationPid()).arg(qrand()); + return s; + }; + QEventLoop *loop; enum RunSimpleRequestReturn { Timeout = 0, Success, Failure }; int returnCode; @@ -173,8 +184,12 @@ private Q_SLOTS: void putToFtp(); void putToHttp_data(); void putToHttp(); + void putToHttpSynchronous_data(); + void putToHttpSynchronous(); void postToHttp_data(); void postToHttp(); + void postToHttpSynchronous_data(); + void postToHttpSynchronous(); void deleteFromHttp_data(); void deleteFromHttp(); void putGetDeleteGetFromHttp_data(); @@ -198,7 +213,9 @@ private Q_SLOTS: void ioGetFromHttpWithReuseParallel(); void ioGetFromHttpWithReuseSequential(); void ioGetFromHttpWithAuth(); + void ioGetFromHttpWithAuthSynchronous(); void ioGetFromHttpWithProxyAuth(); + void ioGetFromHttpWithProxyAuthSynchronous(); void ioGetFromHttpWithSocksProxy(); #ifndef QT_NO_OPENSSL void ioGetFromHttpsWithSslErrors(); @@ -233,6 +250,8 @@ private Q_SLOTS: void ioPostToHttpFromFile(); void ioPostToHttpFromSocket_data(); void ioPostToHttpFromSocket(); + void ioPostToHttpFromSocketSynchronous(); + void ioPostToHttpFromSocketSynchronous_data(); void ioPostToHttpFromMiddleOfFileToEnd(); void ioPostToHttpFromMiddleOfFileFiveBytes(); void ioPostToHttpFromMiddleOfQBufferFiveBytes(); @@ -258,13 +277,19 @@ private Q_SLOTS: void receiveCookiesFromHttp_data(); void receiveCookiesFromHttp(); + void receiveCookiesFromHttpSynchronous_data(); + void receiveCookiesFromHttpSynchronous(); void sendCookies_data(); void sendCookies(); + void sendCookiesSynchronous_data(); + void sendCookiesSynchronous(); void nestedEventLoops(); void httpProxyCommands_data(); void httpProxyCommands(); + void httpProxyCommandsSynchronous_data(); + void httpProxyCommandsSynchronous(); void proxyChange(); void authorizationError_data(); void authorizationError(); @@ -303,12 +328,18 @@ private Q_SLOTS: void qtbug15311doubleContentLength(); + void synchronousRequest_data(); + void synchronousRequest(); + void synchronousRequestSslFailure(); + // NOTE: This test must be last! void parentingRepliesToTheApp(); }; QT_BEGIN_NAMESPACE +bool tst_QNetworkReply::seedCreated = false; + namespace QTest { template<> char *toString(const QNetworkReply::NetworkError& code) @@ -915,14 +946,15 @@ protected: tst_QNetworkReply::tst_QNetworkReply() { + qRegisterMetaType(); // for QSignalSpy + qRegisterMetaType(); + qRegisterMetaType(); + qRegisterMetaType >(); + Q_SET_DEFAULT_IAP testFileName = QDir::currentPath() + "/testfile"; -#ifndef Q_OS_WINCE - uniqueExtension = QString("%1%2%3").arg((qulonglong)this).arg(rand()).arg((qulonglong)time(0)); -#else - uniqueExtension = QString("%1%2").arg((qulonglong)this).arg(rand()); -#endif + uniqueExtension = createUniqueExtension(); cookieJar = new MyCookieJar; manager.setCookieJar(cookieJar); @@ -1009,15 +1041,25 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, Q_ASSERT_X(false, "tst_QNetworkReply", "Invalid/unknown operation requested"); } reply->setParent(this); - connect(reply, SIGNAL(finished()), SLOT(finished())); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); returnCode = Timeout; - loop = new QEventLoop; - QTimer::singleShot(20000, loop, SLOT(quit())); - int code = returnCode == Timeout ? loop->exec() : returnCode; - delete loop; - loop = 0; + int code = Success; + + if (request.attribute(static_cast(SynchronousRequestAttribute)).toBool()) { + if (reply->isFinished()) + code = reply->error() != QNetworkReply::NoError ? Failure : Success; + else + code = Failure; + } else { + connect(reply, SIGNAL(finished()), SLOT(finished())); + connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); + + loop = new QEventLoop; + QTimer::singleShot(20000, loop, SLOT(quit())); + code = returnCode == Timeout ? loop->exec() : returnCode; + delete loop; + loop = 0; + } switch (code) { case Failure: @@ -1492,6 +1534,9 @@ void tst_QNetworkReply::putToFile_data() data = QByteArray(128*1024+1, '\177'); QTest::newRow("128k+1") << data << md5sum(data); + + data = QByteArray(2*1024*1024+1, '\177'); + QTest::newRow("2MB+1") << data << md5sum(data); } void tst_QNetworkReply::putToFile() @@ -1598,6 +1643,47 @@ void tst_QNetworkReply::putToHttp() QCOMPARE(uploadedData, data); } +void tst_QNetworkReply::putToHttpSynchronous_data() +{ + uniqueExtension = createUniqueExtension(); + putToFile_data(); +} + +void tst_QNetworkReply::putToHttpSynchronous() +{ + QUrl url("http://" + QtNetworkSettings::serverName()); + url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") + .arg(QTest::currentDataTag()) + .arg(uniqueExtension)); + + QNetworkRequest request(url); + QNetworkReplyPtr reply; + + QFETCH(QByteArray, data); + + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created + + // download the file again from HTTP to make sure it was uploaded + // correctly. HTTP/0.9 is enough + QTcpSocket socket; + socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.write("GET " + url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority) + "\r\n"); + if (!socket.waitForDisconnected(10000)) + QFAIL("Network timeout"); + + QByteArray uploadedData = socket.readAll(); + QCOMPARE(uploadedData, data); +} + void tst_QNetworkReply::postToHttp_data() { putToFile_data(); @@ -1624,6 +1710,37 @@ void tst_QNetworkReply::postToHttp() QCOMPARE(uploadedData, md5sum.toHex()); } +void tst_QNetworkReply::postToHttpSynchronous_data() +{ + putToFile_data(); +} + +void tst_QNetworkReply::postToHttpSynchronous() +{ + QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + + QNetworkRequest request(url); + + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply; + + QFETCH(QByteArray, data); + + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok + + QFETCH(QByteArray, md5sum); + QByteArray uploadedData = reply->readAll().trimmed(); + QCOMPARE(uploadedData, md5sum.toHex()); +} + void tst_QNetworkReply::deleteFromHttp_data() { QTest::addColumn("url"); @@ -2048,9 +2165,6 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() void tst_QNetworkReply::ioGetFromHttpWithAuth() { - qRegisterMetaType(); // for QSignalSpy - qRegisterMetaType(); - // This test sends three requests // The first two in parallel // The third after the first two finished @@ -2109,6 +2223,44 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() QCOMPARE(authspy.count(), 0); } + + // now check with synchronous calls: + reference.seek(0); + { + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QNetworkReplyPtr replySync = manager.get(request); + QVERIFY(replySync->isFinished()); // synchronous + QCOMPARE(authspy.count(), 0); + + // we cannot use a data reader here, since that connects to the readyRead signal, + // just use readAll() + + // the only thing we check here is that the auth cache was used when using synchronous requests + QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + QCOMPARE(replySync->readAll(), reference.readAll()); + } +} + +void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous() +{ + // verify that we do not enter an endless loop with synchronous calls and wrong credentials + // the case when we succed with the login is tested in ioGetFromHttpWithAuth() + + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfcs-auth/rfc3252.txt")); + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QNetworkReplyPtr replySync = manager.get(request); + QVERIFY(replySync->isFinished()); // synchronous + QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(authspy.count(), 0); + QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 401); } void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() @@ -2180,6 +2332,47 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() QCOMPARE(authspy.count(), 0); } + + // now check with synchronous calls: + reference.seek(0); + { + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + QNetworkReplyPtr replySync = manager.get(request); + QVERIFY(replySync->isFinished()); // synchronous + QCOMPARE(authspy.count(), 0); + + // we cannot use a data reader here, since that connects to the readyRead signal, + // just use readAll() + + // the only thing we check here is that the proxy auth cache was used when using synchronous requests + QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + QCOMPARE(replySync->readAll(), reference.readAll()); + } +} + +void tst_QNetworkReply::ioGetFromHttpWithProxyAuthSynchronous() +{ + // verify that we do not enter an endless loop with synchronous calls and wrong credentials + // the case when we succed with the login is tested in ioGetFromHttpWithAuth() + + QNetworkProxy proxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::serverName(), 3129); + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); + manager.setProxy(proxy); + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + QNetworkReplyPtr replySync = manager.get(request); + manager.setProxy(QNetworkProxy()); // reset + QVERIFY(replySync->isFinished()); // synchronous + QCOMPARE(replySync->error(), QNetworkReply::ProxyAuthenticationRequiredError); + QCOMPARE(authspy.count(), 0); + QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 407); } void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() @@ -3238,7 +3431,67 @@ void tst_QNetworkReply::ioPostToHttpFromSocket() QTEST(authenticationRequiredSpy.count(), "authenticationRequiredCount"); QTEST(proxyAuthenticationRequiredSpy.count(), "proxyAuthenticationRequiredCount"); - } +} + +void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous_data() +{ + QTest::addColumn("data"); + QTest::addColumn("md5sum"); + + QByteArray data; + data = ""; + QTest::newRow("empty") << data << md5sum(data); + + data = "This is a normal message."; + QTest::newRow("generic") << data << md5sum(data); + + data = "This is a message to show that Qt rocks!\r\n\n"; + QTest::newRow("small") << data << md5sum(data); + + data = QByteArray("abcd\0\1\2\abcd",12); + QTest::newRow("with-nul") << data << md5sum(data); + + data = QByteArray(4097, '\4'); + QTest::newRow("4k+1") << data << md5sum(data); + + data = QByteArray(128*1024+1, '\177'); + QTest::newRow("128k+1") << data << md5sum(data); + + data = QByteArray(2*1024*1024+1, '\177'); + QTest::newRow("2MB+1") << data << md5sum(data); +} + +void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous() +{ + QFETCH(QByteArray, data); + + SocketPair socketpair; + QVERIFY(socketpair.create()); + QVERIFY(socketpair.endPoints[0] && socketpair.endPoints[1]); + socketpair.endPoints[0]->write(data); + socketpair.endPoints[0]->waitForBytesWritten(5000); + // ### for 4.8: make the socket pair unbuffered, to not read everything in one go in QNetworkReplyImplPrivate::setup() + QTestEventLoop::instance().enterLoop(3); + + QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"); + QNetworkRequest request(url); + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply = manager.post(request, socketpair.endPoints[1]); + QVERIFY(reply->isFinished()); + socketpair.endPoints[0]->close(); + + QCOMPARE(reply->error(), QNetworkReply::NoError); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + // verify that the HTTP status code is 200 Ok + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + + QCOMPARE(reply->readAll().trimmed(), md5sum(data).toHex()); +} // this tests checks if rewinding the POST-data to some place in the middle // worked. @@ -3981,6 +4234,38 @@ void tst_QNetworkReply::receiveCookiesFromHttp() QTEST(cookieJar->allCookies(), "expectedCookiesInJar"); } +void tst_QNetworkReply::receiveCookiesFromHttpSynchronous_data() +{ + tst_QNetworkReply::receiveCookiesFromHttp_data(); +} + +void tst_QNetworkReply::receiveCookiesFromHttpSynchronous() +{ + QFETCH(QString, cookieString); + + QByteArray data = cookieString.toLatin1() + '\n'; + QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/set-cookie.cgi"); + + QNetworkRequest request(url); + + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply; + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok + + QList setCookies = + qvariant_cast >(reply->header(QNetworkRequest::SetCookieHeader)); + QTEST(setCookies, "expectedCookiesFromHttp"); + QTEST(cookieJar->allCookies(), "expectedCookiesInJar"); +} + void tst_QNetworkReply::sendCookies_data() { QTest::addColumn >("cookiesToSet"); @@ -4041,6 +4326,35 @@ void tst_QNetworkReply::sendCookies() QCOMPARE(QString::fromLatin1(reply->readAll()).trimmed(), expectedCookieString); } +void tst_QNetworkReply::sendCookiesSynchronous_data() +{ + tst_QNetworkReply::sendCookies_data(); +} + +void tst_QNetworkReply::sendCookiesSynchronous() +{ + QFETCH(QString, expectedCookieString); + QFETCH(QList, cookiesToSet); + cookieJar->setAllCookies(cookiesToSet); + + QUrl url("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/get-cookie.cgi"); + QNetworkRequest request(url); + + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply; + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok + + QCOMPARE(QString::fromLatin1(reply->readAll()).trimmed(), expectedCookieString); +} + void tst_QNetworkReply::nestedEventLoops_slot() { QEventLoop subloop; @@ -4144,6 +4458,49 @@ private: int signalCount; }; +void tst_QNetworkReply::httpProxyCommandsSynchronous_data() +{ + httpProxyCommands_data(); +} + +void tst_QNetworkReply::httpProxyCommandsSynchronous() +{ + QFETCH(QUrl, url); + QFETCH(QByteArray, responseToSend); + QFETCH(QString, expectedCommand); + + // when using synchronous commands, we need a different event loop for + // the server thread, because the client is never returning to the + // event loop + MiniHttpServer proxyServer(responseToSend); + QThread serverThread; + proxyServer.moveToThread(&serverThread); + serverThread.start(); + QNetworkProxy proxy(QNetworkProxy::HttpProxy, "127.0.0.1", proxyServer.serverPort()); + + manager.setProxy(proxy); + QNetworkRequest request(url); + + // send synchronous request + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply = manager.get(request); + QVERIFY(reply->isFinished()); // synchronous + manager.setProxy(QNetworkProxy()); + serverThread.quit(); + + //qDebug() << reply->error() << reply->errorString(); + + // we don't really care if the request succeeded + // especially since it won't succeed in the HTTPS case + // so just check that the command was correct + + QString receivedHeader = proxyServer.receivedData.left(expectedCommand.length()); + QCOMPARE(receivedHeader, expectedCommand); +} + void tst_QNetworkReply::proxyChange() { ProxyChangeHelper helper; @@ -4746,7 +5103,122 @@ void tst_QNetworkReply::qtbug15311doubleContentLength() QCOMPARE(reply->readAll(), QByteArray("ABC")); } +void tst_QNetworkReply::synchronousRequest_data() +{ + QTest::addColumn("url"); + QTest::addColumn("expected"); + QTest::addColumn("checkContentLength"); + QTest::addColumn("mimeType"); + + // ### cache, auth, proxies + + QTest::newRow("http") + << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") + << QString("file:" SRCDIR "/rfc3252.txt") + << true + << QString("text/plain"); + + QTest::newRow("http-gzip") + << QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/deflate/rfc3252.txt") + << QString("file:" SRCDIR "/rfc3252.txt") + << false // don't check content length, because it's gzip encoded + // ### we would need to enflate (un-deflate) the file content and compare the sizes + << QString("text/plain"); + +#ifndef QT_NO_OPENSSL + QTest::newRow("https") + << QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt") + << QString("file:" SRCDIR "/rfc3252.txt") + << true + << QString("text/plain"); +#endif + + QTest::newRow("data") + << QUrl(QString::fromLatin1("data:text/plain,hello world")) + << QString("data:hello world") + << true // check content length + << QString("text/plain"); + + QTest::newRow("simple-file") + << QUrl(QString::fromLatin1("file:///" SRCDIR "/rfc3252.txt")) + << QString("file:" SRCDIR "/rfc3252.txt") + << true + << QString(); +} + +// FIXME add testcase for failing network etc +void tst_QNetworkReply::synchronousRequest() +{ + QFETCH(QUrl, url); + QFETCH(QString, expected); + QFETCH(bool, checkContentLength); + QFETCH(QString, mimeType); + + QNetworkRequest request(url); + +#ifndef QT_NO_OPENSSL + // workaround for HTTPS requests: add self-signed server cert to list of CA certs, + // since we cannot react to the sslErrors() signal + // to fix this properly we would need to have an ignoreSslErrors() method in the + // QNetworkRequest, see http://bugreports.qt.nokia.com/browse/QTBUG-14774 + if (url.scheme() == "https") { + QSslConfiguration sslConf; + QList certs = QSslCertificate::fromPath(SRCDIR "/certs/qt-test-server-cacert.pem"); + sslConf.setCaCertificates(certs); + request.setSslConfiguration(sslConf); + } +#endif + + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + + QNetworkReplyPtr reply; + QSignalSpy finishedSpy(&manager, SIGNAL(finished(QNetworkReply*))); + QSignalSpy sslErrorsSpy(&manager, SIGNAL(sslErrors(QNetworkReply*,QList))); + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply, 0)); + QVERIFY(reply->isFinished()); + QCOMPARE(finishedSpy.count(), 0); + QCOMPARE(sslErrorsSpy.count(), 0); + + QCOMPARE(reply->header(QNetworkRequest::ContentTypeHeader).toString(), mimeType); + + QByteArray expectedContent; + + if (expected.startsWith("file:")) { + QString path = expected.mid(5); + QFile file(path); + file.open(QIODevice::ReadOnly); + expectedContent = file.readAll(); + } else if (expected.startsWith("data:")) { + expectedContent = expected.mid(5).toUtf8(); + } + + if (checkContentLength) + QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(expectedContent.size())); + QCOMPARE(reply->readAll(), expectedContent); + + reply->deleteLater(); +} + +void tst_QNetworkReply::synchronousRequestSslFailure() +{ + // test that SSL won't be accepted with self-signed certificate, + // and that we do not emit the sslError signal (in the manager that is, + // in the reply we don't care) + QUrl url("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); + QNetworkRequest request(url); + request.setAttribute( + static_cast(SynchronousRequestAttribute), + true); + QNetworkReplyPtr reply; + QSignalSpy sslErrorsSpy(&manager, SIGNAL(sslErrors(QNetworkReply *, const QList &))); + runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply, 0); + QVERIFY(reply->isFinished()); + QCOMPARE(reply->error(), QNetworkReply::SslHandshakeFailedError); + QCOMPARE(sslErrorsSpy.count(), 0); +} // NOTE: This test must be last testcase in tst_qnetworkreply! void tst_QNetworkReply::parentingRepliesToTheApp() -- cgit v0.12 From b91221ebe4acc5f59793b1070dd134ed56eb91fb Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Tue, 23 Nov 2010 17:53:25 +0100 Subject: HTTP backend: fix build without Qt3 support Reviewed-by: Markus Goetz --- src/network/access/qnetworkaccesshttpbackend.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp index 070111d..9df5d7b 100644 --- a/src/network/access/qnetworkaccesshttpbackend.cpp +++ b/src/network/access/qnetworkaccesshttpbackend.cpp @@ -1157,7 +1157,7 @@ bool QNetworkAccessHttpBackend::processRequestSynchronously() bool waitResult = channel->socket->waitForConnected(timeout); timeoutTimer.start(); - if (!waitResult || channel->socket->state() != QAbstractSocket::Connected) { + if (!waitResult || channel->socket->state() != QAbstractSocket::ConnectedState) { error(QNetworkReply::UnknownNetworkError, QLatin1String("could not connect")); return false; } -- cgit v0.12 From 5d0be38c15acf28969bd8bf984ab23a29fa8e354 Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Wed, 24 Nov 2010 10:51:29 +1000 Subject: Fix asynchronous reload call in test, broken by previous submit Task-number: QTBUG-15493 --- tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp index 1c1c04b..21c7197 100644 --- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp +++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include "../../../shared/util.h" #include "qmlruntime.h" #include "deviceorientation.h" @@ -194,7 +195,9 @@ void tst_QDeclarativeViewer::loading() QCOMPARE(viewer->size(), QSize(250, 350)); QCOMPARE(viewer->size(), viewer->sizeHint()); + QSignalSpy statusSpy(viewer->view(), SIGNAL(statusChanged(QDeclarativeView::Status))); viewer->reload(); + QTRY_VERIFY(statusSpy.count() == 1); rootItem = qobject_cast(viewer->view()->rootObject()); QVERIFY(rootItem); -- cgit v0.12 From d32360bb33e830f8c17a6db1a31f529436c2915e Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 24 Nov 2010 11:25:07 +1000 Subject: Avoid lockup in ListView when animating delegates. Animating delegates results in the content height changing, which may result in fixup being called if at the ends of the view, which may in turn cause refill to be called, which will change the content height, which repeats. Prevent this recusion from happening. Task-number: QTBUG-14821 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativelistview.cpp | 8 ++++++ .../qdeclarativelistview/data/qtbug14821.qml | 31 ++++++++++++++++++++++ .../tst_qdeclarativelistview.cpp | 21 +++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 6be49ba..450b6af 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -183,6 +183,7 @@ public: , ownModel(false), wrap(false), autoHighlight(true), haveHighlightRange(false) , correctFlick(false), inFlickCorrection(false), lazyRelease(false) , deferredRelease(false), layoutScheduled(false), currentIndexCleared(false) + , inViewportMoved(false) , minExtentDirty(true), maxExtentDirty(true) {} @@ -503,6 +504,7 @@ public: bool deferredRelease : 1; bool layoutScheduled : 1; bool currentIndexCleared : 1; + bool inViewportMoved : 1; mutable bool minExtentDirty : 1; mutable bool maxExtentDirty : 1; }; @@ -2281,6 +2283,10 @@ void QDeclarativeListView::viewportMoved() QDeclarativeFlickable::viewportMoved(); if (!d->itemCount) return; + // Recursion can occur due to refill changing the content size. + if (d->inViewportMoved) + return; + d->inViewportMoved = true; d->lazyRelease = true; refill(); if (d->flickingHorizontally || d->flickingVertically || d->movingHorizontally || d->movingVertically) @@ -2294,6 +2300,7 @@ void QDeclarativeListView::viewportMoved() pos = viewPos + d->highlightRangeEnd - d->highlight->size(); if (pos < viewPos + d->highlightRangeStart) pos = viewPos + d->highlightRangeStart; + d->highlightPosAnimator->stop(); d->highlight->setPosition(qRound(pos)); // update current index @@ -2341,6 +2348,7 @@ void QDeclarativeListView::viewportMoved() } d->inFlickCorrection = false; } + d->inViewportMoved = false; } qreal QDeclarativeListView::minYExtent() const diff --git a/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml b/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml new file mode 100644 index 0000000..e0303ec --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml @@ -0,0 +1,31 @@ +import QtQuick 1.0 + +ListView { + id: view + width: 300; height: 200 + focus: true + keyNavigationWraps: true + + model: 100 + + preferredHighlightBegin: 90 + preferredHighlightEnd: 110 + + highlightRangeMode: ListView.StrictlyEnforceRange + highlight: Component { + Rectangle { + border.color: "blue" + border.width: 3 + color: "transparent" + width: 300; height: 15 + } + } + + delegate: Component { + Item { + height: 15 + (view.currentIndex == index ? 20 : 0) + width: 200 + Text { text: 'Index: ' + index; anchors.verticalCenter: parent.verticalCenter } + } + } +} diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index a4b4f21..37d836d 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -101,6 +101,7 @@ private slots: void footer(); void resizeView(); void sizeLessThan1(); + void QTBUG_14821(); private: template void items(); @@ -1768,6 +1769,26 @@ void tst_QDeclarativeListView::sizeLessThan1() delete canvas; } +void tst_QDeclarativeListView::QTBUG_14821() +{ + QDeclarativeView *canvas = createView(); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/qtbug14821.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = qobject_cast(canvas->rootObject()); + QVERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QVERIFY(contentItem != 0); + + listview->decrementCurrentIndex(); + QCOMPARE(listview->currentIndex(), 99); + + listview->incrementCurrentIndex(); + QCOMPARE(listview->currentIndex(), 0); +} + void tst_QDeclarativeListView::qListModelInterface_items() { items(); -- cgit v0.12 From fb9604741c40790cef72d06afe6ca53165f57b16 Mon Sep 17 00:00:00 2001 From: Justin McPherson Date: Wed, 24 Nov 2010 10:45:53 +1000 Subject: Fix compliation of ALSA audio backend when checking for surround support. Surround support requires ALSA lib >= 1.0.14 Task-number: QTBUG-15205 Reviewed-by: Andrew den Exter --- src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp | 6 ++++++ src/multimedia/audio/qaudiodeviceinfo_alsa_p.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp index 25622a4..3617d24 100644 --- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp +++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp @@ -63,7 +63,9 @@ QAudioDeviceInfoInternal::QAudioDeviceInfoInternal(QByteArray dev, QAudio::Mode device = QLatin1String(dev); this->mode = mode; +#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) checkSurround(); +#endif } QAudioDeviceInfoInternal::~QAudioDeviceInfoInternal() @@ -394,9 +396,11 @@ void QAudioDeviceInfoInternal::updateLists() } channelz.append(1); channelz.append(2); +#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) if (surround40) channelz.append(4); if (surround51) channelz.append(6); if (surround71) channelz.append(8); +#endif sizez.append(8); sizez.append(16); sizez.append(32); @@ -494,6 +498,7 @@ QByteArray QAudioDeviceInfoInternal::defaultOutputDevice() return devices.first(); } +#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) void QAudioDeviceInfoInternal::checkSurround() { QList devices; @@ -534,5 +539,6 @@ void QAudioDeviceInfoInternal::checkSurround() } snd_device_name_free_hint(hints); } +#endif QT_END_NAMESPACE diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h index 8525980..5f7e5e8 100644 --- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h +++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h @@ -98,10 +98,12 @@ private: bool open(); void close(); +#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14) void checkSurround(); bool surround40; bool surround51; bool surround71; +#endif QString device; QAudio::Mode mode; -- cgit v0.12 From e3da9407ad85a65abce72f8a32230ec4f2f95369 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 24 Nov 2010 13:50:27 +1000 Subject: Allow javascript date and regexp objects in WorkerScript messages Task-number: QTBUG-14666 Reviewed-by: Aaron Kennedy --- src/declarative/qml/qdeclarativeworkerscript.cpp | 13 +++++++++++++ .../tst_qdeclarativeworkerscript.cpp | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index be7ea0e..4b78020 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include "qdeclarativenetworkaccessmanagerfactory.h" @@ -314,6 +315,12 @@ QVariant QDeclarativeWorkerScriptEnginePrivate::scriptValueToVariant(const QScri return QVariant(value.toString()); } else if (value.isNumber()) { return QVariant((qreal)value.toNumber()); + } else if (value.isDate()) { + return QVariant(value.toDateTime()); +#ifndef QT_NO_REGEXP + } else if (value.isRegExp()) { + return QVariant(value.toRegExp()); +#endif } else if (value.isArray()) { QVariantList list; @@ -364,6 +371,12 @@ QScriptValue QDeclarativeWorkerScriptEnginePrivate::variantToScriptValue(const Q return QScriptValue(value.toString()); } else if (value.userType() == QMetaType::QReal) { return QScriptValue(value.toReal()); + } else if (value.userType() == QVariant::DateTime) { + return engine->newDate(value.toDateTime()); +#ifndef QT_NO_REGEXP + } else if (value.userType() == QVariant::RegExp) { + return engine->newRegExp(value.toRegExp()); +#endif } else if (value.userType() == qMetaTypeId()) { QDeclarativeListModelWorkerAgent::VariantRef vr = qvariant_cast(value); if (vr.a->scriptEngine() == 0) diff --git a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp index 3140265..5a6cf3c 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp +++ b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp @@ -137,6 +137,11 @@ void tst_QDeclarativeWorkerScript::messaging_data() QTest::newRow("real") << qVariantFromValue(10334.375); QTest::newRow("string") << qVariantFromValue(QString("More cheeeese, Gromit!")); QTest::newRow("variant list") << qVariantFromValue((QVariantList() << "a" << "b" << "c")); + QTest::newRow("date time") << qVariantFromValue(QDateTime::currentDateTime()); +#ifndef QT_NO_REGEXP + // QtScript's QScriptValue -> QRegExp uses RegExp2 pattern syntax + QTest::newRow("regexp") << qVariantFromValue(QRegExp("^\\d\\d?$", Qt::CaseInsensitive, QRegExp::RegExp2)); +#endif } void tst_QDeclarativeWorkerScript::messaging_sendQObjectList() -- cgit v0.12 From 810e21d9e404aa2fcb602cb68bfd892387b234e7 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 24 Nov 2010 14:28:18 +1000 Subject: Flickable and MouseArea were too eager to take/keep mouse grab. This meant that they would sometimes act upon a drag immediately, rather than waiting for a nested area to take the grab. This resulted in a short jump before future events were handled by the nested item. Task-number: QTBUG-15568 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativeflickable.cpp | 16 +- .../graphicsitems/qdeclarativemousearea.cpp | 37 +- .../tst_qdeclarativemousearea.cpp | 7 + .../qdeclarativemousearea/data/nested.0.png | Bin 0 -> 1360 bytes .../qdeclarativemousearea/data/nested.1.png | Bin 0 -> 1367 bytes .../qdeclarativemousearea/data/nested.2.png | Bin 0 -> 1367 bytes .../qdeclarativemousearea/data/nested.3.png | Bin 0 -> 1372 bytes .../qdeclarativemousearea/data/nested.4.png | Bin 0 -> 1382 bytes .../qdeclarativemousearea/data/nested.5.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.6.png | Bin 0 -> 1390 bytes .../qdeclarativemousearea/data/nested.7.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.8.png | Bin 0 -> 1380 bytes .../qdeclarativemousearea/data/nested.9.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.qml | 5039 ++++++++++++++++++++ .../qmlvisual/qdeclarativemousearea/nested.qml | 62 + 15 files changed, 5142 insertions(+), 19 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 1870647..377f3b5 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -281,7 +281,6 @@ void QDeclarativeFlickablePrivate::fixupY() void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal maxExtent) { - Q_Q(QDeclarativeFlickable); if (data.move.value() > minExtent || maxExtent > minExtent) { timeline.reset(data.move); if (data.move.value() != minExtent) { @@ -290,8 +289,7 @@ void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal timeline.move(data.move, minExtent - dist/2, QEasingCurve(QEasingCurve::InQuad), fixupDuration/4); timeline.move(data.move, minExtent, QEasingCurve(QEasingCurve::OutExpo), 3*fixupDuration/4); } else { - data.move.setValue(minExtent); - q->viewportMoved(); + timeline.set(data.move, minExtent); } } } else if (data.move.value() < maxExtent) { @@ -301,8 +299,7 @@ void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal timeline.move(data.move, maxExtent - dist/2, QEasingCurve(QEasingCurve::InQuad), fixupDuration/4); timeline.move(data.move, maxExtent, QEasingCurve(QEasingCurve::OutExpo), 3*fixupDuration/4); } else { - data.move.setValue(maxExtent); - q->viewportMoved(); + timeline.set(data.move, minExtent); } } vTime = timeline.time(); @@ -703,6 +700,9 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent bool rejectY = false; bool rejectX = false; + bool stealY = false; + bool stealX = false; + if (q->yflick()) { int dy = int(event->pos().y() - pressPos.y()); if (qAbs(dy) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) { @@ -731,7 +731,7 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent vMoved = true; } if (qAbs(dy) > QApplication::startDragDistance()) - stealMouse = true; + stealY = true; } } @@ -764,10 +764,12 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent } if (qAbs(dx) > QApplication::startDragDistance()) - stealMouse = true; + stealX = true; } } + stealMouse = stealX || stealY; + if (!lastPos.isNull()) { qreal elapsed = qreal(QDeclarativeItemPrivate::restart(lastPosTime)) / 1000.; if (elapsed <= 0) diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp index d9edd11..0a043a7 100644 --- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp +++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp @@ -500,17 +500,9 @@ void QDeclarativeMouseArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event) const int dragThreshold = QApplication::startDragDistance(); qreal dx = qAbs(curLocalPos.x() - startLocalPos.x()); qreal dy = qAbs(curLocalPos.y() - startLocalPos.y()); - if ((d->dragX && !(dx < dragThreshold)) || (d->dragY && !(dy < dragThreshold))) { + + if (keepMouseGrab() && d->stealMouse) d->drag->setActive(true); - d->stealMouse = true; - } - if (!keepMouseGrab()) { - if ((!d->dragY && dy < dragThreshold && d->dragX && dx > dragThreshold) - || (!d->dragX && dx < dragThreshold && d->dragY && dy > dragThreshold) - || (d->dragX && d->dragY)) { - setKeepMouseGrab(true); - } - } if (d->dragX && d->drag->active()) { qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX; @@ -528,6 +520,16 @@ void QDeclarativeMouseArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event) y = drag()->ymax(); drag()->target()->setY(y); } + + if (!keepMouseGrab()) { + if ((!d->dragY && dy < dragThreshold && d->dragX && dx > dragThreshold) + || (!d->dragX && dx < dragThreshold && d->dragY && dy > dragThreshold) + || (d->dragX && d->dragY && (dx > dragThreshold || dy > dragThreshold))) { + setKeepMouseGrab(true); + d->stealMouse = true; + } + } + d->moved = true; } QDeclarativeMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress); @@ -618,6 +620,7 @@ bool QDeclarativeMouseArea::sceneEvent(QEvent *event) // if our mouse grab has been removed (probably by Flickable), fix our // state d->pressed = false; + d->stealMouse = false; setKeepMouseGrab(false); emit canceled(); emit pressedChanged(); @@ -672,8 +675,18 @@ bool QDeclarativeMouseArea::sendMouseEvent(QGraphicsSceneMouseEvent *event) return stealThisEvent; } if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) { - d->stealMouse = false; - ungrabMouse(); + if (d->pressed) { + d->pressed = false; + d->stealMouse = false; + if (s && s->mouseGrabberItem() == this) + ungrabMouse(); + emit canceled(); + emit pressedChanged(); + if (d->hovered) { + d->hovered = false; + emit hoveredChanged(); + } + } } return false; } diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp index 57a58e9..9d7cc05 100644 --- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp +++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp @@ -216,7 +216,14 @@ void tst_QDeclarativeMouseArea::dragging() QCOMPARE(blackRect->x(), 50.0); QCOMPARE(blackRect->y(), 50.0); + // First move event triggers drag, second is acted upon. + // This is due to possibility of higher stacked area taking precedence. QGraphicsSceneMouseEvent moveEvent(QEvent::GraphicsSceneMouseMove); + moveEvent.setScenePos(QPointF(106, 106)); + moveEvent.setButton(Qt::LeftButton); + moveEvent.setButtons(Qt::LeftButton); + QApplication::sendEvent(scene, &moveEvent); + moveEvent.setScenePos(QPointF(110, 110)); moveEvent.setButton(Qt::LeftButton); moveEvent.setButtons(Qt::LeftButton); diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png new file mode 100644 index 0000000..793fb0f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png new file mode 100644 index 0000000..5935b45 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png new file mode 100644 index 0000000..a205266 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png new file mode 100644 index 0000000..3d81ff2 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png new file mode 100644 index 0000000..ee2076e Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png new file mode 100644 index 0000000..9017124 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png new file mode 100644 index 0000000..216dd7e Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png new file mode 100644 index 0000000..27e8480 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png new file mode 100644 index 0000000..6b911c5 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png new file mode 100644 index 0000000..01858a5 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml new file mode 100644 index 0000000..cec1558 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml @@ -0,0 +1,5039 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "nested.0.png" + } + Frame { + msec: 32 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 48 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 64 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 80 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 96 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 112 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 128 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 144 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 160 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 176 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 192 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 208 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 224 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 240 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 256 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 272 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 288 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 304 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 320 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 336 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 352 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 368 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 384 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 400 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 416 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 432 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 448 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 464 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 480 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 496 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 512 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 528 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 544 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 560 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 576 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 592 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 608 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 624 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 640 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 656 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 672 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 688 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 704 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 720 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 736 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 752 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 768 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 784 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 800 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 816 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 832 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 848 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Frame { + msec: 864 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 25; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 880 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 26; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 896 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 27; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 912 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 28; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 29; y: 62 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 928 + hash: "2400cadaaa467cbfb0c7d2ace8137179" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 30; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 33; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 944 + hash: "f5aa6257fd80c1e383bc2db84e41c354" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 35; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 960 + hash: "e96076794d3efc62a8fe2d2e543e97c7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 42; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 976 + image: "nested.1.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 58; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 992 + hash: "ab955f6c6b210b66b27e244dc2150860" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 66; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1008 + hash: "b655247e73b0b8357dc9d355ba6f49a0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 79; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 83; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1024 + hash: "08b67b7e28990cac8c9bd354b7d87698" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1040 + hash: "69cecfb41899e13c0bc5acb6f9bc666d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 104; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 107; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1056 + hash: "8d1f0cd85fd3f2654f7c30a6d9ec2b99" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 115; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "f8ddda87cfcf5dc9d8c6e940fbd295f3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 133; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1088 + hash: "ab9d942c47a2cca5531f7b67df034161" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 136; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 143; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1104 + hash: "7ca5a03fdfac44c389315c3928631a2a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 146; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 151; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1120 + hash: "ade955ed9d85fbbe72cf18bbc541c8bf" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 153; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 158; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1136 + hash: "6ad4afa3e3fcb578946fccbf4896761c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 162; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 163; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1152 + hash: "3ebe78e37c1c66d0b8fc86c8191e39de" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 165; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 166; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1168 + hash: "6450917cc89a553cf509265eaf318efb" + } + Frame { + msec: 1184 + hash: "6450917cc89a553cf509265eaf318efb" + } + Frame { + msec: 1200 + hash: "6450917cc89a553cf509265eaf318efb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 166; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1216 + hash: "6450917cc89a553cf509265eaf318efb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 164; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 161; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1232 + hash: "adfe54d5d28f7caf9ace117fd3573444" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 159; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 156; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1248 + hash: "f4963636cc4fbd8bfe6baf10540ed7e7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 154; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 149; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1264 + hash: "1c2d2edb9214cc3857aa221330ee28ba" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 143; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 139; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1280 + hash: "750226c90e6c6cd0b3bdd3c3dc8da18f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 131; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1296 + hash: "b6b5d177ab531460dc125afa82489a1d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 115; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 111; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1312 + hash: "62d411a7b6c404393e4bfafab9c638a3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 100; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1328 + hash: "e355997b3decd4deb686fece59c33c7c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 86; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 76; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1344 + hash: "2ab73c8aac6a0e321686e97c9bb28f28" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 61; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1360 + hash: "55a887f9f45f71beb6b723191eb60a2f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 56; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 63 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1376 + hash: "b2d49e34362994739d14fb8231ff82d6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 43; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1392 + hash: "3964796876870035794b41501991b527" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 41; y: 64 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1408 + hash: "e96076794d3efc62a8fe2d2e543e97c7" + } + Frame { + msec: 1424 + hash: "e96076794d3efc62a8fe2d2e543e97c7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 41; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1440 + hash: "7e524b3c43a987503ef102bdb9f11701" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 42; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1456 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1472 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1488 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1504 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1520 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1536 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1552 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 42; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1568 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1584 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1600 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1616 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1632 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1648 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1664 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1680 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1696 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1712 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1728 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1744 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1760 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1776 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1792 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1808 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1824 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1840 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1856 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1872 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1888 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1904 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1920 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Frame { + msec: 1936 + image: "nested.2.png" + } + Frame { + msec: 1952 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 38; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1968 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 39; y: 57 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1984 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 39; y: 59 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 39; y: 60 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2000 + hash: "2a7c13e97c21e298541bb5ab8169ff13" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 63 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 65 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2016 + hash: "9178754b825d60b2174ed9431ea80586" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 41; y: 68 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 41; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 45; y: 79 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2032 + hash: "89eff8fa9f8710d7cbc50b8d4b751148" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 84 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 86 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2048 + hash: "cdae8b46ecfc2b0c90264c120156cc46" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 93 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2064 + hash: "cf35919630eab647a28eb91d8a441704" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 99 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2080 + hash: "283256d50da8c855c50d5f8813d37afd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 107 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 109 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2096 + hash: "2560cd67d507bc24c1000187f645531c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 113 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2112 + hash: "6f6f7c299c4516c5231f5bfcd39b6db3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 119 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 122 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2128 + hash: "e7989524238996cf59f420f4edf8f982" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 124 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 126 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2144 + hash: "34d8d456848807e854bcb25ffbde37d4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 127 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 130 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2160 + hash: "433bd3983804b07484d38af2723f519e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 132 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 134 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2176 + hash: "510e534a8a7b88041f7544e7e4992b8f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 137 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 139 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2192 + hash: "25f43c457a5bf2b70a66ce91685ad4dc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 141 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 142 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2208 + hash: "4119ab90627359420e25220618b76a69" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 145 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 146 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2224 + hash: "8a3cc888e96cf3e26e369723b442baf1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 147 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 150 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2240 + hash: "980552e8ff9d87ccb40127b06b0f846f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 151 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 153 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2256 + hash: "9ee23fc7cbca4467f984073d2af7cdf6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2272 + hash: "032d65792ac867c9b9acef05bd993c54" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 156 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2288 + hash: "be2f8d5a64034e75e23527c486e33029" + } + Frame { + msec: 2304 + hash: "be2f8d5a64034e75e23527c486e33029" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 155 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2320 + hash: "3f65505e4d1f8534c9123b3dea15d43e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 154 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 152 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2336 + hash: "e8b1799cf1926cb3b6cbf3adee80cffe" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 149 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 147 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2352 + hash: "31155b14cc0d3d47bbef4e199fdfcb46" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 140 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 132 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "b89745a9a60a7ebeb1de0a7f96ad2ac3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 128 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 57; y: 118 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2384 + hash: "7e99fa1eba369d45f10778fe02356f09" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 59; y: 114 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 64; y: 103 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2400 + hash: "cd123f6b332f38f43abbf01469a41301" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 67; y: 98 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2416 + hash: "353c0602dd2b670e19988117172855fc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 76; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 78; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2432 + hash: "20df9d19fd2113fa8f8023d5b4328dc5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 81; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 82; y: 67 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2448 + hash: "10b34a758d5b3790dd36c9d95c47b157" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 84; y: 62 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 85; y: 60 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2464 + hash: "98a483e1eaa9145fd277fd85a9b0cf03" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 87; y: 57 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 88; y: 55 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2480 + hash: "e92edd52ff1ee78456fa1947a46e6570" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 53 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 52 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2496 + hash: "877384496d967f5f0ab1c817a2b316d6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 51 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 93; y: 51 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2512 + hash: "15673570ffe9a391f9214601ac9dc86c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 94; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 50 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2528 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2544 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2560 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2576 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2592 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2608 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2624 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Frame { + msec: 2640 + hash: "4b7f0094b19a4495bf913d2994889497" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 95; y: 49 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2656 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2672 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2688 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2704 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2720 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2736 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2752 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2768 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2784 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2800 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2816 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2832 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2848 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2864 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2880 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2896 + image: "nested.3.png" + } + Frame { + msec: 2912 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2928 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2944 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2960 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2976 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 2992 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3008 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3024 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3040 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3056 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3072 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3088 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3104 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3120 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3136 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3152 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3168 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3184 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3200 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3216 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3232 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 156; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3248 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Frame { + msec: 3264 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 156; y: 73 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 157; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3280 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 158; y: 73 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 160; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "2994e98b8ea9a6883a7324e7e848345c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 161; y: 73 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 163; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3312 + hash: "df6cf21e99177a436e356f818996070c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 166; y: 73 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 171; y: 74 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3328 + hash: "86f5e3fee147f47edd4a6d042aff0301" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 178; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 181; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3344 + hash: "589c1418a9179c868d904b1a5169a11b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 189; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 193; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3360 + hash: "3141ad77d193e145b749759070e1e6ef" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 200; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 204; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3376 + hash: "5e34d4deeb6d80b336cacea39797e0ca" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 211; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 217; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3392 + hash: "b8795d844982bcf60a6713f91717648f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 220; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 224; y: 75 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3408 + hash: "857c63b24057ee0186c5136eddb71cb1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 226; y: 75 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 227; y: 76 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3424 + hash: "49222ed0d1ebc8759d0a1dc65c3beec6" + } + Frame { + msec: 3440 + hash: "49222ed0d1ebc8759d0a1dc65c3beec6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 227; y: 77 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 226; y: 77 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3456 + hash: "751847708a468f4f3e64e7cb5ebd1351" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 225; y: 78 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 224; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3472 + hash: "4016f80a5219fcba6480645f71998d71" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 221; y: 80 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 220; y: 80 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3488 + hash: "beef05cd2a3d20bc66978fa4f0ac1d12" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 216; y: 82 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 214; y: 84 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3504 + hash: "e50a2661e93d34b55c8d2d39abc77e5a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 209; y: 86 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 206; y: 86 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3520 + hash: "7beccbc2f091350bb5d9de1e2443021d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 200; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 192; y: 89 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3536 + hash: "1d39570bf07392f56b6dd24b0bf9e7bc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 188; y: 90 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 180; y: 91 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3552 + hash: "62565b3e5aad3979b408207bbf36e615" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 176; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 167; y: 92 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3568 + hash: "d9c6004921847fef16bb8c2f5d6b3b7d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 162; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 152; y: 92 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3584 + hash: "53da27301ad97ae52c65928615ec0cd7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 142; y: 92 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 137; y: 90 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3600 + hash: "9772a776e84515984b4eec70dbd1c5a7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 125; y: 88 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 119; y: 88 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3616 + hash: "9caa6583a716443c13e8fef3f2923d6e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 109; y: 86 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 104; y: 85 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3632 + hash: "f162a18b2d3f0d5f6f01fc373c016f68" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 84 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 96; y: 84 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3648 + hash: "58976e8e31beddf881c7cfa3ede54c09" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 94; y: 84 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 83 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3664 + hash: "6625f7adb097bc170024083c42d74b4b" + } + Frame { + msec: 3680 + hash: "6625f7adb097bc170024083c42d74b4b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 92; y: 82 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3696 + hash: "1d63f09ca27e9d70c3c0ea923a6cfba4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 93; y: 82 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "1d63f09ca27e9d70c3c0ea923a6cfba4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 94; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 96; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3728 + hash: "a23c75fcaa0a28adb944bf192af65bff" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 100; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3744 + hash: "2b90fe8937dcc39d1d6add305cf36043" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 107; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 111; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3760 + hash: "7da82cfaf0f826ca9a41128278b6b09c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 81 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 122; y: 81 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3776 + hash: "a3f69d13d38b336fda33a86899564996" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 129; y: 80 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 135; y: 79 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3792 + hash: "dc562319e1d332ba34ac94bfc0c39c5e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 138; y: 79 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 140; y: 78 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3808 + hash: "756482bee292668f56d813847b0ccd53" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 141; y: 77 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 142; y: 76 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3824 + hash: "06d250c4d18a70f8f7b1c10e22a1bc4c" + } + Frame { + msec: 3840 + hash: "06d250c4d18a70f8f7b1c10e22a1bc4c" + } + Frame { + msec: 3856 + image: "nested.4.png" + } + Frame { + msec: 3872 + hash: "06d250c4d18a70f8f7b1c10e22a1bc4c" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 142; y: 76 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3888 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3904 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3920 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3936 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3952 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3968 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 3984 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4000 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4016 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4032 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4048 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4064 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4080 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4096 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4112 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4128 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4144 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4160 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4176 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4192 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4208 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4224 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4240 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4256 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4272 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4288 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4304 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4320 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4336 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4352 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4368 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4384 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4400 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4416 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4432 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4448 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4464 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4480 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4496 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4512 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4528 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4544 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 16; y: 46 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4560 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 4576 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 16; y: 47 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 16; y: 48 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4592 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 16; y: 49 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 17; y: 50 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4608 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 17; y: 55 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 18; y: 56 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4624 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 20; y: 61 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 20; y: 64 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4640 + hash: "ff1f86b47e0d1db5db7d939df8349931" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 22; y: 70 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 23; y: 73 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4656 + hash: "f13393a4556e9e73c33f2bb74d8f7794" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 26; y: 80 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 28; y: 84 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4672 + hash: "8c9aa01516437184eb17d89348cca004" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 33; y: 91 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 99 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4688 + hash: "8b6848cb722ff5ec02d957da1ee687e5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 44; y: 102 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 109 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4704 + hash: "552fde584d128f511788670031d79dd2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 58; y: 112 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 64; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4720 + hash: "55dc3a4242b46e602f823c0305e67ad2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 68; y: 118 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 71; y: 120 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4736 + hash: "603b9b2ed6ff4273c3ab1cbe32afb19e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 73; y: 120 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 73; y: 120 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4752 + hash: "157eda24ea8452a208aa7a6a22639c73" + } + Frame { + msec: 4768 + hash: "157eda24ea8452a208aa7a6a22639c73" + } + Frame { + msec: 4784 + hash: "c5005b83816c18b67448dfbccd0ab0b2" + } + Frame { + msec: 4800 + hash: "878512df863e5d60437b85fbd2a32eb1" + } + Frame { + msec: 4816 + image: "nested.5.png" + } + Frame { + msec: 4832 + hash: "02ab69b67b746ec0021295992a03ada1" + } + Frame { + msec: 4848 + hash: "c621382766d7bacab87055a73623a8ce" + } + Frame { + msec: 4864 + hash: "a8d1be78741d9afd88363bd19f1cbc6b" + } + Frame { + msec: 4880 + hash: "5a70275ff656766d73638d4dd4db4492" + } + Frame { + msec: 4896 + hash: "892ea0a00553524b79889d437eac9b6f" + } + Frame { + msec: 4912 + hash: "d818258bffc065430902ffa8f5668f86" + } + Frame { + msec: 4928 + hash: "6b844523522ace7545705ffb8ffe1da3" + } + Frame { + msec: 4944 + hash: "3906097bc49bad199b52c99dbf87f98f" + } + Frame { + msec: 4960 + hash: "a2bd859b5ca7f4fac8d62b1c9ab76aad" + } + Frame { + msec: 4976 + hash: "f374673e3511b1df8b50ff7ef6002b3a" + } + Frame { + msec: 4992 + hash: "c2eecfadd19418f469b1ab53a3ecae70" + } + Frame { + msec: 5008 + hash: "2b481965ece0f2e1795ef56aa5d6a752" + } + Frame { + msec: 5024 + hash: "c294f28000348365a2c37265132efdb5" + } + Frame { + msec: 5040 + hash: "c294f28000348365a2c37265132efdb5" + } + Frame { + msec: 5056 + hash: "4e9c18eab469b2da0cb92526d3d54501" + } + Frame { + msec: 5072 + hash: "4e9c18eab469b2da0cb92526d3d54501" + } + Frame { + msec: 5088 + hash: "4e9c18eab469b2da0cb92526d3d54501" + } + Frame { + msec: 5104 + hash: "4e9c18eab469b2da0cb92526d3d54501" + } + Frame { + msec: 5120 + hash: "3836449b99d88e2dea9a0eb9417faca5" + } + Frame { + msec: 5136 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5152 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5168 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5184 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5200 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5216 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5232 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5248 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5264 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5280 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5296 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5312 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5328 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5344 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5360 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5376 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5392 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5408 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5424 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5440 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5456 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5472 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5488 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5504 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5520 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5536 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5552 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5568 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5584 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5600 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5616 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Frame { + msec: 5632 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 20; y: 238 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 21; y: 238 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5648 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 22; y: 239 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 23; y: 239 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5664 + hash: "42dc501eb5a34843ef0a8977ff029054" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 27; y: 240 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 29; y: 240 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5680 + hash: "b56d132ac881e27d308009fb9a9d2d50" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 33; y: 241 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 36; y: 241 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5696 + hash: "6c65fca03ea127d554f15c80da76f21f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 42; y: 242 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 45; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5712 + hash: "e5d8939135d0e964609a09a437af58bc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 243 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 61; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5728 + hash: "ab60a45ac475ef8d1177d831a6572d1f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 66; y: 243 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 75; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5744 + hash: "78b2e0c7dd8b8bcbd573dac79ff815e4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 79; y: 243 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 89; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5760 + hash: "ef9e89650d8e3d572285e2a2e2b09166" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 95; y: 243 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 106; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5776 + image: "nested.6.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 118; y: 243 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 243 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5792 + hash: "b83136fa3769e30ea47097b489e8f1dc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 137; y: 241 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 143; y: 240 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5808 + hash: "fb892905b790a061ce5985c927db3cf5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 154; y: 238 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 159; y: 237 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5824 + hash: "bc4358e21d2d31942e776adfd32ef1c6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 170; y: 235 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 184; y: 234 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5840 + hash: "b42380a7fcf5e2fbfe4dddbe86ad7287" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 191; y: 232 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 201; y: 231 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5856 + hash: "4b3c12beb43a77ebaf458804b03c7b52" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 205; y: 231 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 208; y: 230 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5872 + hash: "a18be4d4ab28c0fd0c16696c4ecc03ef" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 209; y: 230 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 209; y: 229 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5888 + hash: "c5f100bc4b14e958c7d9bbff84e0a934" + } + Frame { + msec: 5904 + hash: "c5f100bc4b14e958c7d9bbff84e0a934" + } + Frame { + msec: 5920 + hash: "c5f100bc4b14e958c7d9bbff84e0a934" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 208; y: 229 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5936 + hash: "a18be4d4ab28c0fd0c16696c4ecc03ef" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 207; y: 229 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 207; y: 230 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5952 + hash: "a8b23e7dad1bdbaa3452335be0f07658" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 206; y: 230 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 204; y: 231 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5968 + hash: "4c1feb559a11912b06ed521bebba43d0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 200; y: 232 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 194; y: 232 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5984 + hash: "ffb97bcedf72e02616272c1cad5c38d7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 190; y: 232 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 181; y: 231 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6000 + hash: "99498ed9b4d519a2f842d407abdef90a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 175; y: 230 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 163; y: 229 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6016 + hash: "1ca3f012adab899eba1dcb63d048345f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 158; y: 228 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 145; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6032 + hash: "8a81d49de887f314f67976a65f469169" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 132; y: 227 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 126; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6048 + hash: "b83136fa3769e30ea47097b489e8f1dc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 116; y: 227 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 112; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6064 + hash: "12cdd297407257ae4bb13c87e24537fb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 103; y: 227 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 99; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6080 + hash: "a51ac0a1e9432671c88f7649c38d265d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 90; y: 227 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 86; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6096 + hash: "4ba4f854659161c765395cdee35594f2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 77; y: 226 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 225 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6112 + hash: "9907add9e28b4a8976f3727f99a4b6d4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 66; y: 224 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 60; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6128 + hash: "c2cb865c4a766b9c08328b374e940f29" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 59; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 56; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6144 + hash: "c97981263572ded23b328da45cf88012" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 55; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6160 + hash: "f4bae51c866ba1158f44529208514d6f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 222 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 222 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6176 + hash: "35b4f1f9bb343f2b22bd7cdad6f28249" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6192 + hash: "84eba4cb400e5622463f5a1fa79be72b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6208 + hash: "d38e882728c7efc906befe69b416082a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 45; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6224 + hash: "e5d8939135d0e964609a09a437af58bc" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 44; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 43; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6240 + hash: "6b6e06e8473d5703e217accd824b08d5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 42; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6256 + hash: "8e38bc5b00e33e24f931b181dc77d3c1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 39; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 38; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6272 + hash: "a173708b5380f42a2bdbf6ae69cdca20" + } + Frame { + msec: 6288 + hash: "a173708b5380f42a2bdbf6ae69cdca20" + } + Frame { + msec: 6304 + hash: "a173708b5380f42a2bdbf6ae69cdca20" + } + Frame { + msec: 6320 + hash: "a173708b5380f42a2bdbf6ae69cdca20" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 38; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 6336 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6352 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6368 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6384 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6400 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6416 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6432 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6448 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6464 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6480 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6496 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6512 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6528 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6544 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6560 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6576 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6592 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6608 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6624 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6640 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6656 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6672 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6688 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6704 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6720 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6736 + image: "nested.7.png" + } + Frame { + msec: 6752 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6768 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6784 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6800 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6816 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6832 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6848 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6864 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6880 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6896 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6912 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6928 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6944 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6960 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6976 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 6992 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7008 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7024 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7040 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7056 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7072 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 46; y: 225 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7088 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7104 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 226 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 227 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7120 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 228 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 231 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7136 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 233 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 238 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7152 + hash: "35dd0f784c356be0050936ff75b0cdf7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 240 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 245 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7168 + hash: "9ac066a700eae45edf9b2f1ba12f0324" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 248 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 255 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7184 + hash: "22a2a8bf257918820b0ab55ecb14b479" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 259 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 266 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7200 + hash: "eb98237e06cde8ed2f18040ce9197d16" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 272 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 276 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7216 + hash: "f0c7afe1bd25b9b573cbc69154c25862" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 282 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 285 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7232 + hash: "d6a681b6de867db47f889e6f1ec03dcf" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 291 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 293 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7248 + hash: "0ee281281c7654567a1debae7a13abe0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 299 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 304 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7264 + hash: "9d5f1c8cb0953c14bdd49aa88d2b225f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 306 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 310 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7280 + hash: "ae1c2a3ed67c5c10fc9d19de4de7b7eb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 312 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 315 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7296 + hash: "8505f9d060fc17fef2e91eb2add206bb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 316 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 318 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7312 + hash: "c32a6d546a3e4f2ee5349a7dad4b30af" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 53; y: 319 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 52; y: 320 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7328 + hash: "222f6e8e8deab567f1e7d0aaf7035b60" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 321 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 322 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7344 + hash: "f7011629f44015187849daad6a53cebf" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 323 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 324 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7360 + hash: "56b00d9116a51c041483dd00db0aca90" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 325 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 50; y: 326 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7376 + hash: "93232fbcafe8e279b37781f51dfb923a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 328 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 329 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7392 + hash: "9fcf62eaacfc3477a4550c31f03c4782" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 330 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 331 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7408 + hash: "dd669865fd36e42eec1d69860b29e7ce" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 331 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7424 + hash: "9247af334483b219ca9bbe98d8fc362e" + } + Frame { + msec: 7440 + hash: "9247af334483b219ca9bbe98d8fc362e" + } + Frame { + msec: 7456 + hash: "9247af334483b219ca9bbe98d8fc362e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 330 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7472 + hash: "9247af334483b219ca9bbe98d8fc362e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 329 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 47; y: 328 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7488 + hash: "69ef9255a29d65f26e5441594ea1bad9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 325 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 48; y: 323 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7504 + hash: "055f73dd085d2f65a055ba4d9a8a7539" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 318 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 49; y: 316 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7520 + hash: "384da5b6a948a52d0519935a8e33f014" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 51; y: 309 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 54; y: 303 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7536 + hash: "1caa0049be4033db45f0d2debb25268f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 55; y: 299 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 55; y: 299 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 7552 + hash: "76b8d00b3a2a68fec277050a442c18ca" + } + Frame { + msec: 7568 + hash: "0ee281281c7654567a1debae7a13abe0" + } + Frame { + msec: 7584 + hash: "df1dbb027a8542aa6120cce7b69724a7" + } + Frame { + msec: 7600 + hash: "06a4d9b1d73362b3e29c6cf52fdb515c" + } + Frame { + msec: 7616 + hash: "876c0dc8a68a4c1253b7aed6316cb892" + } + Frame { + msec: 7632 + hash: "b46c74b1a2535099f0cdb8093bd49a4e" + } + Frame { + msec: 7648 + hash: "0ad09a7638aa6f2affe47db2a810196f" + } + Frame { + msec: 7664 + hash: "3710dde54d7e4a10a2c3ca2f891da7f5" + } + Frame { + msec: 7680 + hash: "8426a607c92fbfa508e81c620d90e919" + } + Frame { + msec: 7696 + image: "nested.8.png" + } + Frame { + msec: 7712 + hash: "1f38e34787c909d93d567f983a425257" + } + Frame { + msec: 7728 + hash: "7b09913793d4c79d948fdff1b72c7124" + } + Frame { + msec: 7744 + hash: "8a0d1484c073d8107b4bf9949edcdb18" + } + Frame { + msec: 7760 + hash: "4bad25465dfdcc41995216b0f6a5191b" + } + Frame { + msec: 7776 + hash: "6d39bbeb5f74273c1ed0231ac34fe094" + } + Frame { + msec: 7792 + hash: "8ccc2e33b8d6c67162326d229e9c17ab" + } + Frame { + msec: 7808 + hash: "3561eaa9124b96b2a0afa022bc0fe581" + } + Frame { + msec: 7824 + hash: "b87d739e49f0427d9da577ac5147fd21" + } + Frame { + msec: 7840 + hash: "7d0efbfceec35e591f9fae650288809b" + } + Frame { + msec: 7856 + hash: "7d0efbfceec35e591f9fae650288809b" + } + Frame { + msec: 7872 + hash: "ff5d2037d3cc7bb6930cabc3d53f0196" + } + Frame { + msec: 7888 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7904 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7920 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7936 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7952 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7968 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 7984 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8000 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8016 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8032 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8048 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8064 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8080 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8096 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8112 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8128 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8144 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8160 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8176 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8192 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8208 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8224 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8240 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8256 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8272 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8288 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8304 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8320 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8336 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8352 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8368 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8384 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8400 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8416 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8432 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8448 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8464 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8480 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8496 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8512 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8528 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8544 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8560 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8576 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8592 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8608 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8624 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8640 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8656 + image: "nested.9.png" + } + Frame { + msec: 8672 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8688 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8704 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8720 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8736 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8752 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8768 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8784 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8800 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8816 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8832 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8848 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8864 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8880 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8896 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8912 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8928 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8944 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8960 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8976 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 8992 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 9008 + hash: "76624c57195c25b8abd4297e11c55980" + } + Frame { + msec: 9024 + hash: "76624c57195c25b8abd4297e11c55980" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml new file mode 100644 index 0000000..b2d88d2 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml @@ -0,0 +1,62 @@ +import QtQuick 1.0 + +/* + Test nested MouseArea with different drag axes. +*/ + +Rectangle{ + width:400 + height:360 + color: "white" + Flickable { + anchors.fill: parent + contentWidth: 600 + contentHeight: 600 + Rectangle{ + id: draggable + width:200; height:200; color: "lightsteelblue" + opacity: ma1.drag.active ? 0.5 : 1.0 + y:20 + MouseArea{ + id: ma1 + objectName: "one" + anchors.fill: parent + drag.target: draggable + drag.axis: "XandYAxis" + drag.filterChildren: true + drag.minimumX: 0 + drag.maximumX: 200 + drag.minimumY: 20 + drag.maximumY: 220 + Rectangle{ + id: draggable_inner + width:40; height:40; color: "red" + y:20 + MouseArea{ + objectName: "two" + anchors.fill: parent + drag.target: draggable_inner + drag.axis: "XAxis" + drag.minimumX: 0 + drag.maximumX: 360 + } + } + } + } + Rectangle{ + id: draggable3 + width:40; height:40; color: "green" + opacity: ma3.drag.active ? 0.5 : 1.0 + y:210 + MouseArea{ + id: ma3 + objectName: "three" + anchors.fill: parent + drag.target: draggable3 + drag.axis: "XAxis" + drag.minimumX: 0 + drag.maximumX: 360 + } + } + } +} -- cgit v0.12 From 5149da5a564c883209566f3baaeea15932eee1c2 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 24 Nov 2010 15:42:35 +1000 Subject: Fix incorrect example for Qt.rgba() --- doc/src/declarative/basictypes.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 8ab06ab..71192bf 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -166,7 +166,7 @@ \l{QML:Qt::lighter()}{Qt.lighter()} or \l{QML:Qt::tint()}{Qt.tint()} functions: \qml - Rectangle { color: Qt.rgba(255, 0, 0, 1) } + Rectangle { color: Qt.rgba(0.5, 0.5, 0, 1) } \endqml \sa {QML Basic Types} -- cgit v0.12 From fe8276e812c5fdc690715d7e36a6b6d70cba7d33 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Wed, 24 Nov 2010 17:00:20 +1000 Subject: Prevent compilers optimizing eval timebomb code out of existence. The variable that holds the eval license key is a placeholder that is patched during package installation. Unfortunately, for a non-final package build, the placeholder is filled with nulls at compile-time and a clever compiler will optimize away most of the eval timebomb code due to a check in the eval code for the first character of the license key being null. This commit makes the variable that holds the license key volatile, to convince compilers that they cannot make assumptions about the contents of the variable when optimizing. Task-number: QT-3848 Acked-by: Thiago Macieira --- configure | 2 +- src/corelib/kernel/qtcore_eval.cpp | 4 ++-- tools/configure/configureapp.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 5aab180..059aa1a 100755 --- a/configure +++ b/configure @@ -4520,7 +4520,7 @@ if [ -n "$EVALKEY" ]; then rm -f "$outpath/src/corelib/global/qconfig_eval.cpp" cat > "$outpath/src/corelib/global/qconfig_eval.cpp" < Date: Wed, 24 Nov 2010 08:36:15 +0000 Subject: Fixed tst_qwidget::winIdChangeEvent During reparenting of a native widget, the winId is now first set to zero before being set to the new value. Reviewed-by: Jason Barron --- tests/auto/qwidget/tst_qwidget.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 09af941..5521873 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -4389,7 +4389,6 @@ class WinIdChangeWidget : public QWidget { public: WinIdChangeWidget(QWidget *p = 0) : QWidget(p) - , m_winIdChangeEventCount(0) { } @@ -4397,13 +4396,14 @@ protected: bool event(QEvent *e) { if (e->type() == QEvent::WinIdChange) { - ++m_winIdChangeEventCount; + m_winIdList.append(internalWinId()); return true; } return QWidget::event(e); } public: - int m_winIdChangeEventCount; + QList m_winIdList; + int winIdChangeEventCount() const { return m_winIdList.count(); } }; void tst_QWidget::winIdChangeEvent() @@ -4414,7 +4414,7 @@ void tst_QWidget::winIdChangeEvent() const WId winIdBefore = widget.internalWinId(); const WId winIdAfter = widget.winId(); QVERIFY(winIdBefore != winIdAfter); - QCOMPARE(widget.m_winIdChangeEventCount, 1); + QCOMPARE(widget.winIdChangeEventCount(), 1); } { @@ -4423,11 +4423,13 @@ void tst_QWidget::winIdChangeEvent() QWidget parent1, parent2; WinIdChangeWidget child(&parent1); const WId winIdBefore = child.winId(); - QCOMPARE(child.m_winIdChangeEventCount, 1); + QCOMPARE(child.winIdChangeEventCount(), 1); child.setParent(&parent2); const WId winIdAfter = child.internalWinId(); QVERIFY(winIdBefore != winIdAfter); - QCOMPARE(child.m_winIdChangeEventCount, 2); + QCOMPARE(child.winIdChangeEventCount(), 3); + // winId is set to zero during reparenting + QVERIFY(0 == child.m_winIdList[1]); } { @@ -4437,15 +4439,16 @@ void tst_QWidget::winIdChangeEvent() QWidget parent(&grandparent1); WinIdChangeWidget child(&parent); const WId winIdBefore = child.winId(); - QCOMPARE(child.m_winIdChangeEventCount, 1); + QCOMPARE(child.winIdChangeEventCount(), 1); parent.setParent(&grandparent2); const WId winIdAfter = child.internalWinId(); #ifdef Q_OS_SYMBIAN QVERIFY(winIdBefore != winIdAfter); - QCOMPARE(child.m_winIdChangeEventCount, 2); + QVERIFY(winIdAfter != 0); + QCOMPARE(child.winIdChangeEventCount(), 2); #else QCOMPARE(winIdBefore, winIdAfter); - QCOMPARE(child.m_winIdChangeEventCount, 1); + QCOMPARE(child.winIdChangeEventCount(), 1); #endif } @@ -4457,7 +4460,7 @@ void tst_QWidget::winIdChangeEvent() child.setParent(&parent2); const WId winIdAfter = child.internalWinId(); QCOMPARE(winIdBefore, winIdAfter); - QCOMPARE(child.m_winIdChangeEventCount, 0); + QCOMPARE(child.winIdChangeEventCount(), 0); } { @@ -4466,12 +4469,14 @@ void tst_QWidget::winIdChangeEvent() WinIdChangeWidget child(&parent); child.winId(); const WId winIdBefore = child.internalWinId(); - QCOMPARE(child.m_winIdChangeEventCount, 1); + QCOMPARE(child.winIdChangeEventCount(), 1); const Qt::WindowFlags flags = child.windowFlags(); child.setWindowFlags(flags | Qt::Window); const WId winIdAfter = child.internalWinId(); QVERIFY(winIdBefore != winIdAfter); - QCOMPARE(child.m_winIdChangeEventCount, 2); + QCOMPARE(child.winIdChangeEventCount(), 3); + // winId is set to zero during reparenting + QVERIFY(0 == child.m_winIdList[1]); } } -- cgit v0.12 From ba9816d1160998abe75b8b45f4b1c14985119553 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 24 Nov 2010 11:57:49 +0100 Subject: Ensure that if this is does not have a valid filter when on XP or less The renderer is only supported on Windows Vista or later so if we are on an earlier version of Windows then this should not be used. In addition this patch also ensures that it resets the filter if any of the needed functions fail. Task-number: QTBUG-13062 Reviewed-by: Thierry Bastian --- src/3rdparty/phonon/ds9/videorenderer_evr.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/3rdparty/phonon/ds9/videorenderer_evr.cpp b/src/3rdparty/phonon/ds9/videorenderer_evr.cpp index de3f46f..ff39eccc4 100644 --- a/src/3rdparty/phonon/ds9/videorenderer_evr.cpp +++ b/src/3rdparty/phonon/ds9/videorenderer_evr.cpp @@ -62,19 +62,21 @@ namespace Phonon VideoRendererEVR::VideoRendererEVR(QWidget *target) : m_target(target) { + if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) + return; m_filter = Filter(CLSID_EnhancedVideoRenderer, IID_IBaseFilter); if (!m_filter) { return; } ComPointer filterControl = getService(m_filter, MR_VIDEO_RENDER_SERVICE, IID_IMFVideoDisplayControl); - if (!filterControl) { + if (!filterControl || + FAILED(filterControl->SetVideoWindow(reinterpret_cast(target->winId()))) || + FAILED(filterControl->SetAspectRatioMode(MFVideoARMode_None)) || // We're in control of the size + !getService(m_filter, MR_VIDEO_MIXER_SERVICE, IID_IMFVideoMixerControl) || + !getService(m_filter, MR_VIDEO_MIXER_SERVICE, IID_IMFVideoProcessor)) { m_filter = Filter(); //will release the interface - return; } - - filterControl->SetVideoWindow(reinterpret_cast(target->winId())); - filterControl->SetAspectRatioMode(MFVideoARMode_None); // We're in control of the size } QImage VideoRendererEVR::snapshot() const -- cgit v0.12 From cbf7a7782f465846455a5fd5df339ebde31a5521 Mon Sep 17 00:00:00 2001 From: Ville Pernu Date: Wed, 24 Nov 2010 12:59:36 +0200 Subject: Fix a missing error-signal when a server is shut down while downloading QT-3494: During download, if a QAbstractSocket::RemoteHostClosedError occurs, the error handling is deferred to _q_disconnected() slot. However, the error message is not saved for the function, and thus the _q_disconnected only emits a finished-signal. Solution: Store an unhandled error into a private member. It is handled and reset by the _q_disconnected (or more specifically, allDone-function). --- src/network/access/qhttpnetworkconnectionchannel.cpp | 18 +++++++++++++++++- src/network/access/qhttpnetworkconnectionchannel_p.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index 02daa50..39f4811 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -66,6 +66,7 @@ QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel() , bytesTotal(0) , resendCurrent(false) , lastStatus(0) + , unhandledError(QNetworkReply::NoError) , pendingEncrypt(false) , reconnectAttempts(2) , authMethod(QAuthenticatorPrivate::None) @@ -643,7 +644,21 @@ void QHttpNetworkConnectionChannel::allDone() // slot connected to it. The socket will not fire readyRead signal, if we are already // in the slot connected to readyRead if (emitFinished) - QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); + { + // Check whether _q_error was invoked previously and if it left a socket + // error unhandled. + if(unhandledError != QNetworkReply::NoError) { + QString errorString = connection->d_func()->errorDetail(unhandledError, socket, socket->errorString()); + qRegisterMetaType("QNetworkReply::NetworkError"); + QMetaObject::invokeMethod(reply, "finishedWithError", + Qt::QueuedConnection, + Q_ARG(QNetworkReply::NetworkError, unhandledError), + Q_ARG(QString, errorString)); + unhandledError = QNetworkReply::NoError; // Reset the value + } else { + QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); + } + } // reset the reconnection attempts after we receive a complete reply. // in case of failures, each channel will attempt two reconnects before emitting error. reconnectAttempts = 2; @@ -965,6 +980,7 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket errorCode = QNetworkReply::RemoteHostClosedError; } } else { + unhandledError = QNetworkReply::RemoteHostClosedError; return; } break; diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index 442086a..33cef5a 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -105,6 +105,7 @@ public: qint64 bytesTotal; bool resendCurrent; int lastStatus; // last status received on this channel + QNetworkReply::NetworkError unhandledError; // Stored code of an unhandled error. bool pendingEncrypt; // for https (send after encrypted) int reconnectAttempts; // maximum 2 reconnection attempts QAuthenticatorPrivate::Method authMethod; -- cgit v0.12 From 57d1545e4afc97517f1472e626c27b8009e904cc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 24 Nov 2010 13:48:14 +0100 Subject: Doc: Added documentation about Tab and Backtab key handling. Task-number: QTBUG-15569 --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index e0df751..93572a0 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -484,10 +484,18 @@ void QDeclarativeItemKeyFilter::componentComplete() \qmlproperty Item KeyNavigation::down These properties hold the item to assign focus to - when Key_Left, Key_Right, Key_Up or Key_Down are + when the left, right, up or down cursor keys are pressed. */ +/*! + \qmlproperty Item KeyNavigation::tab + \qmlproperty Item KeyNavigation::backtab + + These properties hold the item to assign focus to + when the Tab key or Shift+Tab key combination (Backtab) are pressed. +*/ + QDeclarativeKeyNavigationAttached::QDeclarativeKeyNavigationAttached(QObject *parent) : QObject(*(new QDeclarativeKeyNavigationAttachedPrivate), parent), QDeclarativeItemKeyFilter(qobject_cast(parent)) @@ -941,6 +949,20 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post) */ /*! + \qmlsignal Keys::onTabPressed(KeyEvent event) + + This handler is called when the Tab key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onBacktabPressed(KeyEvent event) + + This handler is called when the Shift+Tab key combination (Backtab) has + been pressed. The \a event parameter provides information about the event. +*/ + +/*! \qmlsignal Keys::onAsteriskPressed(KeyEvent event) This handler is called when the Asterisk '*' has been pressed. The \a event -- cgit v0.12 From 9830ef3b28502285a9c99ce07985668ad16a636a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 24 Nov 2010 15:08:20 +0100 Subject: Removed unused code. --- tools/qdoc3/codemarker.h | 7 --- tools/qdoc3/codeparser.cpp | 3 +- tools/qdoc3/ditaxmlgenerator.h | 3 -- tools/qdoc3/htmlgenerator.cpp | 112 ----------------------------------------- tools/qdoc3/htmlgenerator.h | 25 --------- 5 files changed, 1 insertion(+), 149 deletions(-) diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h index f17b28e..029ddb9 100644 --- a/tools/qdoc3/codemarker.h +++ b/tools/qdoc3/codemarker.h @@ -107,13 +107,6 @@ struct FastSection }; -#if 0 - const QString& name0 = "", - const QString& divClass0 = "", - const QString& singularMember0 = "member", - const QString& pluralMember0 = "members") -#endif - class CodeMarker { public: diff --git a/tools/qdoc3/codeparser.cpp b/tools/qdoc3/codeparser.cpp index 65d9572..ed8b54e 100644 --- a/tools/qdoc3/codeparser.cpp +++ b/tools/qdoc3/codeparser.cpp @@ -47,7 +47,6 @@ #include "node.h" #include "tree.h" #include "config.h" -#include QT_BEGIN_NAMESPACE @@ -99,7 +98,7 @@ void CodeParser::initializeParser(const Config& config) } /*! - Teerminating a code parser is trivial. + Terminating a code parser is trivial. */ void CodeParser::terminateParser() { diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h index 446f735..36bd990 100644 --- a/tools/qdoc3/ditaxmlgenerator.h +++ b/tools/qdoc3/ditaxmlgenerator.h @@ -234,9 +234,6 @@ class DitaXmlGenerator : public PageGenerator QString registerRef(const QString& ref); QString fileBase(const Node *node); -#if 0 - QString fileBase(const Node *node, const SectionIterator& section); -#endif QString fileName(const Node *node); void findAllClasses(const InnerNode *node); void findAllFunctions(const InnerNode *node); diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 4faab50..74db762 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1116,33 +1116,6 @@ int HtmlGenerator::generateAtom(const Atom *atom, skipAhead = 1; break; case Atom::TableOfContents: - { - int numColumns = 1; - const Node *node = relative; - - Doc::SectioningUnit sectioningUnit = Doc::Section4; - QStringList params = atom->string().split(","); - QString columnText = params.at(0); - QStringList pieces = columnText.split(" ", QString::SkipEmptyParts); - if (pieces.size() >= 2) { - columnText = pieces.at(0); - pieces.pop_front(); - QString path = pieces.join(" ").trimmed(); - node = findNodeForTarget(path, relative, marker, atom); - } - - if (params.size() == 2) { - numColumns = qMax(columnText.toInt(), numColumns); - sectioningUnit = (Doc::SectioningUnit)params.at(1).toInt(); - } - - if (node) - generateTableOfContents(node, - marker, - sectioningUnit, - numColumns, - relative); - } break; case Atom::Target: out() << "string()) << "\">"; @@ -1799,91 +1772,6 @@ void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) } /*! - Generates a table of contents beginning at \a node. - */ -void HtmlGenerator::generateTableOfContents(const Node *node, - CodeMarker *marker, - Doc::SectioningUnit sectioningUnit, - int numColumns, - const Node *relative) - -{ - return; - if (!node->doc().hasTableOfContents()) - return; - QList toc = node->doc().tableOfContents(); - if (toc.isEmpty()) - return; - - QString nodeName = ""; - if (node != relative) - nodeName = node->name(); - - QStringList sectionNumber; - int columnSize = 0; - - QString tdTag; - if (numColumns > 1) { - tdTag = ""; /* width=\"" + QString::number((100 + numColumns - 1) / numColumns) + "%\">";*/ - out() << "\n" - << tdTag << "\n"; - } - - // disable nested links in table of contents - inContents = true; - inLink = true; - - for (int i = 0; i < toc.size(); ++i) { - Atom *atom = toc.at(i); - - int nextLevel = atom->string().toInt(); - if (nextLevel > (int)sectioningUnit) - continue; - - if (sectionNumber.size() < nextLevel) { - do { - out() << "
    "; - sectionNumber.append("1"); - } while (sectionNumber.size() < nextLevel); - } - else { - while (sectionNumber.size() > nextLevel) { - out() << "
\n"; - sectionNumber.removeLast(); - } - sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1); - } - int numAtoms; - Text headingText = Text::sectionHeading(atom); - - if (sectionNumber.size() == 1 && columnSize > toc.size() / numColumns) { - out() << "" << tdTag << "\n"; - sectionNumber.removeLast(); - } - - if (numColumns > 1) - out() << "
\n"; - - inContents = false; - inLink = false; -} - -/*! Revised for the new doc format. Generates a table of contents beginning at \a node. */ diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index c0a4ce8..547cf2f 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -56,15 +56,6 @@ QT_BEGIN_NAMESPACE -#if 0 -struct NavigationBar -{ - SectionIterator prev; - SectionIterator current; - SectionIterator next; -}; -#endif - typedef QMultiMap NodeMultiMap; typedef QMap NewSinceMaps; typedef QMap ParentMaps; @@ -150,16 +141,6 @@ class HtmlGenerator : public PageGenerator CodeMarker *marker, const Node *relative = 0); void generateIncludes(const InnerNode *inner, CodeMarker *marker); -#if 0 - void generateNavigationBar(const NavigationBar& bar, - const Node *node, - CodeMarker *marker); -#endif - void generateTableOfContents(const Node *node, - CodeMarker *marker, - Doc::SectioningUnit sectioningUnit, - int numColumns, - const Node *relative = 0); void generateTableOfContents(const Node *node, CodeMarker *marker, QList
* sections = 0); @@ -237,9 +218,6 @@ class HtmlGenerator : public PageGenerator QString registerRef(const QString& ref); QString fileBase(const Node *node); -#if 0 - QString fileBase(const Node *node, const SectionIterator& section); -#endif QString fileName(const Node *node); void findAllClasses(const InnerNode *node); void findAllFunctions(const InnerNode *node); @@ -273,9 +251,6 @@ class HtmlGenerator : public PageGenerator CodeMarker* marker) const; void generateExtractionMark(const Node *node, ExtractionMarkType markType); -#if 0 - NavigationBar currentNavigationBar; -#endif QMap refMap; int codeIndent; HelpProjectWriter *helpProjectWriter; -- cgit v0.12 From a17a8bfe860b6a055f60068ef04f9e31278cd6c4 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 23 Nov 2010 17:11:42 +0100 Subject: Enable the no-undefined flag on the linker for icc Reviewed-by: Thiago --- src/qbase.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qbase.pri b/src/qbase.pri index 4217618..8460b9c 100644 --- a/src/qbase.pri +++ b/src/qbase.pri @@ -36,7 +36,7 @@ CONFIG += qt warn_on depend_includepath CONFIG += qmake_cache target_qt CONFIG -= fix_output_dirs win32|mac:!macx-xcode:CONFIG += debug_and_release -linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF +linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions -- cgit v0.12 From f79dfe06afe9aae34e064b5668cc3429f659dd16 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 24 Nov 2010 19:31:06 +0100 Subject: Added the version number to the configuration and fixed the generator. Now the version number should appear in the documentation again. --- tools/qdoc3/htmlgenerator.cpp | 4 +--- tools/qdoc3/test/qt-project.qdocconf | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 74db762..b095f23 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1618,12 +1618,10 @@ void HtmlGenerator::generateHeader(const QString& title, out() << QString("\n").arg(naturalLanguage); out() << "\n"; out() << " \n"; - QString shortVersion; - shortVersion = project + " " + shortVersion + ": "; if (node && !node->doc().location().isEmpty()) out() << "\n"; - shortVersion = myTree->version(); + QString shortVersion = myTree->version(); if (shortVersion.count(QChar('.')) == 2) shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); if (!shortVersion.isEmpty()) { diff --git a/tools/qdoc3/test/qt-project.qdocconf b/tools/qdoc3/test/qt-project.qdocconf index be2a227..135fbbb 100644 --- a/tools/qdoc3/test/qt-project.qdocconf +++ b/tools/qdoc3/test/qt-project.qdocconf @@ -6,6 +6,7 @@ include(qt-defines.qdocconf) project = Qt description = Qt Reference Documentation url = http://qt.nokia.com/doc/4.7 +version = 4.7.1 sourceencoding = UTF-8 outputencoding = UTF-8 @@ -86,7 +87,9 @@ excludedirs = $QT_SOURCE_TREE/src/3rdparty/clucene \ $QT_SOURCE_TREE/doc/src/ja_JP \ $QT_SOURCE_TREE/doc/src/zh_CN -sources.fileextensions = "*.cpp *.qdoc *.mm" +sources.fileextensions = "*.c++ *.cc *.cpp *.cxx *.mm *.qml *.qdoc" +headers.fileextensions = "*.ch *.h *.h++ *.hh *.hpp *.hxx" + examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml" examples.imageextensions = "*.png" -- cgit v0.12 From 9529188304b47d3fdb39cec52ad233f37a477f2f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 24 Nov 2010 19:33:21 +0100 Subject: Refactored use of parsers to parse files based on their types. The full range of file types is specified in the configuration file. Each parser is asked if it handles each file. The pure documentation parser conceptually handles qdoc files, but it uses the same code as the C++ parser. --- tools/qdoc3/codeparser.cpp | 38 ++++++++- tools/qdoc3/codeparser.h | 6 +- tools/qdoc3/config.cpp | 6 +- tools/qdoc3/config.h | 1 - tools/qdoc3/cppcodeparser.cpp | 9 +- tools/qdoc3/cppcodeparser.h | 4 +- tools/qdoc3/main.cpp | 74 +++++++++------- tools/qdoc3/puredocparser.cpp | 63 ++++++++++++++ tools/qdoc3/puredocparser.h | 72 ++++++++++++++++ tools/qdoc3/qdoc3.pro | 11 +++ tools/qdoc3/qmlcodeparser.cpp | 168 +++++++++++++++++++++++++++++++++++++ tools/qdoc3/qmlcodeparser.h | 90 ++++++++++++++++++++ tools/qdoc3/qmlvisitor.cpp | 191 ++++++++++++++++++++++++++++++++++++++++++ tools/qdoc3/qmlvisitor.h | 83 ++++++++++++++++++ 14 files changed, 769 insertions(+), 47 deletions(-) create mode 100644 tools/qdoc3/puredocparser.cpp create mode 100644 tools/qdoc3/puredocparser.h create mode 100644 tools/qdoc3/qmlcodeparser.cpp create mode 100644 tools/qdoc3/qmlcodeparser.h create mode 100644 tools/qdoc3/qmlvisitor.cpp create mode 100644 tools/qdoc3/qmlvisitor.h diff --git a/tools/qdoc3/codeparser.cpp b/tools/qdoc3/codeparser.cpp index ed8b54e..3652758 100644 --- a/tools/qdoc3/codeparser.cpp +++ b/tools/qdoc3/codeparser.cpp @@ -105,7 +105,7 @@ void CodeParser::terminateParser() // nothing. } -QString CodeParser::headerFileNameFilter() +QStringList CodeParser::headerFileNameFilter() { return sourceFileNameFilter(); } @@ -158,6 +158,42 @@ CodeParser *CodeParser::parserForLanguage(const QString& language) return 0; } +CodeParser *CodeParser::parserForHeaderFile(const QString &filePath) +{ + QString fileName = QFileInfo(filePath).fileName(); + + QList::ConstIterator p = parsers.begin(); + while (p != parsers.end()) { + + QStringList headerPatterns = (*p)->headerFileNameFilter(); + foreach (QString pattern, headerPatterns) { + QRegExp re(pattern, Qt::CaseInsensitive, QRegExp::Wildcard); + if (re.exactMatch(fileName)) + return *p; + } + ++p; + } + return 0; +} + +CodeParser *CodeParser::parserForSourceFile(const QString &filePath) +{ + QString fileName = QFileInfo(filePath).fileName(); + + QList::ConstIterator p = parsers.begin(); + while (p != parsers.end()) { + + QStringList sourcePatterns = (*p)->sourceFileNameFilter(); + foreach (QString pattern, sourcePatterns) { + QRegExp re(pattern, Qt::CaseInsensitive, QRegExp::Wildcard); + if (re.exactMatch(fileName)) + return *p; + } + ++p; + } + return 0; +} + /*! Returns the set of strings representing the common metacommands. */ diff --git a/tools/qdoc3/codeparser.h b/tools/qdoc3/codeparser.h index ebba601..2d11ee0 100644 --- a/tools/qdoc3/codeparser.h +++ b/tools/qdoc3/codeparser.h @@ -66,8 +66,8 @@ class CodeParser virtual void initializeParser(const Config& config); virtual void terminateParser(); virtual QString language() = 0; - virtual QString headerFileNameFilter(); - virtual QString sourceFileNameFilter() = 0; + virtual QStringList headerFileNameFilter(); + virtual QStringList sourceFileNameFilter() = 0; virtual void parseHeaderFile(const Location& location, const QString& filePath, Tree *tree); virtual void parseSourceFile(const Location& location, @@ -78,6 +78,8 @@ class CodeParser static void initialize(const Config& config); static void terminate(); static CodeParser *parserForLanguage(const QString& language); + static CodeParser *parserForHeaderFile(const QString &filePath); + static CodeParser *parserForSourceFile(const QString &filePath); static const QString titleFromName(const QString& name); protected: diff --git a/tools/qdoc3/config.cpp b/tools/qdoc3/config.cpp index 0146a26..c2ab559 100644 --- a/tools/qdoc3/config.cpp +++ b/tools/qdoc3/config.cpp @@ -359,16 +359,12 @@ QSet Config::subVars(const QString& var) const */ QStringList Config::getAllFiles(const QString &filesVar, const QString &dirsVar, - const QString &defaultNameFilter, const QSet &excludedDirs) { QStringList result = getStringList(filesVar); QStringList dirs = getStringList(dirsVar); - QString nameFilter = getString(filesVar + dot + - QLatin1String(CONFIG_FILEEXTENSIONS)); - if (nameFilter.isEmpty()) - nameFilter = defaultNameFilter; + QString nameFilter = getString(filesVar + dot + QLatin1String(CONFIG_FILEEXTENSIONS)); QStringList::ConstIterator d = dirs.begin(); while (d != dirs.end()) { diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h index f089a70..bc36f3d 100644 --- a/tools/qdoc3/config.h +++ b/tools/qdoc3/config.h @@ -76,7 +76,6 @@ class Config QSet subVars(const QString& var) const; QStringList getAllFiles(const QString& filesVar, const QString& dirsVar, - const QString& defaultNameFilter, const QSet &excludedDirs = QSet()); static QStringList getFilesHere(const QString& dir, diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp index 8e891b8..fce2553 100644 --- a/tools/qdoc3/cppcodeparser.cpp +++ b/tools/qdoc3/cppcodeparser.cpp @@ -47,7 +47,6 @@ #include #include -#include #include "codechunk.h" #include "config.h" @@ -258,18 +257,18 @@ QString CppCodeParser::language() /*! Returns a list of extensions for header files. */ -QString CppCodeParser::headerFileNameFilter() +QStringList CppCodeParser::headerFileNameFilter() { - return "*.ch *.h *.h++ *.hh *.hpp *.hxx"; + return QStringList() << "*.ch" << "*.h" << "*.h++" << "*.hh" << "*.hpp" << "*.hxx"; } /*! Returns a list of extensions for source files, i.e. not header files. */ -QString CppCodeParser::sourceFileNameFilter() +QStringList CppCodeParser::sourceFileNameFilter() { - return "*.c++ *.cc *.cpp *.cxx"; + return QStringList() << "*.c++" << "*.cc" << "*.cpp" << "*.cxx" << "*.mm"; } /*! diff --git a/tools/qdoc3/cppcodeparser.h b/tools/qdoc3/cppcodeparser.h index 55d9ddf..64e9119 100644 --- a/tools/qdoc3/cppcodeparser.h +++ b/tools/qdoc3/cppcodeparser.h @@ -69,8 +69,8 @@ class CppCodeParser : public CodeParser virtual void initializeParser(const Config& config); virtual void terminateParser(); virtual QString language(); - virtual QString headerFileNameFilter(); - virtual QString sourceFileNameFilter(); + virtual QStringList headerFileNameFilter(); + virtual QStringList sourceFileNameFilter(); virtual void parseHeaderFile(const Location& location, const QString& filePath, Tree *tree); diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 768c5eb..2d3f034 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -50,10 +50,12 @@ #include "config.h" #include "cppcodemarker.h" #include "cppcodeparser.h" +#include "ditaxmlgenerator.h" #include "doc.h" #include "htmlgenerator.h" #include "plaincodemarker.h" -#include "ditaxmlgenerator.h" +#include "puredocparser.h" +#include "qmlcodeparser.h" #include "tokenizer.h" #include "tree.h" #include @@ -235,14 +237,6 @@ static void processQdocconfFile(const QString &fileName) tree->setVersion(config.getString(CONFIG_VERSION)); /* - There must be a code parser for the source code language, e.g. C++. - If there isn't one, give up. - */ - CodeParser *codeParser = CodeParser::parserForLanguage(lang); - if (codeParser == 0) - config.lastLocation().fatal(tr("Cannot parse programming language '%1'").arg(lang)); - - /* By default, the only output format is HTML. */ QSet outputFormats = config.getStringSet(CONFIG_OUTPUTFORMATS); @@ -257,52 +251,69 @@ static void processQdocconfFile(const QString &fileName) langLocation.fatal(tr("Cannot output documentation for programming language '%1'").arg(lang)); /* - Read some XML indexes. What are they??? + Read some XML indexes containing definitions from other documentation sets. */ QStringList indexFiles = config.getStringList(CONFIG_INDEXES); tree->readIndexes(indexFiles); - + /* - Get all the header files: "*.ch *.h *.h++ *.hh *.hpp *.hxx" - Put them in a set. + Read the list of excluded directories. */ QSet excludedDirs; QStringList excludedDirsList = config.getStringList(CONFIG_EXCLUDEDIRS); foreach (const QString &excludeDir, excludedDirsList) excludedDirs.insert(QDir::fromNativeSeparators(excludeDir)); - QSet headers = QSet::fromList( - config.getAllFiles(CONFIG_HEADERS, CONFIG_HEADERDIRS, - codeParser->headerFileNameFilter(), - excludedDirs)); /* - Parse each header file in the set and add it to the big tree. + Get all the header files: "*.ch *.h *.h++ *.hh *.hpp *.hxx" + Put them in a set. */ - QSet::ConstIterator h = headers.begin(); - while (h != headers.end()) { - codeParser->parseHeaderFile(config.location(), *h, tree); - ++h; - } - codeParser->doneParsingHeaderFiles(tree); + QSet headers = QSet::fromList( + config.getAllFiles(CONFIG_HEADERS, CONFIG_HEADERDIRS, excludedDirs)); /* Get all the source text files: "*.cpp *.qdoc *.mm" Put them in a set. */ QSet sources = QSet::fromList( - config.getAllFiles(CONFIG_SOURCES, CONFIG_SOURCEDIRS, - codeParser->sourceFileNameFilter(), - excludedDirs)); + config.getAllFiles(CONFIG_SOURCES, CONFIG_SOURCEDIRS, excludedDirs)); + + /* + Parse each header file in the set using the appropriate parser and add it + to the big tree. + */ + QSet usedParsers; + + QSet::ConstIterator h = headers.begin(); + while (h != headers.end()) { + CodeParser *codeParser = CodeParser::parserForHeaderFile(*h); + if (codeParser) { + codeParser->parseHeaderFile(config.location(), *h, tree); + usedParsers.insert(codeParser); + } + ++h; + } + foreach (CodeParser *codeParser, usedParsers) + codeParser->doneParsingHeaderFiles(tree); + + usedParsers.clear(); /* - Parse each source text file in the set and add it to the big tree. + Parse each source text file in the set using the appropriate parser and + add it to the big tree. */ QSet::ConstIterator s = sources.begin(); while (s != sources.end()) { - codeParser->parseSourceFile(config.location(), *s, tree); + CodeParser *codeParser = CodeParser::parserForSourceFile(*s); + if (codeParser) { + codeParser->parseSourceFile(config.location(), *s, tree); + usedParsers.insert(codeParser); + } ++s; } - codeParser->doneParsingSourceFiles(tree); + + foreach (CodeParser *codeParser, usedParsers) + codeParser->doneParsingSourceFiles(tree); /* Now the big tree has been built from all the header and @@ -371,7 +382,8 @@ int main(int argc, char **argv) and create a tree for C++. */ CppCodeParser cppParser; - Tree *cppTree = treeForLanguage(cppParser.language()); + QmlCodeParser qmlParser; + PureDocParser docParser; /* Create code markers for plain text and C++. diff --git a/tools/qdoc3/puredocparser.cpp b/tools/qdoc3/puredocparser.cpp new file mode 100644 index 0000000..de7d668 --- /dev/null +++ b/tools/qdoc3/puredocparser.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + puredocparser.cpp +*/ + +#include "puredocparser.h" + +QT_BEGIN_NAMESPACE + +PureDocParser::PureDocParser() +{ +} + +PureDocParser::~PureDocParser() +{ +} + +QStringList PureDocParser::sourceFileNameFilter() +{ + return QStringList("*.qdoc"); +} + +QT_END_NAMESPACE diff --git a/tools/qdoc3/puredocparser.h b/tools/qdoc3/puredocparser.h new file mode 100644 index 0000000..6e37dbd --- /dev/null +++ b/tools/qdoc3/puredocparser.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + puredocparser.h +*/ + +#ifndef PUREDOCPARSER_H +#define PUREDOCPARSER_H + +#include + +#include "cppcodeparser.h" +#include "location.h" + +QT_BEGIN_NAMESPACE + +class Config; +class Node; +class QString; +class Tree; + +class PureDocParser : public CppCodeParser +{ +public: + PureDocParser(); + virtual ~PureDocParser(); + + virtual QStringList sourceFileNameFilter(); +}; + +QT_END_NAMESPACE + +#endif diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro index c9b05d2..2c91a9c 100644 --- a/tools/qdoc3/qdoc3.pro +++ b/tools/qdoc3/qdoc3.pro @@ -42,6 +42,9 @@ HEADERS += atom.h \ openedlist.h \ pagegenerator.h \ plaincodemarker.h \ + puredocparser.h \ + qmlcodeparser.h \ + qmlvisitor.h \ quoter.h \ separator.h \ text.h \ @@ -67,6 +70,9 @@ SOURCES += atom.cpp \ openedlist.cpp \ pagegenerator.cpp \ plaincodemarker.cpp \ + puredocparser.cpp \ + qmlcodeparser.cpp \ + qmlvisitor.cpp \ quoter.cpp \ separator.cpp \ text.cpp \ @@ -74,6 +80,11 @@ SOURCES += atom.cpp \ tree.cpp \ yyindent.cpp +# Include the QML parsing library from Qt Creator. + +LIBS += -L$$(QTCREATOR_LIBPATH) -lQmlJS -lUtils +INCLUDEPATH += $$(QTCREATOR_INCPATH) + ### Documentation for qdoc3 ### qtPrepareTool(QDOC, qdoc3) diff --git a/tools/qdoc3/qmlcodeparser.cpp b/tools/qdoc3/qmlcodeparser.cpp new file mode 100644 index 0000000..c6ace7d --- /dev/null +++ b/tools/qdoc3/qmlcodeparser.cpp @@ -0,0 +1,168 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + qmlcodeparser.cpp +*/ + +#include "parser/qmljsast_p.h" +#include "parser/qmljsastvisitor_p.h" +#include "parser/qmljsnodepool_p.h" + +#include "qmlcodeparser.h" +#include "node.h" +#include "tree.h" +#include "config.h" +#include "qmlvisitor.h" + +QT_BEGIN_NAMESPACE + +#define COMMAND_STARTPAGE Doc::alias("startpage") +#define COMMAND_VARIABLE Doc::alias("variable") + +#define COMMAND_QMLCLASS Doc::alias("qmlclass") +#define COMMAND_QMLPROPERTY Doc::alias("qmlproperty") +#define COMMAND_QMLATTACHEDPROPERTY Doc::alias("qmlattachedproperty") +#define COMMAND_QMLINHERITS Doc::alias("inherits") +#define COMMAND_QMLSIGNAL Doc::alias("qmlsignal") +#define COMMAND_QMLATTACHEDSIGNAL Doc::alias("qmlattachedsignal") +#define COMMAND_QMLMETHOD Doc::alias("qmlmethod") +#define COMMAND_QMLATTACHEDMETHOD Doc::alias("qmlattachedmethod") +#define COMMAND_QMLDEFAULT Doc::alias("default") +#define COMMAND_QMLBASICTYPE Doc::alias("qmlbasictype") + +QmlCodeParser::QmlCodeParser() +{ +} + +QmlCodeParser::~QmlCodeParser() +{ +} + +/*! + Initialize the code parser base class. + */ +void QmlCodeParser::initializeParser(const Config &config) +{ + CodeParser::initializeParser(config); + + lexer = new QmlJS::Lexer(&engine); + parser = new QmlJS::Parser(&engine); +} + +void QmlCodeParser::terminateParser() +{ + delete lexer; + delete parser; +} + +QString QmlCodeParser::language() +{ + return "QML"; +} + +QStringList QmlCodeParser::sourceFileNameFilter() +{ + return QStringList("*.qml"); +} + +void QmlCodeParser::parseSourceFile(const Location& location, + const QString& filePath, + Tree *tree) +{ + QFile in(filePath); + if (!in.open(QIODevice::ReadOnly)) { + location.error(tr("Cannot open QML file '%1'").arg(filePath)); + return; + } + + QString document = in.readAll(); + in.close(); + + Location fileLocation(filePath); + lexer->setCode(document, 1); + + QSet topicCommandsAllowed = topicCommands(); + QSet otherMetacommandsAllowed = otherMetaCommands(); + QSet metacommandsAllowed = topicCommandsAllowed + + otherMetacommandsAllowed; + + QmlJS::NodePool m_nodePool(filePath, &engine); + + if (parser->parse()) { + QmlJS::AST::UiProgram *ast = parser->ast(); + DocVisitor visitor(filePath, document, &engine, tree, metacommandsAllowed); + QmlJS::AST::Node::accept(ast, &visitor); + } +} + +void QmlCodeParser::doneParsingSourceFiles(Tree *tree) +{ +} + +/*! + Returns the set of strings reopresenting the topic commands. + */ +QSet QmlCodeParser::topicCommands() +{ + return QSet() << COMMAND_VARIABLE + << COMMAND_QMLCLASS + << COMMAND_QMLPROPERTY + << COMMAND_QMLATTACHEDPROPERTY + << COMMAND_QMLSIGNAL + << COMMAND_QMLATTACHEDSIGNAL + << COMMAND_QMLMETHOD + << COMMAND_QMLATTACHEDMETHOD + << COMMAND_QMLBASICTYPE; +} + +/*! + Returns the set of strings representing the common metacommands + plus some other metacommands. + */ +QSet QmlCodeParser::otherMetaCommands() +{ + return commonMetaCommands() << COMMAND_STARTPAGE + << COMMAND_QMLINHERITS + << COMMAND_QMLDEFAULT; +} + +QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlcodeparser.h b/tools/qdoc3/qmlcodeparser.h new file mode 100644 index 0000000..f6d6684 --- /dev/null +++ b/tools/qdoc3/qmlcodeparser.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + qmlcodeparser.h +*/ + +#ifndef QMLCODEPARSER_H +#define QMLCODEPARSER_H + +#include +#include "parser/qmljsengine_p.h" +#include "parser/qmljslexer_p.h" +#include "parser/qmljsparser_p.h" + +#include "codeparser.h" +#include "location.h" + +QT_BEGIN_NAMESPACE + +class Config; +class Node; +class QString; +class Tree; + +class QmlCodeParser : public CodeParser +{ +public: + QmlCodeParser(); + virtual ~QmlCodeParser(); + + virtual void initializeParser(const Config& config); + virtual void terminateParser(); + virtual QString language(); + virtual QStringList sourceFileNameFilter(); + virtual void parseSourceFile(const Location& location, + const QString& filePath, Tree *tree); + virtual void doneParsingSourceFiles(Tree *tree); + +protected: + virtual QSet topicCommands(); + virtual QSet otherMetaCommands(); + +private: + QmlJS::Engine engine; + QmlJS::Lexer *lexer; + QmlJS::Parser *parser; +}; + +QT_END_NAMESPACE + +#endif diff --git a/tools/qdoc3/qmlvisitor.cpp b/tools/qdoc3/qmlvisitor.cpp new file mode 100644 index 0000000..83bf96f --- /dev/null +++ b/tools/qdoc3/qmlvisitor.cpp @@ -0,0 +1,191 @@ +/**************************************************************************** +** +** 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 tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include "parser/qmljsast_p.h" +#include "parser/qmljsastfwd_p.h" +#include "parser/qmljsengine_p.h" + +#include "node.h" +#include "qmlvisitor.h" + +DocVisitor::DocVisitor(const QString &filePath, const QString &code, + QmlJS::Engine *engine, Tree *tree, QSet &commands) +{ + this->filePath = filePath; + this->name = QFileInfo(filePath).baseName(); + document = code; + this->engine = engine; + this->tree = tree; + this->commands = commands; + current = tree->root(); +} + +DocVisitor::~DocVisitor() +{ +} + +QmlJS::AST::SourceLocation DocVisitor::precedingComment(unsigned offset) const +{ + QmlJS::AST::SourceLocation currentLoc; + + foreach (const QmlJS::AST::SourceLocation &loc, engine->comments()) { + if (loc.begin() > lastEndOffset && loc.end() < offset) + currentLoc = loc; + else + break; + } + if (currentLoc.isValid()) { + QString comment = document.mid(currentLoc.offset, currentLoc.length); + if (comment.startsWith("!") || comment.startsWith("*")) + return currentLoc; + } + + return QmlJS::AST::SourceLocation(); +} + +void DocVisitor::applyDocumentation(QmlJS::AST::SourceLocation location, + InnerNode *node) +{ + QmlJS::AST::SourceLocation loc = precedingComment(location.begin()); + + if (loc.isValid()) { + QString source = document.mid(loc.offset, loc.length); + if (source.startsWith(QLatin1String("!")) || + source.startsWith(QLatin1String("*"))) { + + Location start(filePath); + start.setLineNo(loc.startLine); + start.setColumnNo(loc.startColumn); + Location finish(filePath); + finish.setLineNo(loc.startLine); + finish.setColumnNo(loc.startColumn); + + Doc doc(start, finish, source.mid(1), commands); + node->setDoc(doc); + } + } +} + +/*! + Visits element definitions, recording them in a tree structure. +*/ +bool DocVisitor::visit(QmlJS::AST::UiObjectDefinition *definition) +{ + QString type = definition->qualifiedTypeNameId->name->asString(); + + if (current->type() == Node::Namespace) { + QmlClassNode *component = new QmlClassNode(current, name, 0); + applyDocumentation(definition->firstSourceLocation(), component); + current = component; + } + + return true; +} + +void DocVisitor::endVisit(QmlJS::AST::UiObjectDefinition *definition) +{ + lastEndOffset = definition->lastSourceLocation().end(); +} + +bool DocVisitor::visit(QmlJS::AST::UiImportList *imports) +{ + // Note that the imports list can be traversed by iteration to obtain + // all the imports in the document at once, having found just one: + // *it = imports; it; it = it->next + + QString module = document.mid(imports->import->fileNameToken.offset, + imports->import->fileNameToken.length); + QString version = document.mid(imports->import->versionToken.offset, + imports->import->versionToken.length); + importList.append(QPair(module, version)); + + return true; +} + +/*! + Visits public member declarations, such as signals and properties. + These only include custom signals and properties. +*/ +bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) +{ + switch (member->type) { + case QmlJS::AST::UiPublicMember::Signal: + { + QString name = member->name->asString(); + + QList > parameters; + for (QmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { + if (it->type && it->name) + parameters.append(QPair(it->type->asString(), + it->name->asString())); + } + + //current->addSignal(new Signal(name, parameters)); + break; + } + case QmlJS::AST::UiPublicMember::Property: + { + QString type = member->memberType->asString(); + QString name = member->name->asString(); + + //current->addProperty(new Property(type, name)); + break; + } + default: + return false; + } + + //current->doc = precedingComment(member->firstSourceLocation().begin()); + return true; +} + +void DocVisitor::endVisit(QmlJS::AST::UiPublicMember *definition) +{ + lastEndOffset = definition->lastSourceLocation().end(); +} + +bool DocVisitor::visit(QmlJS::AST::IdentifierPropertyName *idproperty) +{ + return true; +} diff --git a/tools/qdoc3/qmlvisitor.h b/tools/qdoc3/qmlvisitor.h new file mode 100644 index 0000000..01da98e --- /dev/null +++ b/tools/qdoc3/qmlvisitor.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** 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 tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DOCVISITOR_H +#define DOCVISITOR_H + +#include +#include "parser/qmljsastvisitor_p.h" +#include "node.h" +#include "tree.h" + +class DocVisitor : public QmlJS::AST::Visitor +{ +public: + DocVisitor(const QString &filePath, const QString &code, + QmlJS::Engine *engine, Tree *tree, QSet &commands); + virtual ~DocVisitor(); + + bool visit(QmlJS::AST::UiImportList *imports); + + bool visit(QmlJS::AST::UiObjectDefinition *definition); + void endVisit(QmlJS::AST::UiObjectDefinition *definition); + + bool visit(QmlJS::AST::UiPublicMember *member); + void endVisit(QmlJS::AST::UiPublicMember *definition); + + bool visit(QmlJS::AST::IdentifierPropertyName *idproperty); + +private: + QmlJS::AST::SourceLocation precedingComment(unsigned offset) const; + void applyDocumentation(QmlJS::AST::SourceLocation location, + InnerNode *node); + + QmlJS::Engine *engine; + quint32 lastEndOffset; + QString filePath; + QString name; + QString document; + QList > importList; + QSet commands; + Tree *tree; + InnerNode *current; +}; + +#endif -- cgit v0.12 From e1cde7c26b4923299b78e6165416788fbf8cd30e Mon Sep 17 00:00:00 2001 From: hawcroft Date: Thu, 25 Nov 2010 10:10:27 +1000 Subject: fix inf loop bug Task-number: QTBUG-15409 Reviewed-by: Andrew Den-Exter --- src/gui/kernel/qsound_s60.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/kernel/qsound_s60.cpp b/src/gui/kernel/qsound_s60.cpp index df2830b..accfce2 100644 --- a/src/gui/kernel/qsound_s60.cpp +++ b/src/gui/kernel/qsound_s60.cpp @@ -150,7 +150,7 @@ void QAuServerS60::playCompleted(QAuBucketS60 *bucket, int error) } else { // We don't have a way to inform about errors -> just decrement loops // in order that QSound::isFinished will return true; - while (decLoop(sound)) {} + while (decLoop(sound) > 0) {} if (staticPlayingSounds.removeAll(sound)) delete sound; } -- cgit v0.12 From b04df748d8c170a969eb6a3097cbda7a08fb3ea1 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 25 Nov 2010 10:11:01 +1000 Subject: Document KeyEvent::modifiers Task-number: QTBUG-15569 --- .../graphicsitems/qdeclarativeevents.cpp | 30 +++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativeevents.cpp b/src/declarative/graphicsitems/qdeclarativeevents.cpp index 61fd562..4b5e777 100644 --- a/src/declarative/graphicsitems/qdeclarativeevents.cpp +++ b/src/declarative/graphicsitems/qdeclarativeevents.cpp @@ -108,6 +108,34 @@ Item { so that ancestor items do not also respond to the same event. */ +/*! + \qmlproperty int KeyEvent::modifiers + + This property holds the keyboard modifier flags that existed immediately + before the event occurred. + + It contains a bitwise combination of: + \list + \o Qt.NoModifier - No modifier key is pressed. + \o Qt.ShiftModifier - A Shift key on the keyboard is pressed. + \o Qt.ControlModifier - A Ctrl key on the keyboard is pressed. + \o Qt.AltModifier - An Alt key on the keyboard is pressed. + \o Qt.MetaModifier - A Meta key on the keyboard is pressed. + \o Qt.KeypadModifier - A keypad button is pressed. + \endlist + + For example, to react to a Shift key + Enter key combination: + \qml + Item { + focus: true + Keys.onPressed: { + if ((event.key == Qt.Key_Enter) && (event.modifiers & Qt.ShiftModifier)) + doSomething(); + } + } + \endqml +*/ + /*! \qmlclass MouseEvent QDeclarativeMouseEvent @@ -199,7 +227,7 @@ Item { \qml MouseArea { onClicked: { - if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) + if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) doSomething(); } } -- cgit v0.12 From 9e353ea7a1fedd020d39e83322286931f536dc16 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 25 Nov 2010 13:36:24 +1000 Subject: End painting of Rectangle pixmap before inserting it to pixmap cache to avoid an unnecessary copy Task-number: QTBUG-15534 Reviewed-by: Martin Jones --- src/declarative/graphicsitems/qdeclarativerectangle.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp index 7686dde..dedb3f7 100644 --- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp +++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp @@ -420,6 +420,10 @@ void QDeclarativeRectangle::generateRoundedRect() p.drawRoundedRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1)), d->radius, d->radius); else p.drawRoundedRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw), d->radius, d->radius); + + // end painting before inserting pixmap + // to pixmap cache to avoid a deep copy + p.end(); QPixmapCache::insert(key, d->rectImage); } } @@ -454,6 +458,10 @@ void QDeclarativeRectangle::generateBorderedRect() p.drawRect(QRectF(qreal(pw)/2+1, qreal(pw)/2+1, d->rectImage.width()-(pw+1), d->rectImage.height()-(pw+1))); else p.drawRect(QRectF(qreal(pw)/2, qreal(pw)/2, d->rectImage.width()-pw, d->rectImage.height()-pw)); + + // end painting before inserting pixmap + // to pixmap cache to avoid a deep copy + p.end(); QPixmapCache::insert(key, d->rectImage); } } -- cgit v0.12 From bb575d308350036eff913a6b61c680712613c540 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 25 Nov 2010 14:21:11 +1000 Subject: Update visual tests Just a frame here or there, probably warranted. --- .../qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml | 2 +- .../qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml index 5cb4f78..a94aca8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml @@ -994,7 +994,7 @@ VisualTest { } Frame { msec: 3264 - hash: "10a89da9887cb4bbd812c090a8a56797" + hash: "244c12e82ee0b2528a0dbb02a8b8134a" } Mouse { type: 5 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml index 8c746bf..920a48f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml @@ -1922,7 +1922,7 @@ VisualTest { } Frame { msec: 4480 - hash: "155a834ddaa7128b6f5a2a406b340315" + hash: "16b99c9cf5297a5251869a3935084cf7" } Mouse { type: 5 @@ -2106,7 +2106,7 @@ VisualTest { } Frame { msec: 4768 - hash: "155a834ddaa7128b6f5a2a406b340315" + hash: "d315f82e175361fed83193ce550cb6e9" } Mouse { type: 5 -- cgit v0.12 From 852f4811453cb0b082748f2fcefac5898e603ab0 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 25 Nov 2010 15:33:13 +1000 Subject: Fixup visual tests on Mac Disable sub-pixel antialiasing and skip text on 10.5 --- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 8 +++++++- tools/qml/qdeclarativetester.cpp | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 2a15102..18fbfca 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -105,10 +105,16 @@ void tst_qmlvisual::visual_data() files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR)); if (qgetenv("QMLVISUAL_ALL") != "1") { #if defined(Q_WS_X11) - //Text on X11 varies per distro - and the CI system is currently using something outdated. + //Text on X11 varies per version - and the CI system is currently using something outdated. foreach(const QString &str, files.filter(QRegExp(".*text.*"))) files.removeAll(str); #endif +#if defined(Q_WS_MAC) + //Text on Mac also varies per version. Only check the text on 10.6 + if(QSysInfo::MacintoshVersion != QSysInfo::MV_10_6) + foreach(const QString &str, files.filter(QRegExp(".*text.*"))) + files.removeAll(str); +#endif #if defined(Q_WS_QWS) //We don't want QWS test results to mire down the CI system files.clear(); diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index a516fd7..e3a1f59 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -274,7 +274,16 @@ 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); } -- cgit v0.12 From d11f5011f84099a6558840118588c293605b05d4 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Thu, 25 Nov 2010 17:36:11 +1000 Subject: Update qml visual tests for mac. --- .../data-MAC/flickable-horizontal.0.png | Bin 0 -> 1439 bytes .../data-MAC/flickable-horizontal.1.png | Bin 0 -> 1424 bytes .../data-MAC/flickable-horizontal.2.png | Bin 0 -> 1428 bytes .../data-MAC/flickable-horizontal.3.png | Bin 0 -> 1396 bytes .../data-MAC/flickable-horizontal.4.png | Bin 0 -> 1454 bytes .../data-MAC/flickable-horizontal.qml | 1575 +++++++++++++++++ .../data-MAC/follow.0.png | Bin 0 -> 941 bytes .../data-MAC/follow.1.png | Bin 0 -> 975 bytes .../data-MAC/follow.2.png | Bin 0 -> 1235 bytes .../data-MAC/follow.3.png | Bin 0 -> 1225 bytes .../data-MAC/follow.4.png | Bin 0 -> 1247 bytes .../data-MAC/follow.5.png | Bin 0 -> 1243 bytes .../data-MAC/follow.6.png | Bin 0 -> 1234 bytes .../data-MAC/follow.7.png | Bin 0 -> 1242 bytes .../data-MAC/follow.qml | 1763 ++++++++++++++++++++ .../align/data-MAC/multilineAlign.0.png | Bin 2569 -> 801 bytes .../align/data-MAC/multilineAlign.qml | 118 +- .../baseline/data-MAC/parentanchor.0.png | Bin 5648 -> 1392 bytes .../baseline/data-MAC/parentanchor.qml | 60 +- .../bugs/data-MAC/QTBUG-14469.0.png | Bin 0 -> 210 bytes .../bugs/data-MAC/QTBUG-14469.1.png | Bin 0 -> 270 bytes .../qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml | 475 ++++++ .../qdeclarativetext/data-MAC/qtbug_14865.0.png | Bin 1083 -> 322 bytes .../qdeclarativetext/data-MAC/qtbug_14865.1.png | Bin 1083 -> 322 bytes .../qdeclarativetext/data-MAC/qtbug_14865.qml | 122 +- .../qdeclarativetext/elide/data-MAC/elide.0.png | Bin 1353 -> 491 bytes .../qdeclarativetext/elide/data-MAC/elide.1.png | Bin 1353 -> 491 bytes .../qdeclarativetext/elide/data-MAC/elide.qml | 130 +- .../qdeclarativetext/elide/data-MAC/elide2.0.png | Bin 3572 -> 1240 bytes .../qdeclarativetext/elide/data-MAC/elide2.1.png | Bin 3320 -> 1106 bytes .../qdeclarativetext/elide/data-MAC/elide2.2.png | Bin 2953 -> 999 bytes .../qdeclarativetext/elide/data-MAC/elide2.3.png | Bin 2386 -> 864 bytes .../qdeclarativetext/elide/data-MAC/elide2.4.png | Bin 1650 -> 703 bytes .../qdeclarativetext/elide/data-MAC/elide2.qml | 480 +++--- .../elide/data-MAC/multilength.0.png | Bin 2748 -> 791 bytes .../elide/data-MAC/multilength.1.png | Bin 3064 -> 854 bytes .../elide/data-MAC/multilength.qml | 144 +- .../qdeclarativetext/font/data-MAC/plaintext.0.png | Bin 60155 -> 14238 bytes .../font/data-MAC/plaintext2.0.png | Bin 3805 -> 1563 bytes .../font/data-MAC/plaintext3.0.png | Bin 21056 -> 6348 bytes .../qdeclarativetext/font/data-MAC/richtext.0.png | Bin 62489 -> 9321 bytes .../qdeclarativetext/font/data-MAC/richtext2.0.png | Bin 29962 -> 10663 bytes .../qdeclarativetextinput/data-MAC/echoMode.1.png | Bin 715 -> 343 bytes .../qdeclarativetextinput/data-MAC/echoMode.2.png | Bin 1295 -> 461 bytes .../qdeclarativetextinput/data-MAC/echoMode.3.png | Bin 1922 -> 539 bytes .../qdeclarativetextinput/data-MAC/echoMode.qml | 332 ++-- .../data-MAC/usingLineEdit.qml | 12 +- 47 files changed, 4512 insertions(+), 699 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.0.png new file mode 100644 index 0000000..9a81b29 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.1.png new file mode 100644 index 0000000..2d9c4fd Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.2.png new file mode 100644 index 0000000..2bb0cb0 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.3.png new file mode 100644 index 0000000..8260a65 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.4.png new file mode 100644 index 0000000..0abcbc2 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.qml new file mode 100644 index 0000000..f1bb428 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.qml @@ -0,0 +1,1575 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "flickable-horizontal.0.png" + } + Frame { + msec: 32 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 48 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 64 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 80 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 96 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 112 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 128 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 144 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 160 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 176 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 192 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 208 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 224 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 240 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 256 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 272 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 288 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 304 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 320 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 336 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 352 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 368 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 384 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 400 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 416 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 432 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 448 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 464 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 480 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 496 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 512 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 528 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 544 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 560 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 576 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 592 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 608 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 624 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 640 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 656 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 672 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 688 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 704 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 720 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 447; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 736 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 752 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 768 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 446; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 784 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 440; y: 146 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 800 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 425; y: 151 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 407; y: 157 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 816 + hash: "c92e345e4ffdb30c28d9d5aa5400bd30" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 359; y: 169 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 832 + hash: "90f94986ab44ab59618e9a5da17b8cc9" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 309; y: 181 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 848 + hash: "0154a65f8693b98576101ac1c2fc8761" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 282; y: 187 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 282; y: 187 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 864 + hash: "792c1b5267f14c891dae2348a8188a92" + } + Frame { + msec: 880 + hash: "15ce9e88d4ad2e698bf167d1432c0b8a" + } + Frame { + msec: 896 + hash: "8f4109ef4c24d286d73f689565a0d056" + } + Frame { + msec: 912 + hash: "f5728190bf5c94742686f063b4a4b09b" + } + Frame { + msec: 928 + hash: "a38c7527a9a818b7bc25466b0e4939f9" + } + Frame { + msec: 944 + hash: "ed3902455fc31a4e3232308b815a4daa" + } + Frame { + msec: 960 + hash: "a2093589363ac2d50491412e99e0193a" + } + Frame { + msec: 976 + image: "flickable-horizontal.1.png" + } + Frame { + msec: 992 + hash: "c32349580e3a9586cc1133c935607cf0" + } + Frame { + msec: 1008 + hash: "cd2068492e346eb20d50aee69e3a3559" + } + Frame { + msec: 1024 + hash: "f43a1a38894b8ffad009ba995d84b0ee" + } + Frame { + msec: 1040 + hash: "2d5c4a73df2a054801571f1ce119e31f" + } + Frame { + msec: 1056 + hash: "b8825cc6bdca8102a655d797ea41b5b1" + } + Frame { + msec: 1072 + hash: "3f0be15b85220743d004f2d54b6e137c" + } + Frame { + msec: 1088 + hash: "4b0952d33149b44ffa0a06723a4116c7" + } + Frame { + msec: 1104 + hash: "9056bda43259e92cfe56fdf394e2ca54" + } + Frame { + msec: 1120 + hash: "82ec9f09d2303e5b0b9c05b9a10a84db" + } + Frame { + msec: 1136 + hash: "751a9b3054c09d900364d7c9cac8bc2b" + } + Frame { + msec: 1152 + hash: "17dfdfef20f9da7e8b6f16df974baea9" + } + Frame { + msec: 1168 + hash: "108e6d9a5a81df32823bfd7a90a000a7" + } + Frame { + msec: 1184 + hash: "71dd0d55a3e837d3a8e4b4e318579ade" + } + Frame { + msec: 1200 + hash: "8013cdb2615bca89134ea040409af509" + } + Frame { + msec: 1216 + hash: "4b2826ad4c755690bd837994133f5fac" + } + Frame { + msec: 1232 + hash: "52d0da7f138bd37ac587a448d6402aca" + } + Frame { + msec: 1248 + hash: "e634724c5bb294d338210845bf64d2cf" + } + Frame { + msec: 1264 + hash: "59bc5f0d057ee431f289806377f19213" + } + Frame { + msec: 1280 + hash: "6ef2c5f7766c2cc77b30d636bfaa4422" + } + Frame { + msec: 1296 + hash: "578d056c3db094420dbaa51bd08ced20" + } + Frame { + msec: 1312 + hash: "14c6f7a04a52caffefa07af556ccb262" + } + Frame { + msec: 1328 + hash: "7cb63d56fec144d0509ce219fc6fe459" + } + Frame { + msec: 1344 + hash: "462dafa7f6427aecf6c28a5dcf5a10cc" + } + Frame { + msec: 1360 + hash: "45360814f985ed780a443568a91fc170" + } + Frame { + msec: 1376 + hash: "0d18ceb2436e4f7eb56a3443fab706e6" + } + Frame { + msec: 1392 + hash: "1d83f367ba9f7f1d4496208271e925ed" + } + Frame { + msec: 1408 + hash: "fdbd00ee4c122aef779df42ea53f403a" + } + Frame { + msec: 1424 + hash: "bedd1cb304efd4851813b39a746198a4" + } + Frame { + msec: 1440 + hash: "9aa7bed86efa9634466736f20ee0ab5b" + } + Frame { + msec: 1456 + hash: "00fc8186a7ae44e10195a7b13defa0d2" + } + Frame { + msec: 1472 + hash: "42d6e8e0bbed879ed63644c83e61e7bd" + } + Frame { + msec: 1488 + hash: "df074f8c210249e5ef652349479b6325" + } + Frame { + msec: 1504 + hash: "4f94020437e35cf44dd3576997990ab7" + } + Frame { + msec: 1520 + hash: "8ca6c3b4fa3be73ac35073356b680a35" + } + Frame { + msec: 1536 + hash: "c25eee1c5791383ebc59974e7754eacb" + } + Frame { + msec: 1552 + hash: "f4917ada78942428cc6b9aa5e56c013d" + } + Frame { + msec: 1568 + hash: "23e1e607101fc7260a4ac841344f5fe0" + } + Frame { + msec: 1584 + hash: "2dcc7d187d8e0493e5766efbf09ef37c" + } + Frame { + msec: 1600 + hash: "c1e5602753e80cf44d7b330140c6912e" + } + Frame { + msec: 1616 + hash: "febaf72d01a3763461b4b7d2ddd7a23e" + } + Frame { + msec: 1632 + hash: "071262b911b61576f451be25691a57cf" + } + Frame { + msec: 1648 + hash: "44705db9289fd8753b9d63e8bc963b38" + } + Frame { + msec: 1664 + hash: "0c41d7b7d36bd083abfc0b83b862cad9" + } + Frame { + msec: 1680 + hash: "0c41d7b7d36bd083abfc0b83b862cad9" + } + Frame { + msec: 1696 + hash: "071262b911b61576f451be25691a57cf" + } + Frame { + msec: 1712 + hash: "a00aa90e894b48203b0446ca287ee712" + } + Frame { + msec: 1728 + hash: "26c9ca53ee4b084c6595ad65bf4880df" + } + Frame { + msec: 1744 + hash: "f4917ada78942428cc6b9aa5e56c013d" + } + Frame { + msec: 1760 + hash: "ffedee7bf2d8099e361b8b1706b03f88" + } + Frame { + msec: 1776 + hash: "1778ef1629ce977015b641448b46634f" + } + Frame { + msec: 1792 + hash: "42d6e8e0bbed879ed63644c83e61e7bd" + } + Frame { + msec: 1808 + hash: "99e843ec69b79b79b0792e0a2f28cd1b" + } + Frame { + msec: 1824 + hash: "8b3ebca70b50a6a93823e015ea80f0f9" + } + Frame { + msec: 1840 + hash: "8eaa7f076064ce55051237b04861e408" + } + Frame { + msec: 1856 + hash: "6acc0ca5e5808d911287edfa78c8ac02" + } + Frame { + msec: 1872 + hash: "e9f05899e0b53c21f6efe834095a3ea4" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 91; y: 208 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 93; y: 209 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1888 + hash: "e9f05899e0b53c21f6efe834095a3ea4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 99; y: 210 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 108; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1904 + hash: "d2dece405f5f6ed1de2acb6615a931de" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 142; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1920 + hash: "21e0f21edc77424e8327c9a3350ecc1d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 198; y: 216 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1936 + image: "flickable-horizontal.2.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 229; y: 218 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 266; y: 220 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1952 + hash: "c10c8b0c94f899414d8b3ef0b7c97646" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 322; y: 223 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 322; y: 223 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1968 + hash: "807aff4e6c96a9d0de7fa55e233446b1" + } + Frame { + msec: 1984 + hash: "dbd02848cefacbb26f4bcb7d8f073d6c" + } + Frame { + msec: 2000 + hash: "9a60608d8ea1b39fa2d3851873f2f08e" + } + Frame { + msec: 2016 + hash: "e7b3e3a40281f63889808211d6746374" + } + Frame { + msec: 2032 + hash: "188c225c46ec00105df230bfeea09974" + } + Frame { + msec: 2048 + hash: "e2e977b42e91d8c5dee57fd8245692eb" + } + Frame { + msec: 2064 + hash: "ca2f12fb173c405f95e608858ab982ad" + } + Frame { + msec: 2080 + hash: "fa86ee5f25fa425cf2569c8ef570b9d8" + } + Frame { + msec: 2096 + hash: "9b74656866fb8c7394bbbecec6414aca" + } + Frame { + msec: 2112 + hash: "87147326d1baab174c0f9a5ccdc2cb84" + } + Frame { + msec: 2128 + hash: "c0d00f98c71bf3f8e5954b45fbab95a8" + } + Frame { + msec: 2144 + hash: "c087d1d62e56e573b55c1d8599bba8a6" + } + Frame { + msec: 2160 + hash: "dd5a94c6febdee58e8f115cb75131aaa" + } + Frame { + msec: 2176 + hash: "a7465d6137f865f512ce65ceb29533b4" + } + Frame { + msec: 2192 + hash: "409086f6bb661aab8b548fea56d7e6b1" + } + Frame { + msec: 2208 + hash: "6a22911e0fb58df31271baa463ff599d" + } + Frame { + msec: 2224 + hash: "c4f6dd30d5fdfcf91a8b29cf5c622423" + } + Frame { + msec: 2240 + hash: "5a95b83f237c7243a198a43e9a587179" + } + Frame { + msec: 2256 + hash: "d79ed290efc6dbd976d574bf0b14a6a3" + } + Frame { + msec: 2272 + hash: "a7bcb436e96d7c981852239462573495" + } + Frame { + msec: 2288 + hash: "f63cc82e351daab503e316f8b516990f" + } + Frame { + msec: 2304 + hash: "4ea63cd25a1424042ffc60549a78563c" + } + Frame { + msec: 2320 + hash: "ef0fb776012575b3b0dbf6e5f4dee571" + } + Frame { + msec: 2336 + hash: "e2508faec7737be2666d87ad715b5f74" + } + Frame { + msec: 2352 + hash: "9fe4e897c6b853f774d11817a0eb53bf" + } + Frame { + msec: 2368 + hash: "c122ce2e73cbfedcc99d649c21d91f9d" + } + Frame { + msec: 2384 + hash: "883b8b180853f1f432ae98ddfe1b6ce3" + } + Frame { + msec: 2400 + hash: "d0808284e431da60f61d571c257a3011" + } + Frame { + msec: 2416 + hash: "df90f19450bf4d9496aab987a89e3a02" + } + Frame { + msec: 2432 + hash: "5640c1e64556b90e7fbd4448fa9db462" + } + Frame { + msec: 2448 + hash: "6d9b5c2f7d0dedbbc444e69bb39fed08" + } + Frame { + msec: 2464 + hash: "485c4a8049068cf73bf22db5fd3618be" + } + Frame { + msec: 2480 + hash: "9e25da59c9e7e4cf7796902e8e2ff92a" + } + Frame { + msec: 2496 + hash: "bd45e8f2442d7c1a1b16a762bc29e7cf" + } + Frame { + msec: 2512 + hash: "ec1013d23e581dbb39b1549d2e1b3b32" + } + Frame { + msec: 2528 + hash: "1ea3c2fde8ee3a14406e027f2124d793" + } + Frame { + msec: 2544 + hash: "3c3f31a05fb2f32538872c9fa158aaab" + } + Frame { + msec: 2560 + hash: "05a84d9c55e634ec01edd2a63e13613b" + } + Frame { + msec: 2576 + hash: "0f7ccd2da58e2e73b0ab18bb681dafd5" + } + Frame { + msec: 2592 + hash: "e481ff78029f8bc4bf7c697db6824f6a" + } + Frame { + msec: 2608 + hash: "efb92b8b7a90acabeb4a8d5cae52fe3c" + } + Frame { + msec: 2624 + hash: "4728dd0fac4edf40cfd5ef5a422b4ed9" + } + Frame { + msec: 2640 + hash: "27641dcd772c979ae22d12bfbadbb67f" + } + Frame { + msec: 2656 + hash: "26268714105bc4832d336a38a859fc50" + } + Frame { + msec: 2672 + hash: "caf0d351d3b6914ca52853a30643ea48" + } + Frame { + msec: 2688 + hash: "319824b1143925162f04aaddcfaa65d9" + } + Frame { + msec: 2704 + hash: "73aa36815f34bf5e005000e7da38555e" + } + Frame { + msec: 2720 + hash: "73aa36815f34bf5e005000e7da38555e" + } + Frame { + msec: 2736 + hash: "319824b1143925162f04aaddcfaa65d9" + } + Frame { + msec: 2752 + hash: "caf0d351d3b6914ca52853a30643ea48" + } + Frame { + msec: 2768 + hash: "6608412ee80d14e13a1a05fb4716e719" + } + Frame { + msec: 2784 + hash: "f4f6f002fb76407a5120329972285dc4" + } + Frame { + msec: 2800 + hash: "474d8b566b9e4ef7dc125a8df30ccbb1" + } + Frame { + msec: 2816 + hash: "0133138f30be4ffc7f3af3d9f477c4b4" + } + Frame { + msec: 2832 + hash: "e9ee9d7d0ab9dcea3f28ae71ee19270f" + } + Frame { + msec: 2848 + hash: "9fd9eb665a42b48583bc28c6c0118799" + } + Frame { + msec: 2864 + hash: "94231107bc4a7e900fe5f4eb823bd9bf" + } + Frame { + msec: 2880 + hash: "6011b10728fb1c83f10d3c27366ea3a5" + } + Frame { + msec: 2896 + image: "flickable-horizontal.3.png" + } + Frame { + msec: 2912 + hash: "e456c5fddb5fbcb02662716f19755622" + } + Frame { + msec: 2928 + hash: "88cef15940302e2b8b43e73234fd7b9c" + } + Frame { + msec: 2944 + hash: "041aecec2b0b0d59a56e1dd26b45cab1" + } + Frame { + msec: 2960 + hash: "0d519463c713f3da46ecacd155e1a0f3" + } + Frame { + msec: 2976 + hash: "5dd0c855b97d298244fb599c9f781651" + } + Frame { + msec: 2992 + hash: "8677cec5e559e51095d89abfeda8e542" + } + Frame { + msec: 3008 + hash: "b05fb6e798ab3fed940b5ac4d88ca378" + } + Frame { + msec: 3024 + hash: "6bc9cc0d3b11ea91856296b0ec934a8b" + } + Frame { + msec: 3040 + hash: "f4e63f3af69dacbf2d1d719d4d03a266" + } + Frame { + msec: 3056 + hash: "31ab08997eb86fab062a3128aecbccb5" + } + Frame { + msec: 3072 + hash: "90736b240ba1e634bd0ea86423908e16" + } + Frame { + msec: 3088 + hash: "90736b240ba1e634bd0ea86423908e16" + } + Frame { + msec: 3104 + hash: "e74982557dc06aac572078840c7e889a" + } + Frame { + msec: 3120 + hash: "e74982557dc06aac572078840c7e889a" + } + Frame { + msec: 3136 + hash: "ca30c14c7344d1711a35c707f8804f6e" + } + Frame { + msec: 3152 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 3168 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 3184 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 3200 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 412; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3216 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 3232 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 3248 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 408; y: 214 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 407; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3264 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 403; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3280 + hash: "1991cbb0fb053937f922731d5716032c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 398; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3296 + hash: "df447575a4734bb5bd9badc6e27d98e4" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 391; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3312 + hash: "0fbfe1e0d7fb54450188398aa40690cd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 383; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3328 + hash: "cb62e60296046c73d301d7186e14faed" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 369; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3344 + hash: "909cbd1292476584554e22232cb43639" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3360 + hash: "e63b7e502dfb2834c06a969b683b9bd3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 331; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3376 + hash: "4ea63cd25a1424042ffc60549a78563c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 314; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3392 + hash: "77e39d2d4bfcacecdae4f014e4506d71" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 300; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3408 + hash: "db576eca8bad67cb8b994f12fc448969" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 288; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3424 + hash: "efeb3f616da9d78505c3c82fc34ee31c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 278; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3440 + hash: "e4f8bb02f8ac6bc40e1801cc8f360078" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 266; y: 210 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3456 + hash: "82118ef71809e3867717232c4d9c5518" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 252; y: 208 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3472 + hash: "5363451c696f6c6eb792b23d086243d7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 238; y: 208 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3488 + hash: "fe6afe8ae8a7c216a1cffc5515f273d5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 227; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3504 + hash: "9b165741d86c70380c15e15cff3fabb6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 224; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3520 + hash: "f5e176355468f4fa224d4dfcdd7525a3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 222; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3536 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Frame { + msec: 3552 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Frame { + msec: 3568 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Frame { + msec: 3584 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Frame { + msec: 3600 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Frame { + msec: 3616 + hash: "8c5a14a76e052cc6503a3e78245d1da3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 224; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3632 + hash: "f5e176355468f4fa224d4dfcdd7525a3" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 232; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3648 + hash: "acf538fce5f1b90b83474d9898b7cdd7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 246; y: 203 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3664 + hash: "5a0ee016b8732fbc36064e8a35d91215" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 265; y: 203 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3680 + hash: "8fd06a14c1de175813845ce8f07db6ec" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 292; y: 201 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3696 + hash: "26b0ff6ffda0725e0800f7ea3af510ef" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 310; y: 201 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "80443f134511be0356a687c9b542b3e7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 321; y: 199 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3728 + hash: "3eeb98a829d29b3dc52f3d145ac49d58" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 323; y: 199 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3744 + hash: "f4d43069b16f41a30e5549aae911d4cd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 324; y: 199 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3760 + hash: "661c89fa832f0abdcf4ae0c9e8e2d18f" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 324; y: 199 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3776 + hash: "661c89fa832f0abdcf4ae0c9e8e2d18f" + } + Frame { + msec: 3792 + hash: "1520f54b6c8606b9e8372c5c06180453" + } + Frame { + msec: 3808 + hash: "0fcf5e2ce47348cbb5bb485f101fe5ac" + } + Frame { + msec: 3824 + hash: "2eb070e69de07c89830543e0475fc110" + } + Frame { + msec: 3840 + hash: "d73c1059219c0655968af268d22e2c18" + } + Frame { + msec: 3856 + image: "flickable-horizontal.4.png" + } + Frame { + msec: 3872 + hash: "cc969b2c64839ca6d3b5069c0ed938d0" + } + Frame { + msec: 3888 + hash: "1f819e18d1297a1c7eeebb7b040bdef8" + } + Frame { + msec: 3904 + hash: "3643b99afbd8af0953cb39b2c8c04b9f" + } + Frame { + msec: 3920 + hash: "713fd2e2fa38ab27604cb9cae59f1777" + } + Frame { + msec: 3936 + hash: "e2508faec7737be2666d87ad715b5f74" + } + Frame { + msec: 3952 + hash: "fc33b1c7479caeff676ffd885a18d618" + } + Frame { + msec: 3968 + hash: "aca01143db4f870a56bb7546e84cbc5e" + } + Frame { + msec: 3984 + hash: "442b58c39fd3745c61a1eb5043fcbb53" + } + Frame { + msec: 4000 + hash: "7983d7183cc11d6819fa0a006c2d67b4" + } + Frame { + msec: 4016 + hash: "9fe4e897c6b853f774d11817a0eb53bf" + } + Frame { + msec: 4032 + hash: "43f528c81ccfa5b9921dfa3564a24c68" + } + Frame { + msec: 4048 + hash: "dfe04ff0b3ccf205bb38beeab58a4411" + } + Frame { + msec: 4064 + hash: "32ff30b50b500e9feb51e8eef205783c" + } + Frame { + msec: 4080 + hash: "7d83ab4c336b05bcf2cde4e7d8031f6c" + } + Frame { + msec: 4096 + hash: "c92e345e4ffdb30c28d9d5aa5400bd30" + } + Frame { + msec: 4112 + hash: "02eec604d0c00965aae4ac61b91bdc22" + } + Frame { + msec: 4128 + hash: "df447575a4734bb5bd9badc6e27d98e4" + } + Frame { + msec: 4144 + hash: "bac10d8f94a39573313b3b8b2f871c49" + } + Frame { + msec: 4160 + hash: "e5944c5dc6dec8f0c28b7ec3cd58723d" + } + Frame { + msec: 4176 + hash: "1991cbb0fb053937f922731d5716032c" + } + Frame { + msec: 4192 + hash: "50d6538bcaffc343f6626635a3e5899c" + } + Frame { + msec: 4208 + hash: "f3613f57cdb9ed38d8e3fa636962aa99" + } + Frame { + msec: 4224 + hash: "10a89da9887cb4bbd812c090a8a56797" + } + Frame { + msec: 4240 + hash: "89ba74d46970ad2edff701475c059ec8" + } + Frame { + msec: 4256 + hash: "6e8b84c70e81578a2216e9e975b35434" + } + Frame { + msec: 4272 + hash: "6e8b84c70e81578a2216e9e975b35434" + } + Frame { + msec: 4288 + hash: "883b8b180853f1f432ae98ddfe1b6ce3" + } + Frame { + msec: 4304 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4320 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4336 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4352 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4368 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4384 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4400 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4416 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4432 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4448 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4464 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4480 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4496 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4512 + hash: "e616110d39009f0d636b816828cc0ccb" + } + Frame { + msec: 4528 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4544 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4560 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4576 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4592 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4608 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4624 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4640 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4656 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4672 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4688 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } + Frame { + msec: 4704 + hash: "244c12e82ee0b2528a0dbb02a8b8134a" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.0.png new file mode 100644 index 0000000..8714f58 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.1.png new file mode 100644 index 0000000..05e4a98 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.2.png new file mode 100644 index 0000000..29df073 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.3.png new file mode 100644 index 0000000..b38486e Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.4.png new file mode 100644 index 0000000..4de915b Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.5.png new file mode 100644 index 0000000..61a4684 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.6.png new file mode 100644 index 0000000..4ce5e30 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.7.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.7.png new file mode 100644 index 0000000..2376b13 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.qml new file mode 100644 index 0000000..893355b --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.qml @@ -0,0 +1,1763 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "follow.0.png" + } + Frame { + msec: 32 + hash: "e94ba580322887dbbbf9cb6309e39c23" + } + Frame { + msec: 48 + hash: "787a59cda2c0b27d8959026e6d1b9427" + } + Frame { + msec: 64 + hash: "9ca724d4b31aa16015b5cbb50eea0c3a" + } + Frame { + msec: 80 + hash: "8a2c62a0190da1b7c1bade243baea6b8" + } + Frame { + msec: 96 + hash: "e129bebca7ad348c3134569d8eee4efc" + } + Frame { + msec: 112 + hash: "fd6387415e1c02fe6d17d9c3aa1d1ed8" + } + Frame { + msec: 128 + hash: "a82a4042fdca7c30facd2c4740c455f7" + } + Frame { + msec: 144 + hash: "62195722eb3acbfbad137ec71fd50bfe" + } + Frame { + msec: 160 + hash: "449819cdc880d59650732b5447ec6237" + } + Frame { + msec: 176 + hash: "552a838ebcacc0e08fa93b64a2433831" + } + Frame { + msec: 192 + hash: "3984992606d54f05eb31dd0974af2183" + } + Frame { + msec: 208 + hash: "3fd7225bbb0215ca8b6397580f2352a5" + } + Frame { + msec: 224 + hash: "0fd8f26f40a9049de1cf2a9493d579d1" + } + Frame { + msec: 240 + hash: "d08f0c57f071dc42e79fc5e0e3c32eeb" + } + Frame { + msec: 256 + hash: "084c2db330ee82cd032df248ecc9629d" + } + Frame { + msec: 272 + hash: "98da0d7f280d7fc4579c970c9a173b51" + } + Frame { + msec: 288 + hash: "4c819c54ced1b6ef0574417a7e11f2e7" + } + Frame { + msec: 304 + hash: "3dc5f7b412cb176c3b23d37cda3ef87c" + } + Frame { + msec: 320 + hash: "c368a01b43d94205c03f9c750c37f330" + } + Frame { + msec: 336 + hash: "8842bd0c8b17cac4fc9df84835999174" + } + Frame { + msec: 352 + hash: "26829e9c7ca44dfcb0c03852f4158a18" + } + Frame { + msec: 368 + hash: "ecffdb0888f1721e27b163e1f29a1950" + } + Frame { + msec: 384 + hash: "eaead96f2683c464a12df8aadba20691" + } + Frame { + msec: 400 + hash: "1e931963925bd208dce1ec9011372a3b" + } + Frame { + msec: 416 + hash: "1c3fd049001c1e883f21d0d1e0e32cba" + } + Frame { + msec: 432 + hash: "e8c3422ca637750ac52565594737d092" + } + Frame { + msec: 448 + hash: "b1c36322cf89e15a80af7c43f2aebca1" + } + Frame { + msec: 464 + hash: "f676c3171495f7bb2cb1812cfebaa17a" + } + Frame { + msec: 480 + hash: "255119e2efa99c8e31fee611aaaa5137" + } + Frame { + msec: 496 + hash: "e0bd32e3d44cfc2351db105f4595f18a" + } + Frame { + msec: 512 + hash: "b7f23b8f3769f929b42491efda7ebe19" + } + Frame { + msec: 528 + hash: "718cee11d869a8a8c5191cc0c09f2d30" + } + Frame { + msec: 544 + hash: "fbdbf92f8c5f507605ff50abc594682b" + } + Frame { + msec: 560 + hash: "c07fdc69c72b40d3c8dd1cc499008888" + } + Frame { + msec: 576 + hash: "38e17ecd537dc0f51211ad672a2ebb21" + } + Frame { + msec: 592 + hash: "2cbdc8728ef779c62f9938672986658a" + } + Frame { + msec: 608 + hash: "7fb66509d5d1df34861e9c70f9a579f0" + } + Frame { + msec: 624 + hash: "410b89392e859058718a08b79ec3d8fa" + } + Frame { + msec: 640 + hash: "9bd90f80700217d08dafed93b81ee9cf" + } + Frame { + msec: 656 + hash: "6d83671504a4274887b4e0d9bd2b24e7" + } + Frame { + msec: 672 + hash: "51ff7bd3fd4a776af33fce7b935b145c" + } + Frame { + msec: 688 + hash: "20f27392368b63b248bcd455cf3c9106" + } + Frame { + msec: 704 + hash: "1a5ab296bd55aa215c9b04a7ff6c73a1" + } + Frame { + msec: 720 + hash: "020fd7b14e8662fc006b0c39adca7c6a" + } + Frame { + msec: 736 + hash: "2619120bdb25a153963bdf05c4a16d44" + } + Frame { + msec: 752 + hash: "fd321314031efeb9ce71146764289d9f" + } + Frame { + msec: 768 + hash: "378a71f09445dfff284db919787cbf87" + } + Frame { + msec: 784 + hash: "d59eefe82ab8a00c903141dd9ea767ef" + } + Frame { + msec: 800 + hash: "0a65004d69a4567f2a5c7e84dab3a905" + } + Frame { + msec: 816 + hash: "92a4631716a51ff484ca14d9cfe05b2e" + } + Frame { + msec: 832 + hash: "87203f627cf410cad56d6ba38a140efa" + } + Frame { + msec: 848 + hash: "054cc085998cc059a6b7b4a7300dd36b" + } + Frame { + msec: 864 + hash: "af3fefeb908a0485c723d36f61eff0a4" + } + Frame { + msec: 880 + hash: "3f905d1e1ea79858b5a9bbfeab4eb255" + } + Frame { + msec: 896 + hash: "f935f1fc5f26a201098d894fca9a4d1f" + } + Frame { + msec: 912 + hash: "42b003dbb531da514716b9c32bdd3614" + } + Frame { + msec: 928 + hash: "a82fed83ee4efee7896b639c7691b13a" + } + Frame { + msec: 944 + hash: "31ad8cbf875233ea495330b0d3d4d2dd" + } + Frame { + msec: 960 + hash: "00586f2f1d49fa81f90f7b06614311b4" + } + Frame { + msec: 976 + image: "follow.1.png" + } + Frame { + msec: 992 + hash: "5d71ff48b865ad4266eb8292f981b04e" + } + Frame { + msec: 1008 + hash: "df599d934d131c92b209284277009efb" + } + Frame { + msec: 1024 + hash: "5aaf33d11eb70ffdfe89246c637caed7" + } + Frame { + msec: 1040 + hash: "9648cf623a66ded145c4fd23a42917b3" + } + Frame { + msec: 1056 + hash: "9d33c2cc44ceac5a527ddcf809a51df6" + } + Frame { + msec: 1072 + hash: "6d0ad2e0d012e53a03e246e6d5e49e13" + } + Frame { + msec: 1088 + hash: "d33fa68796e38b19f44571d11c1bcd33" + } + Frame { + msec: 1104 + hash: "636680f49bbf30b0fac31a6c581f18dd" + } + Frame { + msec: 1120 + hash: "66801dbc39301e6b46b244fe502e0340" + } + Frame { + msec: 1136 + hash: "f8fa6a033483279e78636f26493b10ac" + } + Frame { + msec: 1152 + hash: "11b46611550173df42986dee4339d907" + } + Frame { + msec: 1168 + hash: "5c9afdb519006079ee8d28b2b60d0b76" + } + Frame { + msec: 1184 + hash: "9a55c38b2cd8abf25fbe448c7ef80971" + } + Frame { + msec: 1200 + hash: "27ebdf1424e892b35c93ec009d942407" + } + Frame { + msec: 1216 + hash: "2d9e3f0ae56f7337012b51c4dd173108" + } + Frame { + msec: 1232 + hash: "e6f89ca892131d68ff1f4ca95c95d807" + } + Frame { + msec: 1248 + hash: "f75791f1b12a217d37acb09bdb114cc5" + } + Frame { + msec: 1264 + hash: "94c5ab1460fb1b0f957a9718b45bca36" + } + Frame { + msec: 1280 + hash: "e246c8a0ec3d01ea20258b24a5673fe1" + } + Frame { + msec: 1296 + hash: "529de7735e73409dff266d8c1275215c" + } + Frame { + msec: 1312 + hash: "330400763a670580570cb62241ebec62" + } + Frame { + msec: 1328 + hash: "ae444d1de9c509fc6f74136ca90f927a" + } + Frame { + msec: 1344 + hash: "c43631ca8ee90ea5dc7664be5bc45429" + } + Frame { + msec: 1360 + hash: "b366ac4a5b66c331a7667e9df0fc4eda" + } + Frame { + msec: 1376 + hash: "1c7f4c47a9c57a34787cc9703e99bff1" + } + Frame { + msec: 1392 + hash: "5555535609d512e8d34549b6624f74b8" + } + Frame { + msec: 1408 + hash: "be59df714541923494b59f31f57e310e" + } + Frame { + msec: 1424 + hash: "63e434f053032e54298f6e61c8d4da7d" + } + Frame { + msec: 1440 + hash: "b0bb838637eceb6f8993ebc5b887afed" + } + Frame { + msec: 1456 + hash: "fc39f33add4ebcaf578558ecd4aea281" + } + Frame { + msec: 1472 + hash: "3f36faa7cc1e5898d4d5890c47633ff3" + } + Frame { + msec: 1488 + hash: "4b328002b4461869b1f7de48e7291902" + } + Frame { + msec: 1504 + hash: "26252c63924d2abcaebea2c7caf1d7aa" + } + Frame { + msec: 1520 + hash: "a9a6023484ae439be86b2c2ff59dc40b" + } + Frame { + msec: 1536 + hash: "620dab11bd4aab84cc0d949c48dd9a5d" + } + Frame { + msec: 1552 + hash: "3b45ef80ee3e6fbbd3533bfa0d666e2f" + } + Frame { + msec: 1568 + hash: "b33306abcb6a8402e491b7216495c778" + } + Frame { + msec: 1584 + hash: "3cc52e8649a02e87785f1dc63f5c1efd" + } + Frame { + msec: 1600 + hash: "fe21141f48da685213ed9d7641b2e7a0" + } + Frame { + msec: 1616 + hash: "205aac4e822e20bd32f637256250f3c8" + } + Frame { + msec: 1632 + hash: "124df0948f36aaf6151556d301f4b930" + } + Frame { + msec: 1648 + hash: "c1701edd5eaf143fd1dbdc4a5324b48a" + } + Frame { + msec: 1664 + hash: "117402df55367c918a3835958f4ab1d6" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 195; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1680 + hash: "73e3b86a1da28490cae4b03fdceefe19" + } + Frame { + msec: 1696 + hash: "172e329fb47d6db0180242990a84fe3b" + } + Frame { + msec: 1712 + hash: "82cf704cdfd406bab22689bc888ddc8d" + } + Frame { + msec: 1728 + hash: "4c288f198a06d1b2815d34c3c8f97051" + } + Frame { + msec: 1744 + hash: "6404d81456bb95a6b1c1ae55a181e40e" + } + Frame { + msec: 1760 + hash: "6c11b9f079936ea08d11aa1172bfd954" + } + Frame { + msec: 1776 + hash: "95388037c1f79a9dab951031f1d7c307" + } + Frame { + msec: 1792 + hash: "c4ee57d9bffbb5f0ff173db48eadf2e3" + } + Frame { + msec: 1808 + hash: "703ac9672a9c55cf08e6381ef76ac13c" + } + Frame { + msec: 1824 + hash: "ea7726d2a2923290398262c8f70d511e" + } + Frame { + msec: 1840 + hash: "9897c12603326a30c62381015c9adae3" + } + Frame { + msec: 1856 + hash: "a52aa37b10a05382f1b136896b7e00e8" + } + Frame { + msec: 1872 + hash: "a5acc1a45c95a67725e5e15084b7be18" + } + Frame { + msec: 1888 + hash: "c9fac8b5a4110493958d49b073ea96ed" + } + Frame { + msec: 1904 + hash: "6fca3a5c6d1cfbf1b905aca25b7785c5" + } + Frame { + msec: 1920 + hash: "a40e5e2744d1d84c8b9a45525801a745" + } + Frame { + msec: 1936 + image: "follow.2.png" + } + Frame { + msec: 1952 + hash: "b2f980ab19d44ee98ab3e82a19adfe2d" + } + Frame { + msec: 1968 + hash: "e01732623930aebefd76ab62c81dc722" + } + Frame { + msec: 1984 + hash: "3a59c6851bc89eb31100092b1ceddbd9" + } + Frame { + msec: 2000 + hash: "2949de19eacb9f35816aa7ba69614f2c" + } + Frame { + msec: 2016 + hash: "f2c4c1f4429cbb6bd10f2318b2cb6904" + } + Frame { + msec: 2032 + hash: "2c48af64162e7e028cd536dba03eab71" + } + Frame { + msec: 2048 + hash: "7fe13b8f9253f720b6591b396cfba2d1" + } + Frame { + msec: 2064 + hash: "559947a03e650575a764801366cc504b" + } + Frame { + msec: 2080 + hash: "a8d09f6c862fd5ec2dcf34f06d1ef744" + } + Frame { + msec: 2096 + hash: "e3bb4b62209631ff84134f2243bfdb42" + } + Frame { + msec: 2112 + hash: "a1956a9d1939bc154ea0c88d596948cc" + } + Frame { + msec: 2128 + hash: "c98a375727860da1e827d4dd74af8f63" + } + Frame { + msec: 2144 + hash: "df4edcbb2ef5348341ff55c808609b6c" + } + Frame { + msec: 2160 + hash: "6287564be85b7cbadc6bb6f0232bc837" + } + Frame { + msec: 2176 + hash: "9826fdb48f7ea770fa5f198ec49d7cb7" + } + Frame { + msec: 2192 + hash: "56f82641a5591df9bb929cc0d32eb95d" + } + Frame { + msec: 2208 + hash: "526c55e555fb2e58796561efa3568c50" + } + Frame { + msec: 2224 + hash: "6b4b74613421c1841a17c369cb316754" + } + Frame { + msec: 2240 + hash: "37f785c30947d5eec113dcf6af649abf" + } + Frame { + msec: 2256 + hash: "5ff2c975dd9e261c764537c836627c4d" + } + Frame { + msec: 2272 + hash: "efe554981583749c3d09988bce7fed02" + } + Frame { + msec: 2288 + hash: "0f7204b4afb0ea5d58e49650e8027c0c" + } + Frame { + msec: 2304 + hash: "817291f91f4b309710ad3aed53a7d47a" + } + Frame { + msec: 2320 + hash: "c15c9cd03089090cf8a777c1f0d88de7" + } + Frame { + msec: 2336 + hash: "05f45cb8d0856dcc81091351615e35d6" + } + Frame { + msec: 2352 + hash: "99785a16fed6d6409b4b47ec55afb56b" + } + Frame { + msec: 2368 + hash: "39032cb4432ee9536af500673fccf526" + } + Frame { + msec: 2384 + hash: "9057653e3cd6042831037d3590e7595b" + } + Frame { + msec: 2400 + hash: "76c772eb2ab8f117c260c9c96bc99e1d" + } + Frame { + msec: 2416 + hash: "b6474665b8f8bcdd76d1a38efecad889" + } + Frame { + msec: 2432 + hash: "106c2d2efafad0181e3ded3a6805f2c6" + } + Frame { + msec: 2448 + hash: "5275fa4ffef6c1909f9d03bb1e7b9cae" + } + Frame { + msec: 2464 + hash: "0c1043c0087d60000dc7259d4ac03618" + } + Frame { + msec: 2480 + hash: "645748569b4f5cb9b206b0808bb7d23d" + } + Frame { + msec: 2496 + hash: "dd95dfa80e1b3ff511e7c75efd0d87ce" + } + Frame { + msec: 2512 + hash: "86b3dd03b04d7610837cdc67cad07e0a" + } + Frame { + msec: 2528 + hash: "8264f67ac92e4ebcfe4cc8e954f8c5d2" + } + Frame { + msec: 2544 + hash: "6bf52377d822b09eb28a1ec36d3a36a9" + } + Frame { + msec: 2560 + hash: "7ae1d65cdaf7fa71eb4ec318b37bb0aa" + } + Frame { + msec: 2576 + hash: "860f5ce9844c90cf9e6a6d383ff0972f" + } + Frame { + msec: 2592 + hash: "5502229c038dfc59d966f69ae6ed8957" + } + Frame { + msec: 2608 + hash: "21843c027bc1434ae60b3bb0fced2c54" + } + Frame { + msec: 2624 + hash: "962df45680949c3eb6c968f98cd76b20" + } + Frame { + msec: 2640 + hash: "f313c26fa76a0edce61244bdf92528e4" + } + Frame { + msec: 2656 + hash: "b7bbde239e98cbd66b1e51b54b747f51" + } + Frame { + msec: 2672 + hash: "62340707fbc832fcb805c8f80ab353d1" + } + Frame { + msec: 2688 + hash: "d008a3f7af1810ff70b68b38a4cd0f0d" + } + Frame { + msec: 2704 + hash: "e651dd628af24faf34d716beb392b052" + } + Frame { + msec: 2720 + hash: "a97733963c7a7616b25741545b07ffba" + } + Frame { + msec: 2736 + hash: "3e017cc1db720cf16521bd17308e4f44" + } + Frame { + msec: 2752 + hash: "13652ebaa610cca71486517e2eed21a5" + } + Frame { + msec: 2768 + hash: "09f0f500c6f7d11be39c31f9e589b38a" + } + Frame { + msec: 2784 + hash: "b87968cbc60ddc6a5f5699e830410eab" + } + Frame { + msec: 2800 + hash: "50e65b043d1f07a321a08ee4c25204f6" + } + Frame { + msec: 2816 + hash: "122d1ffa1510468e8c4067e0f511588f" + } + Frame { + msec: 2832 + hash: "585f6c25caaafb99a22a23d8a998d202" + } + Frame { + msec: 2848 + hash: "9b245a00ad576666c10f509d8a80a61e" + } + Frame { + msec: 2864 + hash: "9b245a00ad576666c10f509d8a80a61e" + } + Frame { + msec: 2880 + hash: "3c5d3d10bacc093afc6a9c0b5aa4cddc" + } + Frame { + msec: 2896 + image: "follow.3.png" + } + Frame { + msec: 2912 + hash: "31926d69c2309fdf13fbd7f0e9868c3d" + } + Frame { + msec: 2928 + hash: "eb3acacce5dd31b0e94b59b9e546ccae" + } + Frame { + msec: 2944 + hash: "9a51cff3276d75803a0a6e480f7ecb70" + } + Frame { + msec: 2960 + hash: "fbbd8b9d519993a699815d935bcd2b9f" + } + Frame { + msec: 2976 + hash: "0314190c6de73f9f374a4eaed0709645" + } + Frame { + msec: 2992 + hash: "8ca1a203bdb5446094eb948aeb0a333e" + } + Frame { + msec: 3008 + hash: "301e1b86ce38e11ad9d0d7aba0909985" + } + Frame { + msec: 3024 + hash: "922095867d0a91b73ab7a63df2041279" + } + Frame { + msec: 3040 + hash: "ba8275f3ba4633bf64a1f81f630c90f1" + } + Frame { + msec: 3056 + hash: "efe39545279a7bd015d2de75d2b9d8b1" + } + Frame { + msec: 3072 + hash: "78926c3c0c6fcf89b9291f9902710964" + } + Frame { + msec: 3088 + hash: "ea63dcb7f00d3ddede0d8be59ad9d6bc" + } + Frame { + msec: 3104 + hash: "286ad493301b713a49e378f123482a53" + } + Frame { + msec: 3120 + hash: "a4bbbb8bb88188d3e99996502e3eebd1" + } + Frame { + msec: 3136 + hash: "a6100e79f3dc5af594e86ab6cd8dfb76" + } + Frame { + msec: 3152 + hash: "d9e3f777dc89bcf1b7f712206db768e2" + } + Frame { + msec: 3168 + hash: "768045c600c0aa0b1e9e6f012733c600" + } + Frame { + msec: 3184 + hash: "d8b4caa641ddee786f7898359efe9d07" + } + Frame { + msec: 3200 + hash: "f7c3b76d5bb7c263ac9447eaad685158" + } + Frame { + msec: 3216 + hash: "f7f97db815d653ec29fa31b87f72af2a" + } + Frame { + msec: 3232 + hash: "18524623762487b60943312cd8bd4388" + } + Frame { + msec: 3248 + hash: "5823dee5dd56e9f7515601f9629ccbae" + } + Frame { + msec: 3264 + hash: "5823dee5dd56e9f7515601f9629ccbae" + } + Frame { + msec: 3280 + hash: "5823dee5dd56e9f7515601f9629ccbae" + } + Frame { + msec: 3296 + hash: "5823dee5dd56e9f7515601f9629ccbae" + } + Frame { + msec: 3312 + hash: "18524623762487b60943312cd8bd4388" + } + Frame { + msec: 3328 + hash: "430995770b655054aaeda383df8e27f7" + } + Frame { + msec: 3344 + hash: "16a3a00f2b89aed676f80d63c4933ec3" + } + Frame { + msec: 3360 + hash: "6c55aa62079ec546522edbf69c37b270" + } + Frame { + msec: 3376 + hash: "0d68ca3ccecdd831013950cc7405e46e" + } + Frame { + msec: 3392 + hash: "9da2511bc8b434218695fa74ed543439" + } + Frame { + msec: 3408 + hash: "05afdd0b99dab81a500cdc2b2f0786fe" + } + Frame { + msec: 3424 + hash: "e6f8882d146ae60bcc6ea47ff41a637b" + } + Frame { + msec: 3440 + hash: "154542ed0e88321294f382501819aefc" + } + Frame { + msec: 3456 + hash: "8f47b6980c387c5020145bf04645fd2d" + } + Frame { + msec: 3472 + hash: "b34b055c7602f1f4e1cde875b258120c" + } + Frame { + msec: 3488 + hash: "5a697f675575f05e297d4877604b9a47" + } + Frame { + msec: 3504 + hash: "729dff1d1b357d19fc81804ec8940d0e" + } + Frame { + msec: 3520 + hash: "c6f3fee46baa94a6139d2ee40254b160" + } + Frame { + msec: 3536 + hash: "af0e700bb8ae34834510830f8b44afdb" + } + Frame { + msec: 3552 + hash: "9c87bb54c2dfe58c2da9194dae6f7502" + } + Frame { + msec: 3568 + hash: "2132356a92c75d725f9feafb8201b142" + } + Frame { + msec: 3584 + hash: "50d855d2595eeae2bfd6aaa8c2fa0454" + } + Frame { + msec: 3600 + hash: "5fde3c62d6e53a9056e3586f9dcda59e" + } + Frame { + msec: 3616 + hash: "8f04460254a1e9fb949d5165894cd92a" + } + Frame { + msec: 3632 + hash: "2b514c5e3b20d30f9c7e71092c69f081" + } + Frame { + msec: 3648 + hash: "2c1ba6224037790e15f5c0f2864ace4d" + } + Frame { + msec: 3664 + hash: "0d5b8e7bd5f560888aacaf2b3c6827a8" + } + Frame { + msec: 3680 + hash: "ae25004530e7df134414018e4a34780e" + } + Frame { + msec: 3696 + hash: "1a8fd9eaf9a91f1b42924f8986fbed9a" + } + Frame { + msec: 3712 + hash: "2ea6de2025d40ed5beeff12a5b70ccc9" + } + Frame { + msec: 3728 + hash: "624e417718d3cac1e4b7e4ce258ce6ea" + } + Frame { + msec: 3744 + hash: "8b56d29391257c7be8966af6be26ea9f" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 195; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3760 + hash: "5c0d977d8b446d9191bde57335cf1062" + } + Frame { + msec: 3776 + hash: "100be2b21d069e3a5dbb694a90da4d4f" + } + Frame { + msec: 3792 + hash: "caab03f6c81080dd8fdbedb4e94ae4a5" + } + Frame { + msec: 3808 + hash: "3328a4d06f2f80a7e9ccf2ff21522fca" + } + Frame { + msec: 3824 + hash: "a534e6cc28daf3eff6a9cf8379bd6375" + } + Frame { + msec: 3840 + hash: "6686f9c1a814c6a6b785b70f94937b68" + } + Frame { + msec: 3856 + image: "follow.4.png" + } + Frame { + msec: 3872 + hash: "d3f1c3593375ca5c022a1361a7ec70bd" + } + Frame { + msec: 3888 + hash: "67843e6192e2ecaa3820c37dc2f93106" + } + Frame { + msec: 3904 + hash: "19a022f678e5b8f4ebdff936162323dc" + } + Frame { + msec: 3920 + hash: "34e55ae70c9e156db339ae15642359c3" + } + Frame { + msec: 3936 + hash: "3784778c817f9d9bb73d990cfe12685a" + } + Frame { + msec: 3952 + hash: "0403fdf79e3ba339c7e3786db0c9c0f0" + } + Frame { + msec: 3968 + hash: "93e4a0d5645d1cfc916f1e8422655555" + } + Frame { + msec: 3984 + hash: "29080bfabb87160b7c51385fb36b474b" + } + Frame { + msec: 4000 + hash: "9da2d83edc9d35f00fb8a159e79de4d9" + } + Frame { + msec: 4016 + hash: "5505a42d4788f00cfc7499fbfda851ce" + } + Frame { + msec: 4032 + hash: "bdd3040ab16fa9ffdd2fbc66b06699f8" + } + Frame { + msec: 4048 + hash: "2a347e30a20c693a9440caa60ade0a0f" + } + Frame { + msec: 4064 + hash: "0307f1857c091a639d47f112ce1a2f5a" + } + Frame { + msec: 4080 + hash: "778d18e539bbd562ebe39283a6315df1" + } + Frame { + msec: 4096 + hash: "0369cf6c3d1f5db2e92ee1f7c5d3b8ed" + } + Frame { + msec: 4112 + hash: "9f7413587ab50f1abf776bf180ec2d6f" + } + Frame { + msec: 4128 + hash: "7d04a27236485808e571e8a39f23ea17" + } + Frame { + msec: 4144 + hash: "a1dff63b723473d5a4c9c59975a2fb81" + } + Frame { + msec: 4160 + hash: "9795ea70a3b9d3b7805221a58c19e5da" + } + Frame { + msec: 4176 + hash: "f1392c489e21107136eb8e0d1e8b427e" + } + Frame { + msec: 4192 + hash: "95c225ef07171a96335e99078195b06a" + } + Frame { + msec: 4208 + hash: "d46ef3e7f9cec06e8c18afc0d07be4f3" + } + Frame { + msec: 4224 + hash: "b017f5b51d423bb0fca0d6df3aaded8b" + } + Frame { + msec: 4240 + hash: "60584d085b0cd6fbc436773be678597e" + } + Frame { + msec: 4256 + hash: "117951465dfd5c386826b295560d2dec" + } + Frame { + msec: 4272 + hash: "1b70137da5f4e024593999e93121fe8b" + } + Frame { + msec: 4288 + hash: "bd50dffd41941fef127f39b55c4748e0" + } + Frame { + msec: 4304 + hash: "8eec34d8e1d2e22d11b85a671cd4d3aa" + } + Frame { + msec: 4320 + hash: "9e3c97cfad5002ef5f3fcc365aeb7bd0" + } + Frame { + msec: 4336 + hash: "28e1cf1ee033915ea2ee39c9ab00a73d" + } + Frame { + msec: 4352 + hash: "99101a156a553f441f00221f6facbf1f" + } + Frame { + msec: 4368 + hash: "419023e5d59d16c26b35bee7d3cea559" + } + Frame { + msec: 4384 + hash: "485d23519293975b04031fe4baa5c276" + } + Frame { + msec: 4400 + hash: "c8bc60735e0ede26dbaf228294853f9a" + } + Frame { + msec: 4416 + hash: "ada3680b807d59843e3adf6640704066" + } + Frame { + msec: 4432 + hash: "3e28f3adf9241512cd0d6918d81ffffb" + } + Frame { + msec: 4448 + hash: "8f339acc33cbc89ae1c62391ce021bb3" + } + Frame { + msec: 4464 + hash: "d303960c0853a90557d64a04b8283c94" + } + Frame { + msec: 4480 + hash: "f907dbdacf2cfa9fdf8f9c8dead5b4c4" + } + Frame { + msec: 4496 + hash: "30c6e6f283f4a3f538cdda9c2e92de8c" + } + Frame { + msec: 4512 + hash: "04d2ac55774b43107a43a7d33764199b" + } + Frame { + msec: 4528 + hash: "cddf3e111cbc59e721725daa1d8a0c31" + } + Frame { + msec: 4544 + hash: "15b1b63cd1695207ebf9f04387be0739" + } + Frame { + msec: 4560 + hash: "690769b9bbe86a3c5b1fbdee39615fbd" + } + Frame { + msec: 4576 + hash: "2bd640d8ddbf878d808f22656fef1ed9" + } + Frame { + msec: 4592 + hash: "a654f1e4519bf883d554276ebbe96323" + } + Frame { + msec: 4608 + hash: "68f0313cfc3f51a0bb9b47c5407c19b6" + } + Frame { + msec: 4624 + hash: "77f29806b084de4cabf7ab9bf1a93d5e" + } + Frame { + msec: 4640 + hash: "f9991189e3282d107b98fb0ae5f5ef00" + } + Frame { + msec: 4656 + hash: "0cd1f2f6e347d48feea1b26a4968dec7" + } + Frame { + msec: 4672 + hash: "e75a6f6a088e2289042572a161ffb0e9" + } + Frame { + msec: 4688 + hash: "5a541081444c0a71128223a4c4c3144c" + } + Frame { + msec: 4704 + hash: "6813d442cc610f346a5441ed0cd723e5" + } + Frame { + msec: 4720 + hash: "24ec539bc57899819915f833f26deacd" + } + Frame { + msec: 4736 + hash: "3a7ed1b4b533b817674aa141c420cd61" + } + Frame { + msec: 4752 + hash: "d0a643fae97bb152e97ca60e96299003" + } + Frame { + msec: 4768 + hash: "c84093931520f4661eff6645091a294b" + } + Frame { + msec: 4784 + hash: "81e7ceaece82505a4a16ead195a66162" + } + Frame { + msec: 4800 + hash: "315764d20b647f6ab1ba30239a69bf72" + } + Frame { + msec: 4816 + image: "follow.5.png" + } + Frame { + msec: 4832 + hash: "d1824ced8af34ad9edb36a58ae9aa7f5" + } + Frame { + msec: 4848 + hash: "167b9a49fbb94908e09e7e9c9147cd8b" + } + Frame { + msec: 4864 + hash: "442d5f0906840de526d59a80ada322c0" + } + Frame { + msec: 4880 + hash: "78206c4d4d23c7c1ba888b9062b09432" + } + Frame { + msec: 4896 + hash: "e898202cfebbff1952efc6e01254d855" + } + Frame { + msec: 4912 + hash: "ab31dc7bbad2b0552359866bb8d92f0c" + } + Frame { + msec: 4928 + hash: "f093304e88964376baf9721d53d4fb49" + } + Frame { + msec: 4944 + hash: "3ef76f3e1c44d13c3a469bd192ff7b5d" + } + Frame { + msec: 4960 + hash: "5d3b6d0d91f8cc5b89e39407bc3b5a15" + } + Frame { + msec: 4976 + hash: "3c73573f12f49b34e1d990a55ad913fa" + } + Frame { + msec: 4992 + hash: "d1bac071b01a1c6fddab90cdc435fad4" + } + Frame { + msec: 5008 + hash: "36a219aadec910f1dbef616c641e1d2b" + } + Frame { + msec: 5024 + hash: "5871fc67d361cc988551592ee21dfb23" + } + Frame { + msec: 5040 + hash: "6e65ee6c814b9a9da205c36925e663bf" + } + Frame { + msec: 5056 + hash: "290b20fa8e91d34000d7c2d81745f6d2" + } + Frame { + msec: 5072 + hash: "19e7405a9083a8143f7bb040f8837b29" + } + Frame { + msec: 5088 + hash: "c0a0fa2b4c1ceb6c70594994a1ac8713" + } + Frame { + msec: 5104 + hash: "c236224c16743fb606deb78bcb8afc8d" + } + Frame { + msec: 5120 + hash: "7d44db15eb300b4338ffc26e9bcfce20" + } + Frame { + msec: 5136 + hash: "067a79148a194c45c6f32d85316a1e11" + } + Frame { + msec: 5152 + hash: "9075c379044476994a87f0fdcce8e332" + } + Frame { + msec: 5168 + hash: "b2316988fbd51096a4f512e71fe7d0a2" + } + Frame { + msec: 5184 + hash: "280f70877d93af5f84e178aad6a102d8" + } + Frame { + msec: 5200 + hash: "3eef4ae7e43a8cf1cd9dd562237296f8" + } + Frame { + msec: 5216 + hash: "e3184f77ce3a47ca4dca6386f42d7fec" + } + Frame { + msec: 5232 + hash: "a2a5df66fe4808ea8d466cac84ba910c" + } + Frame { + msec: 5248 + hash: "9f8a0e54788112d6c30482e840504f35" + } + Frame { + msec: 5264 + hash: "ae69cf84798844f9f360c86790feaecd" + } + Frame { + msec: 5280 + hash: "0244526572acb6266db5b7eb9d29c6fc" + } + Frame { + msec: 5296 + hash: "8fb53d60b95ddb5aef27442934ea9983" + } + Frame { + msec: 5312 + hash: "930fcfde491b4f5681e3861764003895" + } + Frame { + msec: 5328 + hash: "bcdcd0a637112d113ebe11dc18823237" + } + Frame { + msec: 5344 + hash: "65a564d5a5afbc14c0cdad4d52753507" + } + Frame { + msec: 5360 + hash: "0c5056d438d2d54938f31ef5f996673a" + } + Frame { + msec: 5376 + hash: "11c157ad2236fc390ffbdf339366cbc1" + } + Frame { + msec: 5392 + hash: "6cb341b1f281a97a35c2e41bfd4c4d9d" + } + Frame { + msec: 5408 + hash: "553a945f7f19f70ddae4ebe88e52a79b" + } + Frame { + msec: 5424 + hash: "d10b42b4095a2474e66a5a322f72e936" + } + Frame { + msec: 5440 + hash: "0f943d61e8072d70eddee8aa1ba0de5a" + } + Frame { + msec: 5456 + hash: "3df18e237b666e78d57857739b759e6d" + } + Frame { + msec: 5472 + hash: "1ddc0bfdb2ca7b6dee63f1024e62f26e" + } + Frame { + msec: 5488 + hash: "aaa397714528f41238059e3a88833abc" + } + Frame { + msec: 5504 + hash: "c94bd69f925c782656afc5f9618180a6" + } + Frame { + msec: 5520 + hash: "824ff8c0e1ab43e3c0eaa79b7cc19b9c" + } + Frame { + msec: 5536 + hash: "6c440a0b2293811335bdbf2c4f25f47d" + } + Frame { + msec: 5552 + hash: "bfc7936cdf833d5b720ec9baca740112" + } + Frame { + msec: 5568 + hash: "375fa305dbae2872dc9b20e59381cc0c" + } + Frame { + msec: 5584 + hash: "fffd6173aa49e74164dc17a238bcd830" + } + Frame { + msec: 5600 + hash: "44d9007e00fab161fd393b653255d7f4" + } + Frame { + msec: 5616 + hash: "f669ee25c58b4fa20a01705d334f0065" + } + Frame { + msec: 5632 + hash: "2dbb7d57711b67d5d9e1b81f70e22d34" + } + Frame { + msec: 5648 + hash: "19351b91448265cb95c1670ee283c611" + } + Frame { + msec: 5664 + hash: "19351b91448265cb95c1670ee283c611" + } + Frame { + msec: 5680 + hash: "3a24b99d048348a21f4e4bd69393de89" + } + Frame { + msec: 5696 + hash: "35a6fe955a52950bbfa954a453e4008e" + } + Frame { + msec: 5712 + hash: "896f4ec28c976237b34fb2725a44460e" + } + Frame { + msec: 5728 + hash: "ed3008ea950ec84c57518e573ea36d15" + } + Frame { + msec: 5744 + hash: "3447c7be992759f772c1db2033eead99" + } + Frame { + msec: 5760 + hash: "b7133225daa03563d3f5b1dac5f56a23" + } + Frame { + msec: 5776 + image: "follow.6.png" + } + Frame { + msec: 5792 + hash: "adc55f2fcf312a90b025a75fa80aa079" + } + Frame { + msec: 5808 + hash: "3ac85cad400d2b8e4f33798f4f6b7b42" + } + Frame { + msec: 5824 + hash: "1c115efd84ccbe489d24c3c521c4a61c" + } + Frame { + msec: 5840 + hash: "39518f1bbc0c4aba6ff517bc3dc7c279" + } + Frame { + msec: 5856 + hash: "7bd28d32996f4de61c415d3217da16d0" + } + Frame { + msec: 5872 + hash: "f5d06e25d775bf8db07e95625a712733" + } + Frame { + msec: 5888 + hash: "4820ea6ea3be88af2f86111c547a19d7" + } + Frame { + msec: 5904 + hash: "fa6e681c368118b7f135a47ae8fc12ff" + } + Frame { + msec: 5920 + hash: "f6b30e618aeeb837d2b3eca270b0a060" + } + Frame { + msec: 5936 + hash: "ac8504bde8d3063a8bf02b9d4b69d755" + } + Frame { + msec: 5952 + hash: "9670537bb77caa8e23fda7bbfa96ca60" + } + Frame { + msec: 5968 + hash: "8cd292865ce5c1d240e9ddc93881a0ed" + } + Frame { + msec: 5984 + hash: "de112013e526203d151c46e6cfba9f92" + } + Frame { + msec: 6000 + hash: "cd61066e697de8c055aaa168791c2d8c" + } + Frame { + msec: 6016 + hash: "cd61066e697de8c055aaa168791c2d8c" + } + Frame { + msec: 6032 + hash: "e68b27ff14aac03c827fd43ac488d23e" + } + Frame { + msec: 6048 + hash: "e68b27ff14aac03c827fd43ac488d23e" + } + Frame { + msec: 6064 + hash: "1f61d857a8c26587fbda5895c603441a" + } + Frame { + msec: 6080 + hash: "1e0dffdd02e05ade1ae444427d4aa345" + } + Frame { + msec: 6096 + hash: "9a416ee7a1de9ac45ab2d609233c9520" + } + Frame { + msec: 6112 + hash: "dfa35bf1cd908011c3214a506bcbdcb8" + } + Frame { + msec: 6128 + hash: "bd502dc72dce4af3036f7af9ed7cf9e9" + } + Frame { + msec: 6144 + hash: "c77280527612408daa3037aab45da59d" + } + Frame { + msec: 6160 + hash: "a38ed1532a40210ad7da4c0d4d1a7195" + } + Frame { + msec: 6176 + hash: "8ac8a8df937da526bbffb9a3590d89ac" + } + Frame { + msec: 6192 + hash: "07527cb9a4494e11f4c9f99eb72598b9" + } + Frame { + msec: 6208 + hash: "655b0327ef0f8711810714ba50f2f8cc" + } + Frame { + msec: 6224 + hash: "549fd25292012a2be1f78118998ca892" + } + Frame { + msec: 6240 + hash: "7a382ae4e6a48826eaa2c83ee7a73fb2" + } + Frame { + msec: 6256 + hash: "5acd5f250c5b32d9006ed68dfecbfa1c" + } + Frame { + msec: 6272 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6288 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6304 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Frame { + msec: 6320 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Frame { + msec: 6336 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Frame { + msec: 6352 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Frame { + msec: 6368 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Frame { + msec: 6384 + hash: "877aca1c64e588845329ca8a38222604" + } + Frame { + msec: 6400 + hash: "877aca1c64e588845329ca8a38222604" + } + Frame { + msec: 6416 + hash: "877aca1c64e588845329ca8a38222604" + } + Frame { + msec: 6432 + hash: "877aca1c64e588845329ca8a38222604" + } + Frame { + msec: 6448 + hash: "877aca1c64e588845329ca8a38222604" + } + Frame { + msec: 6464 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6480 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6496 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6512 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6528 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6544 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6560 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6576 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6592 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6608 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6624 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6640 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6656 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6672 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6688 + hash: "b0f28e923f93dcdcea8460ca9d8cd674" + } + Frame { + msec: 6704 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6720 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6736 + image: "follow.7.png" + } + Frame { + msec: 6752 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6768 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6784 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6800 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6816 + hash: "228920e994ebf71d542c71ce8263614e" + } + Frame { + msec: 6832 + hash: "07e5f1277558bfe7638b00cf9d967baf" + } + Key { + type: 6 + key: 16777249 + modifiers: 0 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6848 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6864 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6880 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6896 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6912 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } + Frame { + msec: 6928 + hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png index 87bc640..1b808ef 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml index f56f498..5485174 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml @@ -10,238 +10,238 @@ VisualTest { } Frame { msec: 32 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 48 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 64 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 80 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 96 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 112 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 128 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 144 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 160 - hash: "7fb2062f5786da9323db4286688682a0" + hash: "3fc7ab44f913d350f7aef342b958e56d" } Frame { msec: 176 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 192 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 208 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 224 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 240 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 256 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 272 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 288 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 304 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 320 - hash: "c67a5ae840827487ab618ff2d4e9a056" + hash: "a495a8a95c8aa82ac437c2f2970bd42d" } Frame { msec: 336 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 352 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 368 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 384 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 400 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 416 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 432 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 448 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 464 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 480 - hash: "c7986aca05835e238ee95be063bdd032" + hash: "e2d2a6e60537b9a434d0029ef5ff26dc" } Frame { msec: 496 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 512 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 528 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 544 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 560 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 576 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 592 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 608 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 624 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 640 - hash: "dd8ee9c060450beef6cc2494fa463e0a" + hash: "00cba961e67c2124ace75dddb657cd6c" } Frame { msec: 656 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 672 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 688 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 704 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 720 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 736 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 752 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 768 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 784 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 800 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 816 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 832 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 848 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 864 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 880 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 896 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 912 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 928 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 944 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } Frame { msec: 960 - hash: "f55ebe08f1b538d085cda157f566859e" + hash: "31d518de83e195def2d957b7d86b98e5" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png index 4b78165..1fd0213 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml index 7c557e0..c5a5a76 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml @@ -10,122 +10,122 @@ VisualTest { } Frame { msec: 32 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 48 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 64 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 80 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 96 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 112 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 128 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 144 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 160 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 176 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 192 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 208 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 224 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 240 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 256 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 272 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 288 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 304 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 320 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 336 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 352 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 368 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 384 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 400 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 416 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 432 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 448 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 464 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 480 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } Frame { msec: 496 - hash: "455caf06270992e3367c2a5a4371b6ac" + hash: "f45eda9414f7db5ed1f97a8275459abd" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.0.png new file mode 100644 index 0000000..4d6bf55 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.1.png new file mode 100644 index 0000000..a75da16 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml new file mode 100644 index 0000000..002e1c8 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml @@ -0,0 +1,475 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "QTBUG-14469.0.png" + } + Frame { + msec: 32 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 48 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 64 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 80 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 96 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 112 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 128 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 144 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 160 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 176 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 192 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 208 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 224 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 240 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 256 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 272 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 288 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 304 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 320 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 336 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 352 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 368 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 384 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 400 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 416 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 432 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 448 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 464 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 480 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 496 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 512 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 528 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 544 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 560 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 576 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 592 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 608 + hash: "067dfe70eca44e2157b723858897c90e" + } + Frame { + msec: 624 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 640 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 656 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 672 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 688 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 704 + hash: "b1ac0015f173bf5789daa5d45d04dadd" + } + Frame { + msec: 720 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 736 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 752 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 768 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 784 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 800 + hash: "431cb09ccdcfab7c3ff7d498aa1f0816" + } + Frame { + msec: 816 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 832 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 848 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 864 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 880 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 896 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 912 + hash: "533b23f29fe5f9dc85a6ca390c6dd023" + } + Frame { + msec: 928 + hash: "cd397908009ddf16ec3101efb0d7468e" + } + Frame { + msec: 944 + hash: "cd397908009ddf16ec3101efb0d7468e" + } + Frame { + msec: 960 + hash: "cd397908009ddf16ec3101efb0d7468e" + } + Frame { + msec: 976 + image: "QTBUG-14469.1.png" + } + Frame { + msec: 992 + hash: "cd397908009ddf16ec3101efb0d7468e" + } + Frame { + msec: 1008 + hash: "cd397908009ddf16ec3101efb0d7468e" + } + Frame { + msec: 1024 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1040 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1056 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1072 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1088 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1104 + hash: "a1eebf1a97314851b5154802f05abe8d" + } + Frame { + msec: 1120 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1136 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1152 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1168 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1184 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1200 + hash: "71d91d85b9c555eb9b39dac79b35dd46" + } + Frame { + msec: 1216 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1232 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1248 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1264 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1280 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1296 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1312 + hash: "b1da2d1f4aad2a197a80788607bd867d" + } + Frame { + msec: 1328 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1344 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1360 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1376 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1392 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1408 + hash: "df14e9cfeba3850bae7cad111fdbc8df" + } + Frame { + msec: 1424 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1440 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1456 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1472 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1488 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1504 + hash: "fab978e1e0ee5140d8131320ff2322e9" + } + Frame { + msec: 1520 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1536 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1552 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1568 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1584 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1600 + hash: "cf74324c2a0c8f45c728d42390aac1e0" + } + Frame { + msec: 1616 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1632 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1648 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1664 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1680 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1696 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1712 + hash: "07c938ac9ff9f591e84fc553291c7c49" + } + Frame { + msec: 1728 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1744 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1760 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1776 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1792 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1808 + hash: "7b585eb6226e6ce2de355f9730dba377" + } + Frame { + msec: 1824 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 1840 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 1856 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } + Frame { + msec: 1872 + hash: "a7817a7d902ab2fe2875183feb6513dd" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png index 804a443..7e84164 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png index 804a443..7e84164 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml index efdb916..d6d8c2a 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 48 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 64 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 80 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 96 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 112 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 128 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 144 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 160 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 176 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 192 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 208 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 224 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 240 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 256 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 272 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 288 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 304 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 320 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 336 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 352 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 368 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 384 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 400 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 416 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 432 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 448 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 464 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 480 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 496 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 512 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 528 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 544 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 560 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 576 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 592 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 608 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 624 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 640 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 656 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 672 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 688 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 704 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 720 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 736 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 752 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 768 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 784 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 800 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 816 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 832 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 848 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 864 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 880 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 896 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 912 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 928 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 944 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 960 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 976 @@ -250,11 +250,11 @@ VisualTest { } Frame { msec: 992 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 1008 - hash: "9886d2b883d236bd0a346c6763c1f245" + hash: "212d34fa7425fe24398c9de6d4f10422" } Frame { msec: 1024 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png index 99f0eb7..749a9c5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png index 99f0eb7..749a9c5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml index 6dc7f4f..fbb542e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 48 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 64 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 80 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 96 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 112 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 128 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 144 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 160 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 176 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 192 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 208 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 224 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 240 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 256 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 272 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 288 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 304 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 320 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 336 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 352 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 368 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 384 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 400 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 416 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 432 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 448 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 464 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 480 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 496 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 512 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 528 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 544 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 560 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 576 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 592 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 608 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 624 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 640 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 656 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 672 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 688 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 704 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 720 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 736 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 752 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 768 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 784 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 800 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 816 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 832 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 848 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 864 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 880 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 896 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 912 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 928 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 944 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 960 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 976 @@ -251,29 +251,29 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 992 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 1008 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 1024 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 1040 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } Frame { msec: 1056 - hash: "8401ef19b1e07ca917b8b061888d4e70" + hash: "4d49ec1a14a321ea9c0d506663df55c2" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png index 0b08fba..b84b8a9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png index dbf8cd3..dbae0ce 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png index 09646f8..bf56c80 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png index b6734b4..c4f6e18 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png index 861f6b0..ea86925 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml index 026f880..e780ea6 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "d482dd54c0f3876a11d80979ada91fa9" + hash: "1c45bbf4494aeb017d7ad53c5e29cbc0" } Frame { msec: 48 - hash: "d482dd54c0f3876a11d80979ada91fa9" + hash: "1c45bbf4494aeb017d7ad53c5e29cbc0" } Frame { msec: 64 - hash: "d482dd54c0f3876a11d80979ada91fa9" + hash: "1c45bbf4494aeb017d7ad53c5e29cbc0" } Frame { msec: 80 - hash: "d482dd54c0f3876a11d80979ada91fa9" + hash: "1c45bbf4494aeb017d7ad53c5e29cbc0" } Frame { msec: 96 - hash: "d482dd54c0f3876a11d80979ada91fa9" + hash: "1c45bbf4494aeb017d7ad53c5e29cbc0" } Frame { msec: 112 - hash: "3eb1cc8fa11ae88a3bf5004263805264" + hash: "452d8e4da326413e4961f20a0d24d0f0" } Frame { msec: 128 - hash: "3eb1cc8fa11ae88a3bf5004263805264" + hash: "452d8e4da326413e4961f20a0d24d0f0" } Frame { msec: 144 - hash: "3eb1cc8fa11ae88a3bf5004263805264" + hash: "452d8e4da326413e4961f20a0d24d0f0" } Frame { msec: 160 - hash: "3eb1cc8fa11ae88a3bf5004263805264" + hash: "452d8e4da326413e4961f20a0d24d0f0" } Frame { msec: 176 - hash: "3eb1cc8fa11ae88a3bf5004263805264" + hash: "452d8e4da326413e4961f20a0d24d0f0" } Frame { msec: 192 - hash: "b169f3828fafa79245bd5886d94a33b2" + hash: "8dc43f316fd36a877c773c10c23b5703" } Frame { msec: 208 - hash: "b169f3828fafa79245bd5886d94a33b2" + hash: "8dc43f316fd36a877c773c10c23b5703" } Frame { msec: 224 - hash: "b169f3828fafa79245bd5886d94a33b2" + hash: "8dc43f316fd36a877c773c10c23b5703" } Frame { msec: 240 - hash: "b169f3828fafa79245bd5886d94a33b2" + hash: "8dc43f316fd36a877c773c10c23b5703" } Frame { msec: 256 - hash: "c9a22f77cce333ea041730bc76d9bb96" + hash: "b7e055ce8d510c5ec66e71fa5a78fddf" } Frame { msec: 272 - hash: "c9a22f77cce333ea041730bc76d9bb96" + hash: "b7e055ce8d510c5ec66e71fa5a78fddf" } Frame { msec: 288 - hash: "c9a22f77cce333ea041730bc76d9bb96" + hash: "b7e055ce8d510c5ec66e71fa5a78fddf" } Frame { msec: 304 - hash: "c9a22f77cce333ea041730bc76d9bb96" + hash: "b7e055ce8d510c5ec66e71fa5a78fddf" } Frame { msec: 320 - hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" + hash: "e9b0abe5719027348cd267eb4823fc5f" } Frame { msec: 336 - hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" + hash: "e9b0abe5719027348cd267eb4823fc5f" } Frame { msec: 352 - hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" + hash: "e9b0abe5719027348cd267eb4823fc5f" } Frame { msec: 368 - hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" + hash: "e9b0abe5719027348cd267eb4823fc5f" } Frame { msec: 384 - hash: "958e5805b2bc2ffeaf8a6c8c24721dd5" + hash: "e9b0abe5719027348cd267eb4823fc5f" } Frame { msec: 400 - hash: "ed14c796dc2980f7a1bdedb15698ae01" + hash: "441102f2f69e9f4e10335c1746d47bd3" } Frame { msec: 416 - hash: "ed14c796dc2980f7a1bdedb15698ae01" + hash: "441102f2f69e9f4e10335c1746d47bd3" } Frame { msec: 432 - hash: "ed14c796dc2980f7a1bdedb15698ae01" + hash: "441102f2f69e9f4e10335c1746d47bd3" } Frame { msec: 448 - hash: "ed14c796dc2980f7a1bdedb15698ae01" + hash: "441102f2f69e9f4e10335c1746d47bd3" } Frame { msec: 464 - hash: "ed14c796dc2980f7a1bdedb15698ae01" + hash: "441102f2f69e9f4e10335c1746d47bd3" } Frame { msec: 480 - hash: "24d811c9b98b0cb140e7e82090e793ab" + hash: "95668288170720989adde2a0b41d5ee8" } Frame { msec: 496 - hash: "24d811c9b98b0cb140e7e82090e793ab" + hash: "95668288170720989adde2a0b41d5ee8" } Frame { msec: 512 - hash: "24d811c9b98b0cb140e7e82090e793ab" + hash: "95668288170720989adde2a0b41d5ee8" } Frame { msec: 528 - hash: "24d811c9b98b0cb140e7e82090e793ab" + hash: "95668288170720989adde2a0b41d5ee8" } Frame { msec: 544 - hash: "afa28a6a682128b1b44df31c78b63b04" + hash: "16bba6b72993e474b4c302af3f682834" } Frame { msec: 560 - hash: "afa28a6a682128b1b44df31c78b63b04" + hash: "16bba6b72993e474b4c302af3f682834" } Frame { msec: 576 - hash: "afa28a6a682128b1b44df31c78b63b04" + hash: "16bba6b72993e474b4c302af3f682834" } Frame { msec: 592 - hash: "afa28a6a682128b1b44df31c78b63b04" + hash: "16bba6b72993e474b4c302af3f682834" } Frame { msec: 608 - hash: "c43bba2d3406fabdafac344102d7d72c" + hash: "86c4d8bd1b19116411b6a6e450547425" } Frame { msec: 624 - hash: "c43bba2d3406fabdafac344102d7d72c" + hash: "86c4d8bd1b19116411b6a6e450547425" } Frame { msec: 640 - hash: "c43bba2d3406fabdafac344102d7d72c" + hash: "86c4d8bd1b19116411b6a6e450547425" } Frame { msec: 656 - hash: "c43bba2d3406fabdafac344102d7d72c" + hash: "86c4d8bd1b19116411b6a6e450547425" } Frame { msec: 672 - hash: "c43bba2d3406fabdafac344102d7d72c" + hash: "86c4d8bd1b19116411b6a6e450547425" } Frame { msec: 688 - hash: "0e1fb18acb72ca1da6fd619e31dd2c86" + hash: "d0d3cfa922ebca20c590ab7e59985268" } Frame { msec: 704 - hash: "0e1fb18acb72ca1da6fd619e31dd2c86" + hash: "d0d3cfa922ebca20c590ab7e59985268" } Frame { msec: 720 - hash: "0e1fb18acb72ca1da6fd619e31dd2c86" + hash: "d0d3cfa922ebca20c590ab7e59985268" } Frame { msec: 736 - hash: "0e1fb18acb72ca1da6fd619e31dd2c86" + hash: "d0d3cfa922ebca20c590ab7e59985268" } Frame { msec: 752 - hash: "0e1fb18acb72ca1da6fd619e31dd2c86" + hash: "d0d3cfa922ebca20c590ab7e59985268" } Frame { msec: 768 - hash: "d5780e5b30828f33d18c1f4e32ba8c3f" + hash: "397d72a090171090f897283729b19bc8" } Frame { msec: 784 - hash: "d5780e5b30828f33d18c1f4e32ba8c3f" + hash: "397d72a090171090f897283729b19bc8" } Frame { msec: 800 - hash: "d5780e5b30828f33d18c1f4e32ba8c3f" + hash: "397d72a090171090f897283729b19bc8" } Frame { msec: 816 - hash: "d5780e5b30828f33d18c1f4e32ba8c3f" + hash: "397d72a090171090f897283729b19bc8" } Frame { msec: 832 - hash: "28bdd1ab1c1af1b39a2f9d11be456682" + hash: "2b038e59289d2e3cef02245d2d128271" } Frame { msec: 848 - hash: "28bdd1ab1c1af1b39a2f9d11be456682" + hash: "2b038e59289d2e3cef02245d2d128271" } Frame { msec: 864 - hash: "28bdd1ab1c1af1b39a2f9d11be456682" + hash: "2b038e59289d2e3cef02245d2d128271" } Frame { msec: 880 - hash: "28bdd1ab1c1af1b39a2f9d11be456682" + hash: "2b038e59289d2e3cef02245d2d128271" } Frame { msec: 896 - hash: "28bdd1ab1c1af1b39a2f9d11be456682" + hash: "2b038e59289d2e3cef02245d2d128271" } Frame { msec: 912 - hash: "e34a9080716cebc0260e682960cc7c6e" + hash: "5f64aa763acdd8f5d6cc249be36e226a" } Frame { msec: 928 - hash: "e34a9080716cebc0260e682960cc7c6e" + hash: "5f64aa763acdd8f5d6cc249be36e226a" } Frame { msec: 944 - hash: "e34a9080716cebc0260e682960cc7c6e" + hash: "5f64aa763acdd8f5d6cc249be36e226a" } Frame { msec: 960 - hash: "e34a9080716cebc0260e682960cc7c6e" + hash: "5f64aa763acdd8f5d6cc249be36e226a" } Frame { msec: 976 @@ -250,247 +250,247 @@ VisualTest { } Frame { msec: 992 - hash: "61959fc3d6f84a9fe88ec1a2979da9af" + hash: "4f8c81adc72fce17c7e54f4d45ec08e4" } Frame { msec: 1008 - hash: "61959fc3d6f84a9fe88ec1a2979da9af" + hash: "4f8c81adc72fce17c7e54f4d45ec08e4" } Frame { msec: 1024 - hash: "61959fc3d6f84a9fe88ec1a2979da9af" + hash: "4f8c81adc72fce17c7e54f4d45ec08e4" } Frame { msec: 1040 - hash: "47794b18771d6d558ebbca881de92377" + hash: "91a7a0c0f686975d0087ee0e066911eb" } Frame { msec: 1056 - hash: "47794b18771d6d558ebbca881de92377" + hash: "91a7a0c0f686975d0087ee0e066911eb" } Frame { msec: 1072 - hash: "47794b18771d6d558ebbca881de92377" + hash: "91a7a0c0f686975d0087ee0e066911eb" } Frame { msec: 1088 - hash: "47794b18771d6d558ebbca881de92377" + hash: "91a7a0c0f686975d0087ee0e066911eb" } Frame { msec: 1104 - hash: "47794b18771d6d558ebbca881de92377" + hash: "91a7a0c0f686975d0087ee0e066911eb" } Frame { msec: 1120 - hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" + hash: "b19f6b8b4dc9d2a2d9aba82983e41889" } Frame { msec: 1136 - hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" + hash: "b19f6b8b4dc9d2a2d9aba82983e41889" } Frame { msec: 1152 - hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" + hash: "b19f6b8b4dc9d2a2d9aba82983e41889" } Frame { msec: 1168 - hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" + hash: "b19f6b8b4dc9d2a2d9aba82983e41889" } Frame { msec: 1184 - hash: "ba34b024ddb4e701d1d7f0c19e24d6cf" + hash: "b19f6b8b4dc9d2a2d9aba82983e41889" } Frame { msec: 1200 - hash: "e94344268d2a118053ecc3aef278d91d" + hash: "456542b672303ddae500b96e9b66a558" } Frame { msec: 1216 - hash: "e94344268d2a118053ecc3aef278d91d" + hash: "456542b672303ddae500b96e9b66a558" } Frame { msec: 1232 - hash: "e94344268d2a118053ecc3aef278d91d" + hash: "456542b672303ddae500b96e9b66a558" } Frame { msec: 1248 - hash: "e94344268d2a118053ecc3aef278d91d" + hash: "456542b672303ddae500b96e9b66a558" } Frame { msec: 1264 - hash: "df1959605d3bd74e84e51cbd4d322235" + hash: "8ec69f05d929c3b397dc721198ccacd4" } Frame { msec: 1280 - hash: "df1959605d3bd74e84e51cbd4d322235" + hash: "8ec69f05d929c3b397dc721198ccacd4" } Frame { msec: 1296 - hash: "df1959605d3bd74e84e51cbd4d322235" + hash: "8ec69f05d929c3b397dc721198ccacd4" } Frame { msec: 1312 - hash: "df1959605d3bd74e84e51cbd4d322235" + hash: "8ec69f05d929c3b397dc721198ccacd4" } Frame { msec: 1328 - hash: "26e1c8d13f0dd3713dce24211a8d26c1" + hash: "2d63fd91f4b01f6b178c795838e78990" } Frame { msec: 1344 - hash: "26e1c8d13f0dd3713dce24211a8d26c1" + hash: "2d63fd91f4b01f6b178c795838e78990" } Frame { msec: 1360 - hash: "26e1c8d13f0dd3713dce24211a8d26c1" + hash: "2d63fd91f4b01f6b178c795838e78990" } Frame { msec: 1376 - hash: "26e1c8d13f0dd3713dce24211a8d26c1" + hash: "2d63fd91f4b01f6b178c795838e78990" } Frame { msec: 1392 - hash: "26e1c8d13f0dd3713dce24211a8d26c1" + hash: "2d63fd91f4b01f6b178c795838e78990" } Frame { msec: 1408 - hash: "fd1344db48093182eb2c2872ceb887df" + hash: "c7c1d2c288653b414fe534ff6fab3381" } Frame { msec: 1424 - hash: "fd1344db48093182eb2c2872ceb887df" + hash: "c7c1d2c288653b414fe534ff6fab3381" } Frame { msec: 1440 - hash: "fd1344db48093182eb2c2872ceb887df" + hash: "c7c1d2c288653b414fe534ff6fab3381" } Frame { msec: 1456 - hash: "fd1344db48093182eb2c2872ceb887df" + hash: "c7c1d2c288653b414fe534ff6fab3381" } Frame { msec: 1472 - hash: "fd1344db48093182eb2c2872ceb887df" + hash: "c7c1d2c288653b414fe534ff6fab3381" } Frame { msec: 1488 - hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" + hash: "23188e926a855a7a06211783ee51d22a" } Frame { msec: 1504 - hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" + hash: "23188e926a855a7a06211783ee51d22a" } Frame { msec: 1520 - hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" + hash: "23188e926a855a7a06211783ee51d22a" } Frame { msec: 1536 - hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81" + hash: "23188e926a855a7a06211783ee51d22a" } Frame { msec: 1552 - hash: "072a6c0e64853f57487845f2ff376c12" + hash: "cfc64d8876d59e0d75f079c2e08cea5f" } Frame { msec: 1568 - hash: "072a6c0e64853f57487845f2ff376c12" + hash: "cfc64d8876d59e0d75f079c2e08cea5f" } Frame { msec: 1584 - hash: "072a6c0e64853f57487845f2ff376c12" + hash: "cfc64d8876d59e0d75f079c2e08cea5f" } Frame { msec: 1600 - hash: "072a6c0e64853f57487845f2ff376c12" + hash: "cfc64d8876d59e0d75f079c2e08cea5f" } Frame { msec: 1616 - hash: "072a6c0e64853f57487845f2ff376c12" + hash: "cfc64d8876d59e0d75f079c2e08cea5f" } Frame { msec: 1632 - hash: "d4183aba9cd5607ea1ff1572c78d33cc" + hash: "766c679eaec4bd28dc92cb3642d5be83" } Frame { msec: 1648 - hash: "d4183aba9cd5607ea1ff1572c78d33cc" + hash: "766c679eaec4bd28dc92cb3642d5be83" } Frame { msec: 1664 - hash: "d4183aba9cd5607ea1ff1572c78d33cc" + hash: "766c679eaec4bd28dc92cb3642d5be83" } Frame { msec: 1680 - hash: "d4183aba9cd5607ea1ff1572c78d33cc" + hash: "766c679eaec4bd28dc92cb3642d5be83" } Frame { msec: 1696 - hash: "31cb8e151b34187f712b269b38a317a7" + hash: "a86ba05a854fde208e6cf7849327d5d0" } Frame { msec: 1712 - hash: "31cb8e151b34187f712b269b38a317a7" + hash: "a86ba05a854fde208e6cf7849327d5d0" } Frame { msec: 1728 - hash: "31cb8e151b34187f712b269b38a317a7" + hash: "a86ba05a854fde208e6cf7849327d5d0" } Frame { msec: 1744 - hash: "31cb8e151b34187f712b269b38a317a7" + hash: "a86ba05a854fde208e6cf7849327d5d0" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 1760 - hash: "31cb8e151b34187f712b269b38a317a7" + hash: "a86ba05a854fde208e6cf7849327d5d0" } Frame { msec: 1776 - hash: "e24ad0aed6a071d6da9f51af00c69300" + hash: "23b60817be2a741cada2af663b0d7f54" } Frame { msec: 1792 - hash: "e24ad0aed6a071d6da9f51af00c69300" + hash: "23b60817be2a741cada2af663b0d7f54" } Frame { msec: 1808 - hash: "e24ad0aed6a071d6da9f51af00c69300" + hash: "23b60817be2a741cada2af663b0d7f54" } Frame { msec: 1824 - hash: "e24ad0aed6a071d6da9f51af00c69300" + hash: "23b60817be2a741cada2af663b0d7f54" } Frame { msec: 1840 - hash: "760eea420a5eb52ccd1f6a29d6701338" + hash: "c098c1c0d5239c59735a5c9450e9d531" } Frame { msec: 1856 - hash: "760eea420a5eb52ccd1f6a29d6701338" + hash: "c098c1c0d5239c59735a5c9450e9d531" } Frame { msec: 1872 - hash: "760eea420a5eb52ccd1f6a29d6701338" + hash: "c098c1c0d5239c59735a5c9450e9d531" } Frame { msec: 1888 - hash: "760eea420a5eb52ccd1f6a29d6701338" + hash: "c098c1c0d5239c59735a5c9450e9d531" } Frame { msec: 1904 - hash: "760eea420a5eb52ccd1f6a29d6701338" + hash: "c098c1c0d5239c59735a5c9450e9d531" } Frame { msec: 1920 - hash: "07cdcdb9b551750c4a742ee6dff9f3f9" + hash: "09f6ee218d314d3a405ae43e32588c07" } Frame { msec: 1936 @@ -498,239 +498,239 @@ VisualTest { } Frame { msec: 1952 - hash: "07cdcdb9b551750c4a742ee6dff9f3f9" + hash: "09f6ee218d314d3a405ae43e32588c07" } Frame { msec: 1968 - hash: "07cdcdb9b551750c4a742ee6dff9f3f9" + hash: "09f6ee218d314d3a405ae43e32588c07" } Frame { msec: 1984 - hash: "ec4dada16fb19fb4cf24367c9f25f161" + hash: "6ee480e7d8b0abe295ae12a660119102" } Frame { msec: 2000 - hash: "ec4dada16fb19fb4cf24367c9f25f161" + hash: "6ee480e7d8b0abe295ae12a660119102" } Frame { msec: 2016 - hash: "ec4dada16fb19fb4cf24367c9f25f161" + hash: "6ee480e7d8b0abe295ae12a660119102" } Frame { msec: 2032 - hash: "ec4dada16fb19fb4cf24367c9f25f161" + hash: "6ee480e7d8b0abe295ae12a660119102" } Frame { msec: 2048 - hash: "ec4dada16fb19fb4cf24367c9f25f161" + hash: "6ee480e7d8b0abe295ae12a660119102" } Frame { msec: 2064 - hash: "f5ef19dc69f8b6060056f7005f613ca3" + hash: "b43ca0ea75f4c17c09248f78170d3839" } Frame { msec: 2080 - hash: "f5ef19dc69f8b6060056f7005f613ca3" + hash: "b43ca0ea75f4c17c09248f78170d3839" } Frame { msec: 2096 - hash: "f5ef19dc69f8b6060056f7005f613ca3" + hash: "b43ca0ea75f4c17c09248f78170d3839" } Frame { msec: 2112 - hash: "f5ef19dc69f8b6060056f7005f613ca3" + hash: "b43ca0ea75f4c17c09248f78170d3839" } Frame { msec: 2128 - hash: "6bd00519ea14f0dd34d45de4deaaa65e" + hash: "92e0ee1174ffcb710403bb831aeec353" } Frame { msec: 2144 - hash: "6bd00519ea14f0dd34d45de4deaaa65e" + hash: "92e0ee1174ffcb710403bb831aeec353" } Frame { msec: 2160 - hash: "6bd00519ea14f0dd34d45de4deaaa65e" + hash: "92e0ee1174ffcb710403bb831aeec353" } Frame { msec: 2176 - hash: "6bd00519ea14f0dd34d45de4deaaa65e" + hash: "92e0ee1174ffcb710403bb831aeec353" } Frame { msec: 2192 - hash: "6bd00519ea14f0dd34d45de4deaaa65e" + hash: "92e0ee1174ffcb710403bb831aeec353" } Frame { msec: 2208 - hash: "1c3e491e889e408f705477f060103243" + hash: "bba79ad6f3630b7aa382541cc2d3a2cd" } Frame { msec: 2224 - hash: "1c3e491e889e408f705477f060103243" + hash: "bba79ad6f3630b7aa382541cc2d3a2cd" } Frame { msec: 2240 - hash: "1c3e491e889e408f705477f060103243" + hash: "bba79ad6f3630b7aa382541cc2d3a2cd" } Frame { msec: 2256 - hash: "1c3e491e889e408f705477f060103243" + hash: "bba79ad6f3630b7aa382541cc2d3a2cd" } Frame { msec: 2272 - hash: "80bc59211ffab64820e306e6eb13d2fc" + hash: "7efeb1565125f25252ce3f03dadc3bea" } Frame { msec: 2288 - hash: "80bc59211ffab64820e306e6eb13d2fc" + hash: "7efeb1565125f25252ce3f03dadc3bea" } Frame { msec: 2304 - hash: "80bc59211ffab64820e306e6eb13d2fc" + hash: "7efeb1565125f25252ce3f03dadc3bea" } Frame { msec: 2320 - hash: "80bc59211ffab64820e306e6eb13d2fc" + hash: "7efeb1565125f25252ce3f03dadc3bea" } Frame { msec: 2336 - hash: "80bc59211ffab64820e306e6eb13d2fc" + hash: "7efeb1565125f25252ce3f03dadc3bea" } Frame { msec: 2352 - hash: "7765c76dd2ef99e4d7286fcb3a172a07" + hash: "9086d24dff90f8c9e4543c6b14c99bf6" } Frame { msec: 2368 - hash: "7765c76dd2ef99e4d7286fcb3a172a07" + hash: "9086d24dff90f8c9e4543c6b14c99bf6" } Frame { msec: 2384 - hash: "7765c76dd2ef99e4d7286fcb3a172a07" + hash: "9086d24dff90f8c9e4543c6b14c99bf6" } Frame { msec: 2400 - hash: "7765c76dd2ef99e4d7286fcb3a172a07" + hash: "9086d24dff90f8c9e4543c6b14c99bf6" } Frame { msec: 2416 - hash: "7765c76dd2ef99e4d7286fcb3a172a07" + hash: "9086d24dff90f8c9e4543c6b14c99bf6" } Frame { msec: 2432 - hash: "8fedc4d5d4161922c1d9d50adcf67e4a" + hash: "15d8e99a0676e0a1588dfddc00ab0d16" } Frame { msec: 2448 - hash: "8fedc4d5d4161922c1d9d50adcf67e4a" + hash: "15d8e99a0676e0a1588dfddc00ab0d16" } Frame { msec: 2464 - hash: "8fedc4d5d4161922c1d9d50adcf67e4a" + hash: "15d8e99a0676e0a1588dfddc00ab0d16" } Frame { msec: 2480 - hash: "8fedc4d5d4161922c1d9d50adcf67e4a" + hash: "15d8e99a0676e0a1588dfddc00ab0d16" } Frame { msec: 2496 - hash: "4f26d7ab05e6d39a869be1259e33c739" + hash: "ecc25b88c29dc9d6c70df6e36a91f95c" } Frame { msec: 2512 - hash: "4f26d7ab05e6d39a869be1259e33c739" + hash: "ecc25b88c29dc9d6c70df6e36a91f95c" } Frame { msec: 2528 - hash: "4f26d7ab05e6d39a869be1259e33c739" + hash: "ecc25b88c29dc9d6c70df6e36a91f95c" } Frame { msec: 2544 - hash: "4f26d7ab05e6d39a869be1259e33c739" + hash: "ecc25b88c29dc9d6c70df6e36a91f95c" } Frame { msec: 2560 - hash: "d4ead42bcc2e283e513f1ab4f8a89f27" + hash: "905c81686d8d2ecdde513622c35c0ea6" } Frame { msec: 2576 - hash: "d4ead42bcc2e283e513f1ab4f8a89f27" + hash: "905c81686d8d2ecdde513622c35c0ea6" } Frame { msec: 2592 - hash: "d4ead42bcc2e283e513f1ab4f8a89f27" + hash: "905c81686d8d2ecdde513622c35c0ea6" } Frame { msec: 2608 - hash: "d4ead42bcc2e283e513f1ab4f8a89f27" + hash: "905c81686d8d2ecdde513622c35c0ea6" } Frame { msec: 2624 - hash: "d4ead42bcc2e283e513f1ab4f8a89f27" + hash: "905c81686d8d2ecdde513622c35c0ea6" } Frame { msec: 2640 - hash: "6d91b100f369381b24052e5a4466e24d" + hash: "537a2cf41a5e15220d2ca2218ac49a5a" } Frame { msec: 2656 - hash: "6d91b100f369381b24052e5a4466e24d" + hash: "537a2cf41a5e15220d2ca2218ac49a5a" } Frame { msec: 2672 - hash: "6d91b100f369381b24052e5a4466e24d" + hash: "537a2cf41a5e15220d2ca2218ac49a5a" } Frame { msec: 2688 - hash: "6d91b100f369381b24052e5a4466e24d" + hash: "537a2cf41a5e15220d2ca2218ac49a5a" } Frame { msec: 2704 - hash: "2d6082b41e3cfdc3be9c130311ac854a" + hash: "53325ce7d011eeb72369463721f15e87" } Frame { msec: 2720 - hash: "2d6082b41e3cfdc3be9c130311ac854a" + hash: "53325ce7d011eeb72369463721f15e87" } Frame { msec: 2736 - hash: "2d6082b41e3cfdc3be9c130311ac854a" + hash: "53325ce7d011eeb72369463721f15e87" } Frame { msec: 2752 - hash: "2d6082b41e3cfdc3be9c130311ac854a" + hash: "53325ce7d011eeb72369463721f15e87" } Frame { msec: 2768 - hash: "2d6082b41e3cfdc3be9c130311ac854a" + hash: "53325ce7d011eeb72369463721f15e87" } Frame { msec: 2784 - hash: "78732b58812f202768fa224aefce187d" + hash: "9ad2565cc95647a83d3ce3acc106485a" } Frame { msec: 2800 - hash: "78732b58812f202768fa224aefce187d" + hash: "9ad2565cc95647a83d3ce3acc106485a" } Frame { msec: 2816 - hash: "78732b58812f202768fa224aefce187d" + hash: "9ad2565cc95647a83d3ce3acc106485a" } Frame { msec: 2832 - hash: "78732b58812f202768fa224aefce187d" + hash: "9ad2565cc95647a83d3ce3acc106485a" } Frame { msec: 2848 - hash: "54d728d677cf3a07c4da7727a75e6c59" + hash: "de7b66581e0743385a984f76c993b01b" } Frame { msec: 2864 - hash: "54d728d677cf3a07c4da7727a75e6c59" + hash: "de7b66581e0743385a984f76c993b01b" } Frame { msec: 2880 - hash: "54d728d677cf3a07c4da7727a75e6c59" + hash: "de7b66581e0743385a984f76c993b01b" } Frame { msec: 2896 @@ -738,239 +738,239 @@ VisualTest { } Frame { msec: 2912 - hash: "54d728d677cf3a07c4da7727a75e6c59" + hash: "de7b66581e0743385a984f76c993b01b" } Frame { msec: 2928 - hash: "45ec3534077f6fa66d7710010cceb332" + hash: "f66852df1738e4fe29ac1f6938d814c2" } Frame { msec: 2944 - hash: "45ec3534077f6fa66d7710010cceb332" + hash: "f66852df1738e4fe29ac1f6938d814c2" } Frame { msec: 2960 - hash: "45ec3534077f6fa66d7710010cceb332" + hash: "f66852df1738e4fe29ac1f6938d814c2" } Frame { msec: 2976 - hash: "45ec3534077f6fa66d7710010cceb332" + hash: "f66852df1738e4fe29ac1f6938d814c2" } Frame { msec: 2992 - hash: "ef909728fa59292ffed1d047835439d6" + hash: "cf6dde6c590879a9e905a0f559f089ca" } Frame { msec: 3008 - hash: "ef909728fa59292ffed1d047835439d6" + hash: "cf6dde6c590879a9e905a0f559f089ca" } Frame { msec: 3024 - hash: "ef909728fa59292ffed1d047835439d6" + hash: "cf6dde6c590879a9e905a0f559f089ca" } Frame { msec: 3040 - hash: "ef909728fa59292ffed1d047835439d6" + hash: "cf6dde6c590879a9e905a0f559f089ca" } Frame { msec: 3056 - hash: "ef909728fa59292ffed1d047835439d6" + hash: "cf6dde6c590879a9e905a0f559f089ca" } Frame { msec: 3072 - hash: "454741313d087e5d13ddeaf02663746f" + hash: "bd63e4df280010ed9f67fc7976b86cb5" } Frame { msec: 3088 - hash: "454741313d087e5d13ddeaf02663746f" + hash: "bd63e4df280010ed9f67fc7976b86cb5" } Frame { msec: 3104 - hash: "454741313d087e5d13ddeaf02663746f" + hash: "bd63e4df280010ed9f67fc7976b86cb5" } Frame { msec: 3120 - hash: "454741313d087e5d13ddeaf02663746f" + hash: "bd63e4df280010ed9f67fc7976b86cb5" } Frame { msec: 3136 - hash: "454741313d087e5d13ddeaf02663746f" + hash: "bd63e4df280010ed9f67fc7976b86cb5" } Frame { msec: 3152 - hash: "02928f0a8f8f1011028114487b8dccf8" + hash: "065d3d370faa58aed9899cae0f86f032" } Frame { msec: 3168 - hash: "02928f0a8f8f1011028114487b8dccf8" + hash: "065d3d370faa58aed9899cae0f86f032" } Frame { msec: 3184 - hash: "02928f0a8f8f1011028114487b8dccf8" + hash: "065d3d370faa58aed9899cae0f86f032" } Frame { msec: 3200 - hash: "02928f0a8f8f1011028114487b8dccf8" + hash: "065d3d370faa58aed9899cae0f86f032" } Frame { msec: 3216 - hash: "e0fca67bb095c9891831cd9355b4880d" + hash: "b5623d05c578a6f09bcfacd4d3163b09" } Frame { msec: 3232 - hash: "e0fca67bb095c9891831cd9355b4880d" + hash: "b5623d05c578a6f09bcfacd4d3163b09" } Frame { msec: 3248 - hash: "e0fca67bb095c9891831cd9355b4880d" + hash: "b5623d05c578a6f09bcfacd4d3163b09" } Frame { msec: 3264 - hash: "e0fca67bb095c9891831cd9355b4880d" + hash: "b5623d05c578a6f09bcfacd4d3163b09" } Frame { msec: 3280 - hash: "f5ae54931d953fc95cfbdbde1993bebe" + hash: "83c70529d05911ea26a5cbbab5aa20f2" } Frame { msec: 3296 - hash: "f5ae54931d953fc95cfbdbde1993bebe" + hash: "83c70529d05911ea26a5cbbab5aa20f2" } Frame { msec: 3312 - hash: "f5ae54931d953fc95cfbdbde1993bebe" + hash: "83c70529d05911ea26a5cbbab5aa20f2" } Frame { msec: 3328 - hash: "f5ae54931d953fc95cfbdbde1993bebe" + hash: "83c70529d05911ea26a5cbbab5aa20f2" } Frame { msec: 3344 - hash: "f5ae54931d953fc95cfbdbde1993bebe" + hash: "83c70529d05911ea26a5cbbab5aa20f2" } Frame { msec: 3360 - hash: "9afb0b2a185e2f825e9fad1c3644f6cb" + hash: "17927c706da1bc222ba5462af66a9d2f" } Frame { msec: 3376 - hash: "9afb0b2a185e2f825e9fad1c3644f6cb" + hash: "17927c706da1bc222ba5462af66a9d2f" } Frame { msec: 3392 - hash: "9afb0b2a185e2f825e9fad1c3644f6cb" + hash: "17927c706da1bc222ba5462af66a9d2f" } Frame { msec: 3408 - hash: "9afb0b2a185e2f825e9fad1c3644f6cb" + hash: "17927c706da1bc222ba5462af66a9d2f" } Frame { msec: 3424 - hash: "9afb0b2a185e2f825e9fad1c3644f6cb" + hash: "17927c706da1bc222ba5462af66a9d2f" } Frame { msec: 3440 - hash: "f3f5a81d3b5f644a00cea6203f38994c" + hash: "f49627ba8d3e257e0e94404da24d12dc" } Frame { msec: 3456 - hash: "f3f5a81d3b5f644a00cea6203f38994c" + hash: "f49627ba8d3e257e0e94404da24d12dc" } Frame { msec: 3472 - hash: "f3f5a81d3b5f644a00cea6203f38994c" + hash: "f49627ba8d3e257e0e94404da24d12dc" } Frame { msec: 3488 - hash: "f3f5a81d3b5f644a00cea6203f38994c" + hash: "f49627ba8d3e257e0e94404da24d12dc" } Frame { msec: 3504 - hash: "bd9884712fd5afe67a3622c809bf4e76" + hash: "37a0c9dc20431c8398409d4522a0fdd3" } Frame { msec: 3520 - hash: "bd9884712fd5afe67a3622c809bf4e76" + hash: "37a0c9dc20431c8398409d4522a0fdd3" } Frame { msec: 3536 - hash: "bd9884712fd5afe67a3622c809bf4e76" + hash: "37a0c9dc20431c8398409d4522a0fdd3" } Frame { msec: 3552 - hash: "bd9884712fd5afe67a3622c809bf4e76" + hash: "37a0c9dc20431c8398409d4522a0fdd3" } Frame { msec: 3568 - hash: "c9324386954380a72ef4084d13e623b5" + hash: "67bebfe9fb5ac745f40040ff8083e999" } Frame { msec: 3584 - hash: "c9324386954380a72ef4084d13e623b5" + hash: "67bebfe9fb5ac745f40040ff8083e999" } Frame { msec: 3600 - hash: "c9324386954380a72ef4084d13e623b5" + hash: "67bebfe9fb5ac745f40040ff8083e999" } Frame { msec: 3616 - hash: "c9324386954380a72ef4084d13e623b5" + hash: "67bebfe9fb5ac745f40040ff8083e999" } Frame { msec: 3632 - hash: "c9324386954380a72ef4084d13e623b5" + hash: "67bebfe9fb5ac745f40040ff8083e999" } Frame { msec: 3648 - hash: "6d05fd8e8690e44293af1809f359aa72" + hash: "84f8b27b83b566c99e65ea39b29772c1" } Frame { msec: 3664 - hash: "6d05fd8e8690e44293af1809f359aa72" + hash: "84f8b27b83b566c99e65ea39b29772c1" } Frame { msec: 3680 - hash: "6d05fd8e8690e44293af1809f359aa72" + hash: "84f8b27b83b566c99e65ea39b29772c1" } Frame { msec: 3696 - hash: "6d05fd8e8690e44293af1809f359aa72" + hash: "84f8b27b83b566c99e65ea39b29772c1" } Frame { msec: 3712 - hash: "6d05fd8e8690e44293af1809f359aa72" + hash: "84f8b27b83b566c99e65ea39b29772c1" } Frame { msec: 3728 - hash: "2d7350a79f5a68d3e3dfc994c6e002ed" + hash: "c6ba663536f19b9f291ef35b7a70e490" } Frame { msec: 3744 - hash: "2d7350a79f5a68d3e3dfc994c6e002ed" + hash: "c6ba663536f19b9f291ef35b7a70e490" } Frame { msec: 3760 - hash: "2d7350a79f5a68d3e3dfc994c6e002ed" + hash: "c6ba663536f19b9f291ef35b7a70e490" } Frame { msec: 3776 - hash: "2d7350a79f5a68d3e3dfc994c6e002ed" + hash: "c6ba663536f19b9f291ef35b7a70e490" } Frame { msec: 3792 - hash: "edb5d50f23a293a7791122fc159aaaa0" + hash: "65f22784730aa27b2628d015a1cc4abe" } Frame { msec: 3808 - hash: "edb5d50f23a293a7791122fc159aaaa0" + hash: "65f22784730aa27b2628d015a1cc4abe" } Frame { msec: 3824 - hash: "edb5d50f23a293a7791122fc159aaaa0" + hash: "65f22784730aa27b2628d015a1cc4abe" } Frame { msec: 3840 - hash: "edb5d50f23a293a7791122fc159aaaa0" + hash: "65f22784730aa27b2628d015a1cc4abe" } Frame { msec: 3856 @@ -978,14 +978,14 @@ VisualTest { } Frame { msec: 3872 - hash: "a863480fec9abf817752c5eb62a2ddf4" + hash: "b11a511d80de87329501b9c11aebbc58" } Frame { msec: 3888 - hash: "a863480fec9abf817752c5eb62a2ddf4" + hash: "b11a511d80de87329501b9c11aebbc58" } Frame { msec: 3904 - hash: "a863480fec9abf817752c5eb62a2ddf4" + hash: "b11a511d80de87329501b9c11aebbc58" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png index e1d3b75..3861b4f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png index 8013dc9..ce166f1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml index 77a7b2f..84778ac 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml @@ -10,239 +10,239 @@ VisualTest { } Frame { msec: 32 - hash: "ef2b4cc93e5bf5e64d3338921fe36336" + hash: "58d757783e6d57c5ac2596219dfd37be" } Frame { msec: 48 - hash: "3ddbd1a53a36b0f8b36d87e742f3b1bd" + hash: "e76b3b98f447b706c59ba0c175e1829d" } Frame { msec: 64 - hash: "f7acfdaf29a3d7bd179b30db784ca01b" + hash: "f0dbb0b55d1d27bf7c0260db5b5782a2" } Frame { msec: 80 - hash: "b5277d02ed63180e845c60e1dd4da7d0" + hash: "00845517336befd7ead0141312ea38ce" } Frame { msec: 96 - hash: "a7964577d77943d5a62c02ea1e689eb7" + hash: "99723ae092407e5291ed3a13f5a7be61" } Frame { msec: 112 - hash: "fc597a07209bfea49227ec491b033af1" + hash: "2d531f1dd1545a4e2f8ca4c65338e0c3" } Frame { msec: 128 - hash: "429a7dd5a23a5012f1985bcddd27ba0c" + hash: "9f273323f48a70be279302b194203a36" } Frame { msec: 144 - hash: "fbf845e137e0b389babdcd71a95c3060" + hash: "7de4bd5f82369953c2a4a990ddaf4339" } Frame { msec: 160 - hash: "1d1272df3a53cb9860d23be3343a143e" + hash: "96c5f74c01723a15a57db161604bc245" } Frame { msec: 176 - hash: "cef05f6564b21fd2cbd02f6def604c0b" + hash: "df2eac6300919044cfe2a2f591c3bd99" } Frame { msec: 192 - hash: "be0ca54bc7aa23c2b9c56e3a0444197a" + hash: "a153904cdfa0be697a25bebc4ce1fbca" } Frame { msec: 208 - hash: "5372a7052d10b8c6c2204efdc88c2f48" + hash: "de243731b92ac1cac05e194aed0acd1e" } Frame { msec: 224 - hash: "43b775c558843c1334e86ca4fcf07ae2" + hash: "f6ccc0f127bfc6212885c3c6470639ed" } Frame { msec: 240 - hash: "10daf71511454ef4db3692a19ecbcbaa" + hash: "a2d56227aebedb9590a1124e44fe8e84" } Frame { msec: 256 - hash: "5c545ecb0ddfaa5d6cde266be6fae35c" + hash: "5f8c0a42a231580dcfff6a534e77bef8" } Frame { msec: 272 - hash: "1a3c05b189c3adf87710eeb03296aec2" + hash: "e631663ac692ab097cb28095b45e8563" } Frame { msec: 288 - hash: "de2c6f4d3bf4d245e45e47a743808f5d" + hash: "2a03f6ba3c67a9e9732cc1f5cdc42c23" } Frame { msec: 304 - hash: "7c71dcbd8e2be19ac2d090ab3e012a62" + hash: "26b85080d624b232e5209aa082fc11b1" } Frame { msec: 320 - hash: "3bd42257fe4a5d941a8755e66db94870" + hash: "1c027f4a0114bb9050a3a8d9de2b8a56" } Frame { msec: 336 - hash: "d52f57a1f289d2c697fd1db2086a4df3" + hash: "788e6ad3cb5f6e120e40fd3dc6ac8483" } Frame { msec: 352 - hash: "5d9e22ca6b6f8e4805a49fcf9c6a4dd6" + hash: "7e1b0fb71528dfa17a87950c0ff86111" } Frame { msec: 368 - hash: "cbafada44b434ac7fe64fdebef7a816e" + hash: "e1878e6e8ba14d8945e1f71ac8d42c1e" } Frame { msec: 384 - hash: "4ac900c005cfedb9e3367a4612334cc1" + hash: "556f42297eb1e57d6a8af0946651a75e" } Frame { msec: 400 - hash: "3dbe30edac497ca316bf39e55ff9580a" + hash: "73df08e7e3391b339cea9f5f082fd83a" } Frame { msec: 416 - hash: "e892891c063172d513f4f8c0a0b2644f" + hash: "de3bd8a12c2a448738ce77036b97bda7" } Frame { msec: 432 - hash: "7c214a442c8f37d22f74343fdb7f7faa" + hash: "0ab187aa7a478dbf005f35416a93c456" } Frame { msec: 448 - hash: "c4461c6c26eb9689e640149b7755bf14" + hash: "e5baf64ccafa6a4d2bf74aacf52019c6" } Frame { msec: 464 - hash: "e7be611f007716a80698558d0600f5b6" + hash: "0ed2ee4a773ade712ef207549006aa7b" } Frame { msec: 480 - hash: "5a3abaa7b36fcd7e2279318671597386" + hash: "b23dd49bdfe8fb155e2055262e6a1478" } Frame { msec: 496 - hash: "2dba1fcba5bdce948fa56ffc02a7f80c" + hash: "871f82636a03d6fa8cbfb580038bd0b7" } Frame { msec: 512 - hash: "55043bcce83e4f8899b1a692fe30fa67" + hash: "463cdc2cbde034d7d7a5061338b319c7" } Frame { msec: 528 - hash: "f92df1fb28a7da39ed907dd2bc177ab8" + hash: "22ff8e25136877fd6f5dce1b01e65c08" } Frame { msec: 544 - hash: "7dcf90cd5f81999359ed389c7050d934" + hash: "97d4e49622d877e9e1e0102786e1ee55" } Frame { msec: 560 - hash: "021014366809103b76bd5d472c43b062" + hash: "ebf5304185abe4bc33be44c3df09a93a" } Frame { msec: 576 - hash: "fff5b2c8d63083d132c0f106fad84fa1" + hash: "307887d9973e807c52b2143cdfe438ad" } Frame { msec: 592 - hash: "ab3a6a6c646d31be97884484a6647330" + hash: "d89547539741f387fdd6aa80ef239fbd" } Frame { msec: 608 - hash: "d46a168f89d94a32496b75ee5d3794e4" + hash: "b818215b4cdd6e811057f1a0f5eb1a5a" } Frame { msec: 624 - hash: "f7b62e86595a4d2c7f5a2cd52e0938b9" + hash: "84f7e523c0f21236ff8aad1333470d11" } Frame { msec: 640 - hash: "df95a29a101889c50537cfb1b027f9a6" + hash: "7f974663c7add6d10ebdd401794e087a" } Frame { msec: 656 - hash: "4c6691ef37222260dce72868ae809d68" + hash: "4c824dc01e8fead2706608ca68293d11" } Frame { msec: 672 - hash: "ad816534dcf446a1456894ff2b1afa33" + hash: "86b0f617eb3bfff944c3b670b3b51c71" } Frame { msec: 688 - hash: "bfa9f9f833f38aedf766e061f3a18c48" + hash: "86c5660c22003099cc4121381c11de85" } Frame { msec: 704 - hash: "f4a6786e9db58cf3fd3f3b896d3cf84f" + hash: "3c2bd08ea17aaa920949239f06b255cf" } Frame { msec: 720 - hash: "e51e8b766e5d4a0f061dc6885fcf8eb3" + hash: "2380278cc065a3ac5355127d9873796c" } Frame { msec: 736 - hash: "eab6d261429c36c4e37005f37b7823d5" + hash: "e5d8624e841476926b3e2a5ebca8c65f" } Frame { msec: 752 - hash: "3cc5db209a98daef06127bae53b1929d" + hash: "eab70f5005a6b39e3ead6e4452df1a54" } Frame { msec: 768 - hash: "230cd6e6ca18a921a21379dd85e24822" + hash: "46acef023d154bad3f91e0267996421b" } Frame { msec: 784 - hash: "e3a877e8f01bf17fe6ea8b9fbb780f14" + hash: "26ba9f30a4bfd72c9b6dae2a25660ea9" } Frame { msec: 800 - hash: "a19f504a81409dea775481f21f992ba6" + hash: "9fabdd5cf1190fb34bdc7834eba01cd3" } Frame { msec: 816 - hash: "e77cc3ab14551638e704a1493189d5d1" + hash: "b1e7af47d4ee706374365fdd4b4d52be" } Frame { msec: 832 - hash: "613bdf9d32358ab0db310ae1e2246d52" + hash: "86fa2e142e75d9d2a074a5376992f139" } Frame { msec: 848 - hash: "d4fab0193f567cce4ad1e1cf6b156ce5" + hash: "a3dea2bf8f84743d35070e82ec585c9a" } Frame { msec: 864 - hash: "03ce3083411d10b14ac0bb85b22bfbd1" + hash: "ab649fbbe0ca508812de9839d14b3f8c" } Frame { msec: 880 - hash: "4be10fb14abf82705d8071cf75956ece" + hash: "08f8a334e121d4edb0ca1617353bfebc" } Frame { msec: 896 - hash: "4c1f150fb5ba1194ad198eb32f705af6" + hash: "bb7997c1e18b90cfaad4c3e4ec44356e" } Frame { msec: 912 - hash: "5ddfd98c8a49eefe08ae33d0c0ea52ff" + hash: "31a7e5d71c28eebfcd29e9ea4950ad17" } Frame { msec: 928 - hash: "f2018d16f38e113c9477c19431e3d1e4" + hash: "2b759276e03c2884bff7ed863c032dfc" } Frame { msec: 944 - hash: "9fe6406d65978dba74716f1ba02bdf76" + hash: "aa0868f006097a435c46368ea9e3ba36" } Frame { msec: 960 - hash: "265d92edca113f465e624079c266b213" + hash: "6454753699c21589d2523a83da0aaa34" } Frame { msec: 976 @@ -250,54 +250,54 @@ VisualTest { } Frame { msec: 992 - hash: "6beb60f7645be5f1d07449610b5e13b0" + hash: "ac26abff68fbc1cf89dc5efc4a714a04" } Frame { msec: 1008 - hash: "55c34cb290732a1fa94b5037477fd882" + hash: "d3f9dc8cb653d996fb57652f85abcbc1" } Frame { msec: 1024 - hash: "4d6ed8044e3ac5da61cf61f4d08c5a19" + hash: "002a94f067eef532f63b6ef916977c2c" } Frame { msec: 1040 - hash: "83657cfa447060a01d5fbdb890ad3fb9" + hash: "f7935d01ee9b497034cc1d8f007a0fdf" } Frame { msec: 1056 - hash: "b04b6cb7e5e464ecee15a2c9803a857f" + hash: "4a1bfdcc85e5444c1bd836399e86ee05" } Frame { msec: 1072 - hash: "ea4f1707e49527f6cae0a3df1b75137b" + hash: "1b86514f3c85a8438ef183cc4772e997" } Frame { msec: 1088 - hash: "ae4893aca919be2d89f1107185b5fe9a" + hash: "7bf4c1ca946288e9d1a7ad055d8cacaa" } Frame { msec: 1104 - hash: "d991c469947a94ffcfb63716226fa912" + hash: "b3a00861967157786a80c80030d5495b" } Frame { msec: 1120 - hash: "df63c1dba0399d1fe5e7b9c9c794b598" + hash: "b9c6195d3336d7519cc72b16e75d00f6" } Frame { msec: 1136 - hash: "305d263f68b4ccd78bffccd887870f97" + hash: "6dba6d030a5ff6a92a57f0bdcf0fe781" } Frame { msec: 1152 - hash: "f4d1f7245b519d623defdc12e76285d2" + hash: "cc97a2721f4339094819c8b7aec6d74c" } Frame { msec: 1168 - hash: "5a47e6498ddf8a02cb1df7a3510bac37" + hash: "190f67abce51f58fdd1591651633d67e" } Frame { msec: 1184 - hash: "358b9b6be7f8379815d8ee828eed3e43" + hash: "b255f75cfc4918663b8bd47c887cfb3c" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png index 591c1ef..cfa61a9 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png index dc90e0d..be676c0 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png index c787029..df2fe2f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png index fdd64ac..76e5b9f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png index 1286e54..bb65ade 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png index 05dd690..060be22 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png index eb74cc5..d373aef 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png index 3aed06c..5dad108 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml index 2de4a10..6081aaf 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml @@ -110,23 +110,23 @@ VisualTest { } Frame { msec: 368 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 384 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 400 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 416 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 432 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Key { type: 7 @@ -138,27 +138,27 @@ VisualTest { } Frame { msec: 448 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 464 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 480 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 496 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 512 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 528 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Key { type: 7 @@ -170,43 +170,43 @@ VisualTest { } Frame { msec: 544 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 560 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 576 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 592 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 608 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 624 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 640 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 656 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 672 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Frame { msec: 688 - hash: "bc06530170cf26690a09ed9f6c4014fd" + hash: "593867b082681c362d7dffda12615284" } Key { type: 6 @@ -218,23 +218,23 @@ VisualTest { } Frame { msec: 704 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 720 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 736 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 752 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 768 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Key { type: 7 @@ -246,23 +246,23 @@ VisualTest { } Frame { msec: 784 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 800 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 816 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 832 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Frame { msec: 848 - hash: "8c64a986ce7bd19dcc88785309456f4e" + hash: "8d4a4baca932c318fba437b05962a635" } Key { type: 6 @@ -274,15 +274,15 @@ VisualTest { } Frame { msec: 864 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 880 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 896 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Key { type: 7 @@ -294,19 +294,19 @@ VisualTest { } Frame { msec: 912 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 928 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 944 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 960 - hash: "4cfca8edcb96b1d9986db4ee491bf857" + hash: "b2698dba3a5ebe80e26f273b32857506" } Frame { msec: 976 @@ -322,19 +322,19 @@ VisualTest { } Frame { msec: 992 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1008 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1024 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1040 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Key { type: 7 @@ -346,51 +346,51 @@ VisualTest { } Frame { msec: 1056 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1072 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1088 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1104 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1120 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1136 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1152 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1168 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1184 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1200 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1216 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Frame { msec: 1232 - hash: "3d25316ea23ace5a88dbe8765b743eb3" + hash: "3ea06a90d633d5e9fe5a11cc4ed67764" } Key { type: 6 @@ -402,15 +402,15 @@ VisualTest { } Frame { msec: 1248 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Frame { msec: 1264 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Frame { msec: 1280 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Key { type: 7 @@ -422,15 +422,15 @@ VisualTest { } Frame { msec: 1296 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Frame { msec: 1312 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Frame { msec: 1328 - hash: "fea82a32ec46a88027cc9b0c00aa0aba" + hash: "a190bbf59ec807391077b9d1183f72b5" } Key { type: 6 @@ -442,39 +442,39 @@ VisualTest { } Frame { msec: 1344 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1360 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1376 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1392 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1408 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1424 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1440 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1456 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Frame { msec: 1472 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Key { type: 7 @@ -486,7 +486,7 @@ VisualTest { } Frame { msec: 1488 - hash: "fffa6f462ea15fe3bdbf2c199881fce4" + hash: "f171a98a3a726b517ad4b401a0720ba2" } Key { type: 6 @@ -498,19 +498,19 @@ VisualTest { } Frame { msec: 1504 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1520 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1536 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1552 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Key { type: 7 @@ -522,27 +522,27 @@ VisualTest { } Frame { msec: 1568 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1584 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1600 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1616 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1632 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Frame { msec: 1648 - hash: "d874584748e4aa14fd71730aa36d676c" + hash: "e7199e4284be9dea34caff7bde0f6303" } Key { type: 6 @@ -554,23 +554,23 @@ VisualTest { } Frame { msec: 1664 - hash: "5eac6452c3c01de25633be412b2c9fd6" + hash: "1d9d3c6435f2fa06bda16ef4a2ff238f" } Frame { msec: 1680 - hash: "5eac6452c3c01de25633be412b2c9fd6" + hash: "1d9d3c6435f2fa06bda16ef4a2ff238f" } Frame { msec: 1696 - hash: "5eac6452c3c01de25633be412b2c9fd6" + hash: "1d9d3c6435f2fa06bda16ef4a2ff238f" } Frame { msec: 1712 - hash: "5eac6452c3c01de25633be412b2c9fd6" + hash: "1d9d3c6435f2fa06bda16ef4a2ff238f" } Frame { msec: 1728 - hash: "5eac6452c3c01de25633be412b2c9fd6" + hash: "1d9d3c6435f2fa06bda16ef4a2ff238f" } Key { type: 6 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1744 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Key { type: 7 @@ -594,15 +594,15 @@ VisualTest { } Frame { msec: 1760 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Frame { msec: 1776 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Frame { msec: 1792 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Key { type: 7 @@ -614,19 +614,19 @@ VisualTest { } Frame { msec: 1808 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Frame { msec: 1824 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Frame { msec: 1840 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Frame { msec: 1856 - hash: "8bf395bd43cf0483aea0ddf3e8ab8c56" + hash: "9d8cb02bbc4f39d38ccdf8e9bda0ed5c" } Key { type: 6 @@ -638,19 +638,19 @@ VisualTest { } Frame { msec: 1872 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 1888 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 1904 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 1920 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Key { type: 7 @@ -666,23 +666,23 @@ VisualTest { } Frame { msec: 1952 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 1968 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 1984 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 2000 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Frame { msec: 2016 - hash: "4a31bba56f9adaccf47e6335ed4e284f" + hash: "2af75935ad1d3be02c6481c094737575" } Key { type: 6 @@ -694,11 +694,11 @@ VisualTest { } Frame { msec: 2032 - hash: "8bbabbbe84de490438d1111aa728c15f" + hash: "c3512d6a7ead481aa6fec8ef8ee2f1d1" } Frame { msec: 2048 - hash: "8bbabbbe84de490438d1111aa728c15f" + hash: "c3512d6a7ead481aa6fec8ef8ee2f1d1" } Key { type: 7 @@ -710,11 +710,11 @@ VisualTest { } Frame { msec: 2064 - hash: "8bbabbbe84de490438d1111aa728c15f" + hash: "c3512d6a7ead481aa6fec8ef8ee2f1d1" } Frame { msec: 2080 - hash: "8bbabbbe84de490438d1111aa728c15f" + hash: "c3512d6a7ead481aa6fec8ef8ee2f1d1" } Key { type: 6 @@ -726,19 +726,19 @@ VisualTest { } Frame { msec: 2096 - hash: "5877f1d527fecaf1077ff5bd2fe1934f" + hash: "064e1fc885ab7f07dad1770361087bef" } Frame { msec: 2112 - hash: "5877f1d527fecaf1077ff5bd2fe1934f" + hash: "064e1fc885ab7f07dad1770361087bef" } Frame { msec: 2128 - hash: "5877f1d527fecaf1077ff5bd2fe1934f" + hash: "064e1fc885ab7f07dad1770361087bef" } Frame { msec: 2144 - hash: "5877f1d527fecaf1077ff5bd2fe1934f" + hash: "064e1fc885ab7f07dad1770361087bef" } Key { type: 6 @@ -758,19 +758,19 @@ VisualTest { } Frame { msec: 2160 - hash: "1593ef669fdff28c33f54c12c7e7424e" + hash: "9b764f6e9cc3d30446e1b32f7ab94f66" } Frame { msec: 2176 - hash: "1593ef669fdff28c33f54c12c7e7424e" + hash: "9b764f6e9cc3d30446e1b32f7ab94f66" } Frame { msec: 2192 - hash: "1593ef669fdff28c33f54c12c7e7424e" + hash: "9b764f6e9cc3d30446e1b32f7ab94f66" } Frame { msec: 2208 - hash: "1593ef669fdff28c33f54c12c7e7424e" + hash: "9b764f6e9cc3d30446e1b32f7ab94f66" } Key { type: 6 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2224 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Key { type: 7 @@ -794,23 +794,23 @@ VisualTest { } Frame { msec: 2240 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Frame { msec: 2256 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Frame { msec: 2272 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Frame { msec: 2288 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Frame { msec: 2304 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Key { type: 7 @@ -822,11 +822,11 @@ VisualTest { } Frame { msec: 2320 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Frame { msec: 2336 - hash: "da746581451954d7d941fbac825a1009" + hash: "18eff632e106f632aad481ab40f985d7" } Key { type: 6 @@ -838,27 +838,27 @@ VisualTest { } Frame { msec: 2352 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2368 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2384 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2400 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2416 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2432 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Key { type: 7 @@ -870,19 +870,19 @@ VisualTest { } Frame { msec: 2448 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2464 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2480 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Frame { msec: 2496 - hash: "3e008b7ead8459c1667f4f385d4c5372" + hash: "eaabd4617081e3bc68a5b9099c63272a" } Key { type: 6 @@ -894,15 +894,15 @@ VisualTest { } Frame { msec: 2512 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2528 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2544 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Key { type: 7 @@ -914,87 +914,87 @@ VisualTest { } Frame { msec: 2560 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2576 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2592 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2608 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2624 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2640 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2656 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2672 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2688 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2704 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2720 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2736 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2752 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2768 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2784 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2800 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2816 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2832 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2848 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2864 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2880 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2896 @@ -1002,42 +1002,42 @@ VisualTest { } Frame { msec: 2912 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2928 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2944 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2960 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2976 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 2992 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 3008 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 3024 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 3040 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } Frame { msec: 3056 - hash: "1dbc7e1ab58dcec8691ff4195b0d581c" + hash: "fec019ea87914d30b5bf4754ce8ba916" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml index a1a0821..fc8a115 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml @@ -379,7 +379,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -583,7 +583,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -783,7 +783,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -1175,7 +1175,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 @@ -1823,7 +1823,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 @@ -2327,7 +2327,7 @@ VisualTest { Key { type: 7 key: 16777249 - modifiers: 0 + modifiers: 67108864 text: "" autorep: false count: 1 -- cgit v0.12 From ea814440efc8a4b956ba3a4cddd1f269f1734c96 Mon Sep 17 00:00:00 2001 From: Martin Petersson Date: Thu, 25 Nov 2010 12:57:13 +0100 Subject: Fix QTBUG-13928 non flat mode for project files in VS2010. Reviewed-by: Joerg Task-number: QTBUG-13928 --- qmake/generators/win32/msbuild_objectmodel.cpp | 31 ++++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index c3436b4..3381d53 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -2908,26 +2908,43 @@ void XTreeNode::generateXML(XmlOutput &xml, XmlOutput &xmlFilter, const QString if (children.size()) { // Filter + QString tempFilterName; ChildrenMap::ConstIterator it, end = children.constEnd(); if (!tagName.isEmpty()) { + tempFilterName.append(filter); + tempFilterName.append("\\"); + tempFilterName.append(tagName); + xmlFilter << tag(_ItemGroup); xmlFilter << tag("Filter") - << attrTag("Include", tagName) - << attrTagS("Extensions", ""); + << attrTag("Include", tempFilterName) + << closetag(); + xmlFilter << closetag(); } // First round, do nested filters for (it = children.constBegin(); it != end; ++it) if ((*it)->children.size()) - (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter); + { + if ( !tempFilterName.isEmpty() ) + (*it)->generateXML(xml, xmlFilter, it.key(), tool, tempFilterName); + else + (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter); + } // Second round, do leafs for (it = children.constBegin(); it != end; ++it) if (!(*it)->children.size()) - (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter); - - if (!tagName.isEmpty()) - xml << closetag("Filter"); + { + if ( !tempFilterName.isEmpty() ) + (*it)->generateXML(xml, xmlFilter, it.key(), tool, tempFilterName); + else + (*it)->generateXML(xml, xmlFilter, it.key(), tool, filter); + } } else { // Leaf + xml << tag(_ItemGroup); + xmlFilter << tag(_ItemGroup); tool.outputFileConfigs(xml, xmlFilter, info, filter); + xmlFilter << closetag(); + xml << closetag(); } } -- cgit v0.12 From a0be2bb3f5a7f71f1e77ca7b8907e49b8e16bef3 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 13:50:27 +0100 Subject: Doc: Fixed a snippet to show QML comments. Task-number: QTBUG-15584 --- doc/src/snippets/declarative/comments.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/src/snippets/declarative/comments.qml b/doc/src/snippets/declarative/comments.qml index a8e47ad..97659a5 100644 --- a/doc/src/snippets/declarative/comments.qml +++ b/doc/src/snippets/declarative/comments.qml @@ -38,7 +38,6 @@ ** ****************************************************************************/ -//![0] import QtQuick 1.0 //![0] -- cgit v0.12 From dcce5c796e5cd5cb090f1c395e483269bab01566 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 13:56:29 +0100 Subject: Doc: Fixed whitespace. --- .../qmlvisual/webview/flickable/flickweb.qml | 70 +++++++++++----------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml index 6063226..af09389 100644 --- a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml +++ b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml @@ -1,35 +1,35 @@ -import QtQuick 1.0 -import QtWebKit 1.0 - -Flickable { - id: flickable - width: 320 - height: 200 - contentWidth: Math.max(flickable.width,webView.width) - contentHeight: Math.max(flickable.height,webView.height) - pressDelay: 100 - - WebView { - id: webView - transformOrigin: Item.TopLeft - smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions - url: "test.html" - preferredWidth: flickable.width - preferredHeight: flickable.height - contentsScale: 1 - onContentsSizeChanged: { - // zoom out - contentsScale = Math.min(1,flickable.width / contentsSize.width) - } - } - - Rectangle { - id: button - width: 50; height: 50; color: "red" - MouseArea { - anchors.fill: parent - onPressed: button.color = "blue" - onReleased: button.color = "green" - } - } -} +import QtQuick 1.0 +import QtWebKit 1.0 + +Flickable { + id: flickable + width: 320 + height: 200 + contentWidth: Math.max(flickable.width,webView.width) + contentHeight: Math.max(flickable.height,webView.height) + pressDelay: 100 + + WebView { + id: webView + transformOrigin: Item.TopLeft + smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions + url: "test.html" + preferredWidth: flickable.width + preferredHeight: flickable.height + contentsScale: 1 + onContentsSizeChanged: { + // zoom out + contentsScale = Math.min(1,flickable.width / contentsSize.width) + } + } + + Rectangle { + id: button + width: 50; height: 50; color: "red" + MouseArea { + anchors.fill: parent + onPressed: button.color = "blue" + onReleased: button.color = "green" + } + } +} -- cgit v0.12 From 1eca3f0ac1ac04fde7f99cfeae2301b8a25af718 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 25 Nov 2010 10:36:33 +0200 Subject: Only patch package content that is necessary for self-signing Automatic patching was modifying all package files in ways that only made sense for very limited set of projects. Some things were also no longer necessary due other developments, so dropped the dependency, embedded sis, and manufacturer check modifications. Also provided an option to do a self-signed compatibility check for the package instead of patching it automatically by specifying "-d" parameter in QT_SIS_OPTIONS env variable or createpackage command line, depending on how package is made. Task-number: QTBUG-15561 Reviewed-by: axis --- bin/createpackage.pl | 14 +- bin/patch_capabilities.pl | 215 +++++++++++++++------------- doc/src/platforms/symbian-introduction.qdoc | 1 + 3 files changed, 125 insertions(+), 105 deletions(-) diff --git a/bin/createpackage.pl b/bin/createpackage.pl index 522d1fb..6b83585 100755 --- a/bin/createpackage.pl +++ b/bin/createpackage.pl @@ -82,6 +82,8 @@ Where supported options are as follows: [-s|stub] = Generates stub sis for ROM. [-n|sisname ] = Specifies the final sis name. [-g|gcce-is-armv5] = Convert gcce platform to armv5. + [-d|dont-patch] = Skip automatic patching of capabilities and pkg file if default certificate + is used. Instead non-self-signable capabilities just cause warnings. Where parameters are as follows: templatepkg = Name of .pkg file template target = Either debug or release @@ -127,6 +129,7 @@ my $stub = ""; my $signed_sis_name = ""; my $onlyUnsigned = ""; my $convertGcce = ""; +my $dontPatchCaps = ""; unless (GetOptions('i|install' => \$install, 'p|preprocess' => \$preprocessonly, @@ -135,7 +138,8 @@ unless (GetOptions('i|install' => \$install, 'o|only-unsigned' => \$onlyUnsigned, 's|stub' => \$stub, 'n|sisname=s' => \$signed_sis_name, - 'g|gcce-is-armv5' => \$convertGcce,)) { + 'g|gcce-is-armv5' => \$convertGcce, + 'd|dont-patch' => \$dontPatchCaps,)) { Usage(); } @@ -343,9 +347,13 @@ if($stub) { && !@certificates && $templatepkg !~ m/_installer\.pkg$/i && !$onlyUnsigned) { - print("Auto-patching capabilities for self signed package.\n"); my $patch_capabilities = File::Spec->catfile(dirname($0), "patch_capabilities"); - system ("$patch_capabilities $pkgoutput") and die ("ERROR: Automatic patching failed"); + if ($dontPatchCaps) { + system ("$patch_capabilities -c $pkgoutput") and print ("Warning: Package check for self-signing viability failed. Installing the package on a device will most likely fail!\n\n"); + } else { + print("Auto-patching self-signed package.\n"); + system ("$patch_capabilities $pkgoutput") and die ("ERROR: Automatic patching failed"); + } } # Create SIS. diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl index 994d493..df71339 100755 --- a/bin/patch_capabilities.pl +++ b/bin/patch_capabilities.pl @@ -63,8 +63,11 @@ sub Usage() { print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n\n"); print(" *** NOTE2: When patching gcce binaries built with symbian-sbsv2 toolchain,\n"); print(" armv5 must be specified as platform.\n"); - print("\nUsage: patch_capabilities.pl pkg_filename [target-platform [capability list]]\n"); + print("\nUsage: patch_capabilities.pl [-c] pkg_filename [target-platform [capability list]]\n"); print("\nE.g. patch_capabilities.pl myapp_template.pkg release-armv5 \"All -TCB\"\n"); + print("\nThe parameter -c can be used to just check if package is compatible with self-signing\n"); + print("without actually doing any patching.\n"); + print("Explicit capability list cannot be used with -c parameter.\n"); exit(); } @@ -86,6 +89,14 @@ if (@ARGV) { # Parse the first given script argument as a ".pkg" file name. my $pkgFileName = shift(@ARGV); + my $justCheck = ""; + my $msgPrefix = "Patching:"; + + if ($pkgFileName eq "-c") { + $pkgFileName = shift(@ARGV); + $justCheck = true; + $msgPrefix = "Warning:"; + } # These variables will only be set for template .pkg files. my $target; @@ -123,15 +134,22 @@ if (@ARGV) if (($pkgFileName =~ m|\.pkg$|i) && -r($pkgFileName)) { print ("\n"); - print ("Patching package file and relevant binaries...\n"); + if ($justCheck) { + print ("Checking"); + } else { + print ("Patching"); + } + print (" package file and relevant binaries...\n"); - # If there are more arguments given, parse them as capabilities. - if (@ARGV) - { - @capabilitiesSpecified = (); - while (@ARGV) + if (!$justCheck) { + # If there are more arguments given, parse them as capabilities. + if (@ARGV) { - push (@capabilitiesSpecified, pop(@ARGV)); + @capabilitiesSpecified = (); + while (@ARGV) + { + push (@capabilitiesSpecified, pop(@ARGV)); + } } } @@ -139,11 +157,15 @@ if (@ARGV) my @binaries = (); my $tempPkgFileName = $pkgFileName."_@@TEMP@@"; - unlink($tempPkgFileName); - open (NEW_PKG, ">>".$tempPkgFileName); + + if (!$justCheck) { + unlink($tempPkgFileName); + open (NEW_PKG, ">>".$tempPkgFileName); + } open (PKG, "<".$pkgFileName); - my $manufacturerElseBlock = 0; + my $checkFailed = ""; + my $somethingPatched = ""; # Parse each line. while () @@ -155,66 +177,19 @@ if (@ARGV) if ($line =~ m/^\#.*\((0x[0-7][0-9a-fA-F]*)\).*$/) { my $oldUID = $1; - my $newUID = $oldUID; - $newUID =~ s/0x./0xE/i; - $newLine =~ s/$oldUID/$newUID/; - print ("Patching: UID $oldUID is not compatible with self-signing! Changed to: $newUID.\n"); - } - - # Patch embedded sis name and UID if UID is in protected range - if ($line =~ m/^@\"*(.*\.sis).*\((0x[0-7][0-9a-fA-F]*)\).*$/) - { - my $oldSisName = $1; - my $oldUID = $2; - my $newUID = $oldUID; - $newUID =~ s/0x./0xE/i; - $newLine =~ s/$oldUID/$newUID/; - print ("Patching: Embedded sis $oldSisName UID $oldUID changed to: $newUID.\n"); - - if ($oldSisName !~ m/^.*_selfsigned.sis$/i) - { - my $newSisName = $oldSisName; - $newSisName =~ s/\.sis$/_selfsigned\.sis/i; - $newLine =~ s/$oldSisName/$newSisName/i; - print ("Patching: Embedded sis $oldSisName name changed to: $newSisName.\n"); + print ("$msgPrefix UID $oldUID is not compatible with self-signing!\n"); + + if ($justCheck) { + $checkFailed = true; + } else { + my $newUID = $oldUID; + $newUID =~ s/0x./0xE/i; + $newLine =~ s/$oldUID/$newUID/; + print ("$msgPrefix Package UID changed to: $newUID.\n"); + $somethingPatched = true; } } - # Remove dependencies to known problem packages (i.e. packages that are likely to be patched, too) - # to reduce unnecessary error messages. - if ($line =~ m/^\((0x2002af5f)\).*\{.*\}$/) - { - $newLine = "\n"; - print ("Patching: Removed dependency to sqlite3.sis ($1) to avoid installation issues in case sqlite3.sis is also patched.\n"); - } - if ($line =~ m/^\((0x2001E61C)\).*\{.*\}$/) - { - $newLine = "\n"; - print ("Patching: Removed dependency to qt.sis ($1) to avoid installation issues in case qt.sis is also patched.\n"); - } - - # Remove manufacturer ifdef - if ($line =~ m/^.*\(MANUFACTURER\)\=\(.*\).*$/) - { - $newLine = "\n"; - print ("Patching: Removed manufacturer check as it is usually not desirable in self-signed packages.\n"); - } - - if ($line =~ m/^ELSEIF.*MANUFACTURER$/) - { - $manufacturerElseBlock = 1; - } - - if ($manufacturerElseBlock eq 1) - { - $newLine = "\n"; - } - - if ($line =~ m/^ENDIF.*MANUFACTURER$/) - { - $manufacturerElseBlock = 0; - } - # If the line specifies a file, parse the source and destination locations. if ($line =~ m|^ *\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|) { @@ -231,16 +206,20 @@ if (@ARGV) $sourcePath =~ s/\$\(TARGET\)/$target/gm; } - # Change the source file name (but only if not already patched) - my $patchedSourcePath = $sourcePath; - if ($patchedSourcePath !~ m/_patched_caps/) - { - $newLine =~ s/(^.*)(\.dll|\.exe)(.*)(\.dll|\.exe)/$1_patched_caps$2$3$4/i; - $patchedSourcePath =~ s/(^.*)(\.dll|\.exe)/$1_patched_caps$2/i; - - copy($sourcePath, $patchedSourcePath) or die "$sourcePath cannot be copied for patching."; + if ($justCheck) { + push (@binaries, $sourcePath); + } else { + # Change the source file name (but only if not already patched) + my $patchedSourcePath = $sourcePath; + if ($patchedSourcePath !~ m/_patched_caps/) + { + $newLine =~ s/(^.*)(\.dll|\.exe)(.*)(\.dll|\.exe)/$1_patched_caps$2$3$4/i; + $patchedSourcePath =~ s/(^.*)(\.dll|\.exe)/$1_patched_caps$2/i; + + copy($sourcePath, $patchedSourcePath) or die "$sourcePath cannot be copied for patching."; + } + push (@binaries, $patchedSourcePath); } - push (@binaries, $patchedSourcePath); } } @@ -250,11 +229,12 @@ if (@ARGV) } close (PKG); - close (NEW_PKG); - - unlink($pkgFileName); - rename($tempPkgFileName, $pkgFileName); + if (!$justCheck) { + close (NEW_PKG); + unlink($pkgFileName); + rename($tempPkgFileName, $pkgFileName); + } print ("\n"); my $baseCommandToExecute = "elftran -vid 0x0 -capability \"%s\" "; @@ -265,18 +245,18 @@ if (@ARGV) # Create the command line for setting the capabilities. my ($binaryVolume, $binaryDirs, $binaryBaseName) = File::Spec->splitpath($binaryPath); my $commandToExecute = $baseCommandToExecute; - my $executeNeeded = 0; + my $executeNeeded = ""; if (@capabilitiesSpecified) { $commandToExecute = sprintf($baseCommandToExecute, join(" ", @capabilitiesSpecified)); - $executeNeeded = 1; + $executeNeeded = true; my $capString = join(" ", @capabilitiesSpecified); - print ("Patching: Patching the the Vendor ID to 0 and the capabilities used to: \"$capString\" in \"$binaryBaseName\".\n"); + print ("$msgPrefix Patching the the Vendor ID to 0 and the capabilities used to: \"$capString\" in \"$binaryBaseName\".\n"); } else { # Test which capabilities are present and then restrict them to the allowed set. # This avoid raising the capabilities of apps that already have none. my $dllCaps; - open($dllCaps, "elftran -dump s $binaryPath |") or die ("Could not execute elftran"); + open($dllCaps, "elftran -dump s $binaryPath |") or die ("ERROR: Could not execute elftran"); my $capsFound = 0; my $originalVid; my @capabilitiesToSet; @@ -288,8 +268,8 @@ if (@ARGV) if ($binaryBaseName =~ /\.exe$/) { # Installer refuses to install protected executables in a self signed package, so abort if one is detected. # We can't simply just patch the executable SID, as any registration resources executable uses will be linked to it via SID. - print ("Patching: Executable with SID in the protected range (0x$exeSid) detected: \"$binaryBaseName\". A self-signed sis with protected executables is not supported.\n"); - exit(1); + print ("$msgPrefix Executable with SID in the protected range (0x$exeSid) detected: \"$binaryBaseName\". A self-signed sis with protected executables is not supported.\n\n"); + $checkFailed = true; } } if (/^Vendor ID: ([0-9a-fA-F]*)$/) { @@ -302,7 +282,7 @@ if (@ARGV) 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"); + print ("$msgPrefix \"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\n"); } } else { push(@capabilitiesToDrop, $_); @@ -311,22 +291,32 @@ if (@ARGV) } close($dllCaps); if ($originalVid !~ "00000000") { - print ("Patching: Vendor ID (0x$originalVid) incompatible with self-signed packages, setting it to zero for \"$binaryBaseName\".\n"); - $executeNeeded = 1; + print ("$msgPrefix Non-zero vendor ID (0x$originalVid) is incompatible with self-signed packages in \"$binaryBaseName\""); + if ($justCheck) { + print (".\n\n"); + $checkFailed = true; + } else { + print (", setting it to zero.\n\n"); + $executeNeeded = true; + } } if ($#capabilitiesToDrop) { my $capsToDropStr = join("\", \"", @capabilitiesToDrop); $capsToDropStr =~ s/\", \"$//; - if ($binaryBaseName =~ /\.exe$/) { - # 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); + if ($justCheck) { + print ("$msgPrefix The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package: \"$capsToDropStr\".\n\n"); + $checkFailed = true; } else { - print ("Patching: The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package and will be removed: \"$capsToDropStr\".\n"); - $executeNeeded = 1; + if ($binaryBaseName =~ /\.exe$/) { + # 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 ("$msgPrefix Executable with capabilities incompatible with self-signing detected: \"$binaryBaseName\". (Incompatible capabilities: \"$capsToDropStr\".) Reducing capabilities is only supported for libraries.\n"); + $checkFailed = true; + } else { + print ("$msgPrefix The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package and will be removed: \"$capsToDropStr\".\n"); + $executeNeeded = true; + } } } $commandToExecute = sprintf($baseCommandToExecute, join(" ", @capabilitiesToSet)); @@ -337,16 +327,37 @@ if (@ARGV) # Actually execute the elftran command to set the capabilities. print ("\n"); system ("$commandToExecute > $nullDevice"); + $somethingPatched = true; } ## Create another command line to check that the set capabilities are correct. #$commandToExecute = "elftran -dump s ".$binaryPath; } + if ($checkFailed) { + print ("\n"); + if ($justCheck) { + print ("$msgPrefix The package is not compatible with self-signing.\n"); + } else { + print ("$msgPrefix Unable to patch the package for self-singing.\n"); + } + print ("Use a proper developer certificate for signing this package.\n\n"); + exit(1); + } + + if ($justCheck) { + print ("Package is compatible with self-signing.\n"); + } else { + if ($somethingPatched) { + print ("NOTE: A patched package may not work as expected due to reduced capabilities and other modifications,\n"); + print (" so it should not be used for any kind of Symbian signing or distribution!\n"); + print (" Use a proper certificate to avoid the need to patch the package.\n"); + } else { + print ("No patching was required!\n"); + } + } print ("\n"); - print ("NOTE: A patched package may not work as expected due to reduced capabilities and other modifications,\n"); - print (" so it should not be used for any kind of Symbian signing or distribution!\n"); - print (" Use a proper certificate to avoid the need to patch the package.\n"); - print ("\n"); + } else { + Usage(); } } else diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc index 7bc5303..9da94c4 100644 --- a/doc/src/platforms/symbian-introduction.qdoc +++ b/doc/src/platforms/symbian-introduction.qdoc @@ -222,6 +222,7 @@ \row \o -s \o Generates stub sis for ROM. \row \o -n \o Specifies the final sis name. \row \o -g \o Treat gcce platform as armv5. + \row \o -d \o Skip automatic patching of the package when default certificate is used. \endtable Execute the \c{createpackage.pl} script without any -- cgit v0.12 From a51a29e9f7b63fcefcdf9e9069e219726db1250e Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Thu, 25 Nov 2010 15:46:43 +0100 Subject: Fix possible artifacts under glyphs in texture glyph cache We would disregard the first glyph in each line when calculating the required height of the line in the glyph cache. If the first glyph was taller than any of the other glyphs in the same line, the glyph drawn underneath it in the cache could potentially overlap it, and you would see it as dots or lines underneath the glyph in the output. Task-number: QTBUG-14806 Reviewed-by: Jiang Jiang --- src/gui/painting/qtextureglyphcache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp index 2daa1f0..eab9cf6 100644 --- a/src/gui/painting/qtextureglyphcache.cpp +++ b/src/gui/painting/qtextureglyphcache.cpp @@ -143,7 +143,7 @@ bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const // no room on the current line, start new glyph strip m_cx = 0; m_cy += m_currentRowHeight + paddingDoubled; - m_currentRowHeight = 0; // New row + m_currentRowHeight = c.h + margin * 2; // New row } } if (m_cy + c.h > m_h) { -- cgit v0.12 From b235215ebadaed8b985323b581e8818dd4f09d7f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:17:21 +0100 Subject: Ensured that the inObsoleteLink variable is initialized. --- tools/qdoc3/htmlgenerator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index b095f23..3f76204 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -218,7 +218,8 @@ HtmlGenerator::HtmlGenerator() funcLeftParen("\\S(\\()"), myTree(0), slow(false), - obsoleteLinks(false) + obsoleteLinks(false), + inObsoleteLink(false) { } -- cgit v0.12 From fc124dd191f285d6003ad458621f752c2a164cf4 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:34:56 +0100 Subject: Ensured that the inObsoleteLink variable is initialized. --- tools/qdoc3/ditaxmlgenerator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index a83a321..ce597f2 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -385,7 +385,8 @@ DitaXmlGenerator::DitaXmlGenerator() myTree(0), slow(false), obsoleteLinks(false), - noLinks(0) + noLinks(0), + inObsoleteLink(false) { } -- cgit v0.12 From 25762d8825d5085287c3266f29a67046b99ff38a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:36:10 +0100 Subject: Trivial whitespace fixes. --- tools/qdoc3/node.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index 40b78ef..ae713d5 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -87,8 +87,8 @@ class Node enum SubType { NoSubType, - Example, - HeaderFile, + Example, + HeaderFile, File, Image, Group, @@ -114,7 +114,7 @@ class Node Commendable, Main, Internal - }; // don't reorder thisw enum + }; // don't reorder this enum enum ThreadSafeness { UnspecifiedSafeness, -- cgit v0.12 From 74fd34b43e2954881767e33fd62fe5b922643f88 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:36:57 +0100 Subject: Added a check for read-only pure QML properties before C++ checks. --- tools/qdoc3/node.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index e043f5d..3e8230c 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -1680,6 +1680,9 @@ static QString valueType(const QString& n) */ bool QmlPropertyNode::isWritable(const Tree* tree) const { + if (wri != Trool_Default) + return fromTrool(wri, false); + Node* n = parent(); while (n && n->subType() != Node::QmlClass) n = n->parent(); -- cgit v0.12 From 5edca8bf762e7f3efcff2d95790b7e5ad3e9a89c Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:37:44 +0100 Subject: Ensured that QML nodes are imported from indexes. --- tools/qdoc3/tree.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index 9946f0b..20c1373 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -806,6 +806,12 @@ void Tree::readIndexSection(const QDomElement &element, subtype = Node::Page; else if (element.attribute("subtype") == "externalpage") subtype = Node::ExternalPage; + else if (element.attribute("subtype") == "qmlclass") + subtype = Node::QmlClass; + else if (element.attribute("subtype") == "qmlpropertygroup") + subtype = Node::QmlPropertyGroup; + else if (element.attribute("subtype") == "qmlbasictype") + subtype = Node::QmlBasicType; else return; -- cgit v0.12 From b81081ff67d3e27e36c8165c9b0814feca1fcf15 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 17:38:29 +0100 Subject: Added support for pure QML signals and properties. Generalized the function to annotate nodes with documentation. --- tools/qdoc3/qmlvisitor.cpp | 50 +++++++++++++++++++++++++++++++++++----------- tools/qdoc3/qmlvisitor.h | 3 +-- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/tools/qdoc3/qmlvisitor.cpp b/tools/qdoc3/qmlvisitor.cpp index 83bf96f..1d65c3d 100644 --- a/tools/qdoc3/qmlvisitor.cpp +++ b/tools/qdoc3/qmlvisitor.cpp @@ -85,14 +85,15 @@ QmlJS::AST::SourceLocation DocVisitor::precedingComment(unsigned offset) const } void DocVisitor::applyDocumentation(QmlJS::AST::SourceLocation location, - InnerNode *node) + Node *node) { QmlJS::AST::SourceLocation loc = precedingComment(location.begin()); if (loc.isValid()) { QString source = document.mid(loc.offset, loc.length); if (source.startsWith(QLatin1String("!")) || - source.startsWith(QLatin1String("*"))) { + (source.startsWith(QLatin1String("*")) && + source[1] != QLatin1Char('*'))) { Location start(filePath); start.setLineNo(loc.startLine); @@ -116,7 +117,13 @@ bool DocVisitor::visit(QmlJS::AST::UiObjectDefinition *definition) if (current->type() == Node::Namespace) { QmlClassNode *component = new QmlClassNode(current, name, 0); + component->setTitle(QLatin1String("QML ") + name + QLatin1String(" Component")); + + QmlClassNode::addInheritedBy(type, component); + component->setLink(Node::InheritsLink, type, type); + applyDocumentation(definition->firstSourceLocation(), component); + current = component; } @@ -152,16 +159,23 @@ bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) switch (member->type) { case QmlJS::AST::UiPublicMember::Signal: { - QString name = member->name->asString(); - - QList > parameters; - for (QmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { - if (it->type && it->name) - parameters.append(QPair(it->type->asString(), - it->name->asString())); + if (current->type() == Node::Fake) { + QmlClassNode *qmlClass = static_cast(current); + if (qmlClass) { + + QString name = member->name->asString(); + FunctionNode *qmlSignal = new FunctionNode(Node::QmlSignal, current, name, false); + + QList parameters; + for (QmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { + if (it->type && it->name) + parameters.append(Parameter(it->type->asString(), "", it->name->asString())); + } + + qmlSignal->setParameters(parameters); + applyDocumentation(member->firstSourceLocation(), qmlSignal); + } } - - //current->addSignal(new Signal(name, parameters)); break; } case QmlJS::AST::UiPublicMember::Property: @@ -169,7 +183,19 @@ bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) QString type = member->memberType->asString(); QString name = member->name->asString(); - //current->addProperty(new Property(type, name)); + if (current->type() == Node::Fake) { + QmlClassNode *qmlClass = static_cast(current); + if (qmlClass) { + + QString name = member->name->asString(); + QmlPropGroupNode *qmlPropGroup = new QmlPropGroupNode(qmlClass, name, false); + if (member->isDefaultMember) + qmlPropGroup->setDefault(); + QmlPropertyNode *qmlPropNode = new QmlPropertyNode(qmlPropGroup, name, type, false); + qmlPropNode->setWritable(!member->isReadonlyMember); + applyDocumentation(member->firstSourceLocation(), qmlPropNode); + } + } break; } default: diff --git a/tools/qdoc3/qmlvisitor.h b/tools/qdoc3/qmlvisitor.h index 01da98e..a830793 100644 --- a/tools/qdoc3/qmlvisitor.h +++ b/tools/qdoc3/qmlvisitor.h @@ -66,8 +66,7 @@ public: private: QmlJS::AST::SourceLocation precedingComment(unsigned offset) const; - void applyDocumentation(QmlJS::AST::SourceLocation location, - InnerNode *node); + void applyDocumentation(QmlJS::AST::SourceLocation location, Node *node); QmlJS::Engine *engine; quint32 lastEndOffset; -- cgit v0.12 From 6dc29b3a2f93936aa5a3eecb336631485c5195b8 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 26 Nov 2010 11:21:23 +1000 Subject: More detail when the process crashes in tst_qmlvisual. --- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 18fbfca..7fee24f 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -146,10 +146,11 @@ void tst_qmlvisual::visual() #endif QProcess p; + p.setProcessChannelMode(QProcess::MergedChannels); p.start(qmlruntime, arguments); - QVERIFY(p.waitForFinished()); + QVERIFY2(p.waitForFinished(), p.readAllStandardOutput().data()); if (p.exitCode() != 0) - qDebug() << p.readAllStandardError(); + qDebug() << p.readAllStandardOutput(); QCOMPARE(p.exitStatus(), QProcess::NormalExit); QCOMPARE(p.exitCode(), 0); } -- cgit v0.12 From 9ccaecf7825a782bfd29ff6c4118d933cc614726 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 26 Nov 2010 11:41:53 +1000 Subject: Slightly improved tst_qmlvisual output --- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp index 7fee24f..ef0d4dc 100644 --- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp +++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp @@ -146,11 +146,12 @@ void tst_qmlvisual::visual() #endif QProcess p; - p.setProcessChannelMode(QProcess::MergedChannels); p.start(qmlruntime, arguments); - QVERIFY2(p.waitForFinished(), p.readAllStandardOutput().data()); + bool finished = p.waitForFinished(); + QByteArray output = p.readAllStandardOutput() + p.readAllStandardError(); + QVERIFY2(finished, output.data()); if (p.exitCode() != 0) - qDebug() << p.readAllStandardOutput(); + qDebug() << output; QCOMPARE(p.exitStatus(), QProcess::NormalExit); QCOMPARE(p.exitCode(), 0); } -- cgit v0.12 From 6ebdd5eab816f357dfc3addcf2f1e8ef0ad4a9e4 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 26 Nov 2010 12:45:44 +1000 Subject: Fix type punning warnings from gcc Also clean up some code uglyness in the process --- src/declarative/qml/qdeclarativedata_p.h | 13 +++----- src/declarative/qml/qdeclarativeengine.cpp | 53 +++++++++++++++++------------- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/src/declarative/qml/qdeclarativedata_p.h b/src/declarative/qml/qdeclarativedata_p.h index def4188..4767169 100644 --- a/src/declarative/qml/qdeclarativedata_p.h +++ b/src/declarative/qml/qdeclarativedata_p.h @@ -65,6 +65,7 @@ class QDeclarativeContext; class QDeclarativePropertyCache; class QDeclarativeContextData; class QDeclarativeNotifier; +class QDeclarativeDataExtended; // This class is structured in such a way, that simply zero'ing it is the // default state for elemental object allocations. This is crucial in the // workings of the QDeclarativeInstruction::CreateSimpleObject instruction. @@ -150,17 +151,13 @@ public: } } + bool hasExtendedData() const { return extendedData != 0; } QDeclarativeNotifier *objectNameNotifier() const; QHash *attachedProperties() const; - struct ExtendedData { - ExtendedData(); - ~ExtendedData(); - - QHash attachedProperties; - void *objectNameNotifier; - }; - mutable ExtendedData *extendedData; +private: + // For objectNameNotifier and attachedProperties + mutable QDeclarativeDataExtended *extendedData; }; template diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 808ba68..1160ed8 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -957,7 +957,7 @@ QObject *qmlAttachedPropertiesObjectById(int id, const QObject *object, bool cre if (!data) return 0; // Attached properties are only on objects created by QML - QObject *rv = data->extendedData?data->attachedProperties()->value(id):0; + QObject *rv = data->hasExtendedData()?data->attachedProperties()->value(id):0; if (rv || !create) return rv; @@ -985,6 +985,35 @@ QObject *qmlAttachedPropertiesObject(int *idCache, const QObject *object, return qmlAttachedPropertiesObjectById(*idCache, object, create); } +class QDeclarativeDataExtended { +public: + QDeclarativeDataExtended(); + ~QDeclarativeDataExtended(); + + QHash attachedProperties; + QDeclarativeNotifier objectNameNotifier; +}; + +QDeclarativeDataExtended::QDeclarativeDataExtended() +{ +} + +QDeclarativeDataExtended::~QDeclarativeDataExtended() +{ +} + +QDeclarativeNotifier *QDeclarativeData::objectNameNotifier() const +{ + if (!extendedData) extendedData = new QDeclarativeDataExtended; + return &extendedData->objectNameNotifier; +} + +QHash *QDeclarativeData::attachedProperties() const +{ + if (!extendedData) extendedData = new QDeclarativeDataExtended; + return &extendedData->attachedProperties; +} + void QDeclarativeData::destroyed(QObject *object) { if (deferredComponent) @@ -1075,28 +1104,6 @@ void QDeclarativeData::setBindingBit(QObject *obj, int bit) bindingBits[bit / 32] |= (1 << (bit % 32)); } -QDeclarativeData::ExtendedData::ExtendedData() -: objectNameNotifier(0) -{ -} - -QDeclarativeData::ExtendedData::~ExtendedData() -{ - ((QDeclarativeNotifier *)&objectNameNotifier)->~QDeclarativeNotifier(); -} - -QDeclarativeNotifier *QDeclarativeData::objectNameNotifier() const -{ - if (!extendedData) extendedData = new ExtendedData; - return (QDeclarativeNotifier *)&extendedData->objectNameNotifier; -} - -QHash *QDeclarativeData::attachedProperties() const -{ - if (!extendedData) extendedData = new ExtendedData; - return &extendedData->attachedProperties; -} - /*! Creates a QScriptValue allowing you to use \a object in QML script. \a engine is the QDeclarativeEngine it is to be created in. -- cgit v0.12 From fa8d0838dfc40ed269b30b9872cfdc2d2b16b64a Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 26 Nov 2010 13:39:44 +1000 Subject: Repaint when text color changes Task-number: QTBUG-15623 Reviewed-by: Yann Bodson --- src/declarative/graphicsitems/qdeclarativetext.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 82c444e..303b21c 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -436,12 +436,13 @@ void QDeclarativeTextPrivate::invalidateImageCache() { Q_Q(QDeclarativeText); - if (imageCacheDirty) - return; - - imageCacheDirty = true; - imageCache = QPixmap(); + if(cacheAllTextAsImage || style != QDeclarativeText::Normal){//If actually using the image cache + if (imageCacheDirty) + return; + imageCacheDirty = true; + imageCache = QPixmap(); + } if (q->isComponentComplete()) q->update(); } -- cgit v0.12 From 6578492dd0badc03d2f1dcf094e426559f67308b Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Fri, 26 Nov 2010 15:40:02 +1000 Subject: Add missing newline to configure.exe output. Reviewed-by: Trust Me --- tools/configure/configureapp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 9443fee..f4fd7c6 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3417,7 +3417,7 @@ void Configure::displayConfig() QString webkit = dictionary[ "WEBKIT" ]; if (webkit == "debug") webkit = "yes (debug)"; - cout << "WebKit support.............." << webkit; + cout << "WebKit support.............." << webkit << endl; } cout << "Declarative support........." << dictionary[ "DECLARATIVE" ] << endl; cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl; -- cgit v0.12 From 3fe96820ea6830cb76793602f9f51fb961e70976 Mon Sep 17 00:00:00 2001 From: Geir Vattekar Date: Fri, 26 Nov 2010 08:41:37 +0100 Subject: Doc: Removed two warnings from QDirIterator docs Task-number: QTBUG-15492 --- src/corelib/io/qdiriterator.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index fd4b9c1..dbb333f 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -389,9 +389,6 @@ QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) \note To list symlinks that point to non existing files, QDir::System must be passed to the flags. - \warning This constructor expects \a flags to be left at its default value. Use - the constructors that do not take the \a filters argument instead. - \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorFlags flags) @@ -429,9 +426,6 @@ QDirIterator::QDirIterator(const QString &path, IteratorFlags flags) \note To list symlinks that point to non existing files, QDir::System must be passed to the flags. - \warning This constructor expects \c flags to be left at its default value. Use the - constructors that do not take the \a filters argument instead. - \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, -- cgit v0.12 From 5f70c3d9004765f8f86e3472cf59cfa7677f9163 Mon Sep 17 00:00:00 2001 From: Geir Vattekar Date: Fri, 26 Nov 2010 09:29:26 +0100 Subject: Doc:Fix paths in styleplugin/echoplugin .pro files Task-number: QTBUG-14169 --- examples/tools/echoplugin/echowindow/echowindow.pro | 4 ++-- examples/tools/styleplugin/plugin/plugin.pro | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/tools/echoplugin/echowindow/echowindow.pro b/examples/tools/echoplugin/echowindow/echowindow.pro index bdf8c41..d56961c 100644 --- a/examples/tools/echoplugin/echowindow/echowindow.pro +++ b/examples/tools/echoplugin/echowindow/echowindow.pro @@ -5,8 +5,8 @@ SOURCES = echowindow.cpp \ TARGET = echoplugin win32 { - debug:DESTDIR = ../debug/ - release:DESTDIR = ../release/ + CONFIG(debug, release|debug):DESTDIR = ../debug/ + CONFIG(release, release|debug):DESTDIR = ../release/ } else { DESTDIR = ../ } diff --git a/examples/tools/styleplugin/plugin/plugin.pro b/examples/tools/styleplugin/plugin/plugin.pro index 7cb0c97..54e266c 100644 --- a/examples/tools/styleplugin/plugin/plugin.pro +++ b/examples/tools/styleplugin/plugin/plugin.pro @@ -8,8 +8,8 @@ SOURCES = simplestyle.cpp \ TARGET = simplestyleplugin #! [0] win32 { - debug:DESTDIR = ../debug/styles/ - release:DESTDIR = ../release/styles/ + CONFIG(debug, release|debug):DESTDIR = ../debug/styles/ + CONFIG(release, release|debug):DESTDIR = ../release/styles/ } else { DESTDIR = ../styles/ } -- cgit v0.12 From 320c682c3a76c3a59ebe102ba5aad3cd1eb4a13e Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 26 Nov 2010 10:19:37 +0100 Subject: Revert "Fix a missing error-signal when a server is shut down while downloading" This reverts commit cbf7a7782f465846455a5fd5df339ebde31a5521. This commit caused autotest regressions in tst_qdeclarativeloader and tst_qdeclarativetext; reverting it for now until this has been resolved. --- src/network/access/qhttpnetworkconnectionchannel.cpp | 18 +----------------- src/network/access/qhttpnetworkconnectionchannel_p.h | 1 - 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index a47e619..c8caad4 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -66,7 +66,6 @@ QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel() , bytesTotal(0) , resendCurrent(false) , lastStatus(0) - , unhandledError(QNetworkReply::NoError) , pendingEncrypt(false) , reconnectAttempts(2) , authMethod(QAuthenticatorPrivate::None) @@ -643,21 +642,7 @@ void QHttpNetworkConnectionChannel::allDone() // slot connected to it. The socket will not fire readyRead signal, if we are already // in the slot connected to readyRead if (emitFinished) - { - // Check whether _q_error was invoked previously and if it left a socket - // error unhandled. - if(unhandledError != QNetworkReply::NoError) { - QString errorString = connection->d_func()->errorDetail(unhandledError, socket, socket->errorString()); - qRegisterMetaType("QNetworkReply::NetworkError"); - QMetaObject::invokeMethod(reply, "finishedWithError", - Qt::QueuedConnection, - Q_ARG(QNetworkReply::NetworkError, unhandledError), - Q_ARG(QString, errorString)); - unhandledError = QNetworkReply::NoError; // Reset the value - } else { - QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); - } - } + QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); // reset the reconnection attempts after we receive a complete reply. // in case of failures, each channel will attempt two reconnects before emitting error. reconnectAttempts = 2; @@ -979,7 +964,6 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket errorCode = QNetworkReply::RemoteHostClosedError; } } else { - unhandledError = QNetworkReply::RemoteHostClosedError; return; } break; diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index e1d42fb..fd18042 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -105,7 +105,6 @@ public: qint64 bytesTotal; bool resendCurrent; int lastStatus; // last status received on this channel - QNetworkReply::NetworkError unhandledError; // Stored code of an unhandled error. bool pendingEncrypt; // for https (send after encrypted) int reconnectAttempts; // maximum 2 reconnection attempts QAuthenticatorPrivate::Method authMethod; -- cgit v0.12 From 85f42777111060037476895ed08ded513d44a048 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 22 Oct 2010 14:13:56 +0200 Subject: Doc: fix typo Reviewed-by: mauricek --- src/gui/itemviews/qabstractitemview.cpp | 4 ++-- src/gui/itemviews/qstandarditemmodel.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index b464330..9127898 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -823,7 +823,7 @@ QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const deleted. QAbstractItemView does not take ownership of \a delegate. \note If a delegate has been assigned to both a row and a column, the row - delegate (i.e., this delegate) will take presedence and manage the + delegate (i.e., this delegate) will take precedence and manage the intersecting cell index. \warning You should not share the same instance of a delegate between views. @@ -881,7 +881,7 @@ QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const deleted. QAbstractItemView does not take ownership of \a delegate. \note If a delegate has been assigned to both a row and a column, the row - delegate will take presedence and manage the intersecting cell index. + delegate will take precedence and manage the intersecting cell index. \warning You should not share the same instance of a delegate between views. Doing so can cause incorrect or unintuitive editing behavior since each diff --git a/src/gui/itemviews/qstandarditemmodel.cpp b/src/gui/itemviews/qstandarditemmodel.cpp index 9d52c78..4f1d77b 100644 --- a/src/gui/itemviews/qstandarditemmodel.cpp +++ b/src/gui/itemviews/qstandarditemmodel.cpp @@ -1130,7 +1130,7 @@ Qt::ItemFlags QStandardItem::flags() const meaning that the user can interact with the item; if \a enabled is false, the user cannot interact with the item. - This flag takes presedence over the other item flags; e.g. if an item is not + This flag takes precedence over the other item flags; e.g. if an item is not enabled, it cannot be selected by the user, even if the Qt::ItemIsSelectable flag has been set. -- cgit v0.12 From 0bf8f70f85a24ab2864775bdd38f5ced43a7d4de Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Fri, 26 Nov 2010 10:20:56 +0100 Subject: QLocalSocket/Win: do not emit error() when no error actually occurred This fixes a regression in 4d0c4b9f09b35d707d437611519d0024f6f87a8c. Previously the error string was set if the error is not ERROR_PIPE_NOT_CONNECTED but the commit changed this behaviour to set the error string if it is ERROR_PIPE_NOT_CONNECTED. Task-number: QTBUG-13646 Merge-request: 941 Reviewed-by: Joerg Bornemann --- src/network/socket/qlocalsocket_win.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 4907f2c..6c3b769 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -322,9 +322,9 @@ bool QLocalSocketPrivate::completeAsyncRead() // buffer. We will read the remaining data in the next call. break; case ERROR_PIPE_NOT_CONNECTED: - setErrorString(QLatin1String("QLocalSocketPrivate::completeAsyncRead")); - // fall through + return false; default: + setErrorString(QLatin1String("QLocalSocketPrivate::completeAsyncRead")); return false; } } -- cgit v0.12 From 34d365bceae861c2322d09149f78476723dcb0c1 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 26 Nov 2010 12:59:57 +0200 Subject: Remove unused variable Variable currentClause is no longer used for anything, so removed its declaration. Reviewed-by: TrustMe --- qmake/generators/symbian/symmake_sbsv2.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index c4b51f2..c219f1d 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -377,7 +377,6 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << qmakeCmd << endl; t << endl; - QString currentClause; QString locFileDep = generateLocFileTarget(t, qmakeCmd); t << "debug: " << locFileDep << BLD_INF_FILENAME << endl; -- cgit v0.12 From fe17f36823d0b2374e3ec7badb4c2ed2c938dba8 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 26 Nov 2010 15:05:09 +0200 Subject: Fix minor memory leak QProcessPrivate::startDetached() in qprocess_symbian.cpp was leaking RProcess object. Reviewed-by: Janne Koskinen --- src/corelib/io/qprocess_symbian.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qprocess_symbian.cpp b/src/corelib/io/qprocess_symbian.cpp index 003e781..5b283a5 100644 --- a/src/corelib/io/qprocess_symbian.cpp +++ b/src/corelib/io/qprocess_symbian.cpp @@ -1050,6 +1050,7 @@ bool QProcessPrivate::startDetached(const QString &program, const QStringList &a newProc->Resume(); newProc->Close(); + delete newProc; return true; } -- cgit v0.12 From 3d442b86ae59b07bd0064e3a3ca9fc613545d3f3 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:06 +0100 Subject: QKqueueFileSystemWatcherEngine: Use EV_CLEAR instead of EV_ONESHOT. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using EV_ONESHOT and re-enabling the kevent after emitting the signal allows for a window in which file system changes can go undetected. By using EV_CLEAR instead the kevent can stay enabled. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 378ad20..45aea73 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -157,7 +157,7 @@ QStringList QKqueueFileSystemWatcherEngine::addPaths(const QStringList &paths, EV_SET(&kev, fd, EVFILT_VNODE, - EV_ADD | EV_ENABLE | EV_ONESHOT, + EV_ADD | EV_ENABLE | EV_CLEAR, NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, 0, 0); @@ -315,24 +315,12 @@ void QKqueueFileSystemWatcherEngine::run() else emit fileChanged(path, true); } else { - DEBUG() << path << "changed, re-enabling watch"; + DEBUG() << path << "changed"; if (id < 0) emit directoryChanged(path, false); else emit fileChanged(path, false); - - // renable the watch - EV_SET(&kev, - fd, - EVFILT_VNODE, - EV_ADD | EV_ENABLE | EV_ONESHOT, - NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, - 0, - 0); - if (kevent(kqfd, &kev, 1, 0, 0, 0) == -1) { - perror("QKqueueFileSystemWatcherEngine::processKqueueEvents: kevent EV_ADD"); - } } } -- cgit v0.12 From 42e861407a9977d3fa8daae5abe54e98ba6b05da Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:07 +0100 Subject: QKqueueFileSystemWatcherEngine: Deleting kevent is handled by close(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 45aea73..f66231a 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -203,19 +203,7 @@ QStringList QKqueueFileSystemWatcherEngine::removePaths(const QStringList &paths if (x.isEmpty() || x != path) continue; - int fd = id < 0 ? -id : id; - struct kevent kev; - EV_SET(&kev, - fd, - EVFILT_VNODE, - EV_DELETE, - NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, - 0, - 0); - if (kevent(kqfd, &kev, 1, 0, 0, 0) == -1) { - perror("QKqueueFileSystemWatcherEngine::removeWatch: kevent"); - } - ::close(fd); + ::close(id < 0 ? -id : id); it.remove(); if (id < 0) -- cgit v0.12 From 4ff80e53a306b1727b78b49e2de6fdafd1fb5ada Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:08 +0100 Subject: QKqueueFileSystemWatcherEngine: Handle kevent(2) returning EINTR. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The worker thread exits whenever the kevent call returns an error, but in the case of EINTR (interrupted by signal) it should just call kevent again. Otherwise for instance, attaching a debugger to the process causes the worker thread to exit because of the SIGSTOP it receives. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index f66231a..4d15519 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -234,9 +234,10 @@ void QKqueueFileSystemWatcherEngine::run() static const struct timespec ZeroTimeout = { 0, 0 }; forever { + int r; struct kevent kev; DEBUG() << "QKqueueFileSystemWatcherEngine: waiting for kevents..."; - int r = kevent(kqfd, 0, 0, &kev, 1, 0); + EINTR_LOOP(r, kevent(kqfd, 0, 0, &kev, 1, 0)); if (r < 0) { perror("QKqueueFileSystemWatcherEngine: error during kevent wait"); return; -- cgit v0.12 From 03c82dc0d4b4bbbe17e9d91bef6a112d512ca002 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:09 +0100 Subject: QKqueueFileSystemWatcherEngine: Unlock mutex before calling write(2). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Calls to write(2) potentially block, so make sure the application thread unlocks the mutex before it writes to the pipe between itself and the worker thread, so the latter can continue to process events and eventually unblock the write call (if needed) by emptying the pipe. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 134 ++++++++++++++------------- 1 file changed, 69 insertions(+), 65 deletions(-) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 4d15519..8fba091 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -117,67 +117,69 @@ QStringList QKqueueFileSystemWatcherEngine::addPaths(const QStringList &paths, QStringList *files, QStringList *directories) { - QMutexLocker locker(&mutex); - QStringList p = paths; - QMutableListIterator it(p); - while (it.hasNext()) { - QString path = it.next(); - int fd; + { + QMutexLocker locker(&mutex); + + QMutableListIterator it(p); + while (it.hasNext()) { + QString path = it.next(); + int fd; #if defined(O_EVTONLY) - fd = qt_safe_open(QFile::encodeName(path), O_EVTONLY); + fd = qt_safe_open(QFile::encodeName(path), O_EVTONLY); #else - fd = qt_safe_open(QFile::encodeName(path), O_RDONLY); + fd = qt_safe_open(QFile::encodeName(path), O_RDONLY); #endif - if (fd == -1) { - perror("QKqueueFileSystemWatcherEngine::addPaths: open"); - continue; - } + if (fd == -1) { + perror("QKqueueFileSystemWatcherEngine::addPaths: open"); + continue; + } - QT_STATBUF st; - if (QT_FSTAT(fd, &st) == -1) { - perror("QKqueueFileSystemWatcherEngine::addPaths: fstat"); - ::close(fd); - continue; - } - int id = (S_ISDIR(st.st_mode)) ? -fd : fd; - if (id < 0) { - if (directories->contains(path)) { + QT_STATBUF st; + if (QT_FSTAT(fd, &st) == -1) { + perror("QKqueueFileSystemWatcherEngine::addPaths: fstat"); ::close(fd); continue; } - } else { - if (files->contains(path)) { + int id = (S_ISDIR(st.st_mode)) ? -fd : fd; + if (id < 0) { + if (directories->contains(path)) { + ::close(fd); + continue; + } + } else { + if (files->contains(path)) { + ::close(fd); + continue; + } + } + + struct kevent kev; + EV_SET(&kev, + fd, + EVFILT_VNODE, + EV_ADD | EV_ENABLE | EV_CLEAR, + NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, + 0, + 0); + if (kevent(kqfd, &kev, 1, 0, 0, 0) == -1) { + perror("QKqueueFileSystemWatcherEngine::addPaths: kevent"); ::close(fd); continue; } - } - struct kevent kev; - EV_SET(&kev, - fd, - EVFILT_VNODE, - EV_ADD | EV_ENABLE | EV_CLEAR, - NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_RENAME | NOTE_REVOKE, - 0, - 0); - if (kevent(kqfd, &kev, 1, 0, 0, 0) == -1) { - perror("QKqueueFileSystemWatcherEngine::addPaths: kevent"); - ::close(fd); - continue; - } + it.remove(); + if (id < 0) { + DEBUG() << "QKqueueFileSystemWatcherEngine: added directory path" << path; + directories->append(path); + } else { + DEBUG() << "QKqueueFileSystemWatcherEngine: added file path" << path; + files->append(path); + } - it.remove(); - if (id < 0) { - DEBUG() << "QKqueueFileSystemWatcherEngine: added directory path" << path; - directories->append(path); - } else { - DEBUG() << "QKqueueFileSystemWatcherEngine: added file path" << path; - files->append(path); + pathToID.insert(path, id); + idToPath.insert(id, path); } - - pathToID.insert(path, id); - idToPath.insert(id, path); } if (!isRunning()) @@ -192,31 +194,33 @@ QStringList QKqueueFileSystemWatcherEngine::removePaths(const QStringList &paths QStringList *files, QStringList *directories) { - QMutexLocker locker(&mutex); - + bool isEmpty; QStringList p = paths; - QMutableListIterator it(p); - while (it.hasNext()) { - QString path = it.next(); - int id = pathToID.take(path); - QString x = idToPath.take(id); - if (x.isEmpty() || x != path) - continue; + { + QMutexLocker locker(&mutex); - ::close(id < 0 ? -id : id); + QMutableListIterator it(p); + while (it.hasNext()) { + QString path = it.next(); + int id = pathToID.take(path); + QString x = idToPath.take(id); + if (x.isEmpty() || x != path) + continue; + + ::close(id < 0 ? -id : id); - it.remove(); - if (id < 0) - directories->removeAll(path); - else - files->removeAll(path); + it.remove(); + if (id < 0) + directories->removeAll(path); + else + files->removeAll(path); + } + isEmpty = pathToID.isEmpty(); } - if (pathToID.isEmpty()) { + if (isEmpty) { stop(); - locker.unlock(); wait(); - locker.relock(); } else { write(kqpipe[1], "@", 1); } -- cgit v0.12 From e0e9d4ea2cec37243d964a5309be49101d112233 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:10 +0100 Subject: QKqueueFileSystemWatcherEngine: Unlock mutex between two events. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the worker thread unlock the mutex between processing two events. Otherwise it's possible for the worker thread to block the application thread when many events occur. Also, there's no need to lock the mutex when processing a pipe event. Generally the worker thread should hamper the application thread as little as possible, so only lock the mutex where needed. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 8fba091..637a961 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -235,8 +235,6 @@ void QKqueueFileSystemWatcherEngine::stop() void QKqueueFileSystemWatcherEngine::run() { - static const struct timespec ZeroTimeout = { 0, 0 }; - forever { int r; struct kevent kev; @@ -245,10 +243,7 @@ void QKqueueFileSystemWatcherEngine::run() if (r < 0) { perror("QKqueueFileSystemWatcherEngine: error during kevent wait"); return; - } - - QMutexLocker locker(&mutex); - do { + } else { int fd = kev.ident; DEBUG() << "QKqueueFileSystemWatcherEngine: processing kevent" << kev.ident << kev.filter; @@ -280,6 +275,8 @@ void QKqueueFileSystemWatcherEngine::run() break; } } else { + QMutexLocker locker(&mutex); + int id = fd; QString path = idToPath.value(id); if (path.isEmpty()) { @@ -288,12 +285,12 @@ void QKqueueFileSystemWatcherEngine::run() path = idToPath.value(id); if (path.isEmpty()) { DEBUG() << "QKqueueFileSystemWatcherEngine: received a kevent for a file we're not watching"; - goto process_next_event; + continue; } } if (kev.filter != EVFILT_VNODE) { DEBUG() << "QKqueueFileSystemWatcherEngine: received a kevent with the wrong filter"; - goto process_next_event; + continue; } if ((kev.fflags & (NOTE_DELETE | NOTE_REVOKE | NOTE_RENAME)) != 0) { @@ -316,11 +313,7 @@ void QKqueueFileSystemWatcherEngine::run() emit fileChanged(path, false); } } - - // are there any more? -process_next_event: - r = kevent(kqfd, 0, 0, &kev, 1, &ZeroTimeout); - } while (r > 0); + } } } -- cgit v0.12 From f7feeee1733b6cb8bfcc157fff1e444068dc290c Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:11 +0100 Subject: QKqueueFileSystemWatcherEngine: Use higher file descriptors. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A file descriptor is used for every path to be monitored, but descriptors below FD_SETSIZE (typically 1024) are precious, for use with select(2). To allow the application (and other parts of Qt) to use select(2), try to duplicate the descriptor returned by open(2) above FD_SETSIZE and close(2) the original. However, only do so when the descriptor table is already fairly large (FD_SETSIZE / 2). This keeps the descriptor table small for applications that use only a few descriptors. While here, also set the close-on-exec flag on the (new) descriptor. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 637a961..0103abd 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -134,6 +134,14 @@ QStringList QKqueueFileSystemWatcherEngine::addPaths(const QStringList &paths, perror("QKqueueFileSystemWatcherEngine::addPaths: open"); continue; } + if (fd >= (int)FD_SETSIZE / 2 && fd < (int)FD_SETSIZE) { + int fddup = fcntl(fd, F_DUPFD, FD_SETSIZE); + if (fddup != -1) { + ::close(fd); + fd = fddup; + } + } + fcntl(fd, F_SETFD, FD_CLOEXEC); QT_STATBUF st; if (QT_FSTAT(fd, &st) == -1) { -- cgit v0.12 From 0af0682ebbb70635f40dbed64d4cc678ade6bed2 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:12 +0100 Subject: QPollingFileSystemWatcherEngine: Fix double report of directory change. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The polling engine first retrieves a QFileInfo for a given path, then tests whether it's different from before and if so, stores the new file info and emits a signal. In case path is a directory the test also checks if the list of directory entries has changed. This creates a window between retrieving the file info and the test in which a file can be added/removed from the directory or the directory itself can be removed. In that case the test returns true, because the list of entries has changed, but outdated file info is stored which means that on the next timeout the same change will be reported a second time. Therefore, refresh the file info after the test for changes. Merge-request: 2425 Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemwatcher.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qfilesystemwatcher.cpp b/src/corelib/io/qfilesystemwatcher.cpp index 18c3c9f..1e6dcee 100644 --- a/src/corelib/io/qfilesystemwatcher.cpp +++ b/src/corelib/io/qfilesystemwatcher.cpp @@ -228,8 +228,14 @@ void QPollingFileSystemWatcherEngine::timeout() dit.remove(); emit directoryChanged(path, true); } else if (x.value() != fi) { - x.value() = fi; - emit directoryChanged(path, false); + fi.refresh(); + if (!fi.exists()) { + dit.remove(); + emit directoryChanged(path, true); + } else { + x.value() = fi; + emit directoryChanged(path, false); + } } } -- cgit v0.12 From b758e011a6d88448bf4c3db7f27cb4df773fd5e3 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Fri, 26 Nov 2010 10:11:13 +0100 Subject: tst_QFileSystemWatcher: Don't exit the event loop on first signal. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sometimes tests can produce more than one signal and other times more than one signal would be an error. In order to test this the event loop should run long enough and not quit on the first signal. This is especially important on multicore systems where the application and worker threads run on different CPUs. Signals emitted by the worker thread are then almost immediately processed by the application thread. Merge-request: 2425 Reviewed-by: João Abecasis --- tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp index a26e34d..3ed93fa 100644 --- a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp +++ b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp @@ -139,10 +139,6 @@ void tst_QFileSystemWatcher::basicTest() QSignalSpy changedSpy(&watcher, SIGNAL(fileChanged(const QString &))); QEventLoop eventLoop; - connect(&watcher, - SIGNAL(fileChanged(const QString &)), - &eventLoop, - SLOT(quit())); QTimer timer; connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); @@ -278,10 +274,6 @@ void tst_QFileSystemWatcher::watchDirectory() QSignalSpy changedSpy(&watcher, SIGNAL(directoryChanged(const QString &))); QEventLoop eventLoop; - connect(&watcher, - SIGNAL(directoryChanged(const QString &)), - &eventLoop, - SLOT(quit())); QTimer timer; connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); -- cgit v0.12 From 5784daa662e1ace86e6046bf369e9029d57c32d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 26 Nov 2010 10:11:14 +0100 Subject: Fix QSettings auto test to use QTRY_VERIFY ... instead of relying on qApp->processEvents. Reviewed-by: Olivier Goffart --- tests/auto/qsettings/tst_qsettings.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tests/auto/qsettings/tst_qsettings.cpp b/tests/auto/qsettings/tst_qsettings.cpp index 0395eff..0813e28 100644 --- a/tests/auto/qsettings/tst_qsettings.cpp +++ b/tests/auto/qsettings/tst_qsettings.cpp @@ -51,6 +51,7 @@ #include #include #include +#include "../../shared/util.h" #if !defined(Q_OS_SYMBIAN) # include @@ -1726,26 +1727,22 @@ void tst_QSettings::testUpdateRequestEvent() settings1.setValue("key1", 1); QVERIFY(QFileInfo("foo").size() == 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() > 0); + QTRY_VERIFY(QFileInfo("foo").size() > 0); settings1.remove("key1"); QVERIFY(QFileInfo("foo").size() > 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() == 0); + QTRY_VERIFY(QFileInfo("foo").size() == 0); settings1.setValue("key2", 2); QVERIFY(QFileInfo("foo").size() == 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() > 0); + QTRY_VERIFY(QFileInfo("foo").size() > 0); settings1.clear(); QVERIFY(QFileInfo("foo").size() > 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() == 0); + QTRY_VERIFY(QFileInfo("foo").size() == 0); } const int NumIterations = 5; -- cgit v0.12 From 4e6cc34b75fd42d663ced0f3da1c9a9a6950fb6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 26 Nov 2010 10:11:15 +0100 Subject: QKqueueFileSystemWatcher: don't stop thread that isn't running When removing paths from the watch list, if we end up with an empty watch list, we would send a request to the processing thread to quit. In the case where the watch list was empty to begin with (the paths being removed weren't actually being watched) the request to quit would still be queued. If the processing thread wasn't running (and it shouldn't if there weren't any paths being watched) the request to quit would still be posted but not processed. The next time paths were added and the thread started, the request would be processed and the thread would quit at once. When removing paths from the list, we now check whether the watch list is empty to begin with and exit early without asking the processing thread to quit itself. Task-Number: QTBUG-14435 Reviewed-by: Bradley T. Hughes --- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 2 ++ tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/corelib/io/qfilesystemwatcher_kqueue.cpp b/src/corelib/io/qfilesystemwatcher_kqueue.cpp index 0103abd..3664396 100644 --- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp +++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp @@ -206,6 +206,8 @@ QStringList QKqueueFileSystemWatcherEngine::removePaths(const QStringList &paths QStringList p = paths; { QMutexLocker locker(&mutex); + if (pathToID.isEmpty()) + return p; QMutableListIterator it(p); while (it.hasNext()) { diff --git a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp index 3ed93fa..1feaced 100644 --- a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp +++ b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp @@ -135,6 +135,7 @@ void tst_QFileSystemWatcher::basicTest() // create watcher, forcing it to use a specific backend QFileSystemWatcher watcher; watcher.setObjectName(QLatin1String("_qt_autotest_force_engine_") + backend); + watcher.removePath(testFile.fileName()); watcher.addPath(testFile.fileName()); QSignalSpy changedSpy(&watcher, SIGNAL(fileChanged(const QString &))); -- cgit v0.12 From 86ddcd84dc13618cf27ae899f136d8fd138e4b26 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 26 Nov 2010 18:07:56 +0100 Subject: QNetworkReply autotest: fix possible crash ... by waiting for the thread to finish. Reviewed-by: Markus Goetz --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 90416f2..9cf61f9 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -4490,6 +4490,7 @@ void tst_QNetworkReply::httpProxyCommandsSynchronous() QVERIFY(reply->isFinished()); // synchronous manager.setProxy(QNetworkProxy()); serverThread.quit(); + serverThread.wait(3000); //qDebug() << reply->error() << reply->errorString(); -- cgit v0.12 From 5e257bd44fa4a76f4c2c573a6c5623802022ff18 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 18:38:55 +0100 Subject: Fix a race condition related to service acquisition. The explanation is in the testcase and in the task. The reentrancy caused some deadlocks, that's why handleMessage() stops processing if the refcount has dropped down to zero. Should also save some CPU cycles at the application shutdown time. Task-number: QTBUG-15651 Reviewed-by: Trust Me --- src/dbus/qdbusconnection_p.h | 13 +++- src/dbus/qdbusintegrator.cpp | 35 +++++++++-- tests/auto/qdbusconnection/tst_qdbusconnection.cpp | 69 ++++++++++++++++++++++ 3 files changed, 108 insertions(+), 9 deletions(-) diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h index 1bd00da..67145b8 100644 --- a/src/dbus/qdbusconnection_p.h +++ b/src/dbus/qdbusconnection_p.h @@ -203,6 +203,8 @@ public: void disconnectRelay(const QString &service, const QString &path, const QString &interface, QDBusAbstractInterface *receiver, const char *signal); + void registerService(const QString &serviceName); + void unregisterService(const QString &serviceName); bool handleMessage(const QDBusMessage &msg); void waitForFinished(QDBusPendingCallPrivate *pcall); @@ -247,9 +249,11 @@ public slots: void socketWrite(int); void objectDestroyed(QObject *o); void relaySignal(QObject *obj, const QMetaObject *, int signalId, const QVariantList &args); - void _q_serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner); - void registerService(const QString &serviceName); - void unregisterService(const QString &serviceName); + +private slots: + void serviceOwnerChangedNoLock(const QString &name, const QString &oldOwner, const QString &newOwner); + void registerServiceNoLock(const QString &serviceName); + void unregisterServiceNoLock(const QString &serviceName); signals: void serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner); @@ -303,6 +307,9 @@ public: QObject *receiver, const char *signal, int minMIdx, bool buildSignature); static DBusHandlerResult messageFilter(DBusConnection *, DBusMessage *, void *); + static bool checkReplyForDelivery(QDBusConnectionPrivate *target, QObject *object, + int idx, const QList &metaTypes, + const QDBusMessage &msg); static QDBusCallDeliveryEvent *prepareReply(QDBusConnectionPrivate *target, QObject *object, int idx, const QList &metaTypes, const QDBusMessage &msg); diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index a5d8ada..1842e5a 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -552,6 +552,9 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg) (*(*list)[i])(amsg); } + if (!ref) + return false; + switch (amsg.type()) { case QDBusMessage::SignalMessage: handleSignal(amsg); @@ -713,6 +716,8 @@ static int findSlot(const QMetaObject *mo, const QByteArray &name, int flags, return -1; } +static QDBusCallDeliveryEvent * const DIRECT_DELIVERY = (QDBusCallDeliveryEvent *)1; + QDBusCallDeliveryEvent* QDBusConnectionPrivate::prepareReply(QDBusConnectionPrivate *target, QObject *object, int idx, const QList &metaTypes, @@ -736,6 +741,8 @@ QDBusCallDeliveryEvent* QDBusConnectionPrivate::prepareReply(QDBusConnectionPriv // we can deliver // prepare for the call + if (target == object) + return DIRECT_DELIVERY; return new QDBusCallDeliveryEvent(QDBusConnection(target), idx, target, msg, metaTypes); } @@ -750,6 +757,12 @@ void QDBusConnectionPrivate::activateSignal(const QDBusConnectionPrivate::Signal // Slots can optionally have one final parameter that is a QDBusMessage // Slots receive read-only copies of the message (i.e., pass by value or by const-ref) QDBusCallDeliveryEvent *call = prepareReply(this, hook.obj, hook.midx, hook.params, msg); + if (call == DIRECT_DELIVERY) { + // short-circuit delivery + Q_ASSERT(this == hook.obj); + deliverCall(this, 0, msg, hook.params, hook.midx); + return; + } if (call) postEventToThread(ActivateSignalAction, hook.obj, call); } @@ -1207,11 +1220,11 @@ void QDBusConnectionPrivate::relaySignal(QObject *obj, const QMetaObject *mo, in q_dbus_message_unref(msg); } -void QDBusConnectionPrivate::_q_serviceOwnerChanged(const QString &name, - const QString &oldOwner, const QString &newOwner) +void QDBusConnectionPrivate::serviceOwnerChangedNoLock(const QString &name, + const QString &oldOwner, const QString &newOwner) { Q_UNUSED(oldOwner); - QDBusWriteLocker locker(UpdateSignalHookOwnerAction, this); +// QDBusWriteLocker locker(UpdateSignalHookOwnerAction, this); WatchedServicesHash::Iterator it = watchedServices.find(name); if (it == watchedServices.end()) return; @@ -1686,11 +1699,11 @@ void QDBusConnectionPrivate::setConnection(DBusConnection *dbc, const QDBusError hook.obj = this; hook.params << QMetaType::Void << QVariant::String; // both functions take a QString as parameter and return void - hook.midx = staticMetaObject.indexOfSlot("registerService(QString)"); + hook.midx = staticMetaObject.indexOfSlot("registerServiceNoLock(QString)"); Q_ASSERT(hook.midx != -1); signalHooks.insert(QLatin1String("NameAcquired:" DBUS_INTERFACE_DBUS), hook); - hook.midx = staticMetaObject.indexOfSlot("unregisterService(QString)"); + hook.midx = staticMetaObject.indexOfSlot("unregisterServiceNoLock(QString)"); Q_ASSERT(hook.midx != -1); signalHooks.insert(QLatin1String("NameLost:" DBUS_INTERFACE_DBUS), hook); @@ -2081,7 +2094,7 @@ void QDBusConnectionPrivate::connectSignal(const QString &key, const SignalHook // we need to watch for this service changing connectSignal(dbusServiceString(), QString(), dbusInterfaceString(), QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(), - this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); + this, SLOT(serviceOwnerChangedNoLock(QString,QString,QString))); data.owner = getNameOwnerNoCache(hook.service); qDBusDebug() << this << "Watching service" << hook.service << "for owner changes (current owner:" << data.owner << ")"; @@ -2342,12 +2355,22 @@ QDBusConnectionPrivate::findMetaObject(const QString &service, const QString &pa void QDBusConnectionPrivate::registerService(const QString &serviceName) { QDBusWriteLocker locker(RegisterServiceAction, this); + registerServiceNoLock(serviceName); +} + +void QDBusConnectionPrivate::registerServiceNoLock(const QString &serviceName) +{ serviceNames.append(serviceName); } void QDBusConnectionPrivate::unregisterService(const QString &serviceName) { QDBusWriteLocker locker(UnregisterServiceAction, this); + unregisterServiceNoLock(serviceName); +} + +void QDBusConnectionPrivate::unregisterServiceNoLock(const QString &serviceName) +{ serviceNames.removeAll(serviceName); } diff --git a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp index 599abbd..4494d6f 100644 --- a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp +++ b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp @@ -106,6 +106,8 @@ private slots: void slotsWithLessParameters(); void nestedCallWithCallback(); + void serviceRegistrationRaceCondition(); + public: QString serviceName() const { return "com.trolltech.Qt.Autotests.QDBusConnection"; } bool callMethod(const QDBusConnection &conn, const QString &path); @@ -647,6 +649,73 @@ void tst_QDBusConnection::nestedCallWithCallback() QCOMPARE(signalsReceived, 1); } +class RaceConditionSignalWaiter : public QObject +{ + Q_OBJECT +public: + int count; + RaceConditionSignalWaiter() : count (0) {} + virtual ~RaceConditionSignalWaiter() {} + +public slots: + void countUp() { ++count; emit done(); } +signals: + void done(); +}; + +void tst_QDBusConnection::serviceRegistrationRaceCondition() +{ + // There was a race condition in the updating of list of name owners in + // QtDBus. When the user connects to a signal coming from a given + // service, we must listen for NameOwnerChanged signals relevant to that + // name and update when the owner changes. However, it's possible that we + // receive in one chunk from the server both the NameOwnerChanged signal + // about the service and the signal we're interested in. Since QtDBus + // posts events in order to handle the incoming signals, the update + // happens too late. + + const QString connectionName = "testConnectionName"; + const QString serviceName = "org.example.SecondaryName"; + + QDBusConnection session = QDBusConnection::sessionBus(); + QVERIFY(!session.interface()->isServiceRegistered(serviceName)); + + // connect to the signal: + RaceConditionSignalWaiter recv; + session.connect(serviceName, "/", "com.trolltech.TestCase", "oneSignal", &recv, SLOT(countUp())); + + // create a secondary connection and register a name + QDBusConnection connection = QDBusConnection::connectToBus(QDBusConnection::SessionBus, connectionName); + QDBusConnection::disconnectFromBus(connectionName); // disconnection happens when "connection" goes out of scope + QVERIFY(connection.isConnected()); + QVERIFY(connection.registerService(serviceName)); + + // send a signal + QDBusMessage msg = QDBusMessage::createSignal("/", "com.trolltech.TestCase", "oneSignal"); + connection.send(msg); + + // make a blocking call just to be sure that the buffer was flushed + msg = QDBusMessage::createMethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", + "NameHasOwner"); + msg << connectionName; + connection.call(msg); // ignore result + + // Now here's the race condition (more info on task QTBUG-15651): + // the bus has most likely queued three signals for us to work on: + // 1) NameOwnerChanged for the connection we created above + // 2) NameOwnerChanged for the service we registered above + // 3) The "oneSignal" signal we sent + // + // We'll most likely receive all three in one go from the server. We must + // update the owner of serviceName before we start processing the + // "oneSignal" signal. + + QTestEventLoop::instance().connect(&recv, SIGNAL(done()), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + QCOMPARE(recv.count, 1); +} + QString MyObject::path; QTEST_MAIN(tst_QDBusConnection) -- cgit v0.12 From 86ed592bba2a7ef23f5065397144c3915bdbdbd5 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 19:20:25 +0100 Subject: Fix warnings with GCC 4.5: some cases are not part of the enum --- src/gui/painting/qpdf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp index ba5d164..bd68d2a 100644 --- a/src/gui/painting/qpdf.cpp +++ b/src/gui/painting/qpdf.cpp @@ -1390,7 +1390,7 @@ int QPdfBaseEngine::metric(QPaintDevice::PaintDeviceMetric metricType) const void QPdfBaseEngine::setProperty(PrintEnginePropertyKey key, const QVariant &value) { Q_D(QPdfBaseEngine); - switch (key) { + switch (int(key)) { case PPK_CollateCopies: d->collate = value.toBool(); break; @@ -1480,7 +1480,7 @@ QVariant QPdfBaseEngine::property(PrintEnginePropertyKey key) const Q_D(const QPdfBaseEngine); QVariant ret; - switch (key) { + switch (int(key)) { case PPK_CollateCopies: ret = d->collate; break; -- cgit v0.12 From c89ca078ba39780ebe556aff8fff6b92118a0a1d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 20:52:45 +0100 Subject: Fix "value not in enum" warning with GCC 4.5. QMetaType::Float is not a member of QVariant::Type. --- src/xmlpatterns/data/qatomicvalue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xmlpatterns/data/qatomicvalue.cpp b/src/xmlpatterns/data/qatomicvalue.cpp index ecc78bf..fc4cf2e 100644 --- a/src/xmlpatterns/data/qatomicvalue.cpp +++ b/src/xmlpatterns/data/qatomicvalue.cpp @@ -202,7 +202,7 @@ ItemType::Ptr AtomicValue::qtToXDMType(const QXmlItem &item) Q_ASSERT(item.isAtomicValue()); const QVariant v(item.toAtomicValue()); - switch(v.type()) + switch(int(v.type())) { case QVariant::Char: /* Fallthrough. */ -- cgit v0.12 From 0f49bba82a62546bb53d0a29a05a560fe8f1e293 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:11:42 +0100 Subject: Phonon: Fix "value not in enum" warning with GCC 4.5. QMetaType::Float is not a member of QVariant::Type. --- src/3rdparty/phonon/phonon/effectwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/phonon/phonon/effectwidget.cpp b/src/3rdparty/phonon/phonon/effectwidget.cpp index a2fe50f..edcbe1f 100644 --- a/src/3rdparty/phonon/phonon/effectwidget.cpp +++ b/src/3rdparty/phonon/phonon/effectwidget.cpp @@ -112,7 +112,7 @@ void EffectWidgetPrivate::autogenerateUi() #endif QWidget *control = 0; - switch (para.type()) { + switch (int(para.type())) { case QVariant::String: { QComboBox *cb = new QComboBox(q); -- cgit v0.12 From 2dea30e2b044f3f02727e28ca4ff73036406870b Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:12:05 +0100 Subject: Phonon: Fix warning on casting from "false" to QFlags. Instead, return Features(); --- src/3rdparty/phonon/phonon/mediacontroller.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/3rdparty/phonon/phonon/mediacontroller.cpp b/src/3rdparty/phonon/phonon/mediacontroller.cpp index 59fd5c7..37af3f7 100644 --- a/src/3rdparty/phonon/phonon/mediacontroller.cpp +++ b/src/3rdparty/phonon/phonon/mediacontroller.cpp @@ -76,9 +76,9 @@ MediaController::~MediaController() MediaController::Features MediaController::supportedFeatures() const { if (!d || !d->media) { - return false; + return Features(); } - IFACE false; + IFACE Features(); Features ret; if (iface->hasInterface(AddonInterface::AngleInterface)) { ret |= Angles; -- cgit v0.12 From 7f63938ab866ec517e46bf1e6bc706e8b7f22d0a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:13:02 +0100 Subject: Phonon: Fix unused parameter warning --- src/3rdparty/phonon/phonon/globalconfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdparty/phonon/phonon/globalconfig.cpp b/src/3rdparty/phonon/phonon/globalconfig.cpp index be751ce..f83ebc4 100644 --- a/src/3rdparty/phonon/phonon/globalconfig.cpp +++ b/src/3rdparty/phonon/phonon/globalconfig.cpp @@ -97,7 +97,7 @@ static void filter(ObjectDescriptionType type, BackendInterface *backendIface, Q static QList sortDevicesByCategoryPriority(const GlobalConfig *config, const QSettingsGroup *backendConfig, ObjectDescriptionType type, Phonon::Category category, QList &defaultList) { - Q_ASSERT(config); + Q_ASSERT(config); Q_UNUSED(config); Q_ASSERT(backendConfig); Q_ASSERT(type == AudioOutputDeviceType || type == AudioCaptureDeviceType); -- cgit v0.12 From 0b26c68a749ab74fe8e72fcbc49d314b9235b16d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:13:05 +0100 Subject: Phonon: Fix use of ASCII casting in the PulseAudio support. --- src/3rdparty/phonon/phonon/pulsesupport.cpp | 146 ++++++++++++++-------------- 1 file changed, 72 insertions(+), 74 deletions(-) diff --git a/src/3rdparty/phonon/phonon/pulsesupport.cpp b/src/3rdparty/phonon/phonon/pulsesupport.cpp index 642843f..b1ba196 100644 --- a/src/3rdparty/phonon/phonon/pulsesupport.cpp +++ b/src/3rdparty/phonon/phonon/pulsesupport.cpp @@ -56,7 +56,7 @@ static int debugLevel() { static int level = -1; if (level < 1) { level = 0; - QString pulseenv = qgetenv("PHONON_PULSEAUDIO_DEBUG"); + QByteArray pulseenv = qgetenv("PHONON_PULSEAUDIO_DEBUG"); int l = pulseenv.toInt(); if (l > 0) level = (l > 2 ? 2 : l); @@ -71,18 +71,18 @@ static void logMessage(const QString &message, int priority, QObject *obj) QString output; if (obj) { // Strip away namespace from className - QString className(obj->metaObject()->className()); + QByteArray className(obj->metaObject()->className()); int nameLength = className.length() - className.lastIndexOf(':') - 1; className = className.right(nameLength); output.sprintf("%s %s (%s %p)", message.toLatin1().constData(), obj->objectName().toLatin1().constData(), - className.toLatin1().constData(), obj); + className.constData(), obj); } else { output = message; } if (priority <= debugLevel()) { - qDebug() << QString("PulseSupport(%1): %2").arg(priority).arg(output); + qDebug() << QString::fromLatin1("PulseSupport(%1): %2").arg(priority).arg(output); } } } @@ -96,7 +96,7 @@ class AudioDevice : pulseName(name), pulseIndex(index) { properties["name"] = desc; - properties["description"] = ""; // We don't have descriptions (well we do, but we use them as the name!) + properties["description"] = QLatin1String(""); // We don't have descriptions (well we do, but we use them as the name!) properties["icon"] = icon; properties["available"] = (index != PA_INVALID_INDEX); properties["isAdvanced"] = false; // Nothing is advanced! @@ -158,8 +158,8 @@ static void createGenericDevices() s_outputDevices.clear(); s_outputDevicePriorities.clear(); index = s_deviceIndexCounter++; - s_outputDeviceIndexes.insert("sink:default", index); - s_outputDevices.insert(index, AudioDevice("sink:default", QObject::tr("PulseAudio Sound Server").toUtf8(), "audio-backend-pulseaudio", 0)); + s_outputDeviceIndexes.insert(QLatin1String("sink:default"), index); + s_outputDevices.insert(index, AudioDevice(QLatin1String("sink:default"), QObject::tr("PulseAudio Sound Server"), QLatin1String("audio-backend-pulseaudio"), 0)); for (int i = Phonon::NoCategory; i <= Phonon::LastCategory; ++i) { Phonon::Category cat = static_cast(i); s_outputDevicePriorities[cat].insert(0, index); @@ -169,8 +169,8 @@ static void createGenericDevices() s_captureDevices.clear(); s_captureDevicePriorities.clear(); index = s_deviceIndexCounter++; - s_captureDeviceIndexes.insert("source:default", index); - s_captureDevices.insert(index, AudioDevice("source:default", QObject::tr("PulseAudio Sound Server").toUtf8(), "audio-backend-pulseaudio", 0)); + s_captureDeviceIndexes.insert(QLatin1String("source:default"), index); + s_captureDevices.insert(index, AudioDevice(QLatin1String("source:default"), QObject::tr("PulseAudio Sound Server"), QLatin1String("audio-backend-pulseaudio"), 0)); for (int i = Phonon::NoCategory; i <= Phonon::LastCategory; ++i) { Phonon::Category cat = static_cast(i); s_captureDevicePriorities[cat].insert(0, index); @@ -397,7 +397,7 @@ void sink_input_cb(pa_context *c, const pa_sink_input_info *i, int eol, void *us if (pa_context_errno(c) == PA_ERR_NOENTITY) return; - logMessage(QString("Sink input callback failure")); + logMessage(QLatin1String("Sink input callback failure")); return; } @@ -409,8 +409,8 @@ void sink_input_cb(pa_context *c, const pa_sink_input_info *i, int eol, void *us // loop through (*i) and extract phonon->streamindex... const char *t; if ((t = pa_proplist_gets(i->proplist, "phonon.streamid"))) { - logMessage(QString("Found PulseAudio stream index %1 for Phonon Output Stream %2").arg(i->index).arg(t)); - s_outputStreamIndexMap[QString(t)] = i->index; + logMessage(QString::fromLatin1("Found PulseAudio stream index %1 for Phonon Output Stream %2").arg(i->index).arg(QLatin1String(t))); + s_outputStreamIndexMap[QLatin1String(t)] = i->index; // Find the sink's phonon index and notify whoever cares... if (PA_INVALID_INDEX != i->sink) { @@ -426,8 +426,8 @@ void sink_input_cb(pa_context *c, const pa_sink_input_info *i, int eol, void *us } if (found) { // OK so we just emit our signal - logMessage(QString("Letting the rest of phonon know about this")); - s_instance->emitUsingDevice(QString(t), device); + logMessage(QLatin1String("Letting the rest of phonon know about this")); + s_instance->emitUsingDevice(QLatin1String(t), device); } } } @@ -441,7 +441,7 @@ void source_output_cb(pa_context *c, const pa_source_output_info *i, int eol, vo if (pa_context_errno(c) == PA_ERR_NOENTITY) return; - logMessage(QString("Source output callback failure")); + logMessage(QLatin1String("Source output callback failure")); return; } @@ -453,8 +453,8 @@ void source_output_cb(pa_context *c, const pa_source_output_info *i, int eol, vo // loop through (*i) and extract phonon->streamindex... const char *t; if ((t = pa_proplist_gets(i->proplist, "phonon.streamid"))) { - logMessage(QString("Found PulseAudio stream index %1 for Phonon Capture Stream %2").arg(i->index).arg(t)); - s_captureStreamIndexMap[QString(t)] = i->index; + logMessage(QString::fromLatin1("Found PulseAudio stream index %1 for Phonon Capture Stream %2").arg(i->index).arg(QLatin1String(t))); + s_captureStreamIndexMap[QLatin1String(t)] = i->index; // Find the source's phonon index and notify whoever cares... if (PA_INVALID_INDEX != i->source) { @@ -470,8 +470,8 @@ void source_output_cb(pa_context *c, const pa_source_output_info *i, int eol, vo } if (found) { // OK so we just emit our signal - logMessage(QString("Letting the rest of phonon know about this")); - s_instance->emitUsingDevice(QString(t), device); + logMessage(QLatin1String("Letting the rest of phonon know about this")); + s_instance->emitUsingDevice(QLatin1String(t), device); } } } @@ -486,17 +486,17 @@ static void subscribe_cb(pa_context *c, pa_subscription_event_type_t t, uint32_t QString phononid = s_outputStreamIndexMap.key(index); if (!phononid.isEmpty()) { if (s_outputStreamIndexMap.contains(phononid)) { - logMessage(QString("Phonon Output Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(phononid)); + logMessage(QString::fromLatin1("Phonon Output Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(phononid)); s_outputStreamIndexMap[phononid] = PA_INVALID_INDEX; } else { - logMessage(QString("Removing Phonon Output Stream %1 (it's gone!)").arg(phononid)); + logMessage(QString::fromLatin1("Removing Phonon Output Stream %1 (it's gone!)").arg(phononid)); s_outputStreamIndexMap.remove(phononid); } } } else { pa_operation *o; if (!(o = pa_context_get_sink_input_info(c, index, sink_input_cb, NULL))) { - logMessage(QString("pa_context_get_sink_input_info() failed")); + logMessage(QLatin1String("pa_context_get_sink_input_info() failed")); return; } pa_operation_unref(o); @@ -508,17 +508,17 @@ static void subscribe_cb(pa_context *c, pa_subscription_event_type_t t, uint32_t QString phononid = s_captureStreamIndexMap.key(index); if (!phononid.isEmpty()) { if (s_captureStreamIndexMap.contains(phononid)) { - logMessage(QString("Phonon Capture Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(phononid)); + logMessage(QString::fromLatin1("Phonon Capture Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(phononid)); s_captureStreamIndexMap[phononid] = PA_INVALID_INDEX; } else { - logMessage(QString("Removing Phonon Capture Stream %1 (it's gone!)").arg(phononid)); + logMessage(QString::fromLatin1("Removing Phonon Capture Stream %1 (it's gone!)").arg(phononid)); s_captureStreamIndexMap.remove(phononid); } } } else { pa_operation *o; if (!(o = pa_context_get_source_output_info(c, index, source_output_cb, NULL))) { - logMessage(QString("pa_context_get_sink_input_info() failed")); + logMessage(QLatin1String("pa_context_get_sink_input_info() failed")); return; } pa_operation_unref(o); @@ -528,29 +528,27 @@ static void subscribe_cb(pa_context *c, pa_subscription_event_type_t t, uint32_t } -static const char* statename(pa_context_state_t state) +static QString statename(pa_context_state_t state) { switch (state) { - case PA_CONTEXT_UNCONNECTED: return "Unconnected"; - case PA_CONTEXT_CONNECTING: return "Connecting"; - case PA_CONTEXT_AUTHORIZING: return "Authorizing"; - case PA_CONTEXT_SETTING_NAME: return "Setting Name"; - case PA_CONTEXT_READY: return "Ready"; - case PA_CONTEXT_FAILED: return "Failed"; - case PA_CONTEXT_TERMINATED: return "Terminated"; + case PA_CONTEXT_UNCONNECTED: return QLatin1String("Unconnected"); + case PA_CONTEXT_CONNECTING: return QLatin1String("Connecting"); + case PA_CONTEXT_AUTHORIZING: return QLatin1String("Authorizing"); + case PA_CONTEXT_SETTING_NAME: return QLatin1String("Setting Name"); + case PA_CONTEXT_READY: return QLatin1String("Ready"); + case PA_CONTEXT_FAILED: return QLatin1String("Failed"); + case PA_CONTEXT_TERMINATED: return QLatin1String("Terminated"); } - static QString unknown; - unknown = QString("Unknown state: %0").arg(state); - return unknown.toAscii().constData(); + return QString::fromLatin1("Unknown state: %0").arg(state); } static void context_state_callback(pa_context *c, void *) { Q_ASSERT(c); - logMessage(QString("context_state_callback %1").arg(statename(pa_context_get_state(c)))); + logMessage(QString::fromLatin1("context_state_callback %1").arg(statename(pa_context_get_state(c)))); pa_context_state_t state = pa_context_get_state(c); if (state == PA_CONTEXT_READY) { // We've connected to PA, so it is active @@ -566,7 +564,7 @@ static void context_state_callback(pa_context *c, void *) if (!(o = pa_context_subscribe(c, (pa_subscription_mask_t) (PA_SUBSCRIPTION_MASK_SINK_INPUT| PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT), NULL, NULL))) { - logMessage(QString("pa_context_subscribe() failed")); + logMessage(QLatin1String("pa_context_subscribe() failed")); return; } pa_operation_unref(o); @@ -639,27 +637,27 @@ PulseSupport::PulseSupport() { #ifdef HAVE_PULSEAUDIO // Initialise our map (is there a better way to do this?) - s_roleCategoryMap["none"] = Phonon::NoCategory; - s_roleCategoryMap["video"] = Phonon::VideoCategory; - s_roleCategoryMap["music"] = Phonon::MusicCategory; - s_roleCategoryMap["game"] = Phonon::GameCategory; - s_roleCategoryMap["event"] = Phonon::NotificationCategory; - s_roleCategoryMap["phone"] = Phonon::CommunicationCategory; - //s_roleCategoryMap["animation"]; // No Mapping - //s_roleCategoryMap["production"]; // No Mapping - s_roleCategoryMap["a11y"] = Phonon::AccessibilityCategory; + s_roleCategoryMap[QLatin1String("none")] = Phonon::NoCategory; + s_roleCategoryMap[QLatin1String("video")] = Phonon::VideoCategory; + s_roleCategoryMap[QLatin1String("music")] = Phonon::MusicCategory; + s_roleCategoryMap[QLatin1String("game")] = Phonon::GameCategory; + s_roleCategoryMap[QLatin1String("event")] = Phonon::NotificationCategory; + s_roleCategoryMap[QLatin1String("phone")] = Phonon::CommunicationCategory; + //s_roleCategoryMap[QLatin1String("animation")]; // No Mapping + //s_roleCategoryMap[QLatin1String("production")]; // No Mapping + s_roleCategoryMap[QLatin1String("a11y")] = Phonon::AccessibilityCategory; // To allow for easy debugging, give an easy way to disable this pulseaudio check - QString pulseenv = qgetenv("PHONON_PULSEAUDIO_DISABLE"); + QByteArray pulseenv = qgetenv("PHONON_PULSEAUDIO_DISABLE"); if (pulseenv.toInt()) { - logMessage("PulseAudio support disabled: PHONON_PULSEAUDIO_DISABLE is set"); + logMessage(QLatin1String("PulseAudio support disabled: PHONON_PULSEAUDIO_DISABLE is set")); return; } // We require a glib event loop - if (QLatin1String(QAbstractEventDispatcher::instance()->metaObject()->className()) - != "QGuiEventDispatcherGlib") { - logMessage("Disabling PulseAudio integration for lack of GLib event loop."); + if (strcmp(QAbstractEventDispatcher::instance()->metaObject()->className(), + "QGuiEventDispatcherGlib") != 0) { + logMessage(QLatin1String("Disabling PulseAudio integration for lack of GLib event loop.")); return; } @@ -667,21 +665,21 @@ PulseSupport::PulseSupport() // use a fully async integrated mainloop method to connect and get proper support. pa_mainloop *p_test_mainloop; if (!(p_test_mainloop = pa_mainloop_new())) { - logMessage("PulseAudio support disabled: Unable to create mainloop"); + logMessage(QLatin1String("PulseAudio support disabled: Unable to create mainloop")); return; } pa_context *p_test_context; if (!(p_test_context = pa_context_new(pa_mainloop_get_api(p_test_mainloop), "libphonon-probe"))) { - logMessage("PulseAudio support disabled: Unable to create context"); + logMessage(QLatin1String("PulseAudio support disabled: Unable to create context")); pa_mainloop_free(p_test_mainloop); return; } - logMessage("Probing for PulseAudio..."); + logMessage(QLatin1String("Probing for PulseAudio...")); // (cg) Convert to PA_CONTEXT_NOFLAGS when PulseAudio 0.9.19 is required if (pa_context_connect(p_test_context, NULL, static_cast(0), NULL) < 0) { - logMessage(QString("PulseAudio support disabled: %1").arg(pa_strerror(pa_context_errno(p_test_context)))); + logMessage(QString::fromLatin1("PulseAudio support disabled: %1").arg(QString::fromLocal8Bit(pa_strerror(pa_context_errno(p_test_context))))); pa_context_disconnect(p_test_context); pa_context_unref(p_test_context); pa_mainloop_free(p_test_mainloop); @@ -693,7 +691,7 @@ PulseSupport::PulseSupport() pa_mainloop_iterate(p_test_mainloop, 1, NULL); if (!PA_CONTEXT_IS_GOOD(pa_context_get_state(p_test_context))) { - logMessage("PulseAudio probe complete."); + logMessage(QLatin1String("PulseAudio probe complete.")); break; } } @@ -702,12 +700,12 @@ PulseSupport::PulseSupport() pa_mainloop_free(p_test_mainloop); if (!s_pulseActive) { - logMessage("PulseAudio support is not available."); + logMessage(QLatin1String("PulseAudio support is not available.")); return; } // If we're still here, PA is available. - logMessage("PulseAudio support enabled"); + logMessage(QLatin1String("PulseAudio support enabled")); // Now we connect for real using a proper main loop that we can forget // all about processing. @@ -856,7 +854,7 @@ static void setDevicePriority(Category category, QStringList list) if (role.isEmpty()) return; - logMessage(QString("Reindexing %1: %2").arg(role).arg(list.join(", "))); + logMessage(QString::fromLatin1("Reindexing %1: %2").arg(role).arg(list.join(QLatin1String(", ")))); char **devices; devices = pa_xnew(char *, list.size()+1); @@ -926,7 +924,7 @@ void PulseSupport::setStreamPropList(Category category, QString streamUuid) if (role.isEmpty()) return; - logMessage(QString("Setting role to %1 for streamindex %2").arg(role).arg(streamUuid)); + logMessage(QString::fromLatin1("Setting role to %1 for streamindex %2").arg(role).arg(streamUuid)); setenv("PULSE_PROP_media.role", role.toLatin1().constData(), 1); setenv("PULSE_PROP_phonon.streamid", streamUuid.toLatin1().constData(), 1); #endif @@ -952,30 +950,30 @@ bool PulseSupport::setOutputDevice(QString streamUuid, int device) { return true; if (!s_outputDevices.contains(device)) { - logMessage(QString("Attempting to set Output Device for invalid device id %1.").arg(device)); + logMessage(QString::fromLatin1("Attempting to set Output Device for invalid device id %1.").arg(device)); return false; } const QVariant var = s_outputDevices[device].properties["name"]; - logMessage(QString("Attempting to set Output Device to '%1' for Output Stream %2").arg(var.toString()).arg(streamUuid)); + logMessage(QString::fromLatin1("Attempting to set Output Device to '%1' for Output Stream %2").arg(var.toString()).arg(streamUuid)); // Attempt to look up the pulse stream index. if (s_outputStreamIndexMap.contains(streamUuid) && s_outputStreamIndexMap[streamUuid] != PA_INVALID_INDEX) { - logMessage(QString("... Found in map. Moving now")); + logMessage(QLatin1String("... Found in map. Moving now")); uint32_t pulse_device_index = s_outputDevices[device].pulseIndex; uint32_t pulse_stream_index = s_outputStreamIndexMap[streamUuid]; - logMessage(QString("Moving Pulse Sink Input %1 to '%2' (Pulse Sink %3)").arg(pulse_stream_index).arg(var.toString()).arg(pulse_device_index)); + logMessage(QString::fromLatin1("Moving Pulse Sink Input %1 to '%2' (Pulse Sink %3)").arg(pulse_stream_index).arg(var.toString()).arg(pulse_device_index)); /// @todo Find a way to move the stream without saving it... We don't want to pollute the stream restore db. pa_operation* o; if (!(o = pa_context_move_sink_input_by_index(s_context, pulse_stream_index, pulse_device_index, NULL, NULL))) { - logMessage(QString("pa_context_move_sink_input_by_index() failed")); + logMessage(QLatin1String("pa_context_move_sink_input_by_index() failed")); return false; } pa_operation_unref(o); } else { - logMessage(QString("... Not found in map. We will be notified of the device when the stream appears and we can process any moves needed then")); + logMessage(QLatin1String("... Not found in map. We will be notified of the device when the stream appears and we can process any moves needed then")); } return true; #endif @@ -991,30 +989,30 @@ bool PulseSupport::setCaptureDevice(QString streamUuid, int device) { return true; if (!s_captureDevices.contains(device)) { - logMessage(QString("Attempting to set Capture Device for invalid device id %1.").arg(device)); + logMessage(QString::fromLatin1("Attempting to set Capture Device for invalid device id %1.").arg(device)); return false; } const QVariant var = s_captureDevices[device].properties["name"]; - logMessage(QString("Attempting to set Capture Device to '%1' for Capture Stream %2").arg(var.toString()).arg(streamUuid)); + logMessage(QString::fromLatin1("Attempting to set Capture Device to '%1' for Capture Stream %2").arg(var.toString()).arg(streamUuid)); // Attempt to look up the pulse stream index. if (s_captureStreamIndexMap.contains(streamUuid) && s_captureStreamIndexMap[streamUuid] == PA_INVALID_INDEX) { - logMessage(QString("... Found in map. Moving now")); + logMessage(QString::fromLatin1("... Found in map. Moving now")); uint32_t pulse_device_index = s_captureDevices[device].pulseIndex; uint32_t pulse_stream_index = s_captureStreamIndexMap[streamUuid]; - logMessage(QString("Moving Pulse Source Output %1 to '%2' (Pulse Sink %3)").arg(pulse_stream_index).arg(var.toString()).arg(pulse_device_index)); + logMessage(QString::fromLatin1("Moving Pulse Source Output %1 to '%2' (Pulse Sink %3)").arg(pulse_stream_index).arg(var.toString()).arg(pulse_device_index)); /// @todo Find a way to move the stream without saving it... We don't want to pollute the stream restore db. pa_operation* o; if (!(o = pa_context_move_source_output_by_index(s_context, pulse_stream_index, pulse_device_index, NULL, NULL))) { - logMessage(QString("pa_context_move_source_output_by_index() failed")); + logMessage(QString::fromLatin1("pa_context_move_source_output_by_index() failed")); return false; } pa_operation_unref(o); } else { - logMessage(QString("... Not found in map. We will be notified of the device when the stream appears and we can process any moves needed then")); + logMessage(QString::fromLatin1("... Not found in map. We will be notified of the device when the stream appears and we can process any moves needed then")); } return true; #endif @@ -1025,7 +1023,7 @@ void PulseSupport::clearStreamCache(QString streamUuid) { Q_UNUSED(streamUuid); return; #else - logMessage(QString("Clearing stream cache for stream %1").arg(streamUuid)); + logMessage(QString::fromLatin1("Clearing stream cache for stream %1").arg(streamUuid)); s_outputStreamIndexMap.remove(streamUuid); s_captureStreamIndexMap.remove(streamUuid); #endif -- cgit v0.12 From 2534805c3fa3dafe4fad7c35687b105c6b01fd97 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 21:17:02 +0100 Subject: Fix warning about use of uninitialised variable --- src/network/ssl/qsslcertificate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp index a3ea555..275c7be 100644 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -716,7 +716,7 @@ QSslCertificate QSslCertificatePrivate::QSslCertificate_from_X509(X509 *x509) static bool matchLineFeed(const QByteArray &pem, int *offset) { - char ch; + char ch = 0; // ignore extra whitespace at the end of the line while (*offset < pem.size() && (ch = pem.at(*offset)) == ' ') -- cgit v0.12 From d54fe278bcbba0018bbed9a09abc35b628b0024b Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:20:31 +0100 Subject: Fix warning about mixing integral with non-integral type in ?: --- src/gui/dialogs/qdialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp index b7a0026..fbdc522 100644 --- a/src/gui/dialogs/qdialog.cpp +++ b/src/gui/dialogs/qdialog.cpp @@ -282,8 +282,8 @@ QDialog::QDialog(QWidget *parent, Qt::WindowFlags f) QDialog::QDialog(QWidget *parent, const char *name, bool modal, Qt::WindowFlags f) : QWidget(*new QDialogPrivate, parent, f - | QFlag(modal ? Qt::WShowModal : 0) - | QFlag((f & Qt::WindowType_Mask) == 0 ? Qt::Dialog : 0) + | QFlag(modal ? Qt::WShowModal : Qt::WindowType(0)) + | QFlag((f & Qt::WindowType_Mask) == 0 ? Qt::Dialog : Qt::WindowType(0)) ) { setObjectName(QString::fromAscii(name)); -- cgit v0.12 From b284975435f80eba7bf6d1edd21987dcee134e86 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 21:23:33 +0100 Subject: Fix silly "will be initialised after" warning. --- src/declarative/util/qdeclarativepixmapcache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp index a07b1bb..380d9bc 100644 --- a/src/declarative/util/qdeclarativepixmapcache.cpp +++ b/src/declarative/util/qdeclarativepixmapcache.cpp @@ -684,7 +684,7 @@ void QDeclarativePixmapStore::timerEvent(QTimerEvent *) } QDeclarativePixmapReply::QDeclarativePixmapReply(QDeclarativePixmapData *d) -: data(d), reader(0), loading(false), redirectCount(0), requestSize(d->requestSize) +: data(d), reader(0), requestSize(d->requestSize), loading(false), redirectCount(0) { if (finishedIndex == -1) { finishedIndex = QDeclarativePixmapReply::staticMetaObject.indexOfSignal("finished()"); -- cgit v0.12 From dc23fd546163edb7ff4395f44217b5cb2600004a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 18:41:07 +0100 Subject: Fix warnings related to unused variables. Just add some Q_UNUSED for parameters or remove the variable we don't need for the others. Reviewed-by: Trust Me --- src/declarative/qml/qdeclarativeengine.cpp | 2 ++ src/declarative/qml/qdeclarativepropertycache.cpp | 1 - src/gui/styles/qstyle.cpp | 2 ++ src/gui/styles/qstyleoption.cpp | 4 ++++ src/opengl/qgl_x11egl.cpp | 1 - src/opengl/qglpixelbuffer_egl.cpp | 1 - src/plugins/bearer/connman/qconnmanservice_linux.cpp | 2 -- tools/shared/windows/registry.cpp | 3 +++ 8 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 1160ed8..c646302 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -2232,6 +2232,8 @@ bool QDeclarative_isFileCaseCorrect(const QString &fileName) if (a != c) return false; } +#else + Q_UNUSED(fileName); #endif return true; diff --git a/src/declarative/qml/qdeclarativepropertycache.cpp b/src/declarative/qml/qdeclarativepropertycache.cpp index 0adcdbd..dd9a224 100644 --- a/src/declarative/qml/qdeclarativepropertycache.cpp +++ b/src/declarative/qml/qdeclarativepropertycache.cpp @@ -320,7 +320,6 @@ void QDeclarativePropertyCache::update(QDeclarativeEngine *engine, const QMetaOb { Q_ASSERT(engine); Q_ASSERT(metaObject); - QDeclarativeEnginePrivate *enginePriv = QDeclarativeEnginePrivate::get(engine); clear(); diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp index 3ebfab2..be8f794 100644 --- a/src/gui/styles/qstyle.cpp +++ b/src/gui/styles/qstyle.cpp @@ -2456,6 +2456,8 @@ QDebug operator<<(QDebug debug, QStyle::State state) qSort(states); debug << states.join(QLatin1String(" | ")); debug << ')'; +#else + Q_UNUSED(state); #endif return debug; } diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp index 4780edf..05ca793 100644 --- a/src/gui/styles/qstyleoption.cpp +++ b/src/gui/styles/qstyleoption.cpp @@ -5483,6 +5483,8 @@ QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType) case QStyleOption::SO_GraphicsItem: debug << "SO_GraphicsItem"; break; } +#else + Q_UNUSED(optionType); #endif return debug; } @@ -5496,6 +5498,8 @@ QDebug operator<<(QDebug debug, const QStyleOption &option) debug << ',' << option.state; debug << ',' << option.rect; debug << ')'; +#else + Q_UNUSED(option); #endif return debug; } diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index d33ea56..144d140 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -97,7 +97,6 @@ QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *) XVisualInfo visualInfo; XVisualInfo *vi; int numVisuals; - EGLint id = 0; visualInfo.visualid = QEgl::getCompatibleVisualId(config); vi = XGetVisualInfo(X11->display, VisualIDMask, &visualInfo, &numVisuals); diff --git a/src/opengl/qglpixelbuffer_egl.cpp b/src/opengl/qglpixelbuffer_egl.cpp index 0b94f5a..2d9f6f1 100644 --- a/src/opengl/qglpixelbuffer_egl.cpp +++ b/src/opengl/qglpixelbuffer_egl.cpp @@ -74,7 +74,6 @@ bool QGLPixelBufferPrivate::init(const QSize &size, const QGLFormat &f, QGLWidge // Use the same configuration as the widget we are sharing with. ctx->setConfig(shareContext->config()); #if QGL_RENDER_TEXTURE - EGLint value = EGL_FALSE; if (ctx->configAttrib(EGL_BIND_TO_TEXTURE_RGBA) == EGL_TRUE) textureFormat = EGL_TEXTURE_RGBA; else if (ctx->configAttrib(EGL_BIND_TO_TEXTURE_RGB) == EGL_TRUE) diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index 952a444..0545422 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -216,7 +216,6 @@ void QConnmanManagerInterface::registerCounter(const QString &path, quint32 inte { QDBusReply > reply = this->call(QLatin1String("RegisterCounter"), QVariant::fromValue(path), QVariant::fromValue(interval)); - bool ok = true; if(reply.error().type() == QDBusError::InvalidArgs) { qWarning() << reply.error().message(); } @@ -225,7 +224,6 @@ void QConnmanManagerInterface::registerCounter(const QString &path, quint32 inte void QConnmanManagerInterface::unregisterCounter(const QString &path) { QDBusReply > reply = this->call(QLatin1String("UnregisterCounter"), QVariant::fromValue(path)); - bool ok = true; if(reply.error().type() == QDBusError::InvalidArgs) { qWarning() << reply.error().message(); } diff --git a/tools/shared/windows/registry.cpp b/tools/shared/windows/registry.cpp index 48e9ae6..f520910 100644 --- a/tools/shared/windows/registry.cpp +++ b/tools/shared/windows/registry.cpp @@ -157,6 +157,9 @@ QString qt_readRegistryKey(HKEY parentHandle, const QString &rSubkey) } RegCloseKey(handle); +#else + Q_UNUSED(parentHandle); + Q_UNUSED(rSubkey) #endif return result; -- cgit v0.12 From 20da7afb4c575001b7373554ebf7e7fb434a2942 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 20:26:58 +0100 Subject: Fix warning about address of a function being constant. In OpenGL ES 2, these functions are always expected to be present, so the address can never be zero. So only test for the function being found if we tried to find it dynamicaly. --- src/opengl/qgl.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index ed9753e..18f1203 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -2095,7 +2095,9 @@ void QGLContextPrivate::cleanup() void QGLContextPrivate::setVertexAttribArrayEnabled(int arrayIndex, bool enabled) { Q_ASSERT(arrayIndex < QT_GL_VERTEX_ARRAY_TRACKED_COUNT); +#ifdef glEnableVertexAttribArray Q_ASSERT(glEnableVertexAttribArray); +#endif if (vertexAttributeArraysEnabledState[arrayIndex] && !enabled) glDisableVertexAttribArray(arrayIndex); @@ -2108,7 +2110,9 @@ void QGLContextPrivate::setVertexAttribArrayEnabled(int arrayIndex, bool enabled void QGLContextPrivate::syncGlState() { +#ifdef glEnableVertexAttribArray Q_ASSERT(glEnableVertexAttribArray); +#endif for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i) { if (vertexAttributeArraysEnabledState[i]) glEnableVertexAttribArray(i); -- cgit v0.12 From 3251c5023c184466e8199c8999aa6e332eb98534 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 20:28:23 +0100 Subject: Fix warning about %x parameter type mismatch in EGL --- src/opengl/qgl_x11egl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index 144d140..75dd1b6 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -345,7 +345,7 @@ void QGLWidgetPrivate::recreateEglSurface() // old surface before re-creating a new one. Note: This should not be the case as the // surface should be deleted before the old window id. if (glcx->d_func()->eglSurface != EGL_NO_SURFACE && (currentId != eglSurfaceWindowId)) { - qWarning("EGL surface for deleted window %x was not destroyed", eglSurfaceWindowId); + qWarning("EGL surface for deleted window %x was not destroyed", uint(eglSurfaceWindowId)); glcx->d_func()->destroyEglSurfaceForDevice(); } -- cgit v0.12 From d89985ce546f63f4e563ccc54951957d2f33c5ec Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 25 Nov 2010 19:21:17 +0100 Subject: Fix strict-aliasing violation warning. Strict aliasing is violated here, so just silence the compiler (GCC) by using an extension. --- src/gui/text/qtextformat.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 46db253..fdbb680 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -265,10 +265,18 @@ private: friend QDataStream &operator>>(QDataStream &, QTextFormat &); }; -// this is only safe if sizeof(int) == sizeof(float) +// this is only safe because sizeof(int) == sizeof(float) static inline uint hash(float d) { +#ifdef Q_CC_GNU + // this is a GCC extension and isn't guaranteed to work in other compilers + // the reinterpret_cast below generates a strict-aliasing warning with GCC + union { float f; uint u; } cvt; + cvt.f = d; + return cvt.u; +#else return reinterpret_cast(d); +#endif } static inline uint hash(const QColor &color) -- cgit v0.12 From d910fa67be7981714bfc854a7b6cc10e0ecfb858 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 26 Nov 2010 20:55:49 +0100 Subject: Fix warning about uninitialised varibale. This variable cannot be dereferenced when it's zero, but let's silence the compiler warning (GCC 4.4 on ARM). --- src/plugins/bearer/connman/qconnmanengine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 184ceb4..7ac86b3 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -726,6 +726,7 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath) if(servicePath.isEmpty()) { id = QString::number(qHash(networkPath)); + serv = 0; // ### FIXME } else { id = QString::number(qHash(servicePath)); serv = new QConnmanServiceInterface(servicePath,this); -- cgit v0.12 From a22ecab92bacc57d0a788eb9713f442e95468fd3 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 28 Nov 2010 12:46:00 +0100 Subject: Remove the FIXME, it's fixed --- src/plugins/bearer/connman/qconnmanengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 7ac86b3..7f3501e 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -726,7 +726,7 @@ void QConnmanEngine::addNetworkConfiguration(const QString &networkPath) if(servicePath.isEmpty()) { id = QString::number(qHash(networkPath)); - serv = 0; // ### FIXME + serv = 0; } else { id = QString::number(qHash(servicePath)); serv = new QConnmanServiceInterface(servicePath,this); -- cgit v0.12 From 7dafb5ca875a714ed9a1ced1a44ca536b31a44de Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 22 Oct 2010 15:29:41 +0200 Subject: Autotest: fix mistake in verifying pointers Don't assume that pointers on the heap appear always on the positive half of the addressing space. --- tests/auto/qsharedpointer/tst_qsharedpointer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp index 6b4904f..a05aa97 100644 --- a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp @@ -283,8 +283,8 @@ void tst_QSharedPointer::operators() QSharedPointer p1; QSharedPointer p2(new char); qptrdiff diff = p2.data() - p1.data(); - Q_ASSERT(p1.data() < p2.data()); - Q_ASSERT(diff > 0); + Q_ASSERT(p1.data() != p2.data()); + Q_ASSERT(diff != 0); // operator- QCOMPARE(p2 - p1.data(), diff); -- cgit v0.12 From 344c3ad32bd36ad67731aa3171103a6c5e2f93e0 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Sun, 28 Nov 2010 20:44:21 +0100 Subject: Added the foundations of QML markup support. Use the QtDeclarative parser instead of Qt Creator's QML parser. Split the QML visitor into documentation and markup visitors. The code marker used for each file is now determined from its extension. --- tools/qdoc3/cppcodemarker.cpp | 1 - tools/qdoc3/cppcodemarker.h | 56 +- tools/qdoc3/ditaxmlgenerator.cpp | 4 +- tools/qdoc3/ditaxmlgenerator.h | 2 +- tools/qdoc3/generator.h | 2 +- tools/qdoc3/htmlgenerator.cpp | 26 +- tools/qdoc3/htmlgenerator.h | 5 +- tools/qdoc3/main.cpp | 12 +- tools/qdoc3/node.cpp | 1 - tools/qdoc3/pagegenerator.cpp | 14 +- tools/qdoc3/pagegenerator.h | 4 +- tools/qdoc3/qdoc3.pro | 9 +- tools/qdoc3/qmlcodeparser.cpp | 18 +- tools/qdoc3/qmlcodeparser.h | 12 +- tools/qdoc3/qmlmarkupvisitor.cpp | 1415 ++++++++++++++++++++++++++++++++++++++ tools/qdoc3/qmlmarkupvisitor.h | 338 +++++++++ tools/qdoc3/qmlvisitor.cpp | 48 +- tools/qdoc3/qmlvisitor.h | 36 +- 18 files changed, 1877 insertions(+), 126 deletions(-) create mode 100644 tools/qdoc3/qmlmarkupvisitor.cpp create mode 100644 tools/qdoc3/qmlmarkupvisitor.h diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 576d103..55a455f 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -43,7 +43,6 @@ cppcodemarker.cpp */ -#include #include "atom.h" #include "cppcodemarker.h" #include "node.h" diff --git a/tools/qdoc3/cppcodemarker.h b/tools/qdoc3/cppcodemarker.h index 804a302..40695c5 100644 --- a/tools/qdoc3/cppcodemarker.h +++ b/tools/qdoc3/cppcodemarker.h @@ -56,36 +56,36 @@ class CppCodeMarker : public CodeMarker CppCodeMarker(); ~CppCodeMarker(); - bool recognizeCode(const QString& code); - bool recognizeExtension(const QString& ext); - bool recognizeLanguage(const QString& lang); - QString plainName(const Node *node); - QString plainFullName(const Node *node, const Node *relative); - QString markedUpCode(const QString& code, - const Node *relative, - const QString& dirPath); - QString markedUpSynopsis(const Node *node, - const Node *relative, - SynopsisStyle style); + virtual bool recognizeCode(const QString& code); + virtual bool recognizeExtension(const QString& ext); + virtual bool recognizeLanguage(const QString& lang); + virtual QString plainName(const Node *node); + virtual QString plainFullName(const Node *node, const Node *relative); + virtual QString markedUpCode(const QString& code, + const Node *relative, + const QString& dirPath); + virtual QString markedUpSynopsis(const Node *node, + const Node *relative, + SynopsisStyle style); #ifdef QDOC_QML - QString markedUpQmlItem(const Node *node, bool summary); + virtual QString markedUpQmlItem(const Node *node, bool summary); #endif - QString markedUpName(const Node *node); - QString markedUpFullName(const Node *node, const Node *relative); - QString markedUpEnumValue(const QString &enumValue, const Node *relative); - QString markedUpIncludes(const QStringList& includes); - QString functionBeginRegExp(const QString& funcName); - QString functionEndRegExp(const QString& funcName); - QList
sections(const InnerNode *innerNode, - SynopsisStyle style, - Status status); - QList
qmlSections(const QmlClassNode* qmlClassNode, - SynopsisStyle style, - const Tree* tree); - const Node* resolveTarget(const QString& target, - const Tree* tree, - const Node* relative, - const Node* self = 0); + virtual QString markedUpName(const Node *node); + virtual QString markedUpFullName(const Node *node, const Node *relative); + virtual QString markedUpEnumValue(const QString &enumValue, const Node *relative); + virtual QString markedUpIncludes(const QStringList& includes); + virtual QString functionBeginRegExp(const QString& funcName); + virtual QString functionEndRegExp(const QString& funcName); + virtual QList
sections(const InnerNode *innerNode, + SynopsisStyle style, + Status status); + virtual QList
qmlSections(const QmlClassNode* qmlClassNode, + SynopsisStyle style, + const Tree* tree); + virtual const Node* resolveTarget(const QString& target, + const Tree* tree, + const Node* relative, + const Node* self = 0); private: QString addMarkUp(const QString& protectedCode, diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp index ce597f2..1014f79 100644 --- a/tools/qdoc3/ditaxmlgenerator.cpp +++ b/tools/qdoc3/ditaxmlgenerator.cpp @@ -533,7 +533,7 @@ QString DitaXmlGenerator::lookupGuid(QString text) \note The file generation is done in the base class, PageGenerator::generateTree(). */ -void DitaXmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) +void DitaXmlGenerator::generateTree(const Tree *tree) { myTree = tree; nonCompatClasses.clear(); @@ -552,7 +552,7 @@ void DitaXmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) findAllNamespaces(tree->root()); findAllSince(tree->root()); - PageGenerator::generateTree(tree, marker); + PageGenerator::generateTree(tree); } void DitaXmlGenerator::startText(const Node* /* relative */, diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h index 36bd990..a29df77 100644 --- a/tools/qdoc3/ditaxmlgenerator.h +++ b/tools/qdoc3/ditaxmlgenerator.h @@ -91,7 +91,7 @@ class DitaXmlGenerator : public PageGenerator virtual void initializeGenerator(const Config& config); virtual void terminateGenerator(); virtual QString format(); - virtual void generateTree(const Tree *tree, CodeMarker *marker); + virtual void generateTree(const Tree *tree); QString protectEnc(const QString &string); static QString protect(const QString &string, const QString &encoding = "ISO-8859-1"); diff --git a/tools/qdoc3/generator.h b/tools/qdoc3/generator.h index 326a247..18c3855 100644 --- a/tools/qdoc3/generator.h +++ b/tools/qdoc3/generator.h @@ -78,7 +78,7 @@ class Generator virtual void terminateGenerator(); virtual QString format() = 0; virtual bool canHandleFormat(const QString &format) { return format == this->format(); } - virtual void generateTree(const Tree *tree, CodeMarker *marker) = 0; + virtual void generateTree(const Tree *tree) = 0; static void initialize(const Config& config); static void terminate(); diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 3f76204..9f5f182 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -217,9 +217,9 @@ HtmlGenerator::HtmlGenerator() threeColumnEnumValueTable(true), funcLeftParen("\\S(\\()"), myTree(0), + inObsoleteLink(false), slow(false), - obsoleteLinks(false), - inObsoleteLink(false) + obsoleteLinks(false) { } @@ -356,7 +356,7 @@ QString HtmlGenerator::format() \note The HTML file generation is done in the base class, PageGenerator::generateTree(). */ -void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) +void HtmlGenerator::generateTree(const Tree *tree) { myTree = tree; nonCompatClasses.clear(); @@ -375,11 +375,11 @@ void HtmlGenerator::generateTree(const Tree *tree, CodeMarker *marker) findAllNamespaces(tree->root()); findAllSince(tree->root()); - PageGenerator::generateTree(tree, marker); + PageGenerator::generateTree(tree); QString fileBase = project.toLower().simplified().replace(" ", "-"); generateIndex(fileBase, projectUrl, projectDescription); - generatePageIndex(outputDir() + "/" + fileBase + ".pageindex", marker); + generatePageIndex(outputDir() + "/" + fileBase + ".pageindex"); helpProjectWriter->generate(myTree); } @@ -2913,18 +2913,6 @@ void HtmlGenerator::generateLink(const Atom* atom, } inLink = false; out() << protectEnc(atom->string().mid(k)); - } else if (marker->recognizeLanguage("Java")) { - // hack for Java: remove () and use when appropriate - bool func = atom->string().endsWith("()"); - bool tt = (func || atom->string().contains(camelCase)); - if (tt) - out() << ""; - if (func) { - out() << protectEnc(atom->string().left(atom->string().length() - 2)); - } else { - out() << protectEnc(atom->string()); - } - out() << ""; } else { out() << protectEnc(atom->string()); } @@ -4168,12 +4156,14 @@ void HtmlGenerator::generatePageElements(QXmlStreamWriter& writer, const Node* n /*! Outputs the file containing the index used for searching the html docs. */ -void HtmlGenerator::generatePageIndex(const QString& fileName, CodeMarker* marker) const +void HtmlGenerator::generatePageIndex(const QString& fileName) const { QFile file(fileName); if (!file.open(QFile::WriteOnly | QFile::Text)) return ; + CodeMarker *marker = CodeMarker::markerForFileName(fileName); + QXmlStreamWriter writer(&file); writer.setAutoFormatting(true); writer.writeStartDocument(); diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index 547cf2f..4276475 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -92,7 +92,7 @@ class HtmlGenerator : public PageGenerator virtual void initializeGenerator(const Config& config); virtual void terminateGenerator(); virtual QString format(); - virtual void generateTree(const Tree *tree, CodeMarker *marker); + virtual void generateTree(const Tree *tree); QString protectEnc(const QString &string); static QString protect(const QString &string, const QString &encoding = "ISO-8859-1"); @@ -247,8 +247,7 @@ class HtmlGenerator : public PageGenerator void generatePageElements(QXmlStreamWriter& writer, const Node* node, CodeMarker* marker) const; - void generatePageIndex(const QString& fileName, - CodeMarker* marker) const; + void generatePageIndex(const QString& fileName) const; void generateExtractionMark(const Node *node, ExtractionMarkType markType); QMap refMap; diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 2d3f034..ac1c5de 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -55,6 +55,7 @@ #include "htmlgenerator.h" #include "plaincodemarker.h" #include "puredocparser.h" +#include "qmlcodemarker.h" #include "qmlcodeparser.h" #include "tokenizer.h" #include "tree.h" @@ -243,14 +244,6 @@ static void processQdocconfFile(const QString &fileName) Location outputFormatsLocation = config.lastLocation(); /* - There must be a code marker for the source code language, e.g. C++. - If there isn't one, give up. - */ - CodeMarker *marker = CodeMarker::markerForLanguage(lang); - if (!marker && !outputFormats.isEmpty()) - langLocation.fatal(tr("Cannot output documentation for programming language '%1'").arg(lang)); - - /* Read some XML indexes containing definitions from other documentation sets. */ QStringList indexFiles = config.getStringList(CONFIG_INDEXES); @@ -334,7 +327,7 @@ static void processQdocconfFile(const QString &fileName) if (generator == 0) outputFormatsLocation.fatal(tr("Unknown output format '%1'") .arg(*of)); - generator->generateTree(tree, marker); + generator->generateTree(tree); ++of; } @@ -390,6 +383,7 @@ int main(int argc, char **argv) */ PlainCodeMarker plainMarker; CppCodeMarker cppMarker; + QmlCodeMarker qmlMarker; HtmlGenerator htmlGenerator; DitaXmlGenerator ditaxmlGenerator; diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index 3e8230c..838bbfb 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -45,7 +45,6 @@ #include "node.h" #include "tree.h" -#include "codemarker.h" #include QT_BEGIN_NAMESPACE diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp index 37dc191..60b40c9 100644 --- a/tools/qdoc3/pagegenerator.cpp +++ b/tools/qdoc3/pagegenerator.cpp @@ -46,6 +46,7 @@ #include #include #include +#include "codemarker.h" #include "pagegenerator.h" #include "tree.h" @@ -175,9 +176,9 @@ bool PageGenerator::parseArg(const QString& src, /*! This function is recursive. */ -void PageGenerator::generateTree(const Tree *tree, CodeMarker *marker) +void PageGenerator::generateTree(const Tree *tree) { - generateInnerNode(tree->root(), marker); + generateInnerNode(tree->root()); } QString PageGenerator::fileBase(const Node *node) const @@ -301,7 +302,7 @@ QTextStream &PageGenerator::out() Recursive writing of html files from the root \a node. */ void -PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker) +PageGenerator::generateInnerNode(const InnerNode* node) { if (!node->url().isNull()) return; @@ -320,6 +321,11 @@ PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker) } } + /* + Obtain a code marker for the source file. + */ + CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath()); + if (node->parent() != 0) { beginSubPage(node->location(), fileName(node)); if (node->type() == Node::Namespace || node->type() == Node::Class) { @@ -334,7 +340,7 @@ PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker) NodeList::ConstIterator c = node->childNodes().begin(); while (c != node->childNodes().end()) { if ((*c)->isInnerNode() && (*c)->access() != Node::Private) - generateInnerNode((const InnerNode *) *c, marker); + generateInnerNode((const InnerNode *) *c); ++c; } } diff --git a/tools/qdoc3/pagegenerator.h b/tools/qdoc3/pagegenerator.h index 1aa24a1..abb8f1c 100644 --- a/tools/qdoc3/pagegenerator.h +++ b/tools/qdoc3/pagegenerator.h @@ -66,7 +66,7 @@ class PageGenerator : public Generator PageGenerator(); ~PageGenerator(); - virtual void generateTree(const Tree *tree, CodeMarker *marker); + virtual void generateTree(const Tree *tree); protected: virtual QString fileBase(const Node *node) const; @@ -75,7 +75,7 @@ class PageGenerator : public Generator QString outFileName(); void beginSubPage(const Location& location, const QString& fileName); void endSubPage(); - virtual void generateInnerNode(const InnerNode *node, CodeMarker *marker); + virtual void generateInnerNode(const InnerNode *node); QTextStream& out(); QString naturalLanguage; diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro index 2c91a9c..23ff7bd 100644 --- a/tools/qdoc3/qdoc3.pro +++ b/tools/qdoc3/qdoc3.pro @@ -43,7 +43,9 @@ HEADERS += atom.h \ pagegenerator.h \ plaincodemarker.h \ puredocparser.h \ + qmlcodemarker.h \ qmlcodeparser.h \ + qmlmarkupvisitor.h \ qmlvisitor.h \ quoter.h \ separator.h \ @@ -71,7 +73,9 @@ SOURCES += atom.cpp \ pagegenerator.cpp \ plaincodemarker.cpp \ puredocparser.cpp \ + qmlcodemarker.cpp \ qmlcodeparser.cpp \ + qmlmarkupvisitor.cpp \ qmlvisitor.cpp \ quoter.cpp \ separator.cpp \ @@ -80,10 +84,9 @@ SOURCES += atom.cpp \ tree.cpp \ yyindent.cpp -# Include the QML parsing library from Qt Creator. +INCLUDEPATH += $$(QT_BUILD_TREE)/include/QtDeclarative -LIBS += -L$$(QTCREATOR_LIBPATH) -lQmlJS -lUtils -INCLUDEPATH += $$(QTCREATOR_INCPATH) +include($$(QT_SOURCE_TREE)/src/declarative/qml/parser/parser.pri) ### Documentation for qdoc3 ### diff --git a/tools/qdoc3/qmlcodeparser.cpp b/tools/qdoc3/qmlcodeparser.cpp index c6ace7d..329912c 100644 --- a/tools/qdoc3/qmlcodeparser.cpp +++ b/tools/qdoc3/qmlcodeparser.cpp @@ -43,9 +43,9 @@ qmlcodeparser.cpp */ -#include "parser/qmljsast_p.h" -#include "parser/qmljsastvisitor_p.h" -#include "parser/qmljsnodepool_p.h" +#include "private/qdeclarativejsast_p.h" +#include "private/qdeclarativejsastvisitor_p.h" +#include "private/qdeclarativejsnodepool_p.h" #include "qmlcodeparser.h" #include "node.h" @@ -84,8 +84,8 @@ void QmlCodeParser::initializeParser(const Config &config) { CodeParser::initializeParser(config); - lexer = new QmlJS::Lexer(&engine); - parser = new QmlJS::Parser(&engine); + lexer = new QDeclarativeJS::Lexer(&engine); + parser = new QDeclarativeJS::Parser(&engine); } void QmlCodeParser::terminateParser() @@ -125,12 +125,12 @@ void QmlCodeParser::parseSourceFile(const Location& location, QSet metacommandsAllowed = topicCommandsAllowed + otherMetacommandsAllowed; - QmlJS::NodePool m_nodePool(filePath, &engine); + QDeclarativeJS::NodePool m_nodePool(filePath, &engine); if (parser->parse()) { - QmlJS::AST::UiProgram *ast = parser->ast(); - DocVisitor visitor(filePath, document, &engine, tree, metacommandsAllowed); - QmlJS::AST::Node::accept(ast, &visitor); + QDeclarativeJS::AST::UiProgram *ast = parser->ast(); + QmlDocVisitor visitor(filePath, document, &engine, tree, metacommandsAllowed); + QDeclarativeJS::AST::Node::accept(ast, &visitor); } } diff --git a/tools/qdoc3/qmlcodeparser.h b/tools/qdoc3/qmlcodeparser.h index f6d6684..a99e8a3 100644 --- a/tools/qdoc3/qmlcodeparser.h +++ b/tools/qdoc3/qmlcodeparser.h @@ -47,9 +47,9 @@ #define QMLCODEPARSER_H #include -#include "parser/qmljsengine_p.h" -#include "parser/qmljslexer_p.h" -#include "parser/qmljsparser_p.h" +#include "private/qdeclarativejsengine_p.h" +#include "private/qdeclarativejslexer_p.h" +#include "private/qdeclarativejsparser_p.h" #include "codeparser.h" #include "location.h" @@ -80,9 +80,9 @@ protected: virtual QSet otherMetaCommands(); private: - QmlJS::Engine engine; - QmlJS::Lexer *lexer; - QmlJS::Parser *parser; + QDeclarativeJS::Engine engine; + QDeclarativeJS::Lexer *lexer; + QDeclarativeJS::Parser *parser; }; QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp new file mode 100644 index 0000000..72a2334 --- /dev/null +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -0,0 +1,1415 @@ +/**************************************************************************** +** +** 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 tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include "private/qdeclarativejsast_p.h" +#include "private/qdeclarativejsastfwd_p.h" +#include "private/qdeclarativejsengine_p.h" + +#include "qmlmarkupvisitor.h" + +QT_BEGIN_NAMESPACE + +QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, bool debug) +{ + this->source = source; + indent = 0; + cursor = 0; + showDebug = debug; +} + +QmlMarkupVisitor::~QmlMarkupVisitor() +{ +} + +QString QmlMarkupVisitor::markedUpCode() +{ + if (cursor < source.length()) + return output + source.mid(cursor); + else + return output; +} + +void QmlMarkupVisitor::addMarkedUpToken( + QDeclarativeJS::AST::SourceLocation &location, const QString &text) +{ + //qDebug() << "t**" << cursor << location.offset; + if (location.offset > cursor) { + QString extra = source.mid(cursor, location.offset - cursor); + if (extra.trimmed().isEmpty()) + output += extra; + else + output += "<<<" + extra + ">>>"; + //qDebug() << "+++" << source.mid(cursor, location.offset - cursor); + cursor += location.offset; + } + + //qDebug() << "-->" << text; + output += text; + cursor += location.length; +} + +QString QmlMarkupVisitor::sourceText(QDeclarativeJS::AST::SourceLocation &location) +{ + return source.mid(location.offset, location.length); +} + +void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, + QDeclarativeJS::AST::SourceLocation last) +{ + quint32 start = first.begin(); + //qDebug() << "v**" << cursor << start; + quint32 finish; + if (last.isValid()) + finish = last.end(); + else + finish = first.end(); + + if (start > cursor) { + QString extra = source.mid(cursor, start - cursor); + if (extra.trimmed().isEmpty()) + output += extra; + else + output += "<<<" + extra + ">>>"; + //qDebug() << "+++" << source.mid(cursor, start - cursor); + cursor = start; + } + + QString text = source.mid(start, finish - start); + //qDebug() << "-->" << text; + write(text); + indent -= 1; + output += text; + cursor += text.length(); +} + +void QmlMarkupVisitor::write(const QString &text) +{ + if (showDebug) + qDebug() << QString().fill(QChar(' '), indent) << text; + indent += 1; +} + +void QmlMarkupVisitor::endWrite(const QString &) +{ + indent -= 1; +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiProgram *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiProgram *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImport *uiimport) +{ + write(""); + addVerbatim(uiimport->importToken); + if (!uiimport->importUri) + addVerbatim(uiimport->fileNameToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImport *uiimport) +{ + endWrite(""); + addVerbatim(uiimport->versionToken); + addVerbatim(uiimport->asToken); + addVerbatim(uiimport->importIdToken); + addVerbatim(uiimport->semicolonToken); + //endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) +{ + write(""); + if (member->type == QDeclarativeJS::AST::UiPublicMember::Property) { + addVerbatim(member->defaultToken); + addVerbatim(member->readonlyToken); + addVerbatim(member->propertyToken); + addVerbatim(member->typeModifierToken); + addVerbatim(member->typeToken); + addVerbatim(member->identifierToken); + addVerbatim(member->colonToken); + QDeclarativeJS::AST::Node::accept(member->binding, this); + } else { + addVerbatim(member->propertyToken); + addVerbatim(member->typeModifierToken); + addVerbatim(member->typeToken); + //addVerbatim(member->identifierToken); + QDeclarativeJS::AST::Node::accept(member->parameters, this); + } + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiPublicMember *member) +{ + addVerbatim(member->semicolonToken); + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSourceElement *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSourceElement *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiParameterList *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiParameterList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectInitializer *initializer) +{ + write(""); + addVerbatim(initializer->lbraceToken, initializer->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectInitializer *initializer) +{ + endWrite(""); + addVerbatim(initializer->rbraceToken, initializer->rbraceToken); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectBinding *binding) +{ + write(""); + QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + QDeclarativeJS::AST::Node::accept(binding->qualifiedTypeNameId, this); + QDeclarativeJS::AST::Node::accept(binding->initializer, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectBinding *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiScriptBinding *binding) +{ + write(""); + QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + QDeclarativeJS::AST::Node::accept(binding->statement, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiScriptBinding *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayBinding *binding) +{ + write(""); + QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + addVerbatim(binding->lbracketToken); + QDeclarativeJS::AST::Node::accept(binding->members, this); + addVerbatim(binding->rbracketToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayBinding *formal) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) +{ + write(""); + for (QDeclarativeJS::AST::UiArrayMemberList *it = list; it; it = it->next) { + QDeclarativeJS::AST::Node::accept(it->member, this); + addVerbatim(it->commaToken); + } + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayMemberList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiQualifiedId *id) +{ + write(""); + addVerbatim(id->identifierToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiQualifiedId *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSignature *signature) +{ + write(""); + addVerbatim(signature->lparenToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSignature *signature) +{ + addVerbatim(signature->rparenToken); + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormal *formal) +{ + write(""); + addVerbatim(formal->identifierToken); + addVerbatim(formal->asToken); + addVerbatim(formal->aliasToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormal *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThisExpression *expression) +{ + write(""); + addVerbatim(expression->thisToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThisExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierExpression *identifier) +{ + write(""); + addVerbatim(identifier->identifierToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NullExpression *null) +{ + write(""); + addVerbatim(null->nullToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NullExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TrueLiteral *literal) +{ + write(""); + addVerbatim(literal->trueToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TrueLiteral *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FalseLiteral *literal) +{ + write(""); + addVerbatim(literal->falseToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FalseLiteral *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteral *literal) +{ + //write(""); + addVerbatim(literal->literalToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteral *) +{ + //endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteral *literal) +{ + //write(""); + addVerbatim(literal->literalToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteral *) +{ + //endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::RegExpLiteral *literal) +{ + write(""); + addVerbatim(literal->literalToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::RegExpLiteral *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayLiteral *literal) +{ + write(""); + addVerbatim(literal->lbracketToken); + QDeclarativeJS::AST::Node::accept(literal->elements, this); + addVerbatim(literal->rbracketToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayLiteral *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ObjectLiteral *literal) +{ + write(""); + addVerbatim(literal->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ObjectLiteral *literal) +{ + addVerbatim(literal->rbraceToken); + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ElementList *list) +{ + write(""); + for (QDeclarativeJS::AST::ElementList *it = list; it; it = it->next) { + QDeclarativeJS::AST::Node::accept(it->expression, this); + addVerbatim(it->commaToken); + } + QDeclarativeJS::AST::Node::accept(list->elision, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ElementList *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Elision *elision) +{ + write(""); + addVerbatim(elision->commaToken, elision->commaToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Elision *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierPropertyName *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierPropertyName *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteralPropertyName *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteralPropertyName *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteralPropertyName *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteralPropertyName *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PropertyNameAndValueList *list) +{ + write(""); + QDeclarativeJS::AST::Node::accept(list->name, this); + addVerbatim(list->colonToken, list->colonToken); + QDeclarativeJS::AST::Node::accept(list->value, this); + addVerbatim(list->commaToken, list->commaToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PropertyNameAndValueList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NestedExpression *expression) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NestedExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayMemberExpression *expression) +{ + write(""); + QDeclarativeJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->lbracketToken); + QDeclarativeJS::AST::Node::accept(expression->expression, this); + addVerbatim(expression->rbracketToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayMemberExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *expression) +{ + write(""); + QDeclarativeJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->dotToken); + addVerbatim(expression->identifierToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FieldMemberExpression *expression) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expression) +{ + write(""); + addVerbatim(expression->newToken); + QDeclarativeJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->lparenToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewMemberExpression *expression) +{ + addVerbatim(expression->rparenToken); + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewExpression *expression) +{ + write(""); + addVerbatim(expression->newToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CallExpression *expression) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CallExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArgumentList *list) +{ + write(""); + addVerbatim(list->commaToken, list->commaToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArgumentList *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostIncrementExpression *expression) +{ + write(""); + addVerbatim(expression->incrementToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostIncrementExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostDecrementExpression *expression) +{ + write(""); + addVerbatim(expression->decrementToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostDecrementExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DeleteExpression *expression) +{ + write(""); + addVerbatim(expression->deleteToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DeleteExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VoidExpression *expression) +{ + write(""); + addVerbatim(expression->voidToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VoidExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TypeOfExpression *expression) +{ + write(""); + addVerbatim(expression->typeofToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TypeOfExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreIncrementExpression *expression) +{ + write(""); + addVerbatim(expression->incrementToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreIncrementExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreDecrementExpression *expression) +{ + write(""); + addVerbatim(expression->decrementToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreDecrementExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryPlusExpression *expression) +{ + write(""); + addVerbatim(expression->plusToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryPlusExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryMinusExpression *expression) +{ + write(""); + addVerbatim(expression->minusToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryMinusExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TildeExpression *expression) +{ + write(""); + addVerbatim(expression->tildeToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TildeExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NotExpression *expression) +{ + write(""); + addVerbatim(expression->notToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NotExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) +{ + write(""); + QDeclarativeJS::AST::Node::accept(expression->left, this); + addVerbatim(expression->operatorToken); + QDeclarativeJS::AST::Node::accept(expression->right, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BinaryExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ConditionalExpression *expression) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ConditionalExpression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Expression *expression) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Expression *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Block *block) +{ + write(""); + addVerbatim(block->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Block *block) +{ + addVerbatim(block->rbraceToken); + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementList *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementList *) +{ + endWrite(""); + addVerbatim(statement->declarationKindToken); + QDeclarativeJS::AST::Node::accept(statement->declarations, this); + addVerbatim(statement->semicolonToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclarationList *list) +{ + write(""); + for (QDeclarativeJS::AST::VariableDeclarationList *it = list; it; it = it->next) { + QDeclarativeJS::AST::Node::accept(it->declaration, this); + addVerbatim(it->commaToken); + } + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclarationList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declaration) +{ + write(""); + addVerbatim(declaration->identifierToken); + QDeclarativeJS::AST::Node::accept(declaration->expression, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclaration *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::EmptyStatement *statement) +{ + write(""); + addVerbatim(statement->semicolonToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::EmptyStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ExpressionStatement *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ExpressionStatement *statement) +{ + addVerbatim(statement->semicolonToken); + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) +{ + write(""); + addVerbatim(statement->ifToken); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->ok, this); + //addVerbatim(statement->elseToken); ### this token referred to the wrong source text for some reason + QDeclarativeJS::AST::Node::accept(statement->ko, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IfStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) +{ + write(""); + addVerbatim(statement->doToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + addVerbatim(statement->whileToken); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + addVerbatim(statement->semicolonToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DoWhileStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WhileStatement *statement) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WhileStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) +{ + write(""); + addVerbatim(statement->forToken); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->initialiser, this); + addVerbatim(statement->firstSemicolonToken); + QDeclarativeJS::AST::Node::accept(statement->condition, this); + addVerbatim(statement->secondSemicolonToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) +{ + write(""); + addVerbatim(statement->forToken); + addVerbatim(statement->lparenToken); + addVerbatim(statement->varToken); + QDeclarativeJS::AST::Node::accept(statement->declarations, this); + addVerbatim(statement->firstSemicolonToken); + QDeclarativeJS::AST::Node::accept(statement->condition, this); + addVerbatim(statement->secondSemicolonToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) +{ + write(""); + addVerbatim(statement->forToken); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->initialiser, this); + addVerbatim(statement->inToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForEachStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *statement) +{ + write(""); + addVerbatim(statement->forToken); + addVerbatim(statement->lparenToken); + addVerbatim(statement->varToken); + QDeclarativeJS::AST::Node::accept(statement->declaration, this); + addVerbatim(statement->inToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForEachStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) +{ + write(""); + addVerbatim(statement->continueToken); + addVerbatim(statement->identifierToken); + addVerbatim(statement->semicolonToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ContinueStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) +{ + write(""); + addVerbatim(statement->breakToken); + addVerbatim(statement->identifierToken); + addVerbatim(statement->semicolonToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BreakStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ReturnStatement *statement) +{ + write(""); + addVerbatim(statement->returnToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ReturnStatement *statement) +{ + addVerbatim(statement->semicolonToken); + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WithStatement *statement) +{ + write(""); + addVerbatim(statement->withToken); + addVerbatim(statement->lparenToken); + addVerbatim(statement->rparenToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WithStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseBlock *block) +{ + write(""); + addVerbatim(block->lbraceToken, block->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseBlock *block) +{ + endWrite(""); + addVerbatim(block->rbraceToken, block->rbraceToken); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SwitchStatement *statement) +{ + write(""); + addVerbatim(statement->switchToken); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->block, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SwitchStatement *statement) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClauses *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClauses *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) +{ + write(""); + addVerbatim(clause->caseToken); + QDeclarativeJS::AST::Node::accept(clause->expression, this); + addVerbatim(clause->colonToken); + QDeclarativeJS::AST::Node::accept(clause->statements, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClause *clause) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) +{ + write(""); + addVerbatim(clause->defaultToken, clause->defaultToken); + addVerbatim(clause->colonToken, clause->colonToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DefaultClause *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) +{ + write(""); + addVerbatim(statement->identifierToken); + addVerbatim(statement->colonToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LabelledStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) +{ + write(""); + addVerbatim(statement->throwToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->semicolonToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThrowStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) +{ + write(""); + addVerbatim(c->catchToken, c->catchToken); + addVerbatim(c->lparenToken, c->lparenToken); + addVerbatim(c->identifierToken, c->identifierToken); + addVerbatim(c->rparenToken, c->rparenToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Catch *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) +{ + write(""); + addVerbatim(f->finallyToken); + QDeclarativeJS::AST::Node::accept(f->statement, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Finally *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) +{ + write(""); + addVerbatim(statement->tryToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + QDeclarativeJS::AST::Node::accept(statement->catchExpression, this); + QDeclarativeJS::AST::Node::accept(statement->finallyExpression, this); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TryStatement *) +{ + endWrite(""); +} + + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression) +{ + write(""); + addVerbatim(expression->functionToken); + addVerbatim(expression->identifierToken); + addVerbatim(expression->lparenToken); + QDeclarativeJS::AST::Node::accept(expression->formals, this); + addVerbatim(expression->rparenToken); + addVerbatim(expression->lbraceToken); + QDeclarativeJS::AST::Node::accept(expression->body, this); + addVerbatim(expression->rbraceToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionExpression *expression) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declaration) +{ + write(""); + addVerbatim(declaration->functionToken); + addVerbatim(declaration->identifierToken); + addVerbatim(declaration->lparenToken); + QDeclarativeJS::AST::Node::accept(declaration->formals, this); + addVerbatim(declaration->rparenToken); + addVerbatim(declaration->lbraceToken); + QDeclarativeJS::AST::Node::accept(declaration->body, this); + addVerbatim(declaration->rbraceToken); + return false; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionDeclaration *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) +{ + write(""); + addVerbatim(list->commaToken, list->commaToken); + addVerbatim(list->identifierToken, list->identifierToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FormalParameterList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionBody *body) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionBody *body) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) +{ + write(""); + addVerbatim(statement->debuggerToken); + addVerbatim(statement->semicolonToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DebuggerStatement *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionSourceElement *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionSourceElement *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementSourceElement *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementSourceElement *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectDefinition *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImportList *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImportList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectMemberList *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectMemberList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormalList *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormalList *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Program *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Program *) +{ + endWrite(""); +} + +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SourceElements *) +{ + write(""); + return true; +} + +void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SourceElements *) +{ + endWrite(""); +} + +QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h new file mode 100644 index 0000000..86e1ac2 --- /dev/null +++ b/tools/qdoc3/qmlmarkupvisitor.h @@ -0,0 +1,338 @@ +/**************************************************************************** +** +** 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 tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLVISITOR_H +#define QMLVISITOR_H + +#include +#include "private/qdeclarativejsastvisitor_p.h" +#include "node.h" +#include "tree.h" + +QT_BEGIN_NAMESPACE + +class QmlMarkupVisitor : public QDeclarativeJS::AST::Visitor +{ +public: + QmlMarkupVisitor(const QString &code, bool debug = false); + virtual ~QmlMarkupVisitor(); + + QString markedUpCode(); + + virtual bool visit(QDeclarativeJS::AST::UiProgram *); + virtual bool visit(QDeclarativeJS::AST::UiImportList *); + virtual bool visit(QDeclarativeJS::AST::UiImport *); + virtual bool visit(QDeclarativeJS::AST::UiPublicMember *); + virtual bool visit(QDeclarativeJS::AST::UiSourceElement *); + virtual bool visit(QDeclarativeJS::AST::UiObjectDefinition *); + virtual bool visit(QDeclarativeJS::AST::UiObjectInitializer *); + virtual bool visit(QDeclarativeJS::AST::UiObjectBinding *); + virtual bool visit(QDeclarativeJS::AST::UiScriptBinding *); + virtual bool visit(QDeclarativeJS::AST::UiArrayBinding *); + virtual bool visit(QDeclarativeJS::AST::UiObjectMemberList *); + virtual bool visit(QDeclarativeJS::AST::UiArrayMemberList *); + virtual bool visit(QDeclarativeJS::AST::UiQualifiedId *); + virtual bool visit(QDeclarativeJS::AST::UiSignature *); + virtual bool visit(QDeclarativeJS::AST::UiFormalList *); + virtual bool visit(QDeclarativeJS::AST::UiFormal *); + + virtual void endVisit(QDeclarativeJS::AST::UiProgram *); + virtual void endVisit(QDeclarativeJS::AST::UiImportList *); + virtual void endVisit(QDeclarativeJS::AST::UiImport *); + virtual void endVisit(QDeclarativeJS::AST::UiPublicMember *); + virtual void endVisit(QDeclarativeJS::AST::UiSourceElement *); + virtual void endVisit(QDeclarativeJS::AST::UiObjectDefinition *); + virtual void endVisit(QDeclarativeJS::AST::UiObjectInitializer *); + virtual void endVisit(QDeclarativeJS::AST::UiObjectBinding *); + virtual void endVisit(QDeclarativeJS::AST::UiScriptBinding *); + virtual void endVisit(QDeclarativeJS::AST::UiArrayBinding *); + virtual void endVisit(QDeclarativeJS::AST::UiObjectMemberList *); + virtual void endVisit(QDeclarativeJS::AST::UiArrayMemberList *); + virtual void endVisit(QDeclarativeJS::AST::UiQualifiedId *); + virtual void endVisit(QDeclarativeJS::AST::UiSignature *); + virtual void endVisit(QDeclarativeJS::AST::UiFormalList *); + virtual void endVisit(QDeclarativeJS::AST::UiFormal *); + + // QDeclarativeJS + virtual bool visit(QDeclarativeJS::AST::ThisExpression *); + virtual void endVisit(QDeclarativeJS::AST::ThisExpression *); + + virtual bool visit(QDeclarativeJS::AST::IdentifierExpression *); + virtual void endVisit(QDeclarativeJS::AST::IdentifierExpression *); + + virtual bool visit(QDeclarativeJS::AST::NullExpression *); + virtual void endVisit(QDeclarativeJS::AST::NullExpression *); + + virtual bool visit(QDeclarativeJS::AST::TrueLiteral *); + virtual void endVisit(QDeclarativeJS::AST::TrueLiteral *); + + virtual bool visit(QDeclarativeJS::AST::FalseLiteral *); + virtual void endVisit(QDeclarativeJS::AST::FalseLiteral *); + + virtual bool visit(QDeclarativeJS::AST::NumericLiteral *); + virtual void endVisit(QDeclarativeJS::AST::NumericLiteral *); + + virtual bool visit(QDeclarativeJS::AST::StringLiteral *); + virtual void endVisit(QDeclarativeJS::AST::StringLiteral *); + + virtual bool visit(QDeclarativeJS::AST::RegExpLiteral *); + virtual void endVisit(QDeclarativeJS::AST::RegExpLiteral *); + + virtual bool visit(QDeclarativeJS::AST::ArrayLiteral *); + virtual void endVisit(QDeclarativeJS::AST::ArrayLiteral *); + + virtual bool visit(QDeclarativeJS::AST::ObjectLiteral *); + virtual void endVisit(QDeclarativeJS::AST::ObjectLiteral *); + + virtual bool visit(QDeclarativeJS::AST::ElementList *); + virtual void endVisit(QDeclarativeJS::AST::ElementList *); + + virtual bool visit(QDeclarativeJS::AST::Elision *); + virtual void endVisit(QDeclarativeJS::AST::Elision *); + + virtual bool visit(QDeclarativeJS::AST::PropertyNameAndValueList *); + virtual void endVisit(QDeclarativeJS::AST::PropertyNameAndValueList *); + + virtual bool visit(QDeclarativeJS::AST::NestedExpression *); + virtual void endVisit(QDeclarativeJS::AST::NestedExpression *); + + virtual bool visit(QDeclarativeJS::AST::IdentifierPropertyName *); + virtual void endVisit(QDeclarativeJS::AST::IdentifierPropertyName *); + + virtual bool visit(QDeclarativeJS::AST::StringLiteralPropertyName *); + virtual void endVisit(QDeclarativeJS::AST::StringLiteralPropertyName *); + + virtual bool visit(QDeclarativeJS::AST::NumericLiteralPropertyName *); + virtual void endVisit(QDeclarativeJS::AST::NumericLiteralPropertyName *); + + virtual bool visit(QDeclarativeJS::AST::ArrayMemberExpression *); + virtual void endVisit(QDeclarativeJS::AST::ArrayMemberExpression *); + + virtual bool visit(QDeclarativeJS::AST::FieldMemberExpression *); + virtual void endVisit(QDeclarativeJS::AST::FieldMemberExpression *); + + virtual bool visit(QDeclarativeJS::AST::NewMemberExpression *); + virtual void endVisit(QDeclarativeJS::AST::NewMemberExpression *); + + virtual bool visit(QDeclarativeJS::AST::NewExpression *); + virtual void endVisit(QDeclarativeJS::AST::NewExpression *); + + virtual bool visit(QDeclarativeJS::AST::CallExpression *); + virtual void endVisit(QDeclarativeJS::AST::CallExpression *); + + virtual bool visit(QDeclarativeJS::AST::ArgumentList *); + virtual void endVisit(QDeclarativeJS::AST::ArgumentList *); + + virtual bool visit(QDeclarativeJS::AST::PostIncrementExpression *); + virtual void endVisit(QDeclarativeJS::AST::PostIncrementExpression *); + + virtual bool visit(QDeclarativeJS::AST::PostDecrementExpression *); + virtual void endVisit(QDeclarativeJS::AST::PostDecrementExpression *); + + virtual bool visit(QDeclarativeJS::AST::DeleteExpression *); + virtual void endVisit(QDeclarativeJS::AST::DeleteExpression *); + + virtual bool visit(QDeclarativeJS::AST::VoidExpression *); + virtual void endVisit(QDeclarativeJS::AST::VoidExpression *); + + virtual bool visit(QDeclarativeJS::AST::TypeOfExpression *); + virtual void endVisit(QDeclarativeJS::AST::TypeOfExpression *); + + virtual bool visit(QDeclarativeJS::AST::PreIncrementExpression *); + virtual void endVisit(QDeclarativeJS::AST::PreIncrementExpression *); + + virtual bool visit(QDeclarativeJS::AST::PreDecrementExpression *); + virtual void endVisit(QDeclarativeJS::AST::PreDecrementExpression *); + + virtual bool visit(QDeclarativeJS::AST::UnaryPlusExpression *); + virtual void endVisit(QDeclarativeJS::AST::UnaryPlusExpression *); + + virtual bool visit(QDeclarativeJS::AST::UnaryMinusExpression *); + virtual void endVisit(QDeclarativeJS::AST::UnaryMinusExpression *); + + virtual bool visit(QDeclarativeJS::AST::TildeExpression *); + virtual void endVisit(QDeclarativeJS::AST::TildeExpression *); + + virtual bool visit(QDeclarativeJS::AST::NotExpression *); + virtual void endVisit(QDeclarativeJS::AST::NotExpression *); + + virtual bool visit(QDeclarativeJS::AST::BinaryExpression *); + virtual void endVisit(QDeclarativeJS::AST::BinaryExpression *); + + virtual bool visit(QDeclarativeJS::AST::ConditionalExpression *); + virtual void endVisit(QDeclarativeJS::AST::ConditionalExpression *); + + virtual bool visit(QDeclarativeJS::AST::Expression *); + virtual void endVisit(QDeclarativeJS::AST::Expression *); + + virtual bool visit(QDeclarativeJS::AST::Block *); + virtual void endVisit(QDeclarativeJS::AST::Block *); + + virtual bool visit(QDeclarativeJS::AST::StatementList *); + virtual void endVisit(QDeclarativeJS::AST::StatementList *); + + virtual bool visit(QDeclarativeJS::AST::VariableStatement *); + virtual void endVisit(QDeclarativeJS::AST::VariableStatement *); + + virtual bool visit(QDeclarativeJS::AST::VariableDeclarationList *); + virtual void endVisit(QDeclarativeJS::AST::VariableDeclarationList *); + + virtual bool visit(QDeclarativeJS::AST::VariableDeclaration *); + virtual void endVisit(QDeclarativeJS::AST::VariableDeclaration *); + + virtual bool visit(QDeclarativeJS::AST::EmptyStatement *); + virtual void endVisit(QDeclarativeJS::AST::EmptyStatement *); + + virtual bool visit(QDeclarativeJS::AST::ExpressionStatement *); + virtual void endVisit(QDeclarativeJS::AST::ExpressionStatement *); + + virtual bool visit(QDeclarativeJS::AST::IfStatement *); + virtual void endVisit(QDeclarativeJS::AST::IfStatement *); + + virtual bool visit(QDeclarativeJS::AST::DoWhileStatement *); + virtual void endVisit(QDeclarativeJS::AST::DoWhileStatement *); + + virtual bool visit(QDeclarativeJS::AST::WhileStatement *); + virtual void endVisit(QDeclarativeJS::AST::WhileStatement *); + + virtual bool visit(QDeclarativeJS::AST::ForStatement *); + virtual void endVisit(QDeclarativeJS::AST::ForStatement *); + + virtual bool visit(QDeclarativeJS::AST::LocalForStatement *); + virtual void endVisit(QDeclarativeJS::AST::LocalForStatement *); + + virtual bool visit(QDeclarativeJS::AST::ForEachStatement *); + virtual void endVisit(QDeclarativeJS::AST::ForEachStatement *); + + virtual bool visit(QDeclarativeJS::AST::LocalForEachStatement *); + virtual void endVisit(QDeclarativeJS::AST::LocalForEachStatement *); + + virtual bool visit(QDeclarativeJS::AST::ContinueStatement *); + virtual void endVisit(QDeclarativeJS::AST::ContinueStatement *); + + virtual bool visit(QDeclarativeJS::AST::BreakStatement *); + virtual void endVisit(QDeclarativeJS::AST::BreakStatement *); + + virtual bool visit(QDeclarativeJS::AST::ReturnStatement *); + virtual void endVisit(QDeclarativeJS::AST::ReturnStatement *); + + virtual bool visit(QDeclarativeJS::AST::WithStatement *); + virtual void endVisit(QDeclarativeJS::AST::WithStatement *); + + virtual bool visit(QDeclarativeJS::AST::CaseBlock *); + virtual void endVisit(QDeclarativeJS::AST::CaseBlock *); + + virtual bool visit(QDeclarativeJS::AST::SwitchStatement *); + virtual void endVisit(QDeclarativeJS::AST::SwitchStatement *); + + virtual bool visit(QDeclarativeJS::AST::CaseClauses *); + virtual void endVisit(QDeclarativeJS::AST::CaseClauses *); + + virtual bool visit(QDeclarativeJS::AST::CaseClause *); + virtual void endVisit(QDeclarativeJS::AST::CaseClause *); + + virtual bool visit(QDeclarativeJS::AST::DefaultClause *); + virtual void endVisit(QDeclarativeJS::AST::DefaultClause *); + + virtual bool visit(QDeclarativeJS::AST::LabelledStatement *); + virtual void endVisit(QDeclarativeJS::AST::LabelledStatement *); + + virtual bool visit(QDeclarativeJS::AST::ThrowStatement *); + virtual void endVisit(QDeclarativeJS::AST::ThrowStatement *); + + virtual bool visit(QDeclarativeJS::AST::TryStatement *); + virtual void endVisit(QDeclarativeJS::AST::TryStatement *); + + virtual bool visit(QDeclarativeJS::AST::Catch *); + virtual void endVisit(QDeclarativeJS::AST::Catch *); + + virtual bool visit(QDeclarativeJS::AST::Finally *); + virtual void endVisit(QDeclarativeJS::AST::Finally *); + + virtual bool visit(QDeclarativeJS::AST::FunctionDeclaration *); + virtual void endVisit(QDeclarativeJS::AST::FunctionDeclaration *); + + virtual bool visit(QDeclarativeJS::AST::FunctionExpression *); + virtual void endVisit(QDeclarativeJS::AST::FunctionExpression *); + + virtual bool visit(QDeclarativeJS::AST::FormalParameterList *); + virtual void endVisit(QDeclarativeJS::AST::FormalParameterList *); + + virtual bool visit(QDeclarativeJS::AST::FunctionBody *); + virtual void endVisit(QDeclarativeJS::AST::FunctionBody *); + + virtual bool visit(QDeclarativeJS::AST::Program *); + virtual void endVisit(QDeclarativeJS::AST::Program *); + + virtual bool visit(QDeclarativeJS::AST::SourceElements *); + virtual void endVisit(QDeclarativeJS::AST::SourceElements *); + + virtual bool visit(QDeclarativeJS::AST::FunctionSourceElement *); + virtual void endVisit(QDeclarativeJS::AST::FunctionSourceElement *); + + virtual bool visit(QDeclarativeJS::AST::StatementSourceElement *); + virtual void endVisit(QDeclarativeJS::AST::StatementSourceElement *); + + virtual bool visit(QDeclarativeJS::AST::DebuggerStatement *); + virtual void endVisit(QDeclarativeJS::AST::DebuggerStatement *); + + virtual bool visit(QDeclarativeJS::AST::UiParameterList *); + virtual void endVisit(QDeclarativeJS::AST::UiParameterList *); + +private: + void addMarkedUpToken(QDeclarativeJS::AST::SourceLocation &location, + const QString &text); + void addVerbatim(QDeclarativeJS::AST::SourceLocation first, + QDeclarativeJS::AST::SourceLocation last = QDeclarativeJS::AST::SourceLocation()); + QString sourceText(QDeclarativeJS::AST::SourceLocation &location); + void write(const QString &text); + void endWrite(const QString &text); + + QString source; + QString output; + quint32 cursor; + int indent; + bool showDebug; +}; + +QT_END_NAMESPACE + +#endif diff --git a/tools/qdoc3/qmlvisitor.cpp b/tools/qdoc3/qmlvisitor.cpp index 1d65c3d..9295624 100644 --- a/tools/qdoc3/qmlvisitor.cpp +++ b/tools/qdoc3/qmlvisitor.cpp @@ -42,15 +42,17 @@ #include #include #include -#include "parser/qmljsast_p.h" -#include "parser/qmljsastfwd_p.h" -#include "parser/qmljsengine_p.h" +#include "private/qdeclarativejsast_p.h" +#include "private/qdeclarativejsastfwd_p.h" +#include "private/qdeclarativejsengine_p.h" #include "node.h" #include "qmlvisitor.h" -DocVisitor::DocVisitor(const QString &filePath, const QString &code, - QmlJS::Engine *engine, Tree *tree, QSet &commands) +QT_BEGIN_NAMESPACE + +QmlDocVisitor::QmlDocVisitor(const QString &filePath, const QString &code, + QDeclarativeJS::Engine *engine, Tree *tree, QSet &commands) { this->filePath = filePath; this->name = QFileInfo(filePath).baseName(); @@ -61,17 +63,17 @@ DocVisitor::DocVisitor(const QString &filePath, const QString &code, current = tree->root(); } -DocVisitor::~DocVisitor() +QmlDocVisitor::~QmlDocVisitor() { } -QmlJS::AST::SourceLocation DocVisitor::precedingComment(unsigned offset) const +QDeclarativeJS::AST::SourceLocation QmlDocVisitor::precedingComment(unsigned offset) const { - QmlJS::AST::SourceLocation currentLoc; + QDeclarativeJS::AST::SourceLocation currentLoc; - foreach (const QmlJS::AST::SourceLocation &loc, engine->comments()) { + foreach (const QDeclarativeJS::AST::SourceLocation &loc, engine->comments()) { if (loc.begin() > lastEndOffset && loc.end() < offset) - currentLoc = loc; + currentLoc = loc; else break; } @@ -81,13 +83,13 @@ QmlJS::AST::SourceLocation DocVisitor::precedingComment(unsigned offset) const return currentLoc; } - return QmlJS::AST::SourceLocation(); + return QDeclarativeJS::AST::SourceLocation(); } -void DocVisitor::applyDocumentation(QmlJS::AST::SourceLocation location, +void QmlDocVisitor::applyDocumentation(QDeclarativeJS::AST::SourceLocation location, Node *node) { - QmlJS::AST::SourceLocation loc = precedingComment(location.begin()); + QDeclarativeJS::AST::SourceLocation loc = precedingComment(location.begin()); if (loc.isValid()) { QString source = document.mid(loc.offset, loc.length); @@ -111,7 +113,7 @@ void DocVisitor::applyDocumentation(QmlJS::AST::SourceLocation location, /*! Visits element definitions, recording them in a tree structure. */ -bool DocVisitor::visit(QmlJS::AST::UiObjectDefinition *definition) +bool QmlDocVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition) { QString type = definition->qualifiedTypeNameId->name->asString(); @@ -130,12 +132,12 @@ bool DocVisitor::visit(QmlJS::AST::UiObjectDefinition *definition) return true; } -void DocVisitor::endVisit(QmlJS::AST::UiObjectDefinition *definition) +void QmlDocVisitor::endVisit(QDeclarativeJS::AST::UiObjectDefinition *definition) { lastEndOffset = definition->lastSourceLocation().end(); } -bool DocVisitor::visit(QmlJS::AST::UiImportList *imports) +bool QmlDocVisitor::visit(QDeclarativeJS::AST::UiImportList *imports) { // Note that the imports list can be traversed by iteration to obtain // all the imports in the document at once, having found just one: @@ -154,10 +156,10 @@ bool DocVisitor::visit(QmlJS::AST::UiImportList *imports) Visits public member declarations, such as signals and properties. These only include custom signals and properties. */ -bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) +bool QmlDocVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) { switch (member->type) { - case QmlJS::AST::UiPublicMember::Signal: + case QDeclarativeJS::AST::UiPublicMember::Signal: { if (current->type() == Node::Fake) { QmlClassNode *qmlClass = static_cast(current); @@ -167,7 +169,7 @@ bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) FunctionNode *qmlSignal = new FunctionNode(Node::QmlSignal, current, name, false); QList parameters; - for (QmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { + for (QDeclarativeJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { if (it->type && it->name) parameters.append(Parameter(it->type->asString(), "", it->name->asString())); } @@ -178,7 +180,7 @@ bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) } break; } - case QmlJS::AST::UiPublicMember::Property: + case QDeclarativeJS::AST::UiPublicMember::Property: { QString type = member->memberType->asString(); QString name = member->name->asString(); @@ -206,12 +208,14 @@ bool DocVisitor::visit(QmlJS::AST::UiPublicMember *member) return true; } -void DocVisitor::endVisit(QmlJS::AST::UiPublicMember *definition) +void QmlDocVisitor::endVisit(QDeclarativeJS::AST::UiPublicMember *definition) { lastEndOffset = definition->lastSourceLocation().end(); } -bool DocVisitor::visit(QmlJS::AST::IdentifierPropertyName *idproperty) +bool QmlDocVisitor::visit(QDeclarativeJS::AST::IdentifierPropertyName *idproperty) { return true; } + +QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlvisitor.h b/tools/qdoc3/qmlvisitor.h index a830793..c7b4bda 100644 --- a/tools/qdoc3/qmlvisitor.h +++ b/tools/qdoc3/qmlvisitor.h @@ -39,36 +39,38 @@ ** ****************************************************************************/ -#ifndef DOCVISITOR_H -#define DOCVISITOR_H +#ifndef QMLVISITOR_H +#define QMLVISITOR_H #include -#include "parser/qmljsastvisitor_p.h" +#include "private/qdeclarativejsastvisitor_p.h" #include "node.h" #include "tree.h" -class DocVisitor : public QmlJS::AST::Visitor +QT_BEGIN_NAMESPACE + +class QmlDocVisitor : public QDeclarativeJS::AST::Visitor { public: - DocVisitor(const QString &filePath, const QString &code, - QmlJS::Engine *engine, Tree *tree, QSet &commands); - virtual ~DocVisitor(); + QmlDocVisitor(const QString &filePath, const QString &code, + QDeclarativeJS::Engine *engine, Tree *tree, QSet &commands); + virtual ~QmlDocVisitor(); - bool visit(QmlJS::AST::UiImportList *imports); + bool visit(QDeclarativeJS::AST::UiImportList *imports); - bool visit(QmlJS::AST::UiObjectDefinition *definition); - void endVisit(QmlJS::AST::UiObjectDefinition *definition); + bool visit(QDeclarativeJS::AST::UiObjectDefinition *definition); + void endVisit(QDeclarativeJS::AST::UiObjectDefinition *definition); - bool visit(QmlJS::AST::UiPublicMember *member); - void endVisit(QmlJS::AST::UiPublicMember *definition); + bool visit(QDeclarativeJS::AST::UiPublicMember *member); + void endVisit(QDeclarativeJS::AST::UiPublicMember *definition); - bool visit(QmlJS::AST::IdentifierPropertyName *idproperty); + bool visit(QDeclarativeJS::AST::IdentifierPropertyName *idproperty); private: - QmlJS::AST::SourceLocation precedingComment(unsigned offset) const; - void applyDocumentation(QmlJS::AST::SourceLocation location, Node *node); + QDeclarativeJS::AST::SourceLocation precedingComment(unsigned offset) const; + void applyDocumentation(QDeclarativeJS::AST::SourceLocation location, Node *node); - QmlJS::Engine *engine; + QDeclarativeJS::Engine *engine; quint32 lastEndOffset; QString filePath; QString name; @@ -79,4 +81,6 @@ private: InnerNode *current; }; +QT_END_NAMESPACE + #endif -- cgit v0.12 From 3b4ff89731d5e63bba91d91c0256626f92538e9d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 29 Nov 2010 12:32:56 +0200 Subject: Add NetworkServices capability automatically for network apps Any application linking to QtNetwork, QtWebKit, or QtDeclarative is likely to utilize network, so add NetworkServices capabiltity for these applications by default in Symbian. Also increased the default epocheap maximum size for these applications. Task-number: QTBUG-14472 Reviewed-by: Janne Koskinen --- doc/src/platforms/platform-notes.qdoc | 13 +++++++++---- mkspecs/features/qt_functions.prf | 15 +++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index 9c5f3c8..177d3f6 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -737,18 +737,23 @@ \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called. \row \o QtCore \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.} + \row \o QtDeclarative + \o \c NetworkServices is automatically added for this module. + \row \o QtNetwork + \o \c NetworkServices is automatically added for this module. \row \o QtNetwork - \o \c NetworkServices is basically always required for this module. \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list (for example those added by the user or stored in the SIM card), without this capability only the CA certs built into the phone are used. \row \o QtMultiMedia \o \c UserEnvironment if QAudioInput is used. + \row \o QtWebkit + \o \c NetworkServices is automatically added for this module. \endtable - Note that some modules rely on other modules. If your application uses - QtXmlPatterns, QtWebkit or QtScript it may still require \c NetworkServices - as these modules rely on QtNetwork to go online. + \note Some modules rely on other modules. E.g. QtWebkit and QtDeclarative + depend on QtNetwork and therefore any application that + depends on these modules is also likely to need \c NetworkServices capability. For more information see the documentation of the individual Qt classes. If a class does not mention Symbian capabilities, it requires none. diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index afc708a..59d49c6 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -49,16 +49,23 @@ defineTest(qtAddLibrary) { isEqual(LIB_NAME, QtGui) { # Needed for #include because qs60mainapplication.h includes aknapp.h INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE - } - isEqual(LIB_NAME, QtWebKit) { + } else:isEqual(LIB_NAME, QtWebKit) { # Needed for because relative inclusion problem in toolchain INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtXmlPatterns INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork - } - isEqual(LIB_NAME, QtXmlPatterns) { + TARGET.CAPABILITY *= NetworkServices + isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + } else:isEqual(LIB_NAME, QtXmlPatterns) { # Needed for #include because relative inclusion problem in toolchain INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork + } else:isEqual(LIB_NAME, QtNetwork) { + TARGET.CAPABILITY *= NetworkServices + } else:isEqual(LIB_NAME, QtDeclarative) { + TARGET.CAPABILITY *= NetworkServices + isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 } + export(TARGET.EPOCHEAPSIZE) + export(TARGET.CAPABILITY) } isEmpty(LINKAGE) { if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { -- cgit v0.12 From b5651eacb88739ab4c77d6fe220ec0fd98091849 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 29 Nov 2010 16:13:52 +0200 Subject: Updated language map in localize_deployment.prf Added missing Symbian language codes for which an Qt equivalent was available. Some codes were mapped to language/country pairs. Task-number: QTBUG-15293 Reviewed-by: Janne Koskinen --- mkspecs/common/symbian/symbian.conf | 6 ++++- mkspecs/features/symbian/localize_deployment.prf | 29 +++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index f8586b0..11907cf 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -139,7 +139,11 @@ SYMBIAN_SUPPORTED_LANGUAGES = \ 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 + nn eu zh gl fa st en_US fr_BE \ + pt_BR en_CA fr_CA el_CY tr_CY \ + en_TW en_HK en_CN en_JP en_TH \ + sv_FI zh_HK es_419 en_ZA fr_CH \ + de_CH it_CH zh_TW # These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins diff --git a/mkspecs/features/symbian/localize_deployment.prf b/mkspecs/features/symbian/localize_deployment.prf index 5f52dbc..26a254b 100644 --- a/mkspecs/features/symbian/localize_deployment.prf +++ b/mkspecs/features/symbian/localize_deployment.prf @@ -3,11 +3,13 @@ SYMBIAN_LANG.sq = 35 #Albanian SYMBIAN_LANG.am = 36 #Amharic SYMBIAN_LANG.ar = 37 #Arabic SYMBIAN_LANG.hy = 38 #Armenian +SYMBIAN_LANG.eu = 102 #Basque 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.zh = 31 #Chinese SYMBIAN_LANG.hr = 45 #Croatian SYMBIAN_LANG.cs = 25 #Czech SYMBIAN_LANG.da = 07 #Danish @@ -17,6 +19,7 @@ SYMBIAN_LANG.et = 49 #Estonian SYMBIAN_LANG.fi = 09 #Finnish SYMBIAN_LANG.fr = 02 #French SYMBIAN_LANG.gd = 52 #Gaelic +SYMBIAN_LANG.gl = 103 #Galician SYMBIAN_LANG.ka = 53 #Georgian SYMBIAN_LANG.de = 03 #German SYMBIAN_LANG.el = 54 #Greek @@ -42,6 +45,8 @@ SYMBIAN_LANG.mr = 72 #Marathi SYMBIAN_LANG.mo = 73 #Moldavian SYMBIAN_LANG.mn = 74 #Mongolian SYMBIAN_LANG.nb = 08 #Norwegian +SYMBIAN_LANG.nn = 75 #Nynorsk +SYMBIAN_LANG.fa = 50 #Persian SYMBIAN_LANG.pl = 27 #Polish SYMBIAN_LANG.pt = 13 #Portuguese SYMBIAN_LANG.pa = 77 #Punjabi @@ -52,6 +57,7 @@ SYMBIAN_LANG.si = 80 #Singhalese SYMBIAN_LANG.sk = 26 #Slovak SYMBIAN_LANG.sl = 28 #Slovenian SYMBIAN_LANG.so = 81 #Somali +SYMBIAN_LANG.st = 101 #South Sotho/Sesotho SYMBIAN_LANG.es = 04 #Spanish SYMBIAN_LANG.sw = 84 #Swahili SYMBIAN_LANG.sv = 06 #Swedish @@ -68,7 +74,28 @@ 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 + +# Regional dialects +SYMBIAN_LANG.en_US = 10 #American English +SYMBIAN_LANG.fr_BE = 21 #Belgian French +SYMBIAN_LANG.pt_BR = 76 #Brazilian Portuguese +SYMBIAN_LANG.en_CA = 46 #Canadian English +SYMBIAN_LANG.fr_CA = 51 #Canadian French +SYMBIAN_LANG.el_CY = 55 #Cyprus Greek +SYMBIAN_LANG.tr_CY = 91 #Cyprus Turkish +SYMBIAN_LANG.en_TW = 157 #English as appropriate for use in Taiwan +SYMBIAN_LANG.en_HK = 158 #English as appropriate for use in Hong Kong +SYMBIAN_LANG.en_CN = 159 #English as appropriate for use in the Peoples Republic of China +SYMBIAN_LANG.en_JP = 160 #English as appropriate for use in Japan +SYMBIAN_LANG.en_TH = 161 #English as appropriate for use in Thailand +SYMBIAN_LANG.sv_FI = 85 #Finland Swedish +SYMBIAN_LANG.zh_HK = 30 #HongKong Chinese +SYMBIAN_LANG.es_419 = 83 #Latin American Spanish +SYMBIAN_LANG.en_ZA = 48 #South African English +SYMBIAN_LANG.fr_CH = 11 #Swiss French +SYMBIAN_LANG.de_CH = 12 #Swiss German +SYMBIAN_LANG.it_CH = 61 #Swiss Italian +SYMBIAN_LANG.zh_TW = 29 #Taiwan Chinese isEmpty(SYMBIAN_MATCHED_LANGUAGES) { matchSymbianLanguages() -- cgit v0.12 From 8e6d4283edc5fcf04a1a624a23e8fc1a9aa7c2d4 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 29 Nov 2010 19:08:47 +0100 Subject: Removed some new warnigs. --- src/gui/styles/qs60style_s60.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 7b75d40..92f53ff 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -698,7 +698,7 @@ void QS60StylePrivate::deleteStoredSettings() { QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("QS60Style")); - settings.remove(""); + settings.remove(QString()); settings.endGroup(); } @@ -717,7 +717,6 @@ QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const QT_TRAP_THROWING( CRepository *themeRepository = CRepository::NewLC(personalisationUID); if (themeRepository) { - static const TInt KThemePkgIDDesSize = 23; //size of the stored theme package ID TBuf<32> value; //themeID is currently max of 8 + 1 + 8 characters, but lets have some extra space const TUint32 key = 0x00000002; //active theme key in the repository error = themeRepository->Get(key, value); @@ -747,7 +746,7 @@ QColor QS60StylePrivate::colorFromFrameGraphics(SkinFrameElements frame) const return storedColor; } } - settings.remove(""); //if color was invalid, or theme has been changed, just delete all stored settings + settings.remove(QString()); //if color was invalid, or theme has been changed, just delete all stored settings } } #endif -- cgit v0.12 From 755f2907ee4bc2b632237409c1d1d77b343aaa2a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 29 Nov 2010 19:57:56 +0100 Subject: Removed unnecessary include, fixed whitespace. --- tools/qdoc3/doc.cpp | 937 ++++++++++++++++++++++++++-------------------------- 1 file changed, 468 insertions(+), 469 deletions(-) diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp index be16c59..4152207 100644 --- a/tools/qdoc3/doc.cpp +++ b/tools/qdoc3/doc.cpp @@ -48,7 +48,6 @@ #include "text.h" #include "tokenizer.h" #include -#include #include #include #include @@ -225,13 +224,13 @@ class DocPrivateExtra QStringMap metaMap; DocPrivateExtra() - : granularity(Doc::Part) { } + : granularity(Doc::Part) { } }; struct Shared // ### get rid of { Shared() - : count(1) { } + : count(1) { } void ref() { ++count; } bool deref() { return (--count == 0); } @@ -301,7 +300,7 @@ void DocPrivate::addAlso(const Text& also) void DocPrivate::constructExtra() { if (extra == 0) - extra = new DocPrivateExtra; + extra = new DocPrivateExtra; } bool DocPrivate::isEnumDocSimplifiable() const @@ -350,7 +349,7 @@ class DocParser private: Location& location(); QString detailsUnknownCommand(const QSet& metaCommandSet, - const QString& str); + const QString& str); void checkExpiry(const QString& date); void insertBaseName(const QString &baseName); void insertTarget(const QString& target, bool keyword); @@ -367,8 +366,8 @@ class DocParser void appendToCode(const QString &code); void startNewPara(); void enterPara(Atom::Type leftType = Atom::ParaLeft, - Atom::Type rightType = Atom::ParaRight, - const QString& string = ""); + Atom::Type rightType = Atom::ParaRight, + const QString& string = ""); void leavePara(); void leaveValue(); void leaveValueList(); @@ -547,7 +546,7 @@ void DocParser::parse(const QString& source, leavePara(); append(Atom::Code, getCode(CMD_CODE, marker)); break; -#ifdef QDOC_QML +#ifdef QDOC_QML case CMD_QML: leavePara(); append(Atom::Qml, getCode(CMD_QML, marker)); @@ -555,7 +554,7 @@ void DocParser::parse(const QString& source, case CMD_QMLTEXT: append(Atom::QmlText); break; -#endif +#endif case CMD_CODELINE: { if (!quoting) { @@ -1465,35 +1464,35 @@ void DocParser::checkExpiry(const QString& date) QRegExp ymd("(\\d{4})(?:-(\\d{2})(?:-(\\d{2})))"); if (ymd.exactMatch(date)) { - int y = ymd.cap(1).toInt(); - int m = ymd.cap(2).toInt(); - int d = ymd.cap(3).toInt(); - - if (m == 0) - m = 1; - if (d == 0) - d = 1; - QDate expiryDate(y, m, d); - if (expiryDate.isValid()) { - int days = expiryDate.daysTo(QDate::currentDate()); - if (days == 0) { - location().warning(tr("Documentation expires today")); - } + int y = ymd.cap(1).toInt(); + int m = ymd.cap(2).toInt(); + int d = ymd.cap(3).toInt(); + + if (m == 0) + m = 1; + if (d == 0) + d = 1; + QDate expiryDate(y, m, d); + if (expiryDate.isValid()) { + int days = expiryDate.daysTo(QDate::currentDate()); + if (days == 0) { + location().warning(tr("Documentation expires today")); + } else if (days == 1) { - location().warning(tr("Documentation expired yesterday")); - } + location().warning(tr("Documentation expired yesterday")); + } else if (days >= 2) { - location().warning(tr("Documentation expired %1 days ago") - .arg(days)); - } - } + location().warning(tr("Documentation expired %1 days ago") + .arg(days)); + } + } else { - location().warning(tr("Date '%1' invalid").arg(date)); - } + location().warning(tr("Date '%1' invalid").arg(date)); + } } else { - location().warning(tr("Date '%1' not in YYYY-MM-DD format") - .arg(date)); + location().warning(tr("Date '%1' not in YYYY-MM-DD format") + .arg(date)); } } @@ -1501,34 +1500,34 @@ void DocParser::insertBaseName(const QString &baseName) { priv->constructExtra(); if (currentSectioningUnit == priv->extra->sectioningUnit) { - priv->extra->baseName = baseName; + priv->extra->baseName = baseName; } else { - Atom *atom = priv->text.firstAtom(); - Atom *sectionLeft = 0; + Atom *atom = priv->text.firstAtom(); + Atom *sectionLeft = 0; - int delta = currentSectioningUnit - priv->extra->sectioningUnit; + int delta = currentSectioningUnit - priv->extra->sectioningUnit; - while (atom != 0) { - if (atom->type() == Atom::SectionLeft && - atom->string().toInt() == delta) - sectionLeft = atom; - atom = atom->next(); - } - if (sectionLeft != 0) - (void) new Atom(sectionLeft, Atom::BaseName, baseName); + while (atom != 0) { + if (atom->type() == Atom::SectionLeft && + atom->string().toInt() == delta) + sectionLeft = atom; + atom = atom->next(); + } + if (sectionLeft != 0) + (void) new Atom(sectionLeft, Atom::BaseName, baseName); } } void DocParser::insertTarget(const QString &target, bool keyword) { if (targetMap.contains(target)) { - location().warning(tr("Duplicate target name '%1'").arg(target)); - targetMap[target].warning(tr("(The previous occurrence is here)")); + location().warning(tr("Duplicate target name '%1'").arg(target)); + targetMap[target].warning(tr("(The previous occurrence is here)")); } else { - targetMap.insert(target, location()); - append(Atom::Target, target); + targetMap.insert(target, location()); + append(Atom::Target, target); priv->constructExtra(); if (keyword) priv->extra->keywords.append(priv->text.lastAtom()); @@ -1540,8 +1539,8 @@ void DocParser::insertTarget(const QString &target, bool keyword) void DocParser::include(const QString& fileName) { if (location().depth() > 16) - location().fatal(tr("Too many nested '\\%1's") - .arg(cmdName(CMD_INCLUDE))); + location().fatal(tr("Too many nested '\\%1's") + .arg(cmdName(CMD_INCLUDE))); QString userFriendlyFilePath; // ### use current directory? @@ -1551,25 +1550,25 @@ void DocParser::include(const QString& fileName) fileName, userFriendlyFilePath); if (filePath.isEmpty()) { - location().warning(tr("Cannot find leaf file '%1'").arg(fileName)); + location().warning(tr("Cannot find leaf file '%1'").arg(fileName)); } else { - QFile inFile(filePath); - if (!inFile.open(QFile::ReadOnly)) { - location().warning(tr("Cannot open leaf file '%1'") - .arg(userFriendlyFilePath)); - } + QFile inFile(filePath); + if (!inFile.open(QFile::ReadOnly)) { + location().warning(tr("Cannot open leaf file '%1'") + .arg(userFriendlyFilePath)); + } else { - location().push(userFriendlyFilePath); + location().push(userFriendlyFilePath); - QTextStream inStream(&inFile); - QString includedStuff = inStream.readAll(); - inFile.close(); + QTextStream inStream(&inFile); + QString includedStuff = inStream.readAll(); + inFile.close(); - in.insert(pos, includedStuff); - len = in.length(); - openedInputs.push(pos + includedStuff.length()); - } + in.insert(pos, includedStuff); + len = in.length(); + openedInputs.push(pos + includedStuff.length()); + } } } @@ -1579,29 +1578,29 @@ void DocParser::startFormat(const QString& format, int cmd) QMap::ConstIterator f = pendingFormats.begin(); while (f != pendingFormats.end()) { - if (*f == format) { - location().warning(tr("Cannot nest '\\%1' commands") - .arg(cmdName(cmd))); - return; - } - ++f; + if (*f == format) { + location().warning(tr("Cannot nest '\\%1' commands") + .arg(cmdName(cmd))); + return; + } + ++f; } append(Atom::FormattingLeft, format); if (isLeftBraceAhead()) { - skipSpacesOrOneEndl(); - pendingFormats.insert(braceDepth, format); - ++braceDepth; - ++pos; + skipSpacesOrOneEndl(); + pendingFormats.insert(braceDepth, format); + ++braceDepth; + ++pos; } else { - append(Atom::String, getArgument()); - append(Atom::FormattingRight, format); - if (format == ATOM_FORMATTING_INDEX && indexStartedPara) { - skipAllSpaces(); - indexStartedPara = false; - } + append(Atom::String, getArgument()); + append(Atom::FormattingRight, format); + if (format == ATOM_FORMATTING_INDEX && indexStartedPara) { + skipAllSpaces(); + indexStartedPara = false; + } } } @@ -1612,37 +1611,37 @@ bool DocParser::openCommand(int cmd) if (cmd != CMD_LINK) { if (outer == CMD_LIST) { - ok = (cmd == CMD_FOOTNOTE || cmd == CMD_LIST); + ok = (cmd == CMD_FOOTNOTE || cmd == CMD_LIST); } else if (outer == CMD_ABSTRACT) { - ok = (cmd == CMD_LIST || + ok = (cmd == CMD_LIST || cmd == CMD_QUOTATION || cmd == CMD_TABLE); } else if (outer == CMD_SIDEBAR) { - ok = (cmd == CMD_LIST || + ok = (cmd == CMD_LIST || cmd == CMD_QUOTATION || cmd == CMD_SIDEBAR); } else if (outer == CMD_QUOTATION) { - ok = (cmd == CMD_LIST); + ok = (cmd == CMD_LIST); } else if (outer == CMD_TABLE) { - ok = (cmd == CMD_LIST || + ok = (cmd == CMD_LIST || cmd == CMD_FOOTNOTE || cmd == CMD_QUOTATION); } else if (outer == CMD_FOOTNOTE || outer == CMD_LINK) { - ok = false; + ok = false; } } if (ok) { - openedCommands.push(cmd); + openedCommands.push(cmd); } else { - location().warning(tr("Cannot use '\\%1' within '\\%2'") - .arg(cmdName(cmd)).arg(cmdName(outer))); + location().warning(tr("Cannot use '\\%1' within '\\%2'") + .arg(cmdName(cmd)).arg(cmdName(outer))); } return ok; } @@ -1650,33 +1649,33 @@ bool DocParser::openCommand(int cmd) bool DocParser::closeCommand(int endCmd) { if (endCmdFor(openedCommands.top()) == endCmd && openedCommands.size() > 1) { - openedCommands.pop(); - return true; + openedCommands.pop(); + return true; } else { - bool contains = false; - QStack opened2 = openedCommands; - while (opened2.size() > 1) { - if (endCmdFor(opened2.top()) == endCmd) { - contains = true; - break; - } - opened2.pop(); - } - - if (contains) { - while (endCmdFor(openedCommands.top()) != endCmd && openedCommands.size() > 1) { - location().warning(tr("Missing '\\%1' before '\\%2'") - .arg(endCmdName(openedCommands.top())) - .arg(cmdName(endCmd))); - openedCommands.pop(); - } - } + bool contains = false; + QStack opened2 = openedCommands; + while (opened2.size() > 1) { + if (endCmdFor(opened2.top()) == endCmd) { + contains = true; + break; + } + opened2.pop(); + } + + if (contains) { + while (endCmdFor(openedCommands.top()) != endCmd && openedCommands.size() > 1) { + location().warning(tr("Missing '\\%1' before '\\%2'") + .arg(endCmdName(openedCommands.top())) + .arg(cmdName(endCmd))); + openedCommands.pop(); + } + } else { - location().warning(tr("Unexpected '\\%1'") - .arg(cmdName(endCmd))); - } - return false; + location().warning(tr("Unexpected '\\%1'") + .arg(cmdName(endCmd))); + } + return false; } } @@ -1685,32 +1684,32 @@ void DocParser::startSection(Doc::SectioningUnit unit, int cmd) leavePara(); if (currentSectioningUnit == Doc::Book) { - currentSectioningUnit = (Doc::SectioningUnit) (unit - 1); - priv->constructExtra(); - priv->extra->sectioningUnit = currentSectioningUnit; + currentSectioningUnit = (Doc::SectioningUnit) (unit - 1); + priv->constructExtra(); + priv->extra->sectioningUnit = currentSectioningUnit; } if (unit <= priv->extra->sectioningUnit) { - location().warning(tr("Unexpected '\\%1' in this documentation") - .arg(cmdName(cmd))); + location().warning(tr("Unexpected '\\%1' in this documentation") + .arg(cmdName(cmd))); } else if (unit - currentSectioningUnit > 1) { - location().warning(tr("Unexpected '\\%1' at this point") - .arg(cmdName(cmd))); + location().warning(tr("Unexpected '\\%1' at this point") + .arg(cmdName(cmd))); } else { - if (currentSectioningUnit >= unit) - endSection(unit, cmd); + if (currentSectioningUnit >= unit) + endSection(unit, cmd); - int delta = unit - priv->extra->sectioningUnit; - append(Atom::SectionLeft, QString::number(delta)); + int delta = unit - priv->extra->sectioningUnit; + append(Atom::SectionLeft, QString::number(delta)); priv->constructExtra(); priv->extra->tableOfContents.append(priv->text.lastAtom()); priv->extra->tableOfContentsLevels.append(unit); - enterPara(Atom::SectionHeadingLeft, + enterPara(Atom::SectionHeadingLeft, Atom::SectionHeadingRight, QString::number(delta)); - currentSectioningUnit = unit; + currentSectioningUnit = unit; } } @@ -1719,20 +1718,20 @@ void DocParser::endSection(int unit, int endCmd) leavePara(); if (unit < priv->extra->sectioningUnit) { - location().warning(tr("Unexpected '\\%1' in this documentation") - .arg(cmdName(endCmd))); + location().warning(tr("Unexpected '\\%1' in this documentation") + .arg(cmdName(endCmd))); } else if (unit > currentSectioningUnit) { - location().warning(tr("Unexpected '\\%1' at this point") - .arg(cmdName(endCmd))); + location().warning(tr("Unexpected '\\%1' at this point") + .arg(cmdName(endCmd))); } else { - while (currentSectioningUnit >= unit) { - int delta = currentSectioningUnit - priv->extra->sectioningUnit; - append(Atom::SectionRight, QString::number(delta)); - currentSectioningUnit = - (Doc::SectioningUnit) (currentSectioningUnit - 1); - } + while (currentSectioningUnit >= unit) { + int delta = currentSectioningUnit - priv->extra->sectioningUnit; + append(Atom::SectionRight, QString::number(delta)); + currentSectioningUnit = + (Doc::SectioningUnit) (currentSectioningUnit - 1); + } } } @@ -1821,10 +1820,10 @@ void DocParser::appendChar(QChar ch) void DocParser::appendWord(const QString &word) { if (priv->text.lastAtom()->type() != Atom::String) { - append(Atom::String, word); + append(Atom::String, word); } else - priv->text.lastAtom()->appendString(word); + priv->text.lastAtom()->appendString(word); } void DocParser::appendToCode(const QString& markedCode) @@ -1832,10 +1831,10 @@ void DocParser::appendToCode(const QString& markedCode) Atom::Type lastType = priv->text.lastAtom()->type(); #ifdef QDOC_QML if (lastType != Atom::Qml) - append(Atom::Qml); + append(Atom::Qml); #else if (lastType != Atom::Code) - append(Atom::Code); + append(Atom::Code); #endif priv->text.lastAtom()->appendString(markedCode); } @@ -1853,44 +1852,44 @@ void DocParser::enterPara(Atom::Type leftType, if (paraState == OutsidePara) { if (priv->text.lastAtom()->type() != Atom::ListItemLeft) leaveValueList(); - append(leftType, string); - indexStartedPara = false; - pendingParaLeftType = leftType; - pendingParaRightType = rightType; - pendingParaString = string; - if ( - leftType == Atom::SectionHeadingLeft) { - paraState = InsideSingleLinePara; - } + append(leftType, string); + indexStartedPara = false; + pendingParaLeftType = leftType; + pendingParaRightType = rightType; + pendingParaString = string; + if ( + leftType == Atom::SectionHeadingLeft) { + paraState = InsideSingleLinePara; + } else { - paraState = InsideMultiLinePara; - } - skipSpacesOrOneEndl(); + paraState = InsideMultiLinePara; + } + skipSpacesOrOneEndl(); } } void DocParser::leavePara() { if (paraState != OutsidePara) { - if (!pendingFormats.isEmpty()) { - location().warning(tr("Missing '}'")); - pendingFormats.clear(); - } - - if (priv->text.lastAtom()->type() == pendingParaLeftType) { - priv->text.stripLastAtom(); - } + if (!pendingFormats.isEmpty()) { + location().warning(tr("Missing '}'")); + pendingFormats.clear(); + } + + if (priv->text.lastAtom()->type() == pendingParaLeftType) { + priv->text.stripLastAtom(); + } else { - if (priv->text.lastAtom()->type() == Atom::String && - priv->text.lastAtom()->string().endsWith(" ")) { - priv->text.lastAtom()->chopString(); - } - append(pendingParaRightType, pendingParaString); - } - paraState = OutsidePara; - indexStartedPara = false; - pendingParaRightType = Atom::Nop; - pendingParaString = ""; + if (priv->text.lastAtom()->type() == Atom::String && + priv->text.lastAtom()->string().endsWith(" ")) { + priv->text.lastAtom()->chopString(); + } + append(pendingParaRightType, pendingParaString); + } + paraState = OutsidePara; + indexStartedPara = false; + pendingParaRightType = Atom::Nop; + pendingParaString = ""; } } @@ -1898,13 +1897,13 @@ void DocParser::leaveValue() { leavePara(); if (openedLists.isEmpty()) { - openedLists.push(OpenedList(OpenedList::Value)); - append(Atom::ListLeft, ATOM_LIST_VALUE); + openedLists.push(OpenedList(OpenedList::Value)); + append(Atom::ListLeft, ATOM_LIST_VALUE); } else { if (priv->text.lastAtom()->type() == Atom::Nop) priv->text.stripLastAtom(); - append(Atom::ListItemRight, ATOM_LIST_VALUE); + append(Atom::ListItemRight, ATOM_LIST_VALUE); } } @@ -1915,9 +1914,9 @@ void DocParser::leaveValueList() (openedLists.top().style() == OpenedList::Value)) { if (priv->text.lastAtom()->type() == Atom::Nop) priv->text.stripLastAtom(); - append(Atom::ListItemRight, ATOM_LIST_VALUE); - append(Atom::ListRight, ATOM_LIST_VALUE); - openedLists.pop(); + append(Atom::ListItemRight, ATOM_LIST_VALUE); + append(Atom::ListRight, ATOM_LIST_VALUE); + openedLists.pop(); } } @@ -1948,43 +1947,43 @@ void DocParser::expandMacro(const QString &name, int numParams) { if (numParams == 0) { - append(Atom::RawString, def); + append(Atom::RawString, def); } else { - QStringList args; - QString rawString; + QStringList args; + QString rawString; - for (int i = 0; i < numParams; i++) { - if (numParams == 1 || isLeftBraceAhead()) { - args << getArgument(true); - } + for (int i = 0; i < numParams; i++) { + if (numParams == 1 || isLeftBraceAhead()) { + args << getArgument(true); + } else { - location().warning(tr("Macro '\\%1' invoked with too few" - " arguments (expected %2, got %3)") - .arg(name).arg(numParams).arg(i)); - break; - } - } - - int j = 0; - while (j < def.size()) { - int paramNo; - if ((def[j] == '\\') && (j < def.size() - 1) && + location().warning(tr("Macro '\\%1' invoked with too few" + " arguments (expected %2, got %3)") + .arg(name).arg(numParams).arg(i)); + break; + } + } + + int j = 0; + while (j < def.size()) { + int paramNo; + if ((def[j] == '\\') && (j < def.size() - 1) && ((paramNo = def[j + 1].digitValue()) >= 1) && (paramNo <= numParams)) { - if (!rawString.isEmpty()) { - append(Atom::RawString, rawString); - rawString = ""; - } - append(Atom::String, args[paramNo - 1]); - j += 2; - } + if (!rawString.isEmpty()) { + append(Atom::RawString, rawString); + rawString = ""; + } + append(Atom::String, args[paramNo - 1]); + j += 2; + } else { - rawString += def[j++]; - } - } - if (!rawString.isEmpty()) - append(Atom::RawString, rawString); + rawString += def[j++]; + } + } + if (!rawString.isEmpty()) + append(Atom::RawString, rawString); } } @@ -1993,29 +1992,29 @@ Doc::SectioningUnit DocParser::getSectioningUnit() QString name = getOptionalArgument(); if (name == "part") { - return Doc::Part; + return Doc::Part; } else if (name == "chapter") { - return Doc::Chapter; + return Doc::Chapter; } else if (name == "section1") { - return Doc::Section1; + return Doc::Section1; } else if (name == "section2") { - return Doc::Section2; + return Doc::Section2; } else if (name == "section3") { - return Doc::Section3; + return Doc::Section3; } else if (name == "section4") { - return Doc::Section4; + return Doc::Section4; } else if (name.isEmpty()) { - return Doc::Section4; + return Doc::Section4; } else { - location().warning(tr("Invalid sectioning unit '%1'").arg(name)); - return Doc::Book; + location().warning(tr("Invalid sectioning unit '%1'").arg(name)); + return Doc::Book; } } @@ -2032,115 +2031,115 @@ QString DocParser::getArgument(bool verbatim) Typically, an argument ends at the next white-space. However, braces can be used to group words: - {a few words} + {a few words} Also, opening and closing parentheses have to match. Thus, - printf("%d\n", x) + printf("%d\n", x) is an argument too, although it contains spaces. Finally, trailing punctuation is not included in an argument, nor is 's. */ if (pos < (int) in.length() && in[pos] == '{') { - pos++; - while (pos < (int) in.length() && delimDepth >= 0) { - switch (in[pos].unicode()) { - case '{': - delimDepth++; - arg += "{"; - pos++; - break; - case '}': - delimDepth--; - if (delimDepth >= 0) - arg += "}"; - pos++; - break; - case '\\': - if (verbatim) { - arg += in[pos]; - pos++; - } + pos++; + while (pos < (int) in.length() && delimDepth >= 0) { + switch (in[pos].unicode()) { + case '{': + delimDepth++; + arg += "{"; + pos++; + break; + case '}': + delimDepth--; + if (delimDepth >= 0) + arg += "}"; + pos++; + break; + case '\\': + if (verbatim) { + arg += in[pos]; + pos++; + } else { - pos++; - if (pos < (int) in.length()) { - if (in[pos].isLetterOrNumber()) - break; - arg += in[pos]; - if (in[pos].isSpace()) { - skipAllSpaces(); - } + pos++; + if (pos < (int) in.length()) { + if (in[pos].isLetterOrNumber()) + break; + arg += in[pos]; + if (in[pos].isSpace()) { + skipAllSpaces(); + } else { - pos++; - } - } - } - break; - default: - arg += in[pos]; - pos++; - } - } - if (delimDepth > 0) - location().warning(tr("Missing '}'")); + pos++; + } + } + } + break; + default: + arg += in[pos]; + pos++; + } + } + if (delimDepth > 0) + location().warning(tr("Missing '}'")); } else { - while (pos < in.length() && + while (pos < in.length() && ((delimDepth > 0) || ((delimDepth == 0) && !in[pos].isSpace()))) { - switch (in[pos].unicode()) { - case '(': - case '[': - case '{': - delimDepth++; - arg += in[pos]; - pos++; - break; - case ')': - case ']': - case '}': - delimDepth--; - if (pos == startPos || delimDepth >= 0) { - arg += in[pos]; - pos++; - } - break; - case '\\': - if (verbatim) { - arg += in[pos]; - pos++; - } + switch (in[pos].unicode()) { + case '(': + case '[': + case '{': + delimDepth++; + arg += in[pos]; + pos++; + break; + case ')': + case ']': + case '}': + delimDepth--; + if (pos == startPos || delimDepth >= 0) { + arg += in[pos]; + pos++; + } + break; + case '\\': + if (verbatim) { + arg += in[pos]; + pos++; + } else { - pos++; - if (pos < (int) in.length()) { - if (in[pos].isLetterOrNumber()) - break; - arg += in[pos]; - if (in[pos].isSpace()) { - skipAllSpaces(); - } + pos++; + if (pos < (int) in.length()) { + if (in[pos].isLetterOrNumber()) + break; + arg += in[pos]; + if (in[pos].isSpace()) { + skipAllSpaces(); + } else { - pos++; - } - } - } - break; - default: - arg += in[pos]; - pos++; - } - } - if ((arg.length() > 1) && + pos++; + } + } + } + break; + default: + arg += in[pos]; + pos++; + } + } + if ((arg.length() > 1) && (QString(".,:;!?").indexOf(in[pos - 1]) != -1) && !arg.endsWith("...")) { - arg.truncate(arg.length() - 1); - pos--; - } - if (arg.length() > 2 && in.mid(pos - 2, 2) == "'s") { - arg.truncate(arg.length() - 2); - pos -= 2; - } + arg.truncate(arg.length() - 1); + pos--; + } + if (arg.length() > 2 && in.mid(pos - 2, 2) == "'s") { + arg.truncate(arg.length() - 2); + pos -= 2; + } } return arg.simplified(); } @@ -2149,11 +2148,11 @@ QString DocParser::getOptionalArgument() { skipSpacesOrOneEndl(); if (pos + 1 < (int) in.length() && in[pos] == '\\' && - in[pos + 1].isLetterOrNumber()) { - return ""; + in[pos + 1].isLetterOrNumber()) { + return ""; } else { - return getArgument(); + return getArgument(); } } @@ -2216,7 +2215,7 @@ QString DocParser::getMetaCommandArgument(const QString &cmdStr) else if (in.at(pos) == ')') --parenDepth; - ++pos; + ++pos; } if (pos == in.size() && parenDepth > 0) { pos = begin; @@ -2236,12 +2235,12 @@ QString DocParser::getUntilEnd(int cmd) int end = rx.indexIn(in, pos); if (end == -1) { - location().warning(tr("Missing '\\%1'").arg(cmdName(endCmd))); - pos = in.length(); + location().warning(tr("Missing '\\%1'").arg(cmdName(endCmd))); + pos = in.length(); } else { - t = in.mid(pos, end - pos); - pos = end + rx.matchedLength(); + t = in.mid(pos, end - pos); + pos = end + rx.matchedLength(); } return t; } @@ -2271,9 +2270,9 @@ bool DocParser::isBlankLine() int i = pos; while (i < len && in[i].isSpace()) { - if (in[i] == '\n') - return true; - i++; + if (in[i] == '\n') + return true; + i++; } return false; } @@ -2284,10 +2283,10 @@ bool DocParser::isLeftBraceAhead() int i = pos; while (i < len && in[i].isSpace() && numEndl < 2) { - // ### bug with '\\' - if (in[i] == '\n') - numEndl++; - i++; + // ### bug with '\\' + if (in[i] == '\n') + numEndl++; + i++; } return numEndl < 2 && i < len && in[i] == '{'; } @@ -2297,31 +2296,31 @@ void DocParser::skipSpacesOnLine() while ((pos < in.length()) && in[pos].isSpace() && (in[pos].unicode() != '\n')) - ++pos; + ++pos; } void DocParser::skipSpacesOrOneEndl() { int firstEndl = -1; while (pos < (int) in.length() && in[pos].isSpace()) { - QChar ch = in[pos]; - if (ch == '\n') { - if (firstEndl == -1) { - firstEndl = pos; - } + QChar ch = in[pos]; + if (ch == '\n') { + if (firstEndl == -1) { + firstEndl = pos; + } else { - pos = firstEndl; - break; - } - } - pos++; + pos = firstEndl; + break; + } + } + pos++; } } void DocParser::skipAllSpaces() { while (pos < len && in[pos].isSpace()) - pos++; + pos++; } void DocParser::skipToNextPreprocessorCommand() @@ -2332,62 +2331,62 @@ void DocParser::skipToNextPreprocessorCommand() int end = rx.indexIn(in, pos + 1); // ### + 1 necessary? if (end == -1) - pos = in.length(); + pos = in.length(); else - pos = end; + pos = end; } int DocParser::endCmdFor(int cmd) { switch (cmd) { case CMD_ABSTRACT: - return CMD_ENDABSTRACT; + return CMD_ENDABSTRACT; case CMD_BADCODE: - return CMD_ENDCODE; + return CMD_ENDCODE; case CMD_CHAPTER: - return CMD_ENDCHAPTER; + return CMD_ENDCHAPTER; case CMD_CODE: - return CMD_ENDCODE; + return CMD_ENDCODE; #ifdef QDOC_QML case CMD_QML: - return CMD_ENDQML; + return CMD_ENDQML; case CMD_QMLTEXT: - return CMD_ENDQMLTEXT; + return CMD_ENDQMLTEXT; #endif case CMD_FOOTNOTE: - return CMD_ENDFOOTNOTE; + return CMD_ENDFOOTNOTE; case CMD_LEGALESE: return CMD_ENDLEGALESE; case CMD_LINK: return CMD_ENDLINK; case CMD_LIST: - return CMD_ENDLIST; + return CMD_ENDLIST; case CMD_NEWCODE: return CMD_ENDCODE; case CMD_OLDCODE: return CMD_NEWCODE; case CMD_OMIT: - return CMD_ENDOMIT; + return CMD_ENDOMIT; case CMD_PART: - return CMD_ENDPART; + return CMD_ENDPART; case CMD_QUOTATION: - return CMD_ENDQUOTATION; + return CMD_ENDQUOTATION; case CMD_RAW: return CMD_ENDRAW; case CMD_SECTION1: - return CMD_ENDSECTION1; + return CMD_ENDSECTION1; case CMD_SECTION2: - return CMD_ENDSECTION2; + return CMD_ENDSECTION2; case CMD_SECTION3: - return CMD_ENDSECTION3; + return CMD_ENDSECTION3; case CMD_SECTION4: - return CMD_ENDSECTION4; + return CMD_ENDSECTION4; case CMD_SIDEBAR: - return CMD_ENDSIDEBAR; + return CMD_ENDSIDEBAR; case CMD_TABLE: - return CMD_ENDTABLE; + return CMD_ENDTABLE; default: - return cmd; + return cmd; } } @@ -2441,14 +2440,14 @@ int DocParser::indentLevel(const QString& str) int column = 0; for (int i = 0; i < (int) str.length(); i++) { - if (str[i] == '\n') { - column = 0; - } + if (str[i] == '\n') { + column = 0; + } else { - if (str[i] != ' ' && column < minIndent) - minIndent = column; - column++; - } + if (str[i] != ' ' && column < minIndent) + minIndent = column; + column++; + } } return minIndent; } @@ -2456,21 +2455,21 @@ int DocParser::indentLevel(const QString& str) QString DocParser::unindent(int level, const QString& str) { if (level == 0) - return str; + return str; QString t; int column = 0; for (int i = 0; i < (int) str.length(); i++) { if (str[i] == QLatin1Char('\n')) { - t += '\n'; - column = 0; - } + t += '\n'; + column = 0; + } else { - if (column >= level) - t += str[i]; - column++; - } + if (column >= level) + t += str[i]; + column++; + } } return t; } @@ -2508,15 +2507,15 @@ Doc::Doc(const Doc& doc) Doc::~Doc() { if (priv && priv->deref()) - delete priv; + delete priv; } Doc &Doc::operator=(const Doc& doc) { if (doc.priv) - doc.priv->ref(); + doc.priv->ref(); if (priv && priv->deref()) - delete priv; + delete priv; priv = doc.priv; return *this; } @@ -2683,18 +2682,18 @@ Text Doc::trimmedBriefText(const QString &className) const whats = w.join(" "); if (whats.endsWith(".")) - whats.truncate(whats.length() - 1); + whats.truncate(whats.length() - 1); if (whats.isEmpty()) { - location().warning( + location().warning( tr("Nonstandard wording in '\\%1' text for '%2' (expected more text)") .arg(COMMAND_BRIEF).arg(className)); - standardWording = false; + standardWording = false; } else - whats[0] = whats[0].toUpper(); + whats[0] = whats[0].toUpper(); - // ### move this once \brief is abolished for properties + // ### move this once \brief is abolished for properties if (standardWording) resultText << whats; } @@ -2704,29 +2703,29 @@ Text Doc::trimmedBriefText(const QString &className) const Text Doc::legaleseText() const { if (priv == 0 || !priv->hasLegalese) - return Text(); + return Text(); else - return body().subText(Atom::LegaleseLeft, Atom::LegaleseRight); + return body().subText(Atom::LegaleseLeft, Atom::LegaleseRight); } const QString& Doc::baseName() const { static QString null; if (priv == 0 || priv->extra == 0) { - return null; + return null; } else { - return priv->extra->baseName; + return priv->extra->baseName; } } Doc::SectioningUnit Doc::granularity() const { if (priv == 0 || priv->extra == 0) { - return DocPrivateExtra().granularity; + return DocPrivateExtra().granularity; } else { - return priv->extra->granularity; + return priv->extra->granularity; } } @@ -2822,80 +2821,80 @@ void Doc::initialize(const Config& config) QSet commands = config.subVars(CONFIG_ALIAS); QSet::ConstIterator c = commands.begin(); while (c != commands.end()) { - QString alias = config.getString(CONFIG_ALIAS + Config::dot + *c); - if (reverseAliasMap.contains(alias)) { - config.lastLocation().warning(tr("Command name '\\%1' cannot stand" - " for both '\\%2' and '\\%3'") - .arg(alias) - .arg(reverseAliasMap[alias]) - .arg(*c)); - } + QString alias = config.getString(CONFIG_ALIAS + Config::dot + *c); + if (reverseAliasMap.contains(alias)) { + config.lastLocation().warning(tr("Command name '\\%1' cannot stand" + " for both '\\%2' and '\\%3'") + .arg(alias) + .arg(reverseAliasMap[alias]) + .arg(*c)); + } else { - reverseAliasMap.insert(alias, *c); - } - aliasMap()->insert(*c, alias); - ++c; + reverseAliasMap.insert(alias, *c); + } + aliasMap()->insert(*c, alias); + ++c; } int i = 0; while (cmds[i].english) { - cmds[i].alias = new QString(alias(cmds[i].english)); - cmdHash()->insert(*cmds[i].alias, cmds[i].no); + cmds[i].alias = new QString(alias(cmds[i].english)); + cmdHash()->insert(*cmds[i].alias, cmds[i].no); - if (cmds[i].no != i) - Location::internalError(tr("command %1 missing").arg(i)); - i++; + if (cmds[i].no != i) + Location::internalError(tr("command %1 missing").arg(i)); + i++; } QSet macroNames = config.subVars(CONFIG_MACRO); QSet::ConstIterator n = macroNames.begin(); while (n != macroNames.end()) { - QString macroDotName = CONFIG_MACRO + Config::dot + *n; - Macro macro; - macro.numParams = -1; - macro.defaultDef = config.getString(macroDotName); - if (!macro.defaultDef.isEmpty()) { - macro.defaultDefLocation = config.lastLocation(); - macro.numParams = Config::numParams(macro.defaultDef); - } - bool silent = false; - - QSet formats = config.subVars(macroDotName); - QSet::ConstIterator f = formats.begin(); - while (f != formats.end()) { - QString def = config.getString(macroDotName + Config::dot + *f); - if (!def.isEmpty()) { - macro.otherDefs.insert(*f, def); - int m = Config::numParams(macro.defaultDef); - if (macro.numParams == -1) { - macro.numParams = m; - } + QString macroDotName = CONFIG_MACRO + Config::dot + *n; + Macro macro; + macro.numParams = -1; + macro.defaultDef = config.getString(macroDotName); + if (!macro.defaultDef.isEmpty()) { + macro.defaultDefLocation = config.lastLocation(); + macro.numParams = Config::numParams(macro.defaultDef); + } + bool silent = false; + + QSet formats = config.subVars(macroDotName); + QSet::ConstIterator f = formats.begin(); + while (f != formats.end()) { + QString def = config.getString(macroDotName + Config::dot + *f); + if (!def.isEmpty()) { + macro.otherDefs.insert(*f, def); + int m = Config::numParams(macro.defaultDef); + if (macro.numParams == -1) { + macro.numParams = m; + } else if (macro.numParams != m) { - if (!silent) { - QString other = tr("default"); - if (macro.defaultDef.isEmpty()) - other = macro.otherDefs.begin().key(); - config.lastLocation().warning(tr("Macro '\\%1' takes" - " inconsistent number" - " of arguments (%2" - " %3, %4 %5)") - .arg(*n) - .arg(*f) - .arg(m) - .arg(other) - .arg(macro.numParams)); - silent = true; - } - if (macro.numParams < m) - macro.numParams = m; - } - } - ++f; - } - - if (macro.numParams != -1) - macroHash()->insert(*n, macro); - ++n; + if (!silent) { + QString other = tr("default"); + if (macro.defaultDef.isEmpty()) + other = macro.otherDefs.begin().key(); + config.lastLocation().warning(tr("Macro '\\%1' takes" + " inconsistent number" + " of arguments (%2" + " %3, %4 %5)") + .arg(*n) + .arg(*f) + .arg(m) + .arg(other) + .arg(macro.numParams)); + silent = true; + } + if (macro.numParams < m) + macro.numParams = m; + } + } + ++f; + } + + if (macro.numParams != -1) + macroHash()->insert(*n, macro); + ++n; } } @@ -2935,27 +2934,27 @@ void Doc::trimCStyleComment(Location& location, QString& str) int i; for (i = 0; i < (int) str.length(); i++) { - if (m.columnNo() == asterColumn) { - if (str[i] != '*') - break; - cleaned += ' '; - metAsterColumn = true; - } + if (m.columnNo() == asterColumn) { + if (str[i] != '*') + break; + cleaned += ' '; + metAsterColumn = true; + } else { - if (str[i] == '\n') { - if (!metAsterColumn) - break; - metAsterColumn = false; - } - cleaned += str[i]; - } - m.advance(str[i]); + if (str[i] == '\n') { + if (!metAsterColumn) + break; + metAsterColumn = false; + } + cleaned += str[i]; + } + m.advance(str[i]); } if (cleaned.length() == str.length()) - str = cleaned; + str = cleaned; for (int i = 0; i < 3; i++) - location.advance(str[i]); + location.advance(str[i]); str = str.mid(3, str.length() - 5); } @@ -2971,19 +2970,19 @@ CodeMarker *Doc::quoteFromFile(const Location &location, QString filePath = Config::findFile(location, DocParser::exampleFiles, DocParser::exampleDirs, - fileName, userFriendlyFilePath); + fileName, userFriendlyFilePath); if (filePath.isEmpty()) { - location.warning(tr("Cannot find example file '%1'").arg(fileName)); + location.warning(tr("Cannot find example file '%1'").arg(fileName)); } else { - QFile inFile(filePath); - if (!inFile.open(QFile::ReadOnly)) { - location.warning(tr("Cannot open example file '%1'").arg(userFriendlyFilePath)); - } + QFile inFile(filePath); + if (!inFile.open(QFile::ReadOnly)) { + location.warning(tr("Cannot open example file '%1'").arg(userFriendlyFilePath)); + } else { - QTextStream inStream(&inFile); - code = DocParser::untabifyEtc(inStream.readAll()); - } + QTextStream inStream(&inFile); + code = DocParser::untabifyEtc(inStream.readAll()); + } } QString dirPath = QFileInfo(filePath).path(); -- cgit v0.12 From 04e6c74420ba808a3bd9ae502ff12c60cc6b58f8 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 29 Nov 2010 19:58:43 +0100 Subject: Added more span classes to make the QML output more colorful. --- tools/qdoc3/htmlgenerator.cpp | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 9f5f182..b4e9d2a 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -89,7 +89,7 @@ static bool showBrokenLinks = false; static QRegExp linkTag("(<@link node=\"([^\"]+)\">).*()"); static QRegExp funcTag("(<@func target=\"([^\"]*)\">)(.*)()"); static QRegExp typeTag("(<@(type|headerfile|func)(?: +[^>]*)?>)(.*)()"); -static QRegExp spanTag(""); +static QRegExp spanTag(""); static QRegExp unknownTag("]*>"); bool parseArg(const QString &src, @@ -216,8 +216,8 @@ HtmlGenerator::HtmlGenerator() numTableRows(0), threeColumnEnumValueTable(true), funcLeftParen("\\S(\\()"), - myTree(0), inObsoleteLink(false), + myTree(0), slow(false), obsoleteLinks(false) { @@ -1476,7 +1476,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) return; } #endif - + sections = marker->sections(fake, CodeMarker::Summary, CodeMarker::Okay); s = sections.begin(); while (s != sections.end()) { @@ -2846,23 +2846,40 @@ QString HtmlGenerator::highlightedCode(const QString& markedCode, // "<@preprocessor>" -> ""; // "<@string>" -> ""; // "<@char>" -> ""; - // "" -> "" + // "<@number>" -> ""; + // "<@op>" -> ""; + // "<@type>" -> ""; + // "<@name>" -> ""; + // "<@keyword>" -> ""; + // "" -> "" src = html; html = QString(); static const QString spanTags[] = { - "<@comment>", "", - "<@preprocessor>", "", - "<@string>", "", - "<@char>", "", - "", "", - "","", - "", "", - "", "" + "<@comment>", "", + "<@preprocessor>", "", + "<@string>", "", + "<@char>", "", + "<@number>", "", + "<@op>", "", + "<@type>", "", + "<@name>", "", + "<@keyword>", "", + "", "", + "", "", + "", "", + "", "", + "", "", + "", "", + "", "", + "", "", + "", "", }; + // Update the upper bound of k in the following code to match the length + // of the above array. for (int i = 0, n = src.size(); i < n;) { if (src.at(i) == charLangle) { bool handled = false; - for (int k = 0; k != 8; ++k) { + for (int k = 0; k != 18; ++k) { const QString & tag = spanTags[2 * k]; if (tag == QStringRef(&src, i, tag.length())) { html += spanTags[2 * k + 1]; -- cgit v0.12 From 7072882e6873782f258fa3f7d2acee801226d8c0 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 29 Nov 2010 19:59:45 +0100 Subject: Fixed grammar. --- tools/qdoc3/test/qt-html-templates-online.qdocconf | 2 +- tools/qdoc3/test/qt-html-templates.qdocconf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qdoc3/test/qt-html-templates-online.qdocconf b/tools/qdoc3/test/qt-html-templates-online.qdocconf index 7ed8c90..1d55cee 100644 --- a/tools/qdoc3/test/qt-html-templates-online.qdocconf +++ b/tools/qdoc3/test/qt-html-templates-online.qdocconf @@ -126,7 +126,7 @@ HTML.postheader = \ "
\n" \ "
    \n" \ "
  • Home
  • \n" \ - " \n" + " \n" HTML.postpostheader = \ "
\n" \ diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index bbd1b21..67ce95a 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -13,7 +13,7 @@ HTML.postheader = \ "
\n" \ "
    \n" \ "
  • Home
  • \n" \ - " \n" + " \n" HTML.postpostheader = \ "
\n" \ -- cgit v0.12 From 361fa33371a855e82b63b4d45b2ffe36fed82867 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 29 Nov 2010 20:00:26 +0100 Subject: Made further refinements to the node traversal and comment handling. --- tools/qdoc3/qmlmarkupvisitor.cpp | 285 ++++++++++++++++++++++++--------------- tools/qdoc3/qmlmarkupvisitor.h | 10 +- 2 files changed, 186 insertions(+), 109 deletions(-) diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 72a2334..4564dc5 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include -#include #include #include #include "private/qdeclarativejsast_p.h" @@ -51,42 +50,116 @@ QT_BEGIN_NAMESPACE -QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, bool debug) +QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, QDeclarativeJS::Engine *engine) { this->source = source; + this->engine = engine; indent = 0; cursor = 0; - showDebug = debug; + commentIndex = 0; + debug += QString("Comments %1\n").arg(engine->comments().length()); } QmlMarkupVisitor::~QmlMarkupVisitor() { } +// The protect() function is a copy of the one from CppCodeMarker. + +static const QString samp = QLatin1String("&"); +static const QString slt = QLatin1String("<"); +static const QString sgt = QLatin1String(">"); +static const QString squot = QLatin1String("""); + +QString QmlMarkupVisitor::protect(const QString& str) +{ + int n = str.length(); + QString marked; + marked.reserve(n * 2 + 30); + const QChar *data = str.constData(); + for (int i = 0; i != n; ++i) { + switch (data[i].unicode()) { + case '&': marked += samp; break; + case '<': marked += slt; break; + case '>': marked += sgt; break; + case '"': marked += squot; break; + default : marked += data[i]; + } + } + return marked; +} + QString QmlMarkupVisitor::markedUpCode() { if (cursor < source.length()) - return output + source.mid(cursor); - else - return output; + addExtra(cursor, source.length()); + + //qDebug() << debug; + qDebug() << output; + return output; } -void QmlMarkupVisitor::addMarkedUpToken( - QDeclarativeJS::AST::SourceLocation &location, const QString &text) +void QmlMarkupVisitor::addExtra(quint32 start, quint32 finish) { - //qDebug() << "t**" << cursor << location.offset; - if (location.offset > cursor) { - QString extra = source.mid(cursor, location.offset - cursor); + if (commentIndex >= engine->comments().length()) { + QString extra = source.mid(start, finish - start); if (extra.trimmed().isEmpty()) output += extra; else - output += "<<<" + extra + ">>>"; - //qDebug() << "+++" << source.mid(cursor, location.offset - cursor); - cursor += location.offset; + output += protect(extra); // text that should probably have been caught by the parser + + cursor = finish; + return; } - //qDebug() << "-->" << text; - output += text; + while (commentIndex < engine->comments().length()) { + if (engine->comments()[commentIndex].offset - 2 >= start) + break; + commentIndex++; + } + + quint32 i = start; + while (i < finish && commentIndex < engine->comments().length()) { + quint32 j = engine->comments()[commentIndex].offset - 2; + if (i <= j && j < finish) { + if (i < j) + output += protect(source.mid(i, j - i)); + + quint32 l = engine->comments()[commentIndex].length; + if (source.mid(j, 2) == QLatin1String("/*")) + l += 4; + else + l += 2; + output += QLatin1String("<@comment>"); + output += protect(source.mid(j, l)); + output += QLatin1String(""); + commentIndex++; + i = j + l; + } else + break; + } + + QString extra = source.mid(i, finish - i); + if (extra.trimmed().isEmpty()) + output += extra; + else + output += protect(extra); // text that should probably have been caught by the parser + + cursor = finish; +} + +void QmlMarkupVisitor::addMarkedUpToken( + QDeclarativeJS::AST::SourceLocation &location, const QString &tagName) +{ + if (!location.isValid()) + return; + + if (cursor < location.offset) + addExtra(cursor, location.offset); + else if (cursor > location.offset) + debug += QString("%1 %2\n").arg(cursor).arg(location.offset); + + output += QString(QLatin1String("<@%1>%2")).arg(tagName, protect(sourceText(location)), tagName); cursor += location.length; } @@ -98,36 +171,31 @@ QString QmlMarkupVisitor::sourceText(QDeclarativeJS::AST::SourceLocation &locati void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, QDeclarativeJS::AST::SourceLocation last) { + if (!first.isValid()) + return; + quint32 start = first.begin(); - //qDebug() << "v**" << cursor << start; quint32 finish; if (last.isValid()) finish = last.end(); else finish = first.end(); - if (start > cursor) { - QString extra = source.mid(cursor, start - cursor); - if (extra.trimmed().isEmpty()) - output += extra; - else - output += "<<<" + extra + ">>>"; - //qDebug() << "+++" << source.mid(cursor, start - cursor); - cursor = start; - } + if (cursor < start) + addExtra(cursor, start); + else if (cursor > start) + debug += QString("%1 %2 %3 x\n").arg(sourceText(first)).arg(cursor).arg(start); QString text = source.mid(start, finish - start); - //qDebug() << "-->" << text; write(text); indent -= 1; - output += text; - cursor += text.length(); + output += protect(text); + cursor = finish; } void QmlMarkupVisitor::write(const QString &text) { - if (showDebug) - qDebug() << QString().fill(QChar(' '), indent) << text; + debug += QString().fill(QChar(' '), indent) + text + QLatin1String("\n"); indent += 1; } @@ -152,8 +220,8 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImport *uiimport) write(""); addVerbatim(uiimport->importToken); if (!uiimport->importUri) - addVerbatim(uiimport->fileNameToken); - return true; + addMarkedUpToken(uiimport->fileNameToken, QLatin1String("headerfile")); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImport *uiimport) @@ -161,7 +229,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImport *uiimport) endWrite(""); addVerbatim(uiimport->versionToken); addVerbatim(uiimport->asToken); - addVerbatim(uiimport->importIdToken); + addMarkedUpToken(uiimport->importIdToken, QLatin1String("headerfile")); addVerbatim(uiimport->semicolonToken); //endWrite(""); } @@ -174,23 +242,23 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) addVerbatim(member->readonlyToken); addVerbatim(member->propertyToken); addVerbatim(member->typeModifierToken); - addVerbatim(member->typeToken); - addVerbatim(member->identifierToken); + addMarkedUpToken(member->typeToken, QLatin1String("type")); + addMarkedUpToken(member->identifierToken, QLatin1String("name")); addVerbatim(member->colonToken); QDeclarativeJS::AST::Node::accept(member->binding, this); } else { addVerbatim(member->propertyToken); addVerbatim(member->typeModifierToken); - addVerbatim(member->typeToken); + addMarkedUpToken(member->typeToken, QLatin1String("type")); //addVerbatim(member->identifierToken); QDeclarativeJS::AST::Node::accept(member->parameters, this); } - return true; + addVerbatim(member->semicolonToken); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiPublicMember *member) { - addVerbatim(member->semicolonToken); endWrite(""); } @@ -279,7 +347,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) write(""); for (QDeclarativeJS::AST::UiArrayMemberList *it = list; it; it = it->next) { QDeclarativeJS::AST::Node::accept(it->member, this); - addVerbatim(it->commaToken); + //addVerbatim(it->commaToken); } return false; } @@ -292,7 +360,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayMemberList *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiQualifiedId *id) { write(""); - addVerbatim(id->identifierToken); + addMarkedUpToken(id->identifierToken, QLatin1String("name")); return false; } @@ -317,7 +385,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSignature *signature) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormal *formal) { write(""); - addVerbatim(formal->identifierToken); + addMarkedUpToken(formal->identifierToken, QLatin1String("name")); addVerbatim(formal->asToken); addVerbatim(formal->aliasToken); return false; @@ -344,8 +412,8 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThisExpression *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierExpression *identifier) { write(""); - addVerbatim(identifier->identifierToken); - return true; + addMarkedUpToken(identifier->identifierToken, QLatin1String("name")); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierExpression *) @@ -357,7 +425,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierExpression *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NullExpression *null) { write(""); - addVerbatim(null->nullToken); + addMarkedUpToken(null->nullToken, QLatin1String("number")); return true; } @@ -370,7 +438,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NullExpression *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TrueLiteral *literal) { write(""); - addVerbatim(literal->trueToken); + addMarkedUpToken(literal->trueToken, QLatin1String("number")); return true; } @@ -383,7 +451,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TrueLiteral *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FalseLiteral *literal) { write(""); - addVerbatim(literal->falseToken); + addMarkedUpToken(literal->falseToken, QLatin1String("number")); return true; } @@ -396,10 +464,10 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FalseLiteral *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteral *literal) { //write(""); - addVerbatim(literal->literalToken); - return true; + addMarkedUpToken(literal->literalToken, QLatin1String("number")); + return false; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteral *) { //endWrite(""); @@ -409,10 +477,10 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteral *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteral *literal) { //write(""); - addVerbatim(literal->literalToken); + addMarkedUpToken(literal->literalToken, QLatin1String("string")); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteral *) { //endWrite(""); @@ -466,7 +534,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ElementList *list) write(""); for (QDeclarativeJS::AST::ElementList *it = list; it; it = it->next) { QDeclarativeJS::AST::Node::accept(it->expression, this); - addVerbatim(it->commaToken); + //addVerbatim(it->commaToken); } QDeclarativeJS::AST::Node::accept(list->elision, this); return false; @@ -571,7 +639,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *express write(""); QDeclarativeJS::AST::Node::accept(expression->base, this); addVerbatim(expression->dotToken); - addVerbatim(expression->identifierToken); + addMarkedUpToken(expression->identifierToken, QLatin1String("name")); return false; } @@ -587,12 +655,13 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expressio addVerbatim(expression->newToken); QDeclarativeJS::AST::Node::accept(expression->base, this); addVerbatim(expression->lparenToken); - return true; + QDeclarativeJS::AST::Node::accept(expression->arguments, this); + addVerbatim(expression->rparenToken); + return false; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewMemberExpression *expression) { - addVerbatim(expression->rparenToken); endWrite(""); } @@ -745,7 +814,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryMinusExpression *expressi addVerbatim(expression->minusToken); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryMinusExpression *) { endWrite(""); @@ -758,7 +827,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TildeExpression *expression) addVerbatim(expression->tildeToken); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TildeExpression *) { endWrite(""); @@ -771,7 +840,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NotExpression *expression) addVerbatim(expression->notToken); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NotExpression *) { endWrite(""); @@ -782,7 +851,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) { write(""); QDeclarativeJS::AST::Node::accept(expression->left, this); - addVerbatim(expression->operatorToken); + addMarkedUpToken(expression->operatorToken, QLatin1String("op")); QDeclarativeJS::AST::Node::accept(expression->right, this); return false; } @@ -798,7 +867,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ConditionalExpression *express write(""); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ConditionalExpression *) { endWrite(""); @@ -816,7 +885,6 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Expression *) endWrite(""); } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Block *block) { write(""); @@ -874,7 +942,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclarationList *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declaration) { write(""); - addVerbatim(declaration->identifierToken); + addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); QDeclarativeJS::AST::Node::accept(declaration->expression, this); return false; } @@ -914,11 +982,12 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ExpressionStatement *statem bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) { write(""); - addVerbatim(statement->ifToken); + addMarkedUpToken(statement->ifToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); QDeclarativeJS::AST::Node::accept(statement->ok, this); + //addMarkedUpToken(statement->elseToken, QLatin1String("keyword")); //addVerbatim(statement->elseToken); ### this token referred to the wrong source text for some reason QDeclarativeJS::AST::Node::accept(statement->ko, this); return false; @@ -933,9 +1002,9 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IfStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) { write(""); - addVerbatim(statement->doToken); + addMarkedUpToken(statement->doToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->statement, this); - addVerbatim(statement->whileToken); + addMarkedUpToken(statement->whileToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); @@ -954,7 +1023,7 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WhileStatement *statement) write(""); return true; } - + void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WhileStatement *) { endWrite(""); @@ -964,7 +1033,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WhileStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) { write(""); - addVerbatim(statement->forToken); + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->initialiser, this); addVerbatim(statement->firstSemicolonToken); @@ -985,9 +1054,9 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) { write(""); - addVerbatim(statement->forToken); + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); - addVerbatim(statement->varToken); + addMarkedUpToken(statement->varToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->declarations, this); addVerbatim(statement->firstSemicolonToken); QDeclarativeJS::AST::Node::accept(statement->condition, this); @@ -1007,14 +1076,14 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) { write(""); - addVerbatim(statement->forToken); + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->initialiser, this); addVerbatim(statement->inToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); QDeclarativeJS::AST::Node::accept(statement->statement, this); - return true; + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForEachStatement *) @@ -1026,15 +1095,15 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForEachStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *statement) { write(""); - addVerbatim(statement->forToken); + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); - addVerbatim(statement->varToken); + addMarkedUpToken(statement->varToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->declaration, this); addVerbatim(statement->inToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); QDeclarativeJS::AST::Node::accept(statement->statement, this); - return true; + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForEachStatement *) @@ -1046,10 +1115,10 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForEachStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) { write(""); - addVerbatim(statement->continueToken); - addVerbatim(statement->identifierToken); + addMarkedUpToken(statement->continueToken, QLatin1String("keyword")); + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->semicolonToken); - return true; + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ContinueStatement *) @@ -1061,10 +1130,10 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ContinueStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) { write(""); - addVerbatim(statement->breakToken); - addVerbatim(statement->identifierToken); + addMarkedUpToken(statement->breakToken, QLatin1String("keyword")); + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->semicolonToken); - return true; + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BreakStatement *) @@ -1076,7 +1145,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BreakStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ReturnStatement *statement) { write(""); - addVerbatim(statement->returnToken); + addMarkedUpToken(statement->returnToken, QLatin1String("keyword")); return true; } @@ -1090,7 +1159,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ReturnStatement *statement) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WithStatement *statement) { write(""); - addVerbatim(statement->withToken); + addMarkedUpToken(statement->withToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); addVerbatim(statement->rparenToken); return true; @@ -1105,7 +1174,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WithStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseBlock *block) { write(""); - addVerbatim(block->lbraceToken, block->lbraceToken); + addVerbatim(block->lbraceToken); return true; } @@ -1119,7 +1188,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseBlock *block) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SwitchStatement *statement) { write(""); - addVerbatim(statement->switchToken); + addMarkedUpToken(statement->switchToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); @@ -1146,7 +1215,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClauses *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) { write(""); - addVerbatim(clause->caseToken); + addMarkedUpToken(clause->caseToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(clause->expression, this); addVerbatim(clause->colonToken); QDeclarativeJS::AST::Node::accept(clause->statements, this); @@ -1162,7 +1231,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClause *clause) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) { write(""); - addVerbatim(clause->defaultToken, clause->defaultToken); + addMarkedUpToken(clause->defaultToken, QLatin1String("keyword")); addVerbatim(clause->colonToken, clause->colonToken); return true; } @@ -1176,10 +1245,10 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DefaultClause *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) { write(""); - addVerbatim(statement->identifierToken); + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->colonToken); QDeclarativeJS::AST::Node::accept(statement->statement, this); - return true; + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LabelledStatement *) @@ -1191,7 +1260,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LabelledStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) { write(""); - addVerbatim(statement->throwToken); + addMarkedUpToken(statement->throwToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->semicolonToken); return false; @@ -1206,11 +1275,11 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThrowStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) { write(""); - addVerbatim(c->catchToken, c->catchToken); - addVerbatim(c->lparenToken, c->lparenToken); - addVerbatim(c->identifierToken, c->identifierToken); - addVerbatim(c->rparenToken, c->rparenToken); - return true; + addMarkedUpToken(c->catchToken, QLatin1String("keyword")); + addVerbatim(c->lparenToken); + addMarkedUpToken(c->identifierToken, QLatin1String("name")); + addVerbatim(c->rparenToken); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Catch *) @@ -1222,7 +1291,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Catch *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) { write(""); - addVerbatim(f->finallyToken); + addMarkedUpToken(f->finallyToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(f->statement, this); return false; } @@ -1236,7 +1305,7 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Finally *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) { write(""); - addVerbatim(statement->tryToken); + addMarkedUpToken(statement->tryToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->statement, this); QDeclarativeJS::AST::Node::accept(statement->catchExpression, this); QDeclarativeJS::AST::Node::accept(statement->finallyExpression, this); @@ -1252,8 +1321,8 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TryStatement *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression) { write(""); - addVerbatim(expression->functionToken); - addVerbatim(expression->identifierToken); + addMarkedUpToken(expression->functionToken, QLatin1String("keyword")); + addMarkedUpToken(expression->identifierToken, QLatin1String("name")); addVerbatim(expression->lparenToken); QDeclarativeJS::AST::Node::accept(expression->formals, this); addVerbatim(expression->rparenToken); @@ -1271,8 +1340,8 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionExpression *express bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declaration) { write(""); - addVerbatim(declaration->functionToken); - addVerbatim(declaration->identifierToken); + addMarkedUpToken(declaration->functionToken, QLatin1String("keyword")); + addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); addVerbatim(declaration->lparenToken); QDeclarativeJS::AST::Node::accept(declaration->formals, this); addVerbatim(declaration->rparenToken); @@ -1290,9 +1359,9 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionDeclaration *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) { write(""); - addVerbatim(list->commaToken, list->commaToken); - addVerbatim(list->identifierToken, list->identifierToken); - return true; + addVerbatim(list->commaToken); + addMarkedUpToken(list->identifierToken, QLatin1String("name")); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FormalParameterList *) @@ -1346,10 +1415,12 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementSourceElement *) endWrite(""); } -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *) +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition) { write(""); - return true; + QDeclarativeJS::AST::Node::accept(definition->qualifiedTypeNameId, this); + QDeclarativeJS::AST::Node::accept(definition->initializer, this); + return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectDefinition *) diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h index 86e1ac2..01b0acf 100644 --- a/tools/qdoc3/qmlmarkupvisitor.h +++ b/tools/qdoc3/qmlmarkupvisitor.h @@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE class QmlMarkupVisitor : public QDeclarativeJS::AST::Visitor { public: - QmlMarkupVisitor(const QString &code, bool debug = false); + QmlMarkupVisitor(const QString &code, QDeclarativeJS::Engine *engine); virtual ~QmlMarkupVisitor(); QString markedUpCode(); @@ -317,7 +317,11 @@ public: virtual bool visit(QDeclarativeJS::AST::UiParameterList *); virtual void endVisit(QDeclarativeJS::AST::UiParameterList *); +protected: + QString protect(const QString &string); + private: + void addExtra(quint32 start, quint32 finish); void addMarkedUpToken(QDeclarativeJS::AST::SourceLocation &location, const QString &text); void addVerbatim(QDeclarativeJS::AST::SourceLocation first, @@ -326,11 +330,13 @@ private: void write(const QString &text); void endWrite(const QString &text); + QDeclarativeJS::Engine *engine; QString source; QString output; quint32 cursor; + quint32 commentIndex; int indent; - bool showDebug; + QString debug; }; QT_END_NAMESPACE -- cgit v0.12 From 88a86d8e2c82edf53b56afcc2f80fffd32a18e49 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 30 Nov 2010 18:28:27 +0100 Subject: Made more adjustments to node handling and removed debugging statements. --- tools/qdoc3/qmlmarkupvisitor.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 4564dc5..387b562 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -39,7 +39,6 @@ ** ****************************************************************************/ -#include #include #include #include "private/qdeclarativejsast_p.h" @@ -57,7 +56,7 @@ QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, QDeclarativeJS::Engine indent = 0; cursor = 0; commentIndex = 0; - debug += QString("Comments %1\n").arg(engine->comments().length()); + QString("Comments %1\n").arg(engine->comments().length()); } QmlMarkupVisitor::~QmlMarkupVisitor() @@ -94,8 +93,6 @@ QString QmlMarkupVisitor::markedUpCode() if (cursor < source.length()) addExtra(cursor, source.length()); - //qDebug() << debug; - qDebug() << output; return output; } @@ -157,7 +154,7 @@ void QmlMarkupVisitor::addMarkedUpToken( if (cursor < location.offset) addExtra(cursor, location.offset); else if (cursor > location.offset) - debug += QString("%1 %2\n").arg(cursor).arg(location.offset); + return; output += QString(QLatin1String("<@%1>%2")).arg(tagName, protect(sourceText(location)), tagName); cursor += location.length; @@ -184,7 +181,7 @@ void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, if (cursor < start) addExtra(cursor, start); else if (cursor > start) - debug += QString("%1 %2 %3 x\n").arg(sourceText(first)).arg(cursor).arg(start); + return; QString text = source.mid(start, finish - start); write(text); @@ -195,11 +192,10 @@ void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, void QmlMarkupVisitor::write(const QString &text) { - debug += QString().fill(QChar(' '), indent) + text + QLatin1String("\n"); indent += 1; } -void QmlMarkupVisitor::endWrite(const QString &) +void QmlMarkupVisitor::endWrite(const QString &text) { indent -= 1; } @@ -877,6 +873,9 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ConditionalExpression *) bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Expression *expression) { write(""); + QDeclarativeJS::AST::Node::accept(expression->left, this); + addVerbatim(expression->commaToken); + QDeclarativeJS::AST::Node::accept(expression->right, this); return true; } @@ -987,9 +986,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); QDeclarativeJS::AST::Node::accept(statement->ok, this); - //addMarkedUpToken(statement->elseToken, QLatin1String("keyword")); - //addVerbatim(statement->elseToken); ### this token referred to the wrong source text for some reason - QDeclarativeJS::AST::Node::accept(statement->ko, this); + if (statement->ko) { + addMarkedUpToken(statement->elseToken, QLatin1String("keyword")); + QDeclarativeJS::AST::Node::accept(statement->ko, this); + } return false; } -- cgit v0.12 From eae5f69a23d46d237ee2021319d093c580dff679 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 1 Dec 2010 11:57:35 +0100 Subject: Removed an unused function. --- tools/qdoc3/main.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index ac1c5de..68b5370 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -95,21 +95,6 @@ static QStringList defines; static QHash trees; /*! - Find the Tree for language \a lang and return a pointer to it. - If there is no Tree for language \a lang in the Tree table, add - a new one. The Tree table is indexed by \a lang strings. - */ -static Tree* treeForLanguage(const QString &lang) -{ - Tree* tree = trees.value(lang); - if (tree == 0) { - tree = new Tree; - trees.insert( lang, tree ); - } - return tree; -} - -/*! Print the help message to \c stdout. */ static void printHelp() -- cgit v0.12 From 0dd0313a194c73508a4fbbf69c716407b781cc6e Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 1 Dec 2010 12:04:46 +0100 Subject: Select the appropriate code marker for each file. --- tools/qdoc3/generator.cpp | 2 +- tools/qdoc3/htmlgenerator.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp index 0f2454e..1b17452 100644 --- a/tools/qdoc3/generator.cpp +++ b/tools/qdoc3/generator.cpp @@ -514,7 +514,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker) Doc::quoteFromFile(fake->doc().location(), quoter, fake->name()); QString code = quoter.quoteTo(fake->location(), "", ""); text << Atom(Atom::Code, code); - generateText(text, fake, marker); + generateText(text, fake, CodeMarker::markerForFileName(fake->name())); } } } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 5f70de4..456654f 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1341,8 +1341,8 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, } /*! - Generate the html page for a qdoc file that doesn't map - to an underlying c++ file. + Generate the HTML page for a qdoc file that doesn't map + to an underlying C++ file. */ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) { @@ -1360,6 +1360,9 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) else if (fake->subType() == Node::QmlBasicType) { fullTitle = "QML Basic Type: " + fullTitle; htmlTitle = fullTitle; + + // Replace the marker with a QML code marker. + marker = CodeMarker::markerForLanguage(QLatin1String("QML")); } generateHeader(htmlTitle, fake, marker); @@ -1373,6 +1376,9 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) qml_cn = static_cast(fake); sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0); generateTableOfContents(fake,marker,§ions); + + // Replace the marker with a QML code marker. + marker = CodeMarker::markerForLanguage(QLatin1String("QML")); } else if (fake->name() != QString("index.html")) generateTableOfContents(fake,marker,0); -- cgit v0.12 From 76152172c04a40dc9e27423ec092f23da4d628dc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 1 Dec 2010 12:05:35 +0100 Subject: Trivial comment fix. --- tools/qdoc3/pagegenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp index 60b40c9..cde4b45 100644 --- a/tools/qdoc3/pagegenerator.cpp +++ b/tools/qdoc3/pagegenerator.cpp @@ -299,7 +299,7 @@ QTextStream &PageGenerator::out() } /*! - Recursive writing of html files from the root \a node. + Recursive writing of HTML files from the root \a node. */ void PageGenerator::generateInnerNode(const InnerNode* node) -- cgit v0.12 From d877b3d3b34d4f5c6f9683c54d54e54a37a39998 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 1 Dec 2010 12:30:19 +0100 Subject: Fixed/adjusted handling of UiPublicMember nodes. Removed debugging code. --- tools/qdoc3/qmlmarkupvisitor.cpp | 202 +-------------------------------------- tools/qdoc3/qmlmarkupvisitor.h | 2 - 2 files changed, 5 insertions(+), 199 deletions(-) diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 387b562..6335ab6 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -56,7 +56,6 @@ QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, QDeclarativeJS::Engine indent = 0; cursor = 0; commentIndex = 0; - QString("Comments %1\n").arg(engine->comments().length()); } QmlMarkupVisitor::~QmlMarkupVisitor() @@ -90,7 +89,7 @@ QString QmlMarkupVisitor::protect(const QString& str) QString QmlMarkupVisitor::markedUpCode() { - if (cursor < source.length()) + if (int(cursor) < source.length()) addExtra(cursor, source.length()); return output; @@ -184,36 +183,22 @@ void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, return; QString text = source.mid(start, finish - start); - write(text); indent -= 1; output += protect(text); cursor = finish; } -void QmlMarkupVisitor::write(const QString &text) -{ - indent += 1; -} - -void QmlMarkupVisitor::endWrite(const QString &text) -{ - indent -= 1; -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiProgram *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiProgram *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImport *uiimport) { - write(""); addVerbatim(uiimport->importToken); if (!uiimport->importUri) addMarkedUpToken(uiimport->fileNameToken, QLatin1String("headerfile")); @@ -222,17 +207,14 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImport *uiimport) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImport *uiimport) { - endWrite(""); addVerbatim(uiimport->versionToken); addVerbatim(uiimport->asToken); addMarkedUpToken(uiimport->importIdToken, QLatin1String("headerfile")); addVerbatim(uiimport->semicolonToken); - //endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) { - write(""); if (member->type == QDeclarativeJS::AST::UiPublicMember::Property) { addVerbatim(member->defaultToken); addVerbatim(member->readonlyToken); @@ -241,7 +223,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) addMarkedUpToken(member->typeToken, QLatin1String("type")); addMarkedUpToken(member->identifierToken, QLatin1String("name")); addVerbatim(member->colonToken); - QDeclarativeJS::AST::Node::accept(member->binding, this); + if (member->binding) + QDeclarativeJS::AST::Node::accept(member->binding, this); + else if (member->expression) + QDeclarativeJS::AST::Node::accept(member->expression, this); } else { addVerbatim(member->propertyToken); addVerbatim(member->typeModifierToken); @@ -255,47 +240,39 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiPublicMember *member) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSourceElement *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSourceElement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiParameterList *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiParameterList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectInitializer *initializer) { - write(""); addVerbatim(initializer->lbraceToken, initializer->lbraceToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectInitializer *initializer) { - endWrite(""); addVerbatim(initializer->rbraceToken, initializer->rbraceToken); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectBinding *binding) { - write(""); QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); addVerbatim(binding->colonToken); QDeclarativeJS::AST::Node::accept(binding->qualifiedTypeNameId, this); @@ -305,12 +282,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectBinding *binding) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectBinding *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiScriptBinding *binding) { - write(""); QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); addVerbatim(binding->colonToken); QDeclarativeJS::AST::Node::accept(binding->statement, this); @@ -319,12 +294,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiScriptBinding *binding) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiScriptBinding *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayBinding *binding) { - write(""); QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); addVerbatim(binding->colonToken); addVerbatim(binding->lbracketToken); @@ -335,12 +308,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayBinding *binding) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayBinding *formal) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) { - write(""); for (QDeclarativeJS::AST::UiArrayMemberList *it = list; it; it = it->next) { QDeclarativeJS::AST::Node::accept(it->member, this); //addVerbatim(it->commaToken); @@ -350,24 +321,20 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayMemberList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiQualifiedId *id) { - write(""); addMarkedUpToken(id->identifierToken, QLatin1String("name")); return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiQualifiedId *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSignature *signature) { - write(""); addVerbatim(signature->lparenToken); return true; } @@ -375,12 +342,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSignature *signature) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSignature *signature) { addVerbatim(signature->rparenToken); - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormal *formal) { - write(""); addMarkedUpToken(formal->identifierToken, QLatin1String("name")); addVerbatim(formal->asToken); addVerbatim(formal->aliasToken); @@ -389,116 +354,98 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormal *formal) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormal *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThisExpression *expression) { - write(""); addVerbatim(expression->thisToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThisExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierExpression *identifier) { - write(""); addMarkedUpToken(identifier->identifierToken, QLatin1String("name")); return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NullExpression *null) { - write(""); addMarkedUpToken(null->nullToken, QLatin1String("number")); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NullExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TrueLiteral *literal) { - write(""); addMarkedUpToken(literal->trueToken, QLatin1String("number")); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TrueLiteral *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FalseLiteral *literal) { - write(""); addMarkedUpToken(literal->falseToken, QLatin1String("number")); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FalseLiteral *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteral *literal) { - //write(""); addMarkedUpToken(literal->literalToken, QLatin1String("number")); return false; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteral *) { - //endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteral *literal) { - //write(""); addMarkedUpToken(literal->literalToken, QLatin1String("string")); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteral *) { - //endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::RegExpLiteral *literal) { - write(""); addVerbatim(literal->literalToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::RegExpLiteral *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayLiteral *literal) { - write(""); addVerbatim(literal->lbracketToken); QDeclarativeJS::AST::Node::accept(literal->elements, this); addVerbatim(literal->rbracketToken); @@ -507,13 +454,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayLiteral *literal) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayLiteral *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ObjectLiteral *literal) { - write(""); addVerbatim(literal->lbraceToken); return true; } @@ -521,13 +466,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ObjectLiteral *literal) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ObjectLiteral *literal) { addVerbatim(literal->rbraceToken); - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ElementList *list) { - write(""); for (QDeclarativeJS::AST::ElementList *it = list; it; it = it->next) { QDeclarativeJS::AST::Node::accept(it->expression, this); //addVerbatim(it->commaToken); @@ -538,58 +481,48 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ElementList *list) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ElementList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Elision *elision) { - write(""); addVerbatim(elision->commaToken, elision->commaToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Elision *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierPropertyName *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierPropertyName *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteralPropertyName *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteralPropertyName *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteralPropertyName *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteralPropertyName *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PropertyNameAndValueList *list) { - write(""); QDeclarativeJS::AST::Node::accept(list->name, this); addVerbatim(list->colonToken, list->colonToken); QDeclarativeJS::AST::Node::accept(list->value, this); @@ -599,24 +532,20 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PropertyNameAndValueList *list void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PropertyNameAndValueList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NestedExpression *expression) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NestedExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayMemberExpression *expression) { - write(""); QDeclarativeJS::AST::Node::accept(expression->base, this); addVerbatim(expression->lbracketToken); QDeclarativeJS::AST::Node::accept(expression->expression, this); @@ -626,13 +555,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayMemberExpression *express void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayMemberExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *expression) { - write(""); QDeclarativeJS::AST::Node::accept(expression->base, this); addVerbatim(expression->dotToken); addMarkedUpToken(expression->identifierToken, QLatin1String("name")); @@ -641,13 +568,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *express void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FieldMemberExpression *expression) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expression) { - write(""); addVerbatim(expression->newToken); QDeclarativeJS::AST::Node::accept(expression->base, this); addVerbatim(expression->lparenToken); @@ -658,194 +583,164 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expressio void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewMemberExpression *expression) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewExpression *expression) { - write(""); addVerbatim(expression->newToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CallExpression *expression) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CallExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArgumentList *list) { - write(""); addVerbatim(list->commaToken, list->commaToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArgumentList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostIncrementExpression *expression) { - write(""); addVerbatim(expression->incrementToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostIncrementExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostDecrementExpression *expression) { - write(""); addVerbatim(expression->decrementToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostDecrementExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DeleteExpression *expression) { - write(""); addVerbatim(expression->deleteToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DeleteExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VoidExpression *expression) { - write(""); addVerbatim(expression->voidToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VoidExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TypeOfExpression *expression) { - write(""); addVerbatim(expression->typeofToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TypeOfExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreIncrementExpression *expression) { - write(""); addVerbatim(expression->incrementToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreIncrementExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreDecrementExpression *expression) { - write(""); addVerbatim(expression->decrementToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreDecrementExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryPlusExpression *expression) { - write(""); addVerbatim(expression->plusToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryPlusExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryMinusExpression *expression) { - write(""); addVerbatim(expression->minusToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryMinusExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TildeExpression *expression) { - write(""); addVerbatim(expression->tildeToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TildeExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NotExpression *expression) { - write(""); addVerbatim(expression->notToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NotExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) { - write(""); QDeclarativeJS::AST::Node::accept(expression->left, this); addMarkedUpToken(expression->operatorToken, QLatin1String("op")); QDeclarativeJS::AST::Node::accept(expression->right, this); @@ -854,25 +749,21 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BinaryExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ConditionalExpression *expression) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ConditionalExpression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Expression *expression) { - write(""); QDeclarativeJS::AST::Node::accept(expression->left, this); addVerbatim(expression->commaToken); QDeclarativeJS::AST::Node::accept(expression->right, this); @@ -881,12 +772,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Expression *expression) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Expression *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Block *block) { - write(""); addVerbatim(block->lbraceToken); return true; } @@ -894,23 +783,19 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Block *block) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Block *block) { addVerbatim(block->rbraceToken); - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementList *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementList *) { - endWrite(""); addVerbatim(statement->declarationKindToken); QDeclarativeJS::AST::Node::accept(statement->declarations, this); addVerbatim(statement->semicolonToken); @@ -919,13 +804,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclarationList *list) { - write(""); for (QDeclarativeJS::AST::VariableDeclarationList *it = list; it; it = it->next) { QDeclarativeJS::AST::Node::accept(it->declaration, this); addVerbatim(it->commaToken); @@ -935,12 +818,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclarationList *list) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclarationList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declaration) { - write(""); addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); QDeclarativeJS::AST::Node::accept(declaration->expression, this); return false; @@ -948,39 +829,33 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declarati void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclaration *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::EmptyStatement *statement) { - write(""); addVerbatim(statement->semicolonToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::EmptyStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ExpressionStatement *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ExpressionStatement *statement) { addVerbatim(statement->semicolonToken); - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) { - write(""); addMarkedUpToken(statement->ifToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); @@ -995,13 +870,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IfStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) { - write(""); addMarkedUpToken(statement->doToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->statement, this); addMarkedUpToken(statement->whileToken, QLatin1String("keyword")); @@ -1014,25 +887,21 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DoWhileStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WhileStatement *statement) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WhileStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) { - write(""); addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->initialiser, this); @@ -1047,13 +916,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) { - write(""); addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); addMarkedUpToken(statement->varToken, QLatin1String("keyword")); @@ -1069,13 +936,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) { - write(""); addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->initialiser, this); @@ -1088,13 +953,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForEachStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *statement) { - write(""); addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); addMarkedUpToken(statement->varToken, QLatin1String("keyword")); @@ -1108,13 +971,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *stateme void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForEachStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) { - write(""); addMarkedUpToken(statement->continueToken, QLatin1String("keyword")); addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->semicolonToken); @@ -1123,13 +984,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ContinueStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) { - write(""); addMarkedUpToken(statement->breakToken, QLatin1String("keyword")); addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->semicolonToken); @@ -1138,13 +997,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BreakStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ReturnStatement *statement) { - write(""); addMarkedUpToken(statement->returnToken, QLatin1String("keyword")); return true; } @@ -1152,13 +1009,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ReturnStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ReturnStatement *statement) { addVerbatim(statement->semicolonToken); - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WithStatement *statement) { - write(""); addMarkedUpToken(statement->withToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); addVerbatim(statement->rparenToken); @@ -1167,27 +1022,23 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WithStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WithStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseBlock *block) { - write(""); addVerbatim(block->lbraceToken); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseBlock *block) { - endWrite(""); addVerbatim(block->rbraceToken, block->rbraceToken); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SwitchStatement *statement) { - write(""); addMarkedUpToken(statement->switchToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); QDeclarativeJS::AST::Node::accept(statement->expression, this); @@ -1198,23 +1049,19 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SwitchStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SwitchStatement *statement) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClauses *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClauses *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) { - write(""); addMarkedUpToken(clause->caseToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(clause->expression, this); addVerbatim(clause->colonToken); @@ -1224,13 +1071,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClause *clause) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) { - write(""); addMarkedUpToken(clause->defaultToken, QLatin1String("keyword")); addVerbatim(clause->colonToken, clause->colonToken); return true; @@ -1238,13 +1083,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DefaultClause *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) { - write(""); addMarkedUpToken(statement->identifierToken, QLatin1String("name")); addVerbatim(statement->colonToken); QDeclarativeJS::AST::Node::accept(statement->statement, this); @@ -1253,13 +1096,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LabelledStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) { - write(""); addMarkedUpToken(statement->throwToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->semicolonToken); @@ -1268,13 +1109,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThrowStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) { - write(""); addMarkedUpToken(c->catchToken, QLatin1String("keyword")); addVerbatim(c->lparenToken); addMarkedUpToken(c->identifierToken, QLatin1String("name")); @@ -1284,13 +1123,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Catch *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) { - write(""); addMarkedUpToken(f->finallyToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(f->statement, this); return false; @@ -1298,13 +1135,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Finally *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) { - write(""); addMarkedUpToken(statement->tryToken, QLatin1String("keyword")); QDeclarativeJS::AST::Node::accept(statement->statement, this); QDeclarativeJS::AST::Node::accept(statement->catchExpression, this); @@ -1314,13 +1149,11 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TryStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression) { - write(""); addMarkedUpToken(expression->functionToken, QLatin1String("keyword")); addMarkedUpToken(expression->identifierToken, QLatin1String("name")); addVerbatim(expression->lparenToken); @@ -1334,12 +1167,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionExpression *expression) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declaration) { - write(""); addMarkedUpToken(declaration->functionToken, QLatin1String("keyword")); addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); addVerbatim(declaration->lparenToken); @@ -1353,12 +1184,10 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declarati void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionDeclaration *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) { - write(""); addVerbatim(list->commaToken); addMarkedUpToken(list->identifierToken, QLatin1String("name")); return false; @@ -1366,23 +1195,19 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FormalParameterList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionBody *body) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionBody *body) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) { - write(""); addVerbatim(statement->debuggerToken); addVerbatim(statement->semicolonToken); return true; @@ -1390,34 +1215,28 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DebuggerStatement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionSourceElement *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionSourceElement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementSourceElement *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementSourceElement *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition) { - write(""); QDeclarativeJS::AST::Node::accept(definition->qualifiedTypeNameId, this); QDeclarativeJS::AST::Node::accept(definition->initializer, this); return false; @@ -1425,62 +1244,51 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectDefinition *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImportList *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImportList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectMemberList *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectMemberList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormalList *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormalList *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Program *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Program *) { - endWrite(""); } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SourceElements *) { - write(""); return true; } void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SourceElements *) { - endWrite(""); } QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h index 01b0acf..8177798 100644 --- a/tools/qdoc3/qmlmarkupvisitor.h +++ b/tools/qdoc3/qmlmarkupvisitor.h @@ -327,8 +327,6 @@ private: void addVerbatim(QDeclarativeJS::AST::SourceLocation first, QDeclarativeJS::AST::SourceLocation last = QDeclarativeJS::AST::SourceLocation()); QString sourceText(QDeclarativeJS::AST::SourceLocation &location); - void write(const QString &text); - void endWrite(const QString &text); QDeclarativeJS::Engine *engine; QString source; -- cgit v0.12 From ff9b210719da21a6724bad51e908f9754c7fa172 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 1 Dec 2010 18:15:46 +0100 Subject: Updated handling of some statement nodes, removed unnecessary functions. --- tools/qdoc3/qmlmarkupvisitor.cpp | 512 ++------------------------------------- tools/qdoc3/qmlmarkupvisitor.h | 185 +------------- 2 files changed, 28 insertions(+), 669 deletions(-) diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 6335ab6..907b95d 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -53,7 +53,6 @@ QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, QDeclarativeJS::Engine { this->source = source; this->engine = engine; - indent = 0; cursor = 0; commentIndex = 0; } @@ -183,20 +182,10 @@ void QmlMarkupVisitor::addVerbatim(QDeclarativeJS::AST::SourceLocation first, return; QString text = source.mid(start, finish - start); - indent -= 1; output += protect(text); cursor = finish; } -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiProgram *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiProgram *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImport *uiimport) { addVerbatim(uiimport->importToken); @@ -238,28 +227,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiPublicMember *member) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiPublicMember *member) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSourceElement *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiSourceElement *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiParameterList *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiParameterList *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectInitializer *initializer) { addVerbatim(initializer->lbraceToken, initializer->lbraceToken); @@ -280,10 +247,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectBinding *binding) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectBinding *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiScriptBinding *binding) { QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); @@ -292,10 +255,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiScriptBinding *binding) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiScriptBinding *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayBinding *binding) { QDeclarativeJS::AST::Node::accept(binding->qualifiedId, this); @@ -306,10 +265,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayBinding *binding) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayBinding *formal) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) { for (QDeclarativeJS::AST::UiArrayMemberList *it = list; it; it = it->next) { @@ -319,20 +274,12 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiArrayMemberList *list) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiArrayMemberList *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiQualifiedId *id) { addMarkedUpToken(id->identifierToken, QLatin1String("name")); return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiQualifiedId *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiSignature *signature) { addVerbatim(signature->lparenToken); @@ -352,98 +299,54 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormal *formal) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormal *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThisExpression *expression) { addVerbatim(expression->thisToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThisExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierExpression *identifier) { addMarkedUpToken(identifier->identifierToken, QLatin1String("name")); return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NullExpression *null) { addMarkedUpToken(null->nullToken, QLatin1String("number")); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NullExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TrueLiteral *literal) { addMarkedUpToken(literal->trueToken, QLatin1String("number")); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TrueLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FalseLiteral *literal) { addMarkedUpToken(literal->falseToken, QLatin1String("number")); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FalseLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteral *literal) { addMarkedUpToken(literal->literalToken, QLatin1String("number")); return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteral *literal) { addMarkedUpToken(literal->literalToken, QLatin1String("string")); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::RegExpLiteral *literal) { addVerbatim(literal->literalToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::RegExpLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayLiteral *literal) { addVerbatim(literal->lbracketToken); @@ -452,11 +355,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayLiteral *literal) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayLiteral *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ObjectLiteral *literal) { addVerbatim(literal->lbraceToken); @@ -479,48 +377,12 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ElementList *list) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ElementList *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Elision *elision) { addVerbatim(elision->commaToken, elision->commaToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Elision *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IdentifierPropertyName *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IdentifierPropertyName *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StringLiteralPropertyName *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StringLiteralPropertyName *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NumericLiteralPropertyName *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NumericLiteralPropertyName *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PropertyNameAndValueList *list) { QDeclarativeJS::AST::Node::accept(list->name, this); @@ -530,20 +392,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PropertyNameAndValueList *list return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PropertyNameAndValueList *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NestedExpression *expression) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NestedExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayMemberExpression *expression) { QDeclarativeJS::AST::Node::accept(expression->base, this); @@ -553,11 +401,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArrayMemberExpression *express return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArrayMemberExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *expression) { QDeclarativeJS::AST::Node::accept(expression->base, this); @@ -566,11 +409,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FieldMemberExpression *express return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FieldMemberExpression *expression) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expression) { addVerbatim(expression->newToken); @@ -581,164 +419,84 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewMemberExpression *expressio return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewMemberExpression *expression) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NewExpression *expression) { addVerbatim(expression->newToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NewExpression *) -{ -} - - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CallExpression *expression) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CallExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ArgumentList *list) { addVerbatim(list->commaToken, list->commaToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ArgumentList *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostIncrementExpression *expression) { addVerbatim(expression->incrementToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostIncrementExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PostDecrementExpression *expression) { addVerbatim(expression->decrementToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PostDecrementExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DeleteExpression *expression) { addVerbatim(expression->deleteToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DeleteExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VoidExpression *expression) { addVerbatim(expression->voidToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VoidExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TypeOfExpression *expression) { addVerbatim(expression->typeofToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TypeOfExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreIncrementExpression *expression) { addVerbatim(expression->incrementToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreIncrementExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::PreDecrementExpression *expression) { addVerbatim(expression->decrementToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::PreDecrementExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryPlusExpression *expression) { addVerbatim(expression->plusToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryPlusExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UnaryMinusExpression *expression) { addVerbatim(expression->minusToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UnaryMinusExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TildeExpression *expression) { addVerbatim(expression->tildeToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TildeExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::NotExpression *expression) { addVerbatim(expression->notToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::NotExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) { QDeclarativeJS::AST::Node::accept(expression->left, this); @@ -747,31 +505,22 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BinaryExpression *expression) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BinaryExpression *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ConditionalExpression *expression) { - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ConditionalExpression *) -{ + QDeclarativeJS::AST::Node::accept(expression->expression, this); + addVerbatim(expression->questionToken); + QDeclarativeJS::AST::Node::accept(expression->ok, this); + addVerbatim(expression->colonToken); + QDeclarativeJS::AST::Node::accept(expression->ko, this); + return false; } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Expression *expression) { QDeclarativeJS::AST::Node::accept(expression->left, this); addVerbatim(expression->commaToken); QDeclarativeJS::AST::Node::accept(expression->right, this); - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Expression *) -{ + return false; } bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Block *block) @@ -785,15 +534,6 @@ void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Block *block) addVerbatim(block->rbraceToken); } -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementList *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementList *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableStatement *statement) { addVerbatim(statement->declarationKindToken); @@ -802,11 +542,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclarationList *list) { for (QDeclarativeJS::AST::VariableDeclarationList *it = list; it; it = it->next) { @@ -816,10 +551,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclarationList *list) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclarationList *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declaration) { addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); @@ -827,33 +558,19 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::VariableDeclaration *declarati return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::VariableDeclaration *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::EmptyStatement *statement) { addVerbatim(statement->semicolonToken); return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::EmptyStatement *) -{ -} - - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ExpressionStatement *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ExpressionStatement *statement) +bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ExpressionStatement *statement) { + QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->semicolonToken); + return false; } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) { addMarkedUpToken(statement->ifToken, QLatin1String("keyword")); @@ -868,11 +585,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::IfStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::IfStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) { addMarkedUpToken(statement->doToken, QLatin1String("keyword")); @@ -885,21 +597,16 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DoWhileStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DoWhileStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WhileStatement *statement) { - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WhileStatement *) -{ + addMarkedUpToken(statement->whileToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return false; } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) { addMarkedUpToken(statement->forToken, QLatin1String("keyword")); @@ -914,11 +621,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) { addMarkedUpToken(statement->forToken, QLatin1String("keyword")); @@ -934,11 +636,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) { addMarkedUpToken(statement->forToken, QLatin1String("keyword")); @@ -951,11 +648,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ForEachStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ForEachStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *statement) { addMarkedUpToken(statement->forToken, QLatin1String("keyword")); @@ -969,11 +661,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LocalForEachStatement *stateme return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LocalForEachStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) { addMarkedUpToken(statement->continueToken, QLatin1String("keyword")); @@ -982,11 +669,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ContinueStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ContinueStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) { addMarkedUpToken(statement->breakToken, QLatin1String("keyword")); @@ -995,36 +677,24 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::BreakStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::BreakStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ReturnStatement *statement) { addMarkedUpToken(statement->returnToken, QLatin1String("keyword")); - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ReturnStatement *statement) -{ + QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->semicolonToken); + return false; } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::WithStatement *statement) { addMarkedUpToken(statement->withToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); + QDeclarativeJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::WithStatement *) -{ + QDeclarativeJS::AST::Node::accept(statement->statement, this); + return false; } - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseBlock *block) { addVerbatim(block->lbraceToken); @@ -1047,19 +717,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SwitchStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SwitchStatement *statement) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClauses *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClauses *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) { addMarkedUpToken(clause->caseToken, QLatin1String("keyword")); @@ -1069,11 +726,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::CaseClause *clause) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::CaseClause *clause) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) { addMarkedUpToken(clause->defaultToken, QLatin1String("keyword")); @@ -1081,11 +733,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DefaultClause *clause) return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DefaultClause *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) { addMarkedUpToken(statement->identifierToken, QLatin1String("name")); @@ -1094,11 +741,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::LabelledStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::LabelledStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) { addMarkedUpToken(statement->throwToken, QLatin1String("keyword")); @@ -1107,11 +749,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::ThrowStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::ThrowStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) { addMarkedUpToken(c->catchToken, QLatin1String("keyword")); @@ -1121,11 +758,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Catch *c) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Catch *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) { addMarkedUpToken(f->finallyToken, QLatin1String("keyword")); @@ -1133,11 +765,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Finally *f) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Finally *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) { addMarkedUpToken(statement->tryToken, QLatin1String("keyword")); @@ -1147,11 +774,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::TryStatement *statement) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::TryStatement *) -{ -} - - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression) { addMarkedUpToken(expression->functionToken, QLatin1String("keyword")); @@ -1165,10 +787,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionExpression *expression return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionExpression *expression) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declaration) { addMarkedUpToken(declaration->functionToken, QLatin1String("keyword")); @@ -1182,10 +800,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionDeclaration *declarati return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionDeclaration *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) { addVerbatim(list->commaToken); @@ -1193,19 +807,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FormalParameterList *list) return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FormalParameterList *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionBody *body) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionBody *body) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) { addVerbatim(statement->debuggerToken); @@ -1213,28 +814,6 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement) return true; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::DebuggerStatement *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::FunctionSourceElement *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::FunctionSourceElement *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::StatementSourceElement *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::StatementSourceElement *) -{ -} - bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition) { QDeclarativeJS::AST::Node::accept(definition->qualifiedTypeNameId, this); @@ -1242,53 +821,4 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition return false; } -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectDefinition *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiImportList *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiImportList *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectMemberList *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiObjectMemberList *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiFormalList *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::UiFormalList *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::Program *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::Program *) -{ -} - -bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::SourceElements *) -{ - return true; -} - -void QmlMarkupVisitor::endVisit(QDeclarativeJS::AST::SourceElements *) -{ -} - QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h index 8177798..35f1b5bc 100644 --- a/tools/qdoc3/qmlmarkupvisitor.h +++ b/tools/qdoc3/qmlmarkupvisitor.h @@ -57,265 +57,96 @@ public: QString markedUpCode(); - virtual bool visit(QDeclarativeJS::AST::UiProgram *); - virtual bool visit(QDeclarativeJS::AST::UiImportList *); virtual bool visit(QDeclarativeJS::AST::UiImport *); + virtual void endVisit(QDeclarativeJS::AST::UiImport *); + virtual bool visit(QDeclarativeJS::AST::UiPublicMember *); - virtual bool visit(QDeclarativeJS::AST::UiSourceElement *); virtual bool visit(QDeclarativeJS::AST::UiObjectDefinition *); + virtual bool visit(QDeclarativeJS::AST::UiObjectInitializer *); + virtual void endVisit(QDeclarativeJS::AST::UiObjectInitializer *); + virtual bool visit(QDeclarativeJS::AST::UiObjectBinding *); virtual bool visit(QDeclarativeJS::AST::UiScriptBinding *); virtual bool visit(QDeclarativeJS::AST::UiArrayBinding *); - virtual bool visit(QDeclarativeJS::AST::UiObjectMemberList *); virtual bool visit(QDeclarativeJS::AST::UiArrayMemberList *); virtual bool visit(QDeclarativeJS::AST::UiQualifiedId *); - virtual bool visit(QDeclarativeJS::AST::UiSignature *); - virtual bool visit(QDeclarativeJS::AST::UiFormalList *); - virtual bool visit(QDeclarativeJS::AST::UiFormal *); - virtual void endVisit(QDeclarativeJS::AST::UiProgram *); - virtual void endVisit(QDeclarativeJS::AST::UiImportList *); - virtual void endVisit(QDeclarativeJS::AST::UiImport *); - virtual void endVisit(QDeclarativeJS::AST::UiPublicMember *); - virtual void endVisit(QDeclarativeJS::AST::UiSourceElement *); - virtual void endVisit(QDeclarativeJS::AST::UiObjectDefinition *); - virtual void endVisit(QDeclarativeJS::AST::UiObjectInitializer *); - virtual void endVisit(QDeclarativeJS::AST::UiObjectBinding *); - virtual void endVisit(QDeclarativeJS::AST::UiScriptBinding *); - virtual void endVisit(QDeclarativeJS::AST::UiArrayBinding *); - virtual void endVisit(QDeclarativeJS::AST::UiObjectMemberList *); - virtual void endVisit(QDeclarativeJS::AST::UiArrayMemberList *); - virtual void endVisit(QDeclarativeJS::AST::UiQualifiedId *); + virtual bool visit(QDeclarativeJS::AST::UiSignature *); virtual void endVisit(QDeclarativeJS::AST::UiSignature *); - virtual void endVisit(QDeclarativeJS::AST::UiFormalList *); - virtual void endVisit(QDeclarativeJS::AST::UiFormal *); - // QDeclarativeJS + virtual bool visit(QDeclarativeJS::AST::UiFormal *); virtual bool visit(QDeclarativeJS::AST::ThisExpression *); - virtual void endVisit(QDeclarativeJS::AST::ThisExpression *); - virtual bool visit(QDeclarativeJS::AST::IdentifierExpression *); - virtual void endVisit(QDeclarativeJS::AST::IdentifierExpression *); - virtual bool visit(QDeclarativeJS::AST::NullExpression *); - virtual void endVisit(QDeclarativeJS::AST::NullExpression *); - virtual bool visit(QDeclarativeJS::AST::TrueLiteral *); - virtual void endVisit(QDeclarativeJS::AST::TrueLiteral *); - virtual bool visit(QDeclarativeJS::AST::FalseLiteral *); - virtual void endVisit(QDeclarativeJS::AST::FalseLiteral *); - virtual bool visit(QDeclarativeJS::AST::NumericLiteral *); - virtual void endVisit(QDeclarativeJS::AST::NumericLiteral *); - virtual bool visit(QDeclarativeJS::AST::StringLiteral *); - virtual void endVisit(QDeclarativeJS::AST::StringLiteral *); - virtual bool visit(QDeclarativeJS::AST::RegExpLiteral *); - virtual void endVisit(QDeclarativeJS::AST::RegExpLiteral *); - virtual bool visit(QDeclarativeJS::AST::ArrayLiteral *); - virtual void endVisit(QDeclarativeJS::AST::ArrayLiteral *); virtual bool visit(QDeclarativeJS::AST::ObjectLiteral *); virtual void endVisit(QDeclarativeJS::AST::ObjectLiteral *); virtual bool visit(QDeclarativeJS::AST::ElementList *); - virtual void endVisit(QDeclarativeJS::AST::ElementList *); - virtual bool visit(QDeclarativeJS::AST::Elision *); - virtual void endVisit(QDeclarativeJS::AST::Elision *); - virtual bool visit(QDeclarativeJS::AST::PropertyNameAndValueList *); - virtual void endVisit(QDeclarativeJS::AST::PropertyNameAndValueList *); - - virtual bool visit(QDeclarativeJS::AST::NestedExpression *); - virtual void endVisit(QDeclarativeJS::AST::NestedExpression *); - - virtual bool visit(QDeclarativeJS::AST::IdentifierPropertyName *); - virtual void endVisit(QDeclarativeJS::AST::IdentifierPropertyName *); - - virtual bool visit(QDeclarativeJS::AST::StringLiteralPropertyName *); - virtual void endVisit(QDeclarativeJS::AST::StringLiteralPropertyName *); - - virtual bool visit(QDeclarativeJS::AST::NumericLiteralPropertyName *); - virtual void endVisit(QDeclarativeJS::AST::NumericLiteralPropertyName *); - virtual bool visit(QDeclarativeJS::AST::ArrayMemberExpression *); - virtual void endVisit(QDeclarativeJS::AST::ArrayMemberExpression *); - virtual bool visit(QDeclarativeJS::AST::FieldMemberExpression *); - virtual void endVisit(QDeclarativeJS::AST::FieldMemberExpression *); - virtual bool visit(QDeclarativeJS::AST::NewMemberExpression *); - virtual void endVisit(QDeclarativeJS::AST::NewMemberExpression *); - virtual bool visit(QDeclarativeJS::AST::NewExpression *); - virtual void endVisit(QDeclarativeJS::AST::NewExpression *); - - virtual bool visit(QDeclarativeJS::AST::CallExpression *); - virtual void endVisit(QDeclarativeJS::AST::CallExpression *); - virtual bool visit(QDeclarativeJS::AST::ArgumentList *); - virtual void endVisit(QDeclarativeJS::AST::ArgumentList *); - virtual bool visit(QDeclarativeJS::AST::PostIncrementExpression *); - virtual void endVisit(QDeclarativeJS::AST::PostIncrementExpression *); - virtual bool visit(QDeclarativeJS::AST::PostDecrementExpression *); - virtual void endVisit(QDeclarativeJS::AST::PostDecrementExpression *); - virtual bool visit(QDeclarativeJS::AST::DeleteExpression *); - virtual void endVisit(QDeclarativeJS::AST::DeleteExpression *); - virtual bool visit(QDeclarativeJS::AST::VoidExpression *); - virtual void endVisit(QDeclarativeJS::AST::VoidExpression *); - virtual bool visit(QDeclarativeJS::AST::TypeOfExpression *); - virtual void endVisit(QDeclarativeJS::AST::TypeOfExpression *); - virtual bool visit(QDeclarativeJS::AST::PreIncrementExpression *); - virtual void endVisit(QDeclarativeJS::AST::PreIncrementExpression *); - virtual bool visit(QDeclarativeJS::AST::PreDecrementExpression *); - virtual void endVisit(QDeclarativeJS::AST::PreDecrementExpression *); - virtual bool visit(QDeclarativeJS::AST::UnaryPlusExpression *); - virtual void endVisit(QDeclarativeJS::AST::UnaryPlusExpression *); - virtual bool visit(QDeclarativeJS::AST::UnaryMinusExpression *); - virtual void endVisit(QDeclarativeJS::AST::UnaryMinusExpression *); - virtual bool visit(QDeclarativeJS::AST::TildeExpression *); - virtual void endVisit(QDeclarativeJS::AST::TildeExpression *); - virtual bool visit(QDeclarativeJS::AST::NotExpression *); - virtual void endVisit(QDeclarativeJS::AST::NotExpression *); - virtual bool visit(QDeclarativeJS::AST::BinaryExpression *); - virtual void endVisit(QDeclarativeJS::AST::BinaryExpression *); - virtual bool visit(QDeclarativeJS::AST::ConditionalExpression *); - virtual void endVisit(QDeclarativeJS::AST::ConditionalExpression *); - virtual bool visit(QDeclarativeJS::AST::Expression *); - virtual void endVisit(QDeclarativeJS::AST::Expression *); virtual bool visit(QDeclarativeJS::AST::Block *); virtual void endVisit(QDeclarativeJS::AST::Block *); - virtual bool visit(QDeclarativeJS::AST::StatementList *); - virtual void endVisit(QDeclarativeJS::AST::StatementList *); - virtual bool visit(QDeclarativeJS::AST::VariableStatement *); - virtual void endVisit(QDeclarativeJS::AST::VariableStatement *); - virtual bool visit(QDeclarativeJS::AST::VariableDeclarationList *); - virtual void endVisit(QDeclarativeJS::AST::VariableDeclarationList *); - virtual bool visit(QDeclarativeJS::AST::VariableDeclaration *); - virtual void endVisit(QDeclarativeJS::AST::VariableDeclaration *); - virtual bool visit(QDeclarativeJS::AST::EmptyStatement *); - virtual void endVisit(QDeclarativeJS::AST::EmptyStatement *); - virtual bool visit(QDeclarativeJS::AST::ExpressionStatement *); - virtual void endVisit(QDeclarativeJS::AST::ExpressionStatement *); - virtual bool visit(QDeclarativeJS::AST::IfStatement *); - virtual void endVisit(QDeclarativeJS::AST::IfStatement *); - virtual bool visit(QDeclarativeJS::AST::DoWhileStatement *); - virtual void endVisit(QDeclarativeJS::AST::DoWhileStatement *); - virtual bool visit(QDeclarativeJS::AST::WhileStatement *); - virtual void endVisit(QDeclarativeJS::AST::WhileStatement *); - virtual bool visit(QDeclarativeJS::AST::ForStatement *); - virtual void endVisit(QDeclarativeJS::AST::ForStatement *); - virtual bool visit(QDeclarativeJS::AST::LocalForStatement *); - virtual void endVisit(QDeclarativeJS::AST::LocalForStatement *); - virtual bool visit(QDeclarativeJS::AST::ForEachStatement *); - virtual void endVisit(QDeclarativeJS::AST::ForEachStatement *); - virtual bool visit(QDeclarativeJS::AST::LocalForEachStatement *); - virtual void endVisit(QDeclarativeJS::AST::LocalForEachStatement *); - virtual bool visit(QDeclarativeJS::AST::ContinueStatement *); - virtual void endVisit(QDeclarativeJS::AST::ContinueStatement *); - virtual bool visit(QDeclarativeJS::AST::BreakStatement *); - virtual void endVisit(QDeclarativeJS::AST::BreakStatement *); - virtual bool visit(QDeclarativeJS::AST::ReturnStatement *); - virtual void endVisit(QDeclarativeJS::AST::ReturnStatement *); - virtual bool visit(QDeclarativeJS::AST::WithStatement *); - virtual void endVisit(QDeclarativeJS::AST::WithStatement *); virtual bool visit(QDeclarativeJS::AST::CaseBlock *); virtual void endVisit(QDeclarativeJS::AST::CaseBlock *); virtual bool visit(QDeclarativeJS::AST::SwitchStatement *); - virtual void endVisit(QDeclarativeJS::AST::SwitchStatement *); - - virtual bool visit(QDeclarativeJS::AST::CaseClauses *); - virtual void endVisit(QDeclarativeJS::AST::CaseClauses *); - virtual bool visit(QDeclarativeJS::AST::CaseClause *); - virtual void endVisit(QDeclarativeJS::AST::CaseClause *); - virtual bool visit(QDeclarativeJS::AST::DefaultClause *); - virtual void endVisit(QDeclarativeJS::AST::DefaultClause *); - virtual bool visit(QDeclarativeJS::AST::LabelledStatement *); - virtual void endVisit(QDeclarativeJS::AST::LabelledStatement *); - virtual bool visit(QDeclarativeJS::AST::ThrowStatement *); - virtual void endVisit(QDeclarativeJS::AST::ThrowStatement *); - virtual bool visit(QDeclarativeJS::AST::TryStatement *); - virtual void endVisit(QDeclarativeJS::AST::TryStatement *); - virtual bool visit(QDeclarativeJS::AST::Catch *); - virtual void endVisit(QDeclarativeJS::AST::Catch *); - virtual bool visit(QDeclarativeJS::AST::Finally *); - virtual void endVisit(QDeclarativeJS::AST::Finally *); - virtual bool visit(QDeclarativeJS::AST::FunctionDeclaration *); - virtual void endVisit(QDeclarativeJS::AST::FunctionDeclaration *); - virtual bool visit(QDeclarativeJS::AST::FunctionExpression *); - virtual void endVisit(QDeclarativeJS::AST::FunctionExpression *); - virtual bool visit(QDeclarativeJS::AST::FormalParameterList *); - virtual void endVisit(QDeclarativeJS::AST::FormalParameterList *); - - virtual bool visit(QDeclarativeJS::AST::FunctionBody *); - virtual void endVisit(QDeclarativeJS::AST::FunctionBody *); - - virtual bool visit(QDeclarativeJS::AST::Program *); - virtual void endVisit(QDeclarativeJS::AST::Program *); - - virtual bool visit(QDeclarativeJS::AST::SourceElements *); - virtual void endVisit(QDeclarativeJS::AST::SourceElements *); - - virtual bool visit(QDeclarativeJS::AST::FunctionSourceElement *); - virtual void endVisit(QDeclarativeJS::AST::FunctionSourceElement *); - - virtual bool visit(QDeclarativeJS::AST::StatementSourceElement *); - virtual void endVisit(QDeclarativeJS::AST::StatementSourceElement *); - virtual bool visit(QDeclarativeJS::AST::DebuggerStatement *); - virtual void endVisit(QDeclarativeJS::AST::DebuggerStatement *); - - virtual bool visit(QDeclarativeJS::AST::UiParameterList *); - virtual void endVisit(QDeclarativeJS::AST::UiParameterList *); protected: QString protect(const QString &string); @@ -333,8 +164,6 @@ private: QString output; quint32 cursor; quint32 commentIndex; - int indent; - QString debug; }; QT_END_NAMESPACE -- cgit v0.12 From 3773bf874b3c9bd8b5a01984091768481c7b4e65 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 2 Dec 2010 20:37:52 +0100 Subject: Added a specialized version of the QML code marker for JavaScript files. --- tools/qdoc3/jscodemarker.cpp | 129 +++++++++++++++++++++++++++++++++++++++++++ tools/qdoc3/jscodemarker.h | 74 +++++++++++++++++++++++++ tools/qdoc3/main.cpp | 2 + tools/qdoc3/qdoc3.pro | 2 + 4 files changed, 207 insertions(+) create mode 100644 tools/qdoc3/jscodemarker.cpp create mode 100644 tools/qdoc3/jscodemarker.h diff --git a/tools/qdoc3/jscodemarker.cpp b/tools/qdoc3/jscodemarker.cpp new file mode 100644 index 0000000..e3a0ff1 --- /dev/null +++ b/tools/qdoc3/jscodemarker.cpp @@ -0,0 +1,129 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + jscodemarker.cpp +*/ + +#include "private/qdeclarativejsast_p.h" +#include "private/qdeclarativejsengine_p.h" +#include "private/qdeclarativejslexer_p.h" +#include "private/qdeclarativejsnodepool_p.h" +#include "private/qdeclarativejsparser_p.h" + +#include "atom.h" +#include "node.h" +#include "jscodemarker.h" +#include "qmlmarkupvisitor.h" +#include "text.h" +#include "tree.h" + +QT_BEGIN_NAMESPACE + +JsCodeMarker::JsCodeMarker() +{ +} + +JsCodeMarker::~JsCodeMarker() +{ +} + +/*! + Returns true if the \a code is recognized by the parser. + */ +bool JsCodeMarker::recognizeCode(const QString &code) +{ + QDeclarativeJS::Engine engine; + QDeclarativeJS::Lexer lexer(&engine); + QDeclarativeJS::Parser parser(&engine); + QDeclarativeJS::NodePool m_nodePool("", &engine); + lexer.setCode(code, 1); + + return parser.parseProgram(); +} + +/*! + Returns true if \a ext is any of a list of file extensions + for the QML language. + */ +bool JsCodeMarker::recognizeExtension(const QString &ext) +{ + return ext == "js"; +} + +/*! + Returns true if the \a language is recognized. Only "QML" is + recognized by this marker. + */ +bool JsCodeMarker::recognizeLanguage(const QString &language) +{ + return language == "JavaScript" || language == "ECMAScript"; +} + +QString JsCodeMarker::markedUpCode(const QString &code, + const Node *relative, + const QString &dirPath) +{ + return addMarkUp(code, relative, dirPath); +} + +QString JsCodeMarker::addMarkUp(const QString &code, + const Node * /* relative */, + const QString &dirPath) +{ + QDeclarativeJS::Engine engine; + QDeclarativeJS::Lexer lexer(&engine); + lexer.setCode(code, 1); + + QDeclarativeJS::Parser parser(&engine); + QDeclarativeJS::NodePool m_nodePool("", &engine); + QString output; + + if (parser.parseProgram()) { + QDeclarativeJS::AST::Node *ast = parser.rootNode(); + QmlMarkupVisitor visitor(code, &engine); + QDeclarativeJS::AST::Node::accept(ast, &visitor); + output = visitor.markedUpCode(); + } + return output; +} + +QT_END_NAMESPACE diff --git a/tools/qdoc3/jscodemarker.h b/tools/qdoc3/jscodemarker.h new file mode 100644 index 0000000..f7cb025 --- /dev/null +++ b/tools/qdoc3/jscodemarker.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + jscodemarker.h +*/ + +#ifndef JSCODEMARKER_H +#define JSCODEMARKER_H + +#include "qmlcodemarker.h" + +QT_BEGIN_NAMESPACE + +class JsCodeMarker : public QmlCodeMarker +{ +public: + JsCodeMarker(); + ~JsCodeMarker(); + + virtual bool recognizeCode(const QString &code); + virtual bool recognizeExtension(const QString &ext); + virtual bool recognizeLanguage(const QString &language); + + virtual QString markedUpCode(const QString &code, + const Node *relative, + const QString &dirPath); + +private: + QString addMarkUp(const QString &code, const Node * /* relative */, + const QString & /* dirPath */); +}; + +QT_END_NAMESPACE + +#endif diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index 68b5370..782df39 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -53,6 +53,7 @@ #include "ditaxmlgenerator.h" #include "doc.h" #include "htmlgenerator.h" +#include "jscodemarker.h" #include "plaincodemarker.h" #include "puredocparser.h" #include "qmlcodemarker.h" @@ -368,6 +369,7 @@ int main(int argc, char **argv) */ PlainCodeMarker plainMarker; CppCodeMarker cppMarker; + JsCodeMarker jsMarker; QmlCodeMarker qmlMarker; HtmlGenerator htmlGenerator; diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro index 23ff7bd..4bc6bca 100644 --- a/tools/qdoc3/qdoc3.pro +++ b/tools/qdoc3/qdoc3.pro @@ -37,6 +37,7 @@ HEADERS += atom.h \ generator.h \ helpprojectwriter.h \ htmlgenerator.h \ + jscodemarker.h \ location.h \ node.h \ openedlist.h \ @@ -66,6 +67,7 @@ SOURCES += atom.cpp \ generator.cpp \ helpprojectwriter.cpp \ htmlgenerator.cpp \ + jscodemarker.cpp \ location.cpp \ main.cpp \ node.cpp \ -- cgit v0.12 From 6f1e732ff0838461be262fa0b86697fab5d8f5b2 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 3 Dec 2010 14:39:30 +0100 Subject: Minor housekeeping changes. --- tools/qdoc3/jscodemarker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qdoc3/jscodemarker.cpp b/tools/qdoc3/jscodemarker.cpp index e3a0ff1..8b6a31d 100644 --- a/tools/qdoc3/jscodemarker.cpp +++ b/tools/qdoc3/jscodemarker.cpp @@ -107,7 +107,7 @@ QString JsCodeMarker::markedUpCode(const QString &code, QString JsCodeMarker::addMarkUp(const QString &code, const Node * /* relative */, - const QString &dirPath) + const QString & /* dirPath */) { QDeclarativeJS::Engine engine; QDeclarativeJS::Lexer lexer(&engine); -- cgit v0.12 From 94cccc8b971eda3e0330950111c7988f3dd87309 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 6 Dec 2010 18:48:51 +0100 Subject: Removed QDebug includes. --- tools/qdoc3/helpprojectwriter.cpp | 2 -- tools/qdoc3/tokenizer.cpp | 1 - tools/qdoc3/tree.cpp | 1 - 3 files changed, 4 deletions(-) diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp index 63e8df7..6253c58 100644 --- a/tools/qdoc3/helpprojectwriter.cpp +++ b/tools/qdoc3/helpprojectwriter.cpp @@ -41,7 +41,6 @@ #include #include -//#include #include "atom.h" #include "helpprojectwriter.h" @@ -49,7 +48,6 @@ #include "config.h" #include "node.h" #include "tree.h" -#include QT_BEGIN_NAMESPACE diff --git a/tools/qdoc3/tokenizer.cpp b/tools/qdoc3/tokenizer.cpp index 05ad5ee..6e7da20 100644 --- a/tools/qdoc3/tokenizer.cpp +++ b/tools/qdoc3/tokenizer.cpp @@ -42,7 +42,6 @@ #include "config.h" #include "tokenizer.h" -#include #include #include #include diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index 20c1373..ceb1f0f 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -54,7 +54,6 @@ #include "tree.h" #include -#include QT_BEGIN_NAMESPACE -- cgit v0.12 From 6834727fff1f74e15b2c9f25af1845e7f529afaa Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 6 Dec 2010 18:49:17 +0100 Subject: Forced the \qml command to use the QML code marker. --- tools/qdoc3/doc.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp index 4152207..f153dfb 100644 --- a/tools/qdoc3/doc.cpp +++ b/tools/qdoc3/doc.cpp @@ -549,7 +549,7 @@ void DocParser::parse(const QString& source, #ifdef QDOC_QML case CMD_QML: leavePara(); - append(Atom::Qml, getCode(CMD_QML, marker)); + append(Atom::Qml, getCode(CMD_QML, CodeMarker::markerForLanguage(QLatin1String("QML")))); break; case CMD_QMLTEXT: append(Atom::QmlText); @@ -2252,7 +2252,8 @@ QString DocParser::getCode(int cmd, CodeMarker *marker) if (indent < minIndent) minIndent = indent; code = unindent(minIndent, code); - marker = CodeMarker::markerForCode(code); + if (!marker) + marker = CodeMarker::markerForCode(code); return marker->markedUpCode(code, 0, ""); } -- cgit v0.12 From bb6d5d9eb2a40de14ab3a41fbdaf4092c1a3b4e8 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 6 Dec 2010 18:52:38 +0100 Subject: Added missing qmlcodemarker.cpp and qmlcodemarker.h files. Added code to remove pragmas before parsing and add them to the output. The extractPragmas() function was copied into both qmlcodeparser.cpp and qmlcodemarker.cpp from src/declarative/qml/qdeclarativescriptparser.cpp, and was modified to return either nothing (for the API parser) or a list of removed pragmas (for the code marker). --- tools/qdoc3/jscodemarker.cpp | 14 +- tools/qdoc3/qmlcodemarker.cpp | 287 +++++++++++++++++++++++++++++++++++++++ tools/qdoc3/qmlcodemarker.h | 85 ++++++++++++ tools/qdoc3/qmlcodeparser.cpp | 71 +++++++++- tools/qdoc3/qmlcodeparser.h | 3 + tools/qdoc3/qmlmarkupvisitor.cpp | 75 +++++++--- tools/qdoc3/qmlmarkupvisitor.h | 13 +- 7 files changed, 523 insertions(+), 25 deletions(-) create mode 100644 tools/qdoc3/qmlcodemarker.cpp create mode 100644 tools/qdoc3/qmlcodemarker.h diff --git a/tools/qdoc3/jscodemarker.cpp b/tools/qdoc3/jscodemarker.cpp index 8b6a31d..84a28c6 100644 --- a/tools/qdoc3/jscodemarker.cpp +++ b/tools/qdoc3/jscodemarker.cpp @@ -75,7 +75,10 @@ bool JsCodeMarker::recognizeCode(const QString &code) QDeclarativeJS::Lexer lexer(&engine); QDeclarativeJS::Parser parser(&engine); QDeclarativeJS::NodePool m_nodePool("", &engine); - lexer.setCode(code, 1); + + QString newCode = code; + QList pragmas = extractPragmas(newCode); + lexer.setCode(newCode, 1); return parser.parseProgram(); } @@ -111,7 +114,10 @@ QString JsCodeMarker::addMarkUp(const QString &code, { QDeclarativeJS::Engine engine; QDeclarativeJS::Lexer lexer(&engine); - lexer.setCode(code, 1); + + QString newCode = code; + QList pragmas = extractPragmas(newCode); + lexer.setCode(newCode, 1); QDeclarativeJS::Parser parser(&engine); QDeclarativeJS::NodePool m_nodePool("", &engine); @@ -119,7 +125,9 @@ QString JsCodeMarker::addMarkUp(const QString &code, if (parser.parseProgram()) { QDeclarativeJS::AST::Node *ast = parser.rootNode(); - QmlMarkupVisitor visitor(code, &engine); + // Pass the unmodified code to the visitor so that pragmas and other + // unhandled source text can be output. + QmlMarkupVisitor visitor(code, pragmas, &engine); QDeclarativeJS::AST::Node::accept(ast, &visitor); output = visitor.markedUpCode(); } diff --git a/tools/qdoc3/qmlcodemarker.cpp b/tools/qdoc3/qmlcodemarker.cpp new file mode 100644 index 0000000..1e4ad1e --- /dev/null +++ b/tools/qdoc3/qmlcodemarker.cpp @@ -0,0 +1,287 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + qmlcodemarker.cpp +*/ + +#include "private/qdeclarativejsast_p.h" +#include "private/qdeclarativejsastfwd_p.h" +#include "private/qdeclarativejsengine_p.h" +#include "private/qdeclarativejslexer_p.h" +#include "private/qdeclarativejsnodepool_p.h" +#include "private/qdeclarativejsparser_p.h" + +#include "atom.h" +#include "node.h" +#include "qmlcodemarker.h" +#include "qmlmarkupvisitor.h" +#include "text.h" +#include "tree.h" + +QT_BEGIN_NAMESPACE + +QmlCodeMarker::QmlCodeMarker() +{ +} + +QmlCodeMarker::~QmlCodeMarker() +{ +} + +/*! + Returns true if the \a code is recognized by the parser. + */ +bool QmlCodeMarker::recognizeCode(const QString &code) +{ + QDeclarativeJS::Engine engine; + QDeclarativeJS::Lexer lexer(&engine); + QDeclarativeJS::Parser parser(&engine); + QDeclarativeJS::NodePool m_nodePool("", &engine); + + QString newCode = code; + extractPragmas(newCode); + lexer.setCode(newCode, 1); + + return parser.parse(); +} + +/*! + Returns true if \a ext is any of a list of file extensions + for the QML language. + */ +bool QmlCodeMarker::recognizeExtension(const QString &ext) +{ + return ext == "qml"; +} + +/*! + Returns true if the \a language is recognized. Only "QML" is + recognized by this marker. + */ +bool QmlCodeMarker::recognizeLanguage(const QString &language) +{ + return language == "QML"; +} + +/*! + Returns the name of the \a node. Method names include are returned with a + trailing set of parentheses. + */ +QString QmlCodeMarker::plainName(const Node *node) +{ + QString name = node->name(); + if (node->type() == Node::QmlMethod) + name += "()"; + return name; +} + +QString QmlCodeMarker::plainFullName(const Node *node, const Node *relative) +{ + if (node->name().isEmpty()) { + return "global"; + } + else { + QString fullName; + while (node) { + fullName.prepend(plainName(node)); + if (node->parent() == relative || node->parent()->name().isEmpty()) + break; + fullName.prepend("::"); + node = node->parent(); + } + return fullName; + } +} + +QString QmlCodeMarker::markedUpCode(const QString &code, + const Node *relative, + const QString &dirPath) +{ + return addMarkUp(code, relative, dirPath); +} + +QString QmlCodeMarker::markedUpName(const Node *node) +{ + QString name = linkTag(node, taggedNode(node)); + if (node->type() == Node::QmlMethod) + name += "()"; + return name; +} + +QString QmlCodeMarker::markedUpFullName(const Node *node, const Node *relative) +{ + if (node->name().isEmpty()) { + return "global"; + } + else { + QString fullName; + for (;;) { + fullName.prepend(markedUpName(node)); + if (node->parent() == relative || node->parent()->name().isEmpty()) + break; + fullName.prepend("<@op>::"); + node = node->parent(); + } + return fullName; + } +} + +QString QmlCodeMarker::markedUpIncludes(const QStringList& includes) +{ + QString code; + + QStringList::ConstIterator inc = includes.begin(); + while (inc != includes.end()) { + code += "import " + *inc + "\n"; + ++inc; + } + return protect(addMarkUp(code, 0, "")); +} + +QString QmlCodeMarker::functionBeginRegExp(const QString& funcName) +{ + return "^" + QRegExp::escape("function " + funcName) + "$"; + +} + +QString QmlCodeMarker::functionEndRegExp(const QString& /* funcName */) +{ + return "^\\}$"; +} + +QString QmlCodeMarker::addMarkUp(const QString &code, + const Node * /* relative */, + const QString & /* dirPath */) +{ + QDeclarativeJS::Engine engine; + QDeclarativeJS::Lexer lexer(&engine); + + QString newCode = code; + QList pragmas = extractPragmas(newCode); + lexer.setCode(newCode, 1); + + QDeclarativeJS::Parser parser(&engine); + QDeclarativeJS::NodePool m_nodePool("", &engine); + QString output; + + if (parser.parse()) { + QDeclarativeJS::AST::UiProgram *ast = parser.ast(); + // Pass the unmodified code to the visitor so that pragmas and other + // unhandled source text can be output. + QmlMarkupVisitor visitor(code, pragmas, &engine); + QDeclarativeJS::AST::Node::accept(ast, &visitor); + output = visitor.markedUpCode(); + } + return output; +} + +/* +Copied and pasted from src/declarative/qml/qdeclarativescriptparser.cpp. +*/ +static void replaceWithSpace(QString &str, int idx, int n) +{ + QChar *data = str.data() + idx; + const QChar space(QLatin1Char(' ')); + for (int ii = 0; ii < n; ++ii) + *data++ = space; +} + +/* +Copied and pasted from src/declarative/qml/qdeclarativescriptparser.cpp then +modified to return a list of removed pragmas. + +Searches for ".pragma " declarations within \a script. Currently supported pragmas +are: + library +*/ +QList QmlCodeMarker::extractPragmas(QString &script) +{ + const QString pragma(QLatin1String("pragma")); + const QString library(QLatin1String("library")); + QList removed; + + QDeclarativeJS::Lexer l(0); + l.setCode(script, 0); + + int token = l.lex(); + + while (true) { + if (token != QDeclarativeJSGrammar::T_DOT) + return removed; + + int startOffset = l.tokenOffset(); + int startLine = l.currentLineNo(); + int startColumn = l.currentColumnNo(); + + token = l.lex(); + + if (token != QDeclarativeJSGrammar::T_IDENTIFIER || + l.currentLineNo() != startLine || + script.mid(l.tokenOffset(), l.tokenLength()) != pragma) + return removed; + + token = l.lex(); + + if (token != QDeclarativeJSGrammar::T_IDENTIFIER || + l.currentLineNo() != startLine) + return removed; + + QString pragmaValue = script.mid(l.tokenOffset(), l.tokenLength()); + int endOffset = l.tokenLength() + l.tokenOffset(); + + token = l.lex(); + if (l.currentLineNo() == startLine) + return removed; + + if (pragmaValue == QLatin1String("library")) { + replaceWithSpace(script, startOffset, endOffset - startOffset); + removed.append( + QDeclarativeJS::AST::SourceLocation( + startOffset, endOffset - startOffset, + startLine, startColumn)); + } else + return removed; + } + return removed; +} + +QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlcodemarker.h b/tools/qdoc3/qmlcodemarker.h new file mode 100644 index 0000000..68e6753 --- /dev/null +++ b/tools/qdoc3/qmlcodemarker.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** 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 tools applications 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$ +** +****************************************************************************/ + +/* + qmlcodemarker.h +*/ + +#ifndef QMLCODEMARKER_H +#define QMLCODEMARKER_H + +#include "private/qdeclarativejsastfwd_p.h" +#include "cppcodemarker.h" + +QT_BEGIN_NAMESPACE + +class QmlCodeMarker : public CppCodeMarker +{ +public: + QmlCodeMarker(); + ~QmlCodeMarker(); + + virtual bool recognizeCode(const QString &code); + virtual bool recognizeExtension(const QString &ext); + virtual bool recognizeLanguage(const QString &language); + virtual QString plainName(const Node *node); + virtual QString plainFullName(const Node *node, const Node *relative); + virtual QString markedUpCode(const QString &code, + const Node *relative, + const QString &dirPath); + + virtual QString markedUpName(const Node *node); + virtual QString markedUpFullName(const Node *node, const Node *relative); + virtual QString markedUpIncludes(const QStringList &includes); + virtual QString functionBeginRegExp(const QString &funcName); + virtual QString functionEndRegExp(const QString &funcName); + + /* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */ + QList extractPragmas(QString &script); + +private: + QString addMarkUp(const QString &code, const Node * /* relative */, + const QString & /* dirPath */); +}; + +QT_END_NAMESPACE + +#endif diff --git a/tools/qdoc3/qmlcodeparser.cpp b/tools/qdoc3/qmlcodeparser.cpp index 329912c..9c1d4ee 100644 --- a/tools/qdoc3/qmlcodeparser.cpp +++ b/tools/qdoc3/qmlcodeparser.cpp @@ -118,7 +118,10 @@ void QmlCodeParser::parseSourceFile(const Location& location, in.close(); Location fileLocation(filePath); - lexer->setCode(document, 1); + + QString newCode = document; + extractPragmas(newCode); + lexer->setCode(newCode, 1); QSet topicCommandsAllowed = topicCommands(); QSet otherMetacommandsAllowed = otherMetaCommands(); @@ -129,7 +132,7 @@ void QmlCodeParser::parseSourceFile(const Location& location, if (parser->parse()) { QDeclarativeJS::AST::UiProgram *ast = parser->ast(); - QmlDocVisitor visitor(filePath, document, &engine, tree, metacommandsAllowed); + QmlDocVisitor visitor(filePath, newCode, &engine, tree, metacommandsAllowed); QDeclarativeJS::AST::Node::accept(ast, &visitor); } } @@ -165,4 +168,68 @@ QSet QmlCodeParser::otherMetaCommands() << COMMAND_QMLDEFAULT; } +/* +Copied and pasted from src/declarative/qml/qdeclarativescriptparser.cpp. +*/ +static void replaceWithSpace(QString &str, int idx, int n) +{ + QChar *data = str.data() + idx; + const QChar space(QLatin1Char(' ')); + for (int ii = 0; ii < n; ++ii) + *data++ = space; +} + +/* +Copied and pasted from src/declarative/qml/qdeclarativescriptparser.cpp then +modified to return no values. + +Searches for ".pragma " declarations within \a script. Currently supported pragmas +are: + library +*/ +void QmlCodeParser::extractPragmas(QString &script) +{ + const QString pragma(QLatin1String("pragma")); + const QString library(QLatin1String("library")); + + QDeclarativeJS::Lexer l(0); + l.setCode(script, 0); + + int token = l.lex(); + + while (true) { + if (token != QDeclarativeJSGrammar::T_DOT) + return; + + int startOffset = l.tokenOffset(); + int startLine = l.currentLineNo(); + + token = l.lex(); + + if (token != QDeclarativeJSGrammar::T_IDENTIFIER || + l.currentLineNo() != startLine || + script.mid(l.tokenOffset(), l.tokenLength()) != pragma) + return; + + token = l.lex(); + + if (token != QDeclarativeJSGrammar::T_IDENTIFIER || + l.currentLineNo() != startLine) + return; + + QString pragmaValue = script.mid(l.tokenOffset(), l.tokenLength()); + int endOffset = l.tokenLength() + l.tokenOffset(); + + token = l.lex(); + if (l.currentLineNo() == startLine) + return; + + if (pragmaValue == QLatin1String("library")) + replaceWithSpace(script, startOffset, endOffset - startOffset); + else + return; + } + return; +} + QT_END_NAMESPACE diff --git a/tools/qdoc3/qmlcodeparser.h b/tools/qdoc3/qmlcodeparser.h index a99e8a3..bbacd72 100644 --- a/tools/qdoc3/qmlcodeparser.h +++ b/tools/qdoc3/qmlcodeparser.h @@ -75,6 +75,9 @@ public: const QString& filePath, Tree *tree); virtual void doneParsingSourceFiles(Tree *tree); + /* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */ + void extractPragmas(QString &script); + protected: virtual QSet topicCommands(); virtual QSet otherMetaCommands(); diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp index 907b95d..6bede96 100644 --- a/tools/qdoc3/qmlmarkupvisitor.cpp +++ b/tools/qdoc3/qmlmarkupvisitor.cpp @@ -49,12 +49,42 @@ QT_BEGIN_NAMESPACE -QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, QDeclarativeJS::Engine *engine) +QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, + const QList &pragmas, + QDeclarativeJS::Engine *engine) { this->source = source; this->engine = engine; + cursor = 0; - commentIndex = 0; + extraIndex = 0; + + // Merge the lists of locations of pragmas and comments in the source code. + int i = 0; + int j = 0; + while (i < engine->comments().length() && j < pragmas.length()) { + if (engine->comments()[i].offset < pragmas[j].offset) { + extraTypes.append(Comment); + extraLocations.append(engine->comments()[i]); + ++i; + } else { + extraTypes.append(Pragma); + extraLocations.append(engine->comments()[j]); + ++j; + } + } + + while (i < engine->comments().length()) { + extraTypes.append(Comment); + extraLocations.append(engine->comments()[i]); + ++i; + } + + while (j < pragmas.length()) { + extraTypes.append(Pragma); + extraLocations.append(pragmas[j]); + ++j; + } } QmlMarkupVisitor::~QmlMarkupVisitor() @@ -96,7 +126,7 @@ QString QmlMarkupVisitor::markedUpCode() void QmlMarkupVisitor::addExtra(quint32 start, quint32 finish) { - if (commentIndex >= engine->comments().length()) { + if (extraIndex >= extraLocations.length()) { QString extra = source.mid(start, finish - start); if (extra.trimmed().isEmpty()) output += extra; @@ -107,28 +137,37 @@ void QmlMarkupVisitor::addExtra(quint32 start, quint32 finish) return; } - while (commentIndex < engine->comments().length()) { - if (engine->comments()[commentIndex].offset - 2 >= start) - break; - commentIndex++; + while (extraIndex < extraLocations.length()) { + if (extraTypes[extraIndex] == Comment) { + if (extraLocations[extraIndex].offset - 2 >= start) + break; + } else { + if (extraLocations[extraIndex].offset >= start) + break; + } + extraIndex++; } quint32 i = start; - while (i < finish && commentIndex < engine->comments().length()) { - quint32 j = engine->comments()[commentIndex].offset - 2; + while (i < finish && extraIndex < extraLocations.length()) { + quint32 j = extraLocations[extraIndex].offset - 2; if (i <= j && j < finish) { if (i < j) output += protect(source.mid(i, j - i)); - quint32 l = engine->comments()[commentIndex].length; - if (source.mid(j, 2) == QLatin1String("/*")) - l += 4; - else - l += 2; - output += QLatin1String("<@comment>"); - output += protect(source.mid(j, l)); - output += QLatin1String(""); - commentIndex++; + quint32 l = extraLocations[extraIndex].length; + if (extraTypes[extraIndex] == Comment) { + if (source.mid(j, 2) == QLatin1String("/*")) + l += 4; + else + l += 2; + output += QLatin1String("<@comment>"); + output += protect(source.mid(j, l)); + output += QLatin1String(""); + } else + output += protect(source.mid(j, l)); + + extraIndex++; i = j + l; } else break; diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h index 35f1b5bc..7a9ff22 100644 --- a/tools/qdoc3/qmlmarkupvisitor.h +++ b/tools/qdoc3/qmlmarkupvisitor.h @@ -52,7 +52,14 @@ QT_BEGIN_NAMESPACE class QmlMarkupVisitor : public QDeclarativeJS::AST::Visitor { public: - QmlMarkupVisitor(const QString &code, QDeclarativeJS::Engine *engine); + enum ExtraType{ + Comment, + Pragma + }; + + QmlMarkupVisitor(const QString &code, + const QList &pragmas, + QDeclarativeJS::Engine *engine); virtual ~QmlMarkupVisitor(); QString markedUpCode(); @@ -160,10 +167,12 @@ private: QString sourceText(QDeclarativeJS::AST::SourceLocation &location); QDeclarativeJS::Engine *engine; + QList extraTypes; + QList extraLocations; QString source; QString output; quint32 cursor; - quint32 commentIndex; + int extraIndex; }; QT_END_NAMESPACE -- cgit v0.12