From 1e7b4e396ec3bacc1a769208b990c5e0450f0d3a Mon Sep 17 00:00:00 2001
From: Friedemann Kleint
Date: Fri, 26 Nov 2010 10:41:38 +0100
Subject: Declarative: Fix compiler warnings (Linux/g++)
Reviewed-by: Kai Koehne
---
src/declarative/debugger/qdeclarativedebugservice.cpp | 8 +++++---
src/declarative/qml/qdeclarativeengine.cpp | 3 ++-
src/declarative/qml/qdeclarativepropertycache.cpp | 1 +
src/declarative/util/qdeclarativepixmapcache.cpp | 2 +-
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp
index 8c86ae8..41a6962 100644
--- a/src/declarative/debugger/qdeclarativedebugservice.cpp
+++ b/src/declarative/debugger/qdeclarativedebugservice.cpp
@@ -226,9 +226,11 @@ QDeclarativeDebugServer *QDeclarativeDebugServer::instance()
server->waitForConnection();
}
} else {
- qWarning(QString::fromAscii("QDeclarativeDebugServer: Ignoring \"-qmljsdebugger=%1\". "
- "Format is -qmljsdebugger=port:[,block]").arg(
- appD->qmljsDebugArgumentsString()).toAscii().constData());
+ const QString message =
+ QString::fromAscii("QDeclarativeDebugServer: Ignoring \"-qmljsdebugger=%1\". "
+ "Format is -qmljsdebugger=port:[,block]").
+ arg(appD->qmljsDebugArgumentsString());
+ qWarning("%s", qPrintable(message));
}
}
#endif
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 808ba68..19dfcea 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -2225,8 +2225,9 @@ 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..af3d53f 100644
--- a/src/declarative/qml/qdeclarativepropertycache.cpp
+++ b/src/declarative/qml/qdeclarativepropertycache.cpp
@@ -321,6 +321,7 @@ void QDeclarativePropertyCache::update(QDeclarativeEngine *engine, const QMetaOb
Q_ASSERT(engine);
Q_ASSERT(metaObject);
QDeclarativeEnginePrivate *enginePriv = QDeclarativeEnginePrivate::get(engine);
+ Q_UNUSED(enginePriv)
clear();
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 2d7464febd762203a9bbfc6e202913eb93253f98 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint
Date: Fri, 26 Nov 2010 10:45:17 +0100
Subject: Fix whitespace in previous 1e7b4e396ec3bacc1a769208b990c5e0450f0d3a
---
src/declarative/debugger/qdeclarativedebugservice.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp
index 41a6962..849df73 100644
--- a/src/declarative/debugger/qdeclarativedebugservice.cpp
+++ b/src/declarative/debugger/qdeclarativedebugservice.cpp
@@ -226,7 +226,7 @@ QDeclarativeDebugServer *QDeclarativeDebugServer::instance()
server->waitForConnection();
}
} else {
- const QString message =
+ const QString message =
QString::fromAscii("QDeclarativeDebugServer: Ignoring \"-qmljsdebugger=%1\". "
"Format is -qmljsdebugger=port:[,block]").
arg(appD->qmljsDebugArgumentsString());
--
cgit v0.12
From a061f032bc36f03d31ba39d2565857d1a14d9112 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20R=C3=B8dal?=
Date: Fri, 26 Nov 2010 12:45:08 +0100
Subject: Fixed OpenGL state getting out of sync.
Forward begin / endNativePainting from the emulation paint engine.
Task-number: QTBUG-15498
Reviewed-by: Gunnar Sletta
---
src/gui/painting/qemulationpaintengine.cpp | 9 +++++++++
src/gui/painting/qemulationpaintengine_p.h | 3 +++
2 files changed, 12 insertions(+)
diff --git a/src/gui/painting/qemulationpaintengine.cpp b/src/gui/painting/qemulationpaintengine.cpp
index 0510b10..714d5de 100644
--- a/src/gui/painting/qemulationpaintengine.cpp
+++ b/src/gui/painting/qemulationpaintengine.cpp
@@ -268,6 +268,15 @@ void QEmulationPaintEngine::setState(QPainterState *s)
real_engine->setState(s);
}
+void QEmulationPaintEngine::beginNativePainting()
+{
+ real_engine->beginNativePainting();
+}
+
+void QEmulationPaintEngine::endNativePainting()
+{
+ real_engine->endNativePainting();
+}
void QEmulationPaintEngine::fillBGRect(const QRectF &r)
{
diff --git a/src/gui/painting/qemulationpaintengine_p.h b/src/gui/painting/qemulationpaintengine_p.h
index 5835f10..e283645 100644
--- a/src/gui/painting/qemulationpaintengine_p.h
+++ b/src/gui/painting/qemulationpaintengine_p.h
@@ -93,6 +93,9 @@ public:
virtual void setState(QPainterState *s);
+ virtual void beginNativePainting();
+ virtual void endNativePainting();
+
virtual uint flags() const {return QPaintEngineEx::IsEmulationEngine | QPaintEngineEx::DoNotEmulate;}
inline QPainterState *state() { return (QPainterState *)QPaintEngine::state; }
--
cgit v0.12
From b604dc0b77a3a4b9001d682925006a3438e00cb7 Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Thu, 25 Nov 2010 10:56:20 +1000
Subject: Move KeyNavigation example to snippets, plus some doc rewording
---
doc/src/snippets/declarative/keynavigation.qml | 45 ++++++++++++++
src/declarative/graphicsitems/qdeclarativeitem.cpp | 72 +++++++---------------
2 files changed, 66 insertions(+), 51 deletions(-)
create mode 100644 doc/src/snippets/declarative/keynavigation.qml
diff --git a/doc/src/snippets/declarative/keynavigation.qml b/doc/src/snippets/declarative/keynavigation.qml
new file mode 100644
index 0000000..d72bb3a
--- /dev/null
+++ b/doc/src/snippets/declarative/keynavigation.qml
@@ -0,0 +1,45 @@
+//![0]
+import QtQuick 1.0
+
+Grid {
+ width: 100; height: 100
+ columns: 2
+
+ Rectangle {
+ id: topLeft
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+ focus: true
+
+ KeyNavigation.right: topRight
+ KeyNavigation.down: bottomLeft
+ }
+
+ Rectangle {
+ id: topRight
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+
+ KeyNavigation.left: topLeft
+ KeyNavigation.down: bottomRight
+ }
+
+ Rectangle {
+ id: bottomLeft
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+
+ KeyNavigation.right: bottomRight
+ KeyNavigation.up: topLeft
+ }
+
+ Rectangle {
+ id: bottomRight
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+
+ KeyNavigation.left: bottomLeft
+ KeyNavigation.up: topRight
+ }
+}
+//![0]
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index e0df751..9d6fe12 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -421,58 +421,28 @@ void QDeclarativeItemKeyFilter::componentComplete()
\since 4.7
\brief The KeyNavigation attached property supports key navigation by arrow keys.
- It is common in key-based UIs to use arrow keys to navigate
- between focused items. The KeyNavigation property provides a
- convenient way of specifying which item will gain focus
- when an arrow key is pressed. The following example provides
- key navigation for a 2x2 grid of items.
-
- \code
- Grid {
- columns: 2
- width: 100; height: 100
- Rectangle {
- id: item1
- focus: true
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.right: item2
- KeyNavigation.down: item3
- }
- Rectangle {
- id: item2
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.left: item1
- KeyNavigation.down: item4
- }
- Rectangle {
- id: item3
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.right: item4
- KeyNavigation.up: item1
- }
- Rectangle {
- id: item4
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.left: item3
- KeyNavigation.up: item2
- }
- }
- \endcode
+ Key-based user interfaces commonly allow the use of arrow keys to navigate between
+ focusable items. The KeyNavigation attached property enables this behavior by providing a
+ convenient way to specify the item that should gain focus when an arrow or tab key is pressed.
+
+ The following example provides key navigation for a 2x2 grid of items:
- By default KeyNavigation receives key events after the item it is attached to.
- If the item accepts an arrow key event, the KeyNavigation
- attached property will not receive an event for that key. Setting the
- \l priority property to KeyNavigation.BeforeItem allows handling
- of the key events before normal item processing.
+ \snippet doc/src/snippets/declarative/keynavigation.qml 0
- If an item has been set for a direction and the KeyNavigation
- attached property receives the corresponding
- key press and release events, the events will be accepted by
- KeyNavigation and will not propagate any further.
+ The top-left item initially receives focus by setting \l {Item::}{focus} to
+ \c true. When an arrow key is pressed, the focus will move to the
+ appropriate item, as defined by the value that has been set for
+ the KeyNavigation \l left, \l right, \l up or \l down properties.
+
+ Note that if a KeyNavigation attached property receives the key press and release
+ events for a requested arrow or tab key, the event is accepted and does not
+ propagate any further.
+
+ By default, KeyNavigation receives key events after the item to which it is attached.
+ If the item accepts the key event, the KeyNavigation attached property will not
+ receive an event for that key. Setting the \l priority property to
+ \c KeyNavigation.BeforeItem allows the event to be used for key navigation
+ before the item, rather than after.
\sa {Keys}{Keys attached property}
*/
@@ -599,7 +569,7 @@ void QDeclarativeKeyNavigationAttached::setBacktab(QDeclarativeItem *i)
\list
\o KeyNavigation.BeforeItem - process the key events before normal
- item key processing. If the event is accepted it will not
+ item key processing. If the event is used for key navigation, it will be accepted and will not
be passed on to the item.
\o KeyNavigation.AfterItem (default) - process the key events after normal item key
handling. If the item accepts the key event it will not be
--
cgit v0.12
From 312604c85b1e6a6fc6de505bac86848936f81edd Mon Sep 17 00:00:00 2001
From: Aaron Kennedy
Date: Mon, 29 Nov 2010 18:41:24 +1000
Subject: Improve consistency in handling of aliases, bindings and value types
Task-number: QTBUG-13719
---
src/declarative/qml/qdeclarativebinding.cpp | 337 +++++++++++----------
src/declarative/qml/qdeclarativebinding_p.h | 12 +-
.../qml/qdeclarativecompiledbindings.cpp | 14 -
src/declarative/qml/qdeclarativecompiler.cpp | 119 ++++++--
src/declarative/qml/qdeclarativecompiler_p.h | 1 +
src/declarative/qml/qdeclarativecomponent.cpp | 5 +-
src/declarative/qml/qdeclarativeinstruction.cpp | 7 +-
src/declarative/qml/qdeclarativeinstruction_p.h | 2 +
src/declarative/qml/qdeclarativeparser.cpp | 4 +-
src/declarative/qml/qdeclarativeparser_p.h | 3 +
src/declarative/qml/qdeclarativeproperty.cpp | 209 +++++++++++--
src/declarative/qml/qdeclarativeproperty_p.h | 8 +-
src/declarative/qml/qdeclarativepropertycache_p.h | 1 +
src/declarative/qml/qdeclarativevaluetype.cpp | 46 ++-
src/declarative/qml/qdeclarativevme.cpp | 38 ++-
src/declarative/qml/qdeclarativevmemetaobject.cpp | 47 ++-
src/declarative/qml/qdeclarativevmemetaobject_p.h | 2 +
.../data/AliasBindingsAssignCorrectlyType.qml | 9 +
.../data/AliasBindingsOverrideTargetType.qml | 14 +
.../data/AliasBindingsOverrideTargetType3.qml | 9 +
.../data/aliasBindingsAssignCorrectly.qml | 59 ++++
.../data/aliasBindingsOverrideTarget.2.qml | 29 ++
.../data/aliasBindingsOverrideTarget.3.qml | 24 ++
.../data/aliasBindingsOverrideTarget.qml | 28 ++
.../data/aliasWritesOverrideBindings.2.qml | 29 ++
.../data/aliasWritesOverrideBindings.3.qml | 23 ++
.../data/aliasWritesOverrideBindings.qml | 23 ++
.../data/writeRemovesBinding.qml | 46 +++
.../tst_qdeclarativeecmascript.cpp | 95 ++++++
.../tst_qdeclarativeinstruction.cpp | 5 +-
.../data/aliasPropertyBindings.qml | 19 ++
.../tst_qdeclarativeproperty.cpp | 69 +++++
.../data/BindingsSpliceCorrectlyType.qml | 7 +
.../data/BindingsSpliceCorrectlyType4.qml | 7 +
.../data/BindingsSpliceCorrectlyType5.qml | 7 +
.../data/bindingsSpliceCorrectly.1.qml | 29 ++
.../data/bindingsSpliceCorrectly.2.qml | 31 ++
.../data/bindingsSpliceCorrectly.3.qml | 36 +++
.../data/bindingsSpliceCorrectly.4.qml | 27 ++
.../data/bindingsSpliceCorrectly.5.qml | 27 ++
.../tst_qdeclarativevaluetypes.cpp | 56 ++++
41 files changed, 1305 insertions(+), 258 deletions(-)
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsAssignCorrectlyType.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType3.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsAssignCorrectly.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.2.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.3.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.2.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.3.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.qml
create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/writeRemovesBinding.qml
create mode 100644 tests/auto/declarative/qdeclarativeproperty/data/aliasPropertyBindings.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType4.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType5.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.1.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.2.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.3.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.4.qml
create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.5.qml
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp
index cb6ad8c..a7fbf44 100644
--- a/src/declarative/qml/qdeclarativebinding.cpp
+++ b/src/declarative/qml/qdeclarativebinding.cpp
@@ -55,6 +55,158 @@
QT_BEGIN_NAMESPACE
+QDeclarativeAbstractBinding::QDeclarativeAbstractBinding()
+: m_object(0), m_propertyIndex(-1), m_mePtr(0), m_prevBinding(0), m_nextBinding(0)
+{
+}
+
+QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding()
+{
+ Q_ASSERT(m_prevBinding == 0);
+ Q_ASSERT(m_mePtr == 0);
+}
+
+/*!
+Destroy the binding. Use this instead of calling delete.
+
+Bindings are free to implement their own memory management, so the delete operator is not
+necessarily safe. The default implementation clears the binding, removes it from the object
+and calls delete.
+*/
+void QDeclarativeAbstractBinding::destroy()
+{
+ removeFromObject();
+ clear();
+
+ delete this;
+}
+
+/*!
+Add this binding to \a object.
+
+This transfers ownership of the binding to the object, marks the object's property as
+being bound.
+
+However, it does not enable the binding itself or call update() on it.
+*/
+void QDeclarativeAbstractBinding::addToObject(QObject *object, int index)
+{
+ Q_ASSERT(object);
+
+ if (m_object == object && m_propertyIndex == index)
+ return;
+
+ removeFromObject();
+
+ Q_ASSERT(!m_prevBinding);
+
+ m_object = object;
+ m_propertyIndex = index;
+
+ QDeclarativeData *data = QDeclarativeData::get(object, true);
+
+ if (index & 0xFF000000) {
+ // Value type
+
+ int coreIndex = index & 0xFFFFFF;
+
+ // Find the value type proxy (if there is one)
+ QDeclarativeValueTypeProxyBinding *proxy = 0;
+ if (data->hasBindingBit(coreIndex)) {
+ QDeclarativeAbstractBinding *b = data->bindings;
+ while (b && b->propertyIndex() != coreIndex)
+ b = b->m_nextBinding;
+ Q_ASSERT(b && b->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy);
+ proxy = static_cast(b);
+ }
+
+ if (!proxy) {
+ proxy = new QDeclarativeValueTypeProxyBinding(object, coreIndex);
+ proxy->addToObject(object, coreIndex);
+ }
+
+ m_nextBinding = proxy->m_bindings;
+ if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
+ m_prevBinding = &proxy->m_bindings;
+ proxy->m_bindings = this;
+
+ } else {
+ m_nextBinding = data->bindings;
+ if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
+ m_prevBinding = &data->bindings;
+ data->bindings = this;
+
+ data->setBindingBit(m_object, index);
+ }
+}
+
+/*!
+Remove the binding from the object.
+*/
+void QDeclarativeAbstractBinding::removeFromObject()
+{
+ if (m_prevBinding) {
+ int index = propertyIndex();
+
+ *m_prevBinding = m_nextBinding;
+ if (m_nextBinding) m_nextBinding->m_prevBinding = m_prevBinding;
+ m_prevBinding = 0;
+ m_nextBinding = 0;
+
+ if (index & 0xFF000000) {
+ // Value type - we don't remove the proxy from the object. It will sit their happily
+ // doing nothing until it is removed by a write, a binding change or it is reused
+ // to hold more sub-bindings.
+ } else if (m_object) {
+ QDeclarativeData *data = QDeclarativeData::get(m_object, false);
+ if (data) data->clearBindingBit(index);
+ }
+
+ m_object = 0;
+ m_propertyIndex = -1;
+ }
+}
+
+static void bindingDummyDeleter(QDeclarativeAbstractBinding *)
+{
+}
+
+QDeclarativeAbstractBinding::Pointer QDeclarativeAbstractBinding::weakPointer()
+{
+ if (m_selfPointer.isNull())
+ m_selfPointer = QSharedPointer(this, bindingDummyDeleter);
+
+ return m_selfPointer.toWeakRef();
+}
+
+void QDeclarativeAbstractBinding::clear()
+{
+ if (m_mePtr) {
+ *m_mePtr = 0;
+ m_mePtr = 0;
+ }
+}
+
+QString QDeclarativeAbstractBinding::expression() const
+{
+ return QLatin1String("");
+}
+
+QObject *QDeclarativeAbstractBinding::object() const
+{
+ return m_object;
+}
+
+int QDeclarativeAbstractBinding::propertyIndex() const
+{
+ return m_propertyIndex;
+}
+
+void QDeclarativeAbstractBinding::setEnabled(bool enabled, QDeclarativePropertyPrivate::WriteFlags flags)
+{
+ if (enabled) update(flags);
+}
+
void QDeclarativeBindingPrivate::refresh()
{
Q_Q(QDeclarativeBinding);
@@ -255,20 +407,8 @@ void QDeclarativeBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteF
d->enabled = e;
setNotifyOnValueChanged(e);
- QDeclarativeAbstractBinding::setEnabled(e, flags);
-
- if (e) {
- addToObject(d->property.object());
+ if (e)
update(flags);
- } else {
- removeFromObject();
- }
-}
-
-int QDeclarativeBinding::propertyIndex()
-{
- Q_D(QDeclarativeBinding);
- return QDeclarativePropertyPrivate::bindingIndex(d->property);
}
bool QDeclarativeBinding::enabled() const
@@ -283,127 +423,6 @@ QString QDeclarativeBinding::expression() const
return QDeclarativeExpression::expression();
}
-QDeclarativeAbstractBinding::QDeclarativeAbstractBinding()
-: m_object(0), m_mePtr(0), m_prevBinding(0), m_nextBinding(0)
-{
-}
-
-QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding()
-{
- Q_ASSERT(m_prevBinding == 0);
- Q_ASSERT(m_mePtr == 0);
-}
-
-void QDeclarativeAbstractBinding::destroy()
-{
- removeFromObject();
- clear();
-
- delete this;
-}
-
-void QDeclarativeAbstractBinding::addToObject(QObject *object)
-{
- Q_ASSERT(object);
-
- if (m_object == object)
- return;
-
- int index = propertyIndex();
-
- removeFromObject();
-
- Q_ASSERT(!m_prevBinding);
-
- m_object = object;
- QDeclarativeData *data = QDeclarativeData::get(object, true);
-
- if (index & 0xFF000000) {
- // Value type
-
- int coreIndex = index & 0xFFFFFF;
-
- // Find the value type proxy (if there is one)
- QDeclarativeValueTypeProxyBinding *proxy = 0;
- if (data->hasBindingBit(coreIndex)) {
- QDeclarativeAbstractBinding *b = data->bindings;
- while (b && b->propertyIndex() != coreIndex)
- b = b->m_nextBinding;
- Q_ASSERT(b && b->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy);
- proxy = static_cast(b);
- }
-
- if (!proxy)
- proxy = new QDeclarativeValueTypeProxyBinding(object, coreIndex);
- proxy->addToObject(object);
-
- m_nextBinding = proxy->m_bindings;
- if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
- m_prevBinding = &proxy->m_bindings;
- proxy->m_bindings = this;
-
- } else {
- m_nextBinding = data->bindings;
- if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
- m_prevBinding = &data->bindings;
- data->bindings = this;
-
- data->setBindingBit(m_object, index);
- }
-}
-
-void QDeclarativeAbstractBinding::removeFromObject()
-{
- if (m_prevBinding) {
- int index = propertyIndex();
-
- *m_prevBinding = m_nextBinding;
- if (m_nextBinding) m_nextBinding->m_prevBinding = m_prevBinding;
- m_prevBinding = 0;
- m_nextBinding = 0;
-
- if (index & 0xFF000000) {
- // Value type - we don't remove the proxy from the object. It will sit their happily
- // doing nothing for ever more.
- } else if (m_object) {
- QDeclarativeData *data = QDeclarativeData::get(m_object, false);
- if (data) data->clearBindingBit(index);
- }
-
- m_object = 0;
- }
-}
-
-static void bindingDummyDeleter(QDeclarativeAbstractBinding *)
-{
-}
-
-QDeclarativeAbstractBinding::Pointer QDeclarativeAbstractBinding::weakPointer()
-{
- if (m_selfPointer.isNull())
- m_selfPointer = QSharedPointer(this, bindingDummyDeleter);
-
- return m_selfPointer.toWeakRef();
-}
-
-void QDeclarativeAbstractBinding::clear()
-{
- if (m_mePtr) {
- *m_mePtr = 0;
- m_mePtr = 0;
- }
-}
-
-QString QDeclarativeAbstractBinding::expression() const
-{
- return QLatin1String("");
-}
-
-void QDeclarativeAbstractBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags)
-{
- if (e) m_mePtr = 0;
-}
-
QDeclarativeValueTypeProxyBinding::QDeclarativeValueTypeProxyBinding(QObject *o, int index)
: m_object(o), m_index(index), m_bindings(0)
{
@@ -421,16 +440,10 @@ QDeclarativeValueTypeProxyBinding::~QDeclarativeValueTypeProxyBinding()
void QDeclarativeValueTypeProxyBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags flags)
{
if (e) {
- addToObject(m_object);
-
QDeclarativeAbstractBinding *bindings = m_bindings;
- m_bindings = 0;
recursiveEnable(bindings, flags);
} else {
- removeFromObject();
-
QDeclarativeAbstractBinding *bindings = m_bindings;
- m_bindings = 0;
recursiveDisable(bindings);
}
}
@@ -440,13 +453,7 @@ void QDeclarativeValueTypeProxyBinding::recursiveEnable(QDeclarativeAbstractBind
if (!b)
return;
- QDeclarativeAbstractBinding *next = b->m_nextBinding;
- b->m_prevBinding = 0;
- b->m_nextBinding = 0;
- Q_ASSERT(b->m_mePtr == 0);
- b->m_mePtr = &b;
-
- recursiveEnable(next, flags);
+ recursiveEnable(b->m_nextBinding, flags);
if (b)
b->setEnabled(true, flags);
@@ -459,19 +466,8 @@ void QDeclarativeValueTypeProxyBinding::recursiveDisable(QDeclarativeAbstractBin
recursiveDisable(b->m_nextBinding);
- b->setEnabled(false, 0);
-
- Q_ASSERT(b->m_prevBinding == 0);
- Q_ASSERT(b->m_nextBinding == 0);
- b->m_nextBinding = m_bindings;
- if (b->m_nextBinding) b->m_nextBinding->m_prevBinding = &b->m_nextBinding;
- b->m_prevBinding = &m_bindings;
- m_bindings = b;
-}
-
-int QDeclarativeValueTypeProxyBinding::propertyIndex()
-{
- return m_index;
+ if (b)
+ b->setEnabled(false, 0);
}
void QDeclarativeValueTypeProxyBinding::update(QDeclarativePropertyPrivate::WriteFlags)
@@ -488,4 +484,25 @@ QDeclarativeAbstractBinding *QDeclarativeValueTypeProxyBinding::binding(int prop
return binding;
}
+/*!
+Removes a collection of bindings, corresponding to the set bits in \a mask.
+*/
+void QDeclarativeValueTypeProxyBinding::removeBindings(quint32 mask)
+{
+ QDeclarativeAbstractBinding *binding = m_bindings;
+ while (binding) {
+ if (mask & (1 << (binding->propertyIndex() >> 24))) {
+ QDeclarativeAbstractBinding *remove = binding;
+ binding = remove->m_nextBinding;
+ *remove->m_prevBinding = remove->m_nextBinding;
+ if (remove->m_nextBinding) remove->m_nextBinding->m_prevBinding = remove->m_prevBinding;
+ remove->m_prevBinding = 0;
+ remove->m_nextBinding = 0;
+ remove->destroy();
+ } else {
+ binding = binding->m_nextBinding;
+ }
+ }
+}
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativebinding_p.h b/src/declarative/qml/qdeclarativebinding_p.h
index 0b9bde6..7823a3d 100644
--- a/src/declarative/qml/qdeclarativebinding_p.h
+++ b/src/declarative/qml/qdeclarativebinding_p.h
@@ -78,14 +78,16 @@ public:
enum Type { PropertyBinding, ValueTypeProxy };
virtual Type bindingType() const { return PropertyBinding; }
+ QObject *object() const;
+ int propertyIndex() const;
+
void setEnabled(bool e) { setEnabled(e, QDeclarativePropertyPrivate::DontRemoveBinding); }
virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags) = 0;
- virtual int propertyIndex() = 0;
void update() { update(QDeclarativePropertyPrivate::DontRemoveBinding); }
virtual void update(QDeclarativePropertyPrivate::WriteFlags) = 0;
- void addToObject(QObject *);
+ void addToObject(QObject *, int);
void removeFromObject();
static Pointer getPointer(QDeclarativeAbstractBinding *p) { return p ? p->weakPointer() : Pointer(); }
@@ -98,12 +100,14 @@ private:
Pointer weakPointer();
friend class QDeclarativeData;
+ friend class QDeclarativeComponentPrivate;
friend class QDeclarativeValueTypeProxyBinding;
friend class QDeclarativePropertyPrivate;
friend class QDeclarativeVME;
friend class QtSharedPointer::ExternalRefCount;
QObject *m_object;
+ int m_propertyIndex;
QDeclarativeAbstractBinding **m_mePtr;
QDeclarativeAbstractBinding **m_prevBinding;
QDeclarativeAbstractBinding *m_nextBinding;
@@ -118,11 +122,12 @@ public:
virtual Type bindingType() const { return ValueTypeProxy; }
virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags);
- virtual int propertyIndex();
virtual void update(QDeclarativePropertyPrivate::WriteFlags);
QDeclarativeAbstractBinding *binding(int propertyIndex);
+ void removeBindings(quint32 mask);
+
protected:
~QDeclarativeValueTypeProxyBinding();
@@ -154,7 +159,6 @@ public:
// Inherited from QDeclarativeAbstractBinding
virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags flags);
- virtual int propertyIndex();
virtual void update(QDeclarativePropertyPrivate::WriteFlags flags);
virtual QString expression() const;
diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp
index fbe5829..5c295b9 100644
--- a/src/declarative/qml/qdeclarativecompiledbindings.cpp
+++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp
@@ -187,7 +187,6 @@ public:
// Inherited from QDeclarativeAbstractBinding
virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags flags);
- virtual int propertyIndex();
virtual void update(QDeclarativePropertyPrivate::WriteFlags flags);
virtual void destroy();
@@ -294,14 +293,6 @@ QDeclarativeAbstractBinding *QDeclarativeCompiledBindings::configBinding(int ind
void QDeclarativeCompiledBindingsPrivate::Binding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags flags)
{
- if (e) {
- addToObject(target);
- } else {
- removeFromObject();
- }
-
- QDeclarativeAbstractBinding::setEnabled(e, flags);
-
if (enabled != e) {
enabled = e;
@@ -309,11 +300,6 @@ void QDeclarativeCompiledBindingsPrivate::Binding::setEnabled(bool e, QDeclarati
}
}
-int QDeclarativeCompiledBindingsPrivate::Binding::propertyIndex()
-{
- return property & 0xFFFF;
-}
-
void QDeclarativeCompiledBindingsPrivate::Binding::update(QDeclarativePropertyPrivate::WriteFlags flags)
{
parent->run(this, flags);
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index 645402e..df428b1 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -946,6 +946,16 @@ void QDeclarativeCompiler::genObject(QDeclarativeParser::Object *obj)
QDeclarativePropertyCache::Data::IsVMEFunction,
QDeclarativePropertyCache::Data::IsVMESignal);
+ // Add flag for alias properties
+ if (!obj->synthdata.isEmpty()) {
+ const QDeclarativeVMEMetaData *vmeMetaData =
+ reinterpret_cast(obj->synthdata.constData());
+ for (int ii = 0; ii < vmeMetaData->aliasCount; ++ii) {
+ int index = obj->metaObject()->propertyOffset() + vmeMetaData->propertyCount + ii;
+ propertyCache->property(index)->flags |= QDeclarativePropertyCache::Data::IsAlias;
+ }
+ }
+
if (obj == unitRoot) {
propertyCache->addref();
output->rootPropertyCache = propertyCache;
@@ -1003,7 +1013,8 @@ void QDeclarativeCompiler::genObjectBody(QDeclarativeParser::Object *obj)
seenDefer = true;
continue;
}
- genValueProperty(prop, obj);
+ if (!prop->isAlias)
+ genValueProperty(prop, obj);
}
if (seenDefer) {
QDeclarativeInstruction defer;
@@ -1113,25 +1124,56 @@ void QDeclarativeCompiler::genObjectBody(QDeclarativeParser::Object *obj)
}
foreach(Property *prop, obj->valueTypeProperties) {
- QDeclarativeInstruction fetch;
- fetch.type = QDeclarativeInstruction::FetchValueType;
- fetch.fetchValue.property = prop->index;
- fetch.fetchValue.type = prop->type;
- fetch.line = prop->location.start.line;
+ if (!prop->isAlias)
+ genValueTypeProperty(obj, prop);
+ }
- output->bytecode << fetch;
+ foreach(Property *prop, obj->valueProperties) {
+ if (prop->isDeferred)
+ continue;
+ if (prop->isAlias)
+ genValueProperty(prop, obj);
+ }
+
+ foreach(Property *prop, obj->valueTypeProperties) {
+ if (prop->isAlias)
+ genValueTypeProperty(obj, prop);
+ }
+}
+void QDeclarativeCompiler::genValueTypeProperty(QDeclarativeParser::Object *obj,QDeclarativeParser::Property *prop)
+{
+ QDeclarativeInstruction fetch;
+ fetch.type = QDeclarativeInstruction::FetchValueType;
+ fetch.fetchValue.property = prop->index;
+ fetch.fetchValue.type = prop->type;
+ fetch.fetchValue.bindingSkipList = 0;
+ fetch.line = prop->location.start.line;
+
+ if (obj->type == -1 || output->types.at(obj->type).component) {
+ // We only have to do this if this is a composite type. If it is a builtin
+ // type it can't possibly already have bindings that need to be cleared.
foreach(Property *vprop, prop->value->valueProperties) {
- genPropertyAssignment(vprop, prop->value, prop);
+ if (!vprop->values.isEmpty()) {
+ Q_ASSERT(vprop->index >= 0 && vprop->index < 32);
+ fetch.fetchValue.bindingSkipList |= (1 << vprop->index);
+ }
}
+ }
- QDeclarativeInstruction pop;
- pop.type = QDeclarativeInstruction::PopValueType;
- pop.fetchValue.property = prop->index;
- pop.fetchValue.type = prop->type;
- pop.line = prop->location.start.line;
- output->bytecode << pop;
+ output->bytecode << fetch;
+
+ foreach(Property *vprop, prop->value->valueProperties) {
+ genPropertyAssignment(vprop, prop->value, prop);
}
+
+ QDeclarativeInstruction pop;
+ pop.type = QDeclarativeInstruction::PopValueType;
+ pop.fetchValue.property = prop->index;
+ pop.fetchValue.type = prop->type;
+ pop.fetchValue.bindingSkipList = 0;
+ pop.line = prop->location.start.line;
+ output->bytecode << pop;
}
void QDeclarativeCompiler::genComponent(QDeclarativeParser::Object *obj)
@@ -1440,10 +1482,22 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop,
if (p.name()) {
prop->type = p.userType();
}
- }
- if (prop->index != -1)
- prop->parent->setBindingBit(prop->index);
+ // Check if this is an alias
+ if (prop->index != -1 &&
+ prop->parent &&
+ prop->parent->type != -1 &&
+ output->types.at(prop->parent->type).component) {
+
+ QDeclarativePropertyCache *cache = output->types.at(prop->parent->type).component->rootPropertyCache;
+ if (cache && cache->property(prop->index) &&
+ cache->property(prop->index)->flags & QDeclarativePropertyCache::Data::IsAlias)
+ prop->isAlias = true;
+ }
+
+ if (prop->index != -1 && !prop->values.isEmpty())
+ prop->parent->setBindingBit(prop->index);
+ }
if (!prop->isDefault && prop->name == "id" && !ctxt.isSubContext()) {
@@ -1778,6 +1832,12 @@ bool QDeclarativeCompiler::buildGroupedProperty(QDeclarativeParser::Property *pr
COMPILE_EXCEPTION(prop, tr( "Invalid property assignment: \"%1\" is a read-only property").arg(QString::fromUtf8(prop->name)));
}
+
+ if (prop->isAlias) {
+ foreach (Property *vtProp, prop->value->properties)
+ vtProp->isAlias = true;
+ }
+
COMPILE_CHECK(buildValueTypeProperty(enginePrivate->valueTypes[prop->type],
prop->value, obj, ctxt.incr()));
obj->addValueTypeProperty(prop);
@@ -2423,7 +2483,7 @@ bool QDeclarativeCompiler::buildDynamicMeta(QDeclarativeParser::Object *obj, Dyn
if (p.type == Object::DynamicProperty::Alias) {
if (mode == ResolveAliases) {
((QDeclarativeVMEMetaData *)dynamicData.data())->aliasCount++;
- compileAlias(builder, dynamicData, obj, p);
+ COMPILE_CHECK(compileAlias(builder, dynamicData, obj, p));
} else {
// Need a fake signal so that the metaobject remains consistent across
// the resolve and non-resolve alias runs
@@ -2694,7 +2754,10 @@ void QDeclarativeCompiler::genBindingAssignment(QDeclarativeParser::Value *bindi
}
QDeclarativeInstruction store;
- store.type = QDeclarativeInstruction::StoreBinding;
+ if (!prop->isAlias)
+ store.type = QDeclarativeInstruction::StoreBinding;
+ else
+ store.type = QDeclarativeInstruction::StoreBindingOnAlias;
store.assignBinding.value = output->indexForByteArray(ref.compiledData);
store.assignBinding.context = ref.bindingContext.stack;
store.assignBinding.owner = ref.bindingContext.owner;
@@ -2769,13 +2832,17 @@ bool QDeclarativeCompiler::completeComponentBuild()
expr.expression = binding.expression;
expr.imports = unit->imports();
- int index = bindingCompiler.compile(expr, enginePrivate);
- if (index != -1) {
- binding.dataType = BindingReference::Experimental;
- binding.compiledIndex = index;
- componentStat.optimizedBindings.append(iter.key()->location);
- continue;
- }
+ // ### We don't currently optimize for bindings on alias's - because
+ // of the solution to QTBUG-13719
+ if (!binding.property->isAlias) {
+ int index = bindingCompiler.compile(expr, enginePrivate);
+ if (index != -1) {
+ binding.dataType = BindingReference::Experimental;
+ binding.compiledIndex = index;
+ componentStat.optimizedBindings.append(iter.key()->location);
+ continue;
+ }
+ }
binding.dataType = BindingReference::QtScript;
diff --git a/src/declarative/qml/qdeclarativecompiler_p.h b/src/declarative/qml/qdeclarativecompiler_p.h
index 5cd1fd2..7d76ad9 100644
--- a/src/declarative/qml/qdeclarativecompiler_p.h
+++ b/src/declarative/qml/qdeclarativecompiler_p.h
@@ -252,6 +252,7 @@ private:
void genObject(QDeclarativeParser::Object *obj);
void genObjectBody(QDeclarativeParser::Object *obj);
+ void genValueTypeProperty(QDeclarativeParser::Object *obj,QDeclarativeParser::Property *);
void genComponent(QDeclarativeParser::Object *obj);
void genValueProperty(QDeclarativeParser::Property *prop, QDeclarativeParser::Object *obj);
void genListProperty(QDeclarativeParser::Property *prop, QDeclarativeParser::Object *obj);
diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp
index 2686ce3..63bde0f 100644
--- a/src/declarative/qml/qdeclarativecomponent.cpp
+++ b/src/declarative/qml/qdeclarativecomponent.cpp
@@ -876,9 +876,12 @@ void QDeclarativeComponentPrivate::complete(QDeclarativeEnginePrivate *enginePri
QDeclarativeEnginePrivate::SimpleList bv =
state->bindValues.at(ii);
for (int jj = 0; jj < bv.count; ++jj) {
- if(bv.at(jj))
+ if(bv.at(jj)) {
+ // XXX akennedy
+ bv.at(jj)->m_mePtr = 0;
bv.at(jj)->setEnabled(true, QDeclarativePropertyPrivate::BypassInterceptor |
QDeclarativePropertyPrivate::DontRemoveBinding);
+ }
}
QDeclarativeEnginePrivate::clear(bv);
}
diff --git a/src/declarative/qml/qdeclarativeinstruction.cpp b/src/declarative/qml/qdeclarativeinstruction.cpp
index 1767d2f..818c15d 100644
--- a/src/declarative/qml/qdeclarativeinstruction.cpp
+++ b/src/declarative/qml/qdeclarativeinstruction.cpp
@@ -63,7 +63,7 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx)
qWarning().nospace() << idx << "\t\t" << line << "\t" << "INIT\t\t\t" << instr->init.bindingsSize << "\t" << instr->init.parserStatusSize << "\t" << instr->init.contextCache << "\t" << instr->init.compiledBinding;
break;
case QDeclarativeInstruction::CreateObject:
- qWarning().nospace() << idx << "\t\t" << line << "\t" << "CREATE\t\t\t" << instr->create.type << "\t\t\t" << types.at(instr->create.type).className;
+ qWarning().nospace() << idx << "\t\t" << line << "\t" << "CREATE\t\t\t" << instr->create.type << "\t" << instr->create.bindingBits << "\t\t" << types.at(instr->create.type).className;
break;
case QDeclarativeInstruction::CreateSimpleObject:
qWarning().nospace() << idx << "\t\t" << line << "\t" << "CREATE_SIMPLE\t\t" << instr->createSimple.typeSize;
@@ -174,6 +174,9 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx)
case QDeclarativeInstruction::StoreBinding:
qWarning().nospace() << idx << "\t\t" << line << "\t" << "STORE_BINDING\t" << instr->assignBinding.property << "\t" << instr->assignBinding.value << "\t" << instr->assignBinding.context;
break;
+ case QDeclarativeInstruction::StoreBindingOnAlias:
+ qWarning().nospace() << idx << "\t\t" << line << "\t" << "STORE_BINDING_ALIAS\t" << instr->assignBinding.property << "\t" << instr->assignBinding.value << "\t" << instr->assignBinding.context;
+ break;
case QDeclarativeInstruction::StoreCompiledBinding:
qWarning().nospace() << idx << "\t\t" << line << "\t" << "STORE_COMPILED_BINDING\t" << instr->assignBinding.property << "\t" << instr->assignBinding.value << "\t" << instr->assignBinding.context;
break;
@@ -203,7 +206,7 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx)
qWarning().nospace() << idx << "\t\t" << line << "\t" << "FETCH\t\t\t" << instr->fetch.property;
break;
case QDeclarativeInstruction::FetchValueType:
- qWarning().nospace() << idx << "\t\t" << line << "\t" << "FETCH_VALUE\t\t" << instr->fetchValue.property << "\t" << instr->fetchValue.type;
+ qWarning().nospace() << idx << "\t\t" << line << "\t" << "FETCH_VALUE\t\t" << instr->fetchValue.property << "\t" << instr->fetchValue.type << "\t" << instr->fetchValue.bindingSkipList;
break;
case QDeclarativeInstruction::PopFetchedObject:
qWarning().nospace() << idx << "\t\t" << line << "\t" << "POP";
diff --git a/src/declarative/qml/qdeclarativeinstruction_p.h b/src/declarative/qml/qdeclarativeinstruction_p.h
index f0b032c..94676fc 100644
--- a/src/declarative/qml/qdeclarativeinstruction_p.h
+++ b/src/declarative/qml/qdeclarativeinstruction_p.h
@@ -132,6 +132,7 @@ public:
AssignCustomType, /* assignCustomType */
StoreBinding, /* assignBinding */
+ StoreBindingOnAlias, /* assignBinding */
StoreCompiledBinding, /* assignBinding */
StoreValueSource, /* assignValueSource */
StoreValueInterceptor, /* assignValueInterceptor */
@@ -214,6 +215,7 @@ public:
struct FetchValueInstruction {
int property;
int type;
+ quint32 bindingSkipList;
};
struct FetchQmlListInstruction {
int property;
diff --git a/src/declarative/qml/qdeclarativeparser.cpp b/src/declarative/qml/qdeclarativeparser.cpp
index 8d00ef8..effecb1 100644
--- a/src/declarative/qml/qdeclarativeparser.cpp
+++ b/src/declarative/qml/qdeclarativeparser.cpp
@@ -205,13 +205,13 @@ QDeclarativeParser::Object::DynamicSlot::DynamicSlot(const DynamicSlot &o)
QDeclarativeParser::Property::Property()
: parent(0), type(0), index(-1), value(0), isDefault(true), isDeferred(false),
- isValueTypeSubProperty(false)
+ isValueTypeSubProperty(false), isAlias(false)
{
}
QDeclarativeParser::Property::Property(const QByteArray &n)
: parent(0), type(0), index(-1), value(0), name(n), isDefault(false),
- isDeferred(false), isValueTypeSubProperty(false)
+ isDeferred(false), isValueTypeSubProperty(false), isAlias(false)
{
}
diff --git a/src/declarative/qml/qdeclarativeparser_p.h b/src/declarative/qml/qdeclarativeparser_p.h
index 77184c2..633847d 100644
--- a/src/declarative/qml/qdeclarativeparser_p.h
+++ b/src/declarative/qml/qdeclarativeparser_p.h
@@ -358,6 +358,9 @@ namespace QDeclarativeParser
bool isDeferred;
// True if this property is a value-type pseudo-property
bool isValueTypeSubProperty;
+ // True if this property is a property alias. Set by the
+ // QDeclarativeCompiler
+ bool isAlias;
LocationSpan location;
LocationRange listValueRange;
diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp
index 1395e97..df0917f 100644
--- a/src/declarative/qml/qdeclarativeproperty.cpp
+++ b/src/declarative/qml/qdeclarativeproperty.cpp
@@ -607,26 +607,7 @@ QDeclarativePropertyPrivate::binding(const QDeclarativeProperty &that)
if (!that.isProperty() || !that.d->object)
return 0;
- QDeclarativeData *data = QDeclarativeData::get(that.d->object);
- if (!data)
- return 0;
-
- if (!data->hasBindingBit(that.d->core.coreIndex))
- return 0;
-
- QDeclarativeAbstractBinding *binding = data->bindings;
- while (binding && binding->propertyIndex() != that.d->core.coreIndex)
- binding = binding->m_nextBinding;
-
- if (binding && that.d->valueType.valueTypeCoreIdx != -1) {
- if (binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy) {
- QDeclarativeValueTypeProxyBinding *proxy = static_cast(binding);
-
- binding = proxy->binding(bindingIndex(that));
- }
- }
-
- return binding;
+ return binding(that.d->object, that.d->core.coreIndex, that.d->valueType.valueTypeCoreIdx);
}
/*!
@@ -658,12 +639,106 @@ QDeclarativePropertyPrivate::setBinding(const QDeclarativeProperty &that,
}
QDeclarativeAbstractBinding *
+QDeclarativePropertyPrivate::binding(QObject *object, int coreIndex, int valueTypeIndex)
+{
+ QDeclarativeData *data = QDeclarativeData::get(object);
+ if (!data)
+ return 0;
+
+ QDeclarativePropertyCache::Data *propertyData =
+ data->propertyCache?data->propertyCache->property(coreIndex):0;
+ if (propertyData && propertyData->flags & QDeclarativePropertyCache::Data::IsAlias) {
+ const QDeclarativeVMEMetaObject *vme =
+ static_cast(metaObjectForProperty(object->metaObject(), coreIndex));
+
+ QObject *aObject = 0; int aCoreIndex = -1; int aValueTypeIndex = -1;
+ if (!vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex))
+ return 0;
+
+ // This will either be a value type sub-reference or an alias to a value-type sub-reference not both
+ Q_ASSERT(valueTypeIndex == -1 || aValueTypeIndex == -1);
+ return binding(aObject, aCoreIndex, (valueTypeIndex == -1)?aValueTypeIndex:valueTypeIndex);
+ }
+
+ if (!data->hasBindingBit(coreIndex))
+ return 0;
+
+ QDeclarativeAbstractBinding *binding = data->bindings;
+ while (binding && binding->propertyIndex() != coreIndex)
+ binding = binding->m_nextBinding;
+
+ if (binding && valueTypeIndex != -1) {
+ if (binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy) {
+ int index = coreIndex | (valueTypeIndex << 24);
+ binding = static_cast(binding)->binding(index);
+ }
+ }
+
+ return binding;
+}
+
+void QDeclarativePropertyPrivate::findAliasTarget(QObject *object, int bindingIndex,
+ QObject **targetObject, int *targetBindingIndex)
+{
+ int coreIndex = bindingIndex & 0xFFFFFF;
+ int valueTypeIndex = bindingIndex >> 24;
+ if (valueTypeIndex == 0) valueTypeIndex = -1;
+
+ QDeclarativeData *data = QDeclarativeData::get(object, false);
+ if (data) {
+ QDeclarativePropertyCache::Data *propertyData =
+ data->propertyCache?data->propertyCache->property(coreIndex):0;
+ if (propertyData && propertyData->flags & QDeclarativePropertyCache::Data::IsAlias) {
+ const QDeclarativeVMEMetaObject *vme =
+ static_cast(metaObjectForProperty(object->metaObject(), coreIndex));
+ QObject *aObject = 0; int aCoreIndex = -1; int aValueTypeIndex = -1;
+ if (vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex)) {
+ // This will either be a value type sub-reference or an alias to a value-type sub-reference not both
+ Q_ASSERT(valueTypeIndex == -1 || aValueTypeIndex == -1);
+
+ int aBindingIndex = aCoreIndex;
+ if (aValueTypeIndex != -1)
+ aBindingIndex |= aValueTypeIndex << 24;
+ else if (valueTypeIndex != -1)
+ aBindingIndex |= valueTypeIndex << 24;
+
+ findAliasTarget(aObject, aBindingIndex, targetObject, targetBindingIndex);
+ return;
+ }
+ }
+ }
+
+ *targetObject = object;
+ *targetBindingIndex = bindingIndex;
+}
+
+QDeclarativeAbstractBinding *
QDeclarativePropertyPrivate::setBinding(QObject *object, int coreIndex, int valueTypeIndex,
QDeclarativeAbstractBinding *newBinding, WriteFlags flags)
{
QDeclarativeData *data = QDeclarativeData::get(object, 0 != newBinding);
QDeclarativeAbstractBinding *binding = 0;
+ if (data) {
+ QDeclarativePropertyCache::Data *propertyData =
+ data->propertyCache?data->propertyCache->property(coreIndex):0;
+ if (propertyData && propertyData->flags & QDeclarativePropertyCache::Data::IsAlias) {
+ const QDeclarativeVMEMetaObject *vme =
+ static_cast(metaObjectForProperty(object->metaObject(), coreIndex));
+
+ QObject *aObject = 0; int aCoreIndex = -1; int aValueTypeIndex = -1;
+ if (!vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex)) {
+ if (newBinding) newBinding->destroy();
+ return 0;
+ }
+
+ // This will either be a value type sub-reference or an alias to a value-type sub-reference not both
+ Q_ASSERT(valueTypeIndex == -1 || aValueTypeIndex == -1);
+ return setBinding(aObject, aCoreIndex, (valueTypeIndex == -1)?aValueTypeIndex:valueTypeIndex,
+ newBinding, flags);
+ }
+ }
+
if (data && data->hasBindingBit(coreIndex)) {
binding = data->bindings;
@@ -671,16 +746,72 @@ QDeclarativePropertyPrivate::setBinding(QObject *object, int coreIndex, int valu
binding = binding->m_nextBinding;
}
- if (binding && valueTypeIndex != -1 && binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy) {
- int index = coreIndex | (valueTypeIndex << 24);
+ int index = coreIndex;
+ if (valueTypeIndex != -1)
+ index |= (valueTypeIndex << 24);
+
+ if (binding && valueTypeIndex != -1 && binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy)
binding = static_cast(binding)->binding(index);
+
+ if (binding) {
+ binding->removeFromObject();
+ binding->setEnabled(false, 0);
}
+ if (newBinding) {
+ newBinding->addToObject(object, index);
+ newBinding->setEnabled(true, flags);
+ }
+
+ return binding;
+}
+
+QDeclarativeAbstractBinding *
+QDeclarativePropertyPrivate::setBindingNoEnable(QObject *object, int coreIndex, int valueTypeIndex,
+ QDeclarativeAbstractBinding *newBinding)
+{
+ QDeclarativeData *data = QDeclarativeData::get(object, 0 != newBinding);
+ QDeclarativeAbstractBinding *binding = 0;
+
+ if (data) {
+ QDeclarativePropertyCache::Data *propertyData =
+ data->propertyCache?data->propertyCache->property(coreIndex):0;
+ if (propertyData && propertyData->flags & QDeclarativePropertyCache::Data::IsAlias) {
+ const QDeclarativeVMEMetaObject *vme =
+ static_cast(metaObjectForProperty(object->metaObject(), coreIndex));
+
+ QObject *aObject = 0; int aCoreIndex = -1; int aValueTypeIndex = -1;
+ if (!vme->aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex)) {
+ if (newBinding) newBinding->destroy();
+ return 0;
+ }
+
+ // This will either be a value type sub-reference or an alias to a value-type sub-reference not both
+ Q_ASSERT(valueTypeIndex == -1 || aValueTypeIndex == -1);
+ return setBindingNoEnable(aObject, aCoreIndex, (valueTypeIndex == -1)?aValueTypeIndex:valueTypeIndex,
+ newBinding);
+ }
+ }
+
+ if (data && data->hasBindingBit(coreIndex)) {
+ binding = data->bindings;
+
+ while (binding && binding->propertyIndex() != coreIndex)
+ binding = binding->m_nextBinding;
+ }
+
+ int index = coreIndex;
+ if (valueTypeIndex != -1)
+ index |= (valueTypeIndex << 24);
+
+ if (binding && valueTypeIndex != -1 && binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy)
+ binding = static_cast(binding)->binding(index);
+
if (binding)
- binding->setEnabled(false);
+ binding->removeFromObject();
if (newBinding)
- newBinding->setEnabled(true, flags);
+ newBinding->addToObject(object, index);
return binding;
}
@@ -1392,11 +1523,26 @@ static inline int QMetaObject_methods(const QMetaObject *metaObject)
int className;
int classInfoCount, classInfoData;
int methodCount, methodData;
+ int propertyCount, propertyData;
};
return reinterpret_cast(metaObject->d.data)->methodCount;
}
+static inline int QMetaObject_properties(const QMetaObject *metaObject)
+{
+ struct Private
+ {
+ int revision;
+ int className;
+ int classInfoCount, classInfoData;
+ int methodCount, methodData;
+ int propertyCount, propertyData;
+ };
+
+ return reinterpret_cast(metaObject->d.data)->propertyCount;
+}
+
static inline void flush_vme_signal(const QObject *object, int index)
{
QDeclarativeData *data = static_cast(QObjectPrivate::get(const_cast(object))->declarativeData);
@@ -1437,4 +1583,19 @@ bool QDeclarativePropertyPrivate::connect(const QObject *sender, int signal_inde
return QMetaObject::connect(sender, signal_index, receiver, method_index, type, types);
}
+/*!
+Return \a metaObject's [super] meta object that provides data for \a property.
+*/
+const QMetaObject *QDeclarativePropertyPrivate::metaObjectForProperty(const QMetaObject *metaObject, int property)
+{
+ int propertyOffset = metaObject->propertyOffset();
+
+ while (propertyOffset > property) {
+ metaObject = metaObject->d.superdata;
+ propertyOffset -= QMetaObject_properties(metaObject);
+ }
+
+ return metaObject;
+}
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativeproperty_p.h b/src/declarative/qml/qdeclarativeproperty_p.h
index a9d6979..6392f88 100644
--- a/src/declarative/qml/qdeclarativeproperty_p.h
+++ b/src/declarative/qml/qdeclarativeproperty_p.h
@@ -68,7 +68,7 @@ class QDeclarativeExpression;
class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativePropertyPrivate
{
public:
- enum WriteFlag { BypassInterceptor = 0x01, DontRemoveBinding = 0x02 };
+ enum WriteFlag { BypassInterceptor = 0x01, DontRemoveBinding = 0x02, RemoveBindingOnAliasWrite = 0x04 };
Q_DECLARE_FLAGS(WriteFlags, WriteFlag)
QDeclarativePropertyPrivate()
@@ -108,9 +108,13 @@ public:
const QVariant &value, int flags);
static bool write(QObject *, const QDeclarativePropertyCache::Data &, const QVariant &,
QDeclarativeContextData *, WriteFlags flags = 0);
+ static void findAliasTarget(QObject *, int, QObject **, int *);
static QDeclarativeAbstractBinding *setBinding(QObject *, int coreIndex, int valueTypeIndex /* -1 */,
QDeclarativeAbstractBinding *,
WriteFlags flags = DontRemoveBinding);
+ static QDeclarativeAbstractBinding *setBindingNoEnable(QObject *, int coreIndex, int valueTypeIndex /* -1 */,
+ QDeclarativeAbstractBinding *);
+ static QDeclarativeAbstractBinding *binding(QObject *, int coreIndex, int valueTypeIndex /* -1 */);
static QByteArray saveValueType(const QMetaObject *, int,
const QMetaObject *, int);
@@ -120,7 +124,6 @@ public:
static bool equal(const QMetaObject *, const QMetaObject *);
static bool canConvert(const QMetaObject *from, const QMetaObject *to);
-
// "Public" (to QML) methods
static QDeclarativeAbstractBinding *binding(const QDeclarativeProperty &that);
static QDeclarativeAbstractBinding *setBinding(const QDeclarativeProperty &that,
@@ -136,6 +139,7 @@ public:
static bool connect(const QObject *sender, int signal_index,
const QObject *receiver, int method_index,
int type = 0, int *types = 0);
+ static const QMetaObject *metaObjectForProperty(const QMetaObject *, int);
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativePropertyPrivate::WriteFlags)
diff --git a/src/declarative/qml/qdeclarativepropertycache_p.h b/src/declarative/qml/qdeclarativepropertycache_p.h
index 922010d..f7c5daa 100644
--- a/src/declarative/qml/qdeclarativepropertycache_p.h
+++ b/src/declarative/qml/qdeclarativepropertycache_p.h
@@ -83,6 +83,7 @@ public:
IsConstant = 0x00000001,
IsWritable = 0x00000002,
IsResettable = 0x00000004,
+ IsAlias = 0x00000008,
// These are mutualy exclusive
IsFunction = 0x00000010,
diff --git a/src/declarative/qml/qdeclarativevaluetype.cpp b/src/declarative/qml/qdeclarativevaluetype.cpp
index b9e9cec..5dc6ffd 100644
--- a/src/declarative/qml/qdeclarativevaluetype.cpp
+++ b/src/declarative/qml/qdeclarativevaluetype.cpp
@@ -109,36 +109,54 @@ void QDeclarativeValueTypeFactory::registerValueTypes()
QDeclarativeValueType *QDeclarativeValueTypeFactory::valueType(int t)
{
+ QDeclarativeValueType *rv = 0;
+
switch (t) {
case QVariant::Point:
- return new QDeclarativePointValueType;
+ rv = new QDeclarativePointValueType;
+ break;
case QVariant::PointF:
- return new QDeclarativePointFValueType;
+ rv = new QDeclarativePointFValueType;
+ break;
case QVariant::Size:
- return new QDeclarativeSizeValueType;
+ rv = new QDeclarativeSizeValueType;
+ break;
case QVariant::SizeF:
- return new QDeclarativeSizeFValueType;
+ rv = new QDeclarativeSizeFValueType;
+ break;
case QVariant::Rect:
- return new QDeclarativeRectValueType;
+ rv = new QDeclarativeRectValueType;
+ break;
case QVariant::RectF:
- return new QDeclarativeRectFValueType;
+ rv = new QDeclarativeRectFValueType;
+ break;
case QVariant::Vector2D:
- return new QDeclarativeVector2DValueType;
+ rv = new QDeclarativeVector2DValueType;
+ break;
case QVariant::Vector3D:
- return new QDeclarativeVector3DValueType;
+ rv = new QDeclarativeVector3DValueType;
+ break;
case QVariant::Vector4D:
- return new QDeclarativeVector4DValueType;
+ rv = new QDeclarativeVector4DValueType;
+ break;
case QVariant::Quaternion:
- return new QDeclarativeQuaternionValueType;
+ rv = new QDeclarativeQuaternionValueType;
+ break;
case QVariant::Matrix4x4:
- return new QDeclarativeMatrix4x4ValueType;
+ rv = new QDeclarativeMatrix4x4ValueType;
+ break;
case QVariant::EasingCurve:
- return new QDeclarativeEasingValueType;
+ rv = new QDeclarativeEasingValueType;
+ break;
case QVariant::Font:
- return new QDeclarativeFontValueType;
+ rv = new QDeclarativeFontValueType;
+ break;
default:
- return 0;
+ break;
}
+
+ Q_ASSERT(!rv || rv->metaObject()->propertyCount() < 32);
+ return rv;
}
QDeclarativeValueType::QDeclarativeValueType(QObject *parent)
diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp
index db90aff..c742dec 100644
--- a/src/declarative/qml/qdeclarativevme.cpp
+++ b/src/declarative/qml/qdeclarativevme.cpp
@@ -154,7 +154,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack,
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(ctxt->engine);
int status = -1; //for dbus
- QDeclarativePropertyPrivate::WriteFlags flags = QDeclarativePropertyPrivate::BypassInterceptor;
+ QDeclarativePropertyPrivate::WriteFlags flags = QDeclarativePropertyPrivate::BypassInterceptor |
+ QDeclarativePropertyPrivate::RemoveBindingOnAliasWrite;
for (int ii = start; !isError() && ii < (start + count); ++ii) {
const QDeclarativeInstruction &instr = comp->bytecode.at(ii);
@@ -664,6 +665,7 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack,
break;
case QDeclarativeInstruction::StoreBinding:
+ case QDeclarativeInstruction::StoreBindingOnAlias:
{
QObject *target =
stack.at(stack.count() - 1 - instr.assignBinding.owner);
@@ -675,14 +677,20 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack,
int coreIndex = mp.index();
- if (stack.count() == 1 && bindingSkipList.testBit(coreIndex))
+ if ((stack.count() - instr.assignBinding.owner) == 1 && bindingSkipList.testBit(coreIndex))
break;
QDeclarativeBinding *bind = new QDeclarativeBinding((void *)datas.at(instr.assignBinding.value).constData(), comp, context, ctxt, comp->name, instr.line, 0);
bindValues.append(bind);
bind->m_mePtr = &bindValues.values[bindValues.count - 1];
bind->setTarget(mp);
- bind->addToObject(target);
+
+ if (instr.type == QDeclarativeInstruction::StoreBindingOnAlias) {
+ QDeclarativeAbstractBinding *old = QDeclarativePropertyPrivate::setBindingNoEnable(target, coreIndex, QDeclarativePropertyPrivate::valueTypeCoreIndex(mp), bind);
+ if (old) { old->destroy(); }
+ } else {
+ bind->addToObject(target, QDeclarativePropertyPrivate::bindingIndex(mp));
+ }
}
break;
@@ -701,7 +709,7 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack,
ctxt->optimizedBindings->configBinding(instr.assignBinding.value, target, scope, property);
bindValues.append(binding);
binding->m_mePtr = &bindValues.values[bindValues.count - 1];
- binding->addToObject(target);
+ binding->addToObject(target, property);
}
break;
@@ -874,8 +882,26 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack &stack,
case QDeclarativeInstruction::FetchValueType:
{
QObject *target = stack.top();
- QDeclarativeValueType *valueHandler =
- ep->valueTypes[instr.fetchValue.type];
+
+ if (instr.fetchValue.bindingSkipList != 0) {
+ // Possibly need to clear bindings
+ QDeclarativeData *targetData = QDeclarativeData::get(target);
+ if (targetData) {
+ QDeclarativeAbstractBinding *binding =
+ QDeclarativePropertyPrivate::binding(target, instr.fetchValue.property, -1);
+
+ if (binding && binding->bindingType() != QDeclarativeAbstractBinding::ValueTypeProxy) {
+ QDeclarativePropertyPrivate::setBinding(target, instr.fetchValue.property, -1, 0);
+ binding->destroy();
+ } else if (binding) {
+ QDeclarativeValueTypeProxyBinding *proxy =
+ static_cast(binding);
+ proxy->removeBindings(instr.fetchValue.bindingSkipList);
+ }
+ }
+ }
+
+ QDeclarativeValueType *valueHandler = ep->valueTypes[instr.fetchValue.type];
valueHandler->read(target, instr.fetchValue.property);
stack.push(valueHandler);
}
diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp
index e28062b..38c1709 100644
--- a/src/declarative/qml/qdeclarativevmemetaobject.cpp
+++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp
@@ -46,6 +46,7 @@
#include "qdeclarativeexpression.h"
#include "private/qdeclarativeexpression_p.h"
#include "private/qdeclarativecontext_p.h"
+#include "private/qdeclarativebinding_p.h"
Q_DECLARE_METATYPE(QScriptValue);
@@ -589,7 +590,21 @@ int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a)
if (d->isObjectAlias()) {
*reinterpret_cast(a[0]) = target;
return -1;
- } else if (d->isValueTypeAlias()) {
+ }
+
+ // Remove binding (if any) on write
+ if(c == QMetaObject::WriteProperty) {
+ int flags = *reinterpret_cast(a[3]);
+ if (flags & QDeclarativePropertyPrivate::RemoveBindingOnAliasWrite) {
+ QDeclarativeData *targetData = QDeclarativeData::get(target);
+ if (targetData && targetData->hasBindingBit(d->propertyIndex())) {
+ QDeclarativeAbstractBinding *binding = QDeclarativePropertyPrivate::setBinding(target, d->propertyIndex(), d->isValueTypeAlias()?d->valueTypeIndex():-1, 0);
+ if (binding) binding->destroy();
+ }
+ }
+ }
+
+ if (d->isValueTypeAlias()) {
// Value type property
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(ctxt->engine);
@@ -821,6 +836,36 @@ void QDeclarativeVMEMetaObject::setVMEProperty(int index, const QScriptValue &v)
return writeVarProperty(index - propOffset, v);
}
+bool QDeclarativeVMEMetaObject::aliasTarget(int index, QObject **target, int *coreIndex, int *valueTypeIndex) const
+{
+ Q_ASSERT(index >= propOffset + metaData->propertyCount);
+
+ *target = 0;
+ *coreIndex = -1;
+ *valueTypeIndex = -1;
+
+ if (!ctxt)
+ return false;
+
+ QDeclarativeVMEMetaData::AliasData *d = metaData->aliasData() + (index - propOffset - metaData->propertyCount);
+ QDeclarativeContext *context = ctxt->asQDeclarativeContext();
+ QDeclarativeContextPrivate *ctxtPriv = QDeclarativeContextPrivate::get(context);
+
+ *target = ctxtPriv->data->idValues[d->contextIdx].data();
+ if (!*target)
+ return false;
+
+ if (d->isObjectAlias()) {
+ } else if (d->isValueTypeAlias()) {
+ *coreIndex = d->propertyIndex();
+ *valueTypeIndex = d->valueTypeIndex();
+ } else {
+ *coreIndex = d->propertyIndex();
+ }
+
+ return true;
+}
+
void QDeclarativeVMEMetaObject::connectAlias(int aliasId)
{
if (!aConnected.testBit(aliasId)) {
diff --git a/src/declarative/qml/qdeclarativevmemetaobject_p.h b/src/declarative/qml/qdeclarativevmemetaobject_p.h
index 5134763..7b6b410 100644
--- a/src/declarative/qml/qdeclarativevmemetaobject_p.h
+++ b/src/declarative/qml/qdeclarativevmemetaobject_p.h
@@ -138,6 +138,7 @@ public:
QDeclarativeCompiledData *compiledData);
~QDeclarativeVMEMetaObject();
+ bool aliasTarget(int index, QObject **target, int *coreIndex, int *valueTypeIndex) const;
void registerInterceptor(int index, int valueIndex, QDeclarativePropertyValueInterceptor *interceptor);
QScriptValue vmeMethod(int index);
int vmeMethodLineNumber(int index);
@@ -146,6 +147,7 @@ public:
void setVMEProperty(int index, const QScriptValue &);
void connectAliasSignal(int index);
+
protected:
virtual int metaCall(QMetaObject::Call _c, int _id, void **_a);
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsAssignCorrectlyType.qml b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsAssignCorrectlyType.qml
new file mode 100644
index 0000000..0eda67d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsAssignCorrectlyType.qml
@@ -0,0 +1,9 @@
+import QtQuick 1.0
+
+QtObject {
+ id: root
+
+ property real realProperty
+ property alias aliasProperty: root.realProperty
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType.qml b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType.qml
new file mode 100644
index 0000000..f539fb6
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType.qml
@@ -0,0 +1,14 @@
+import QtQuick 1.0
+import Qt.test 1.0
+
+MyTypeObject {
+ id: root
+
+ property int data: 7
+
+ property int targetProperty: root.data * 43 - root.data
+ property alias aliasProperty: root.targetProperty
+
+ pointProperty: Qt.point(data, data);
+ property alias pointAliasProperty: root.pointProperty
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType3.qml
new file mode 100644
index 0000000..a4b0527
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType3.qml
@@ -0,0 +1,9 @@
+import QtQuick 1.0
+
+QtObject {
+ id: root
+
+ property int testProperty
+ property alias aliasProperty: root.testProperty
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsAssignCorrectly.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsAssignCorrectly.qml
new file mode 100644
index 0000000..f0808c4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsAssignCorrectly.qml
@@ -0,0 +1,59 @@
+import QtQuick 1.0
+
+Item {
+ id: root
+
+ property bool test: false
+
+ property real testData: 9
+ property real testData2: 9
+
+ states: State {
+ name: "change"
+ PropertyChanges {
+ target: myType
+ realProperty: if (testData2 > 3) 9; else 11;
+ }
+ }
+
+ AliasBindingsAssignCorrectlyType {
+ id: myType
+
+ aliasProperty: if (testData > 3) 14; else 12;
+ }
+
+ Component.onCompleted: {
+ // Check original binding works
+ if (myType.aliasProperty != 14) return;
+
+ testData = 2;
+ if (myType.aliasProperty != 12) return;
+
+ // Change binding indirectly by modifying the "realProperty"
+ root.state = "change";
+ if (myType.aliasProperty != 9) return;
+
+ // Check the new binding works
+ testData2 = 1;
+ if (myType.aliasProperty != 11) return;
+
+ // Try and trigger the old binding (that should have been removed)
+ testData = 6;
+ if (myType.aliasProperty != 11) return;
+
+ // Restore the original binding
+ root.state = "";
+ if (myType.aliasProperty != 14) return;
+
+ // Test the restored binding works
+ testData = 0;
+ if (myType.aliasProperty != 12) return;
+
+ // Test the old binding isn't somehow hanging around and still in effect
+ testData2 = 13;
+ if (myType.aliasProperty != 12) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.2.qml
new file mode 100644
index 0000000..4f07cbf
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.2.qml
@@ -0,0 +1,29 @@
+import QtQuick 1.0
+
+Item {
+ id: me
+ property bool test: false
+
+ property int value: 9
+
+ AliasBindingsOverrideTargetType {
+ id: aliasType
+ pointAliasProperty.x: me.value
+ }
+
+ Component.onCompleted: {
+ if (aliasType.pointAliasProperty.x != 9) return;
+
+ me.value = 11;
+ if (aliasType.pointAliasProperty.x != 11) return;
+
+ aliasType.data = 8;
+ if (aliasType.pointAliasProperty.x != 11) return;
+
+ me.value = 4;
+ if (aliasType.pointAliasProperty.x != 4) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.3.qml
new file mode 100644
index 0000000..937ae91
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.3.qml
@@ -0,0 +1,24 @@
+import QtQuick 1.0
+
+Item {
+ id: root
+ property bool test: false;
+
+ property int value1: 10
+ property int value2: 11
+
+ AliasBindingsOverrideTargetType3 {
+ id: obj
+
+ testProperty: root.value1 * 9
+ aliasProperty: root.value2 * 10
+ }
+
+ Component.onCompleted: {
+ if (obj.testProperty != 110) return;
+ if (obj.aliasProperty != 110) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.qml
new file mode 100644
index 0000000..a01dc5b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.qml
@@ -0,0 +1,28 @@
+import QtQuick 1.0
+
+Item {
+ id: me
+ property bool test: false
+
+ property int value: 9
+
+ AliasBindingsOverrideTargetType {
+ id: aliasType
+ aliasProperty: me.value
+ }
+
+ Component.onCompleted: {
+ if (aliasType.aliasProperty != 9) return;
+
+ me.value = 11;
+ if (aliasType.aliasProperty != 11) return;
+
+ aliasType.data = 8;
+ if (aliasType.aliasProperty != 11) return;
+
+ me.value = 4;
+ if (aliasType.aliasProperty != 4) return;
+
+ test = true;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.2.qml
new file mode 100644
index 0000000..5bf9f6a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.2.qml
@@ -0,0 +1,29 @@
+import QtQuick 1.0
+
+Item {
+ id: me
+ property bool test: false
+
+ property int value: 9
+
+ AliasBindingsOverrideTargetType {
+ id: aliasType
+ }
+
+ Component.onCompleted: {
+ if (aliasType.aliasProperty != 294) return;
+
+ aliasType.data = 8;
+ if (aliasType.aliasProperty != 336) return;
+
+ aliasType.aliasProperty = 4;
+ if (aliasType.aliasProperty != 4) return;
+
+ aliasType.data = 7;
+ if (aliasType.aliasProperty != 4) return;
+
+ test = true;
+ }
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.3.qml
new file mode 100644
index 0000000..a23ad4a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.3.qml
@@ -0,0 +1,23 @@
+import QtQuick 1.0
+
+Item {
+ id: me
+ property bool test: false
+
+ property int value: 9
+
+ AliasBindingsOverrideTargetType {
+ id: aliasType
+ pointAliasProperty.x: 9
+ }
+
+ Component.onCompleted: {
+ if (aliasType.pointAliasProperty.x != 9) return;
+
+ aliasType.data = 8;
+ if (aliasType.pointAliasProperty.x != 9) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.qml
new file mode 100644
index 0000000..ac20371
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.qml
@@ -0,0 +1,23 @@
+import QtQuick 1.0
+
+Item {
+ id: me
+ property bool test: false
+
+ property int value: 9
+
+ AliasBindingsOverrideTargetType {
+ id: aliasType
+ aliasProperty: 11
+ }
+
+ Component.onCompleted: {
+ if (aliasType.aliasProperty != 11) return;
+
+ aliasType.data = 8;
+ if (aliasType.aliasProperty != 11) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/writeRemovesBinding.qml b/tests/auto/declarative/qdeclarativeecmascript/data/writeRemovesBinding.qml
new file mode 100644
index 0000000..035f037
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/writeRemovesBinding.qml
@@ -0,0 +1,46 @@
+import QtQuick 1.0
+
+QtObject {
+ id: root
+
+ property bool test: false
+
+ property real data: 9
+ property real binding: data
+
+ property alias aliasProperty: root.aliasBinding
+ property real aliasBinding: data
+
+ Component.onCompleted: {
+ // Non-aliased properties
+ if (binding != 9) return;
+
+ data = 11;
+ if (binding != 11) return;
+
+ binding = 6;
+ if (binding != 6) return;
+
+ data = 3;
+ if (binding != 6) return;
+
+
+ // Writing through an aliased property
+ if (aliasProperty != 3) return;
+ if (aliasBinding != 3) return;
+
+ data = 4;
+ if (aliasProperty != 4) return;
+ if (aliasBinding != 4) return;
+
+ aliasProperty = 19;
+ if (aliasProperty != 19) return;
+ if (aliasBinding != 19) return;
+
+ data = 5;
+ if (aliasProperty != 19) return;
+ if (aliasBinding != 19) return;
+
+ test = true;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 652404c..8658217 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -164,6 +164,10 @@ private slots:
void in();
void sharedAttachedObject();
void objectName();
+ void writeRemovesBinding();
+ void aliasBindingsAssignCorrectly();
+ void aliasBindingsOverrideTarget();
+ void aliasWritesOverrideBindings();
void include();
@@ -2671,6 +2675,97 @@ void tst_qdeclarativeecmascript::objectName()
delete o;
}
+void tst_qdeclarativeecmascript::writeRemovesBinding()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("writeRemovesBinding.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+}
+
+// Test bindings assigned to alias properties actually assign to the alias' target
+void tst_qdeclarativeecmascript::aliasBindingsAssignCorrectly()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasBindingsAssignCorrectly.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+}
+
+// Test bindings assigned to alias properties override a binding on the target (QTBUG-13719)
+void tst_qdeclarativeecmascript::aliasBindingsOverrideTarget()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasBindingsOverrideTarget.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasBindingsOverrideTarget.2.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasBindingsOverrideTarget.3.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+}
+
+// Test that writes to alias properties override bindings on the alias target (QTBUG-13719)
+void tst_qdeclarativeecmascript::aliasWritesOverrideBindings()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasWritesOverrideBindings.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasWritesOverrideBindings.2.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasWritesOverrideBindings.3.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test").toBool(), true);
+
+ delete o;
+ }
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index db1f191..4470d65 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -458,6 +458,7 @@ void tst_qdeclarativeinstruction::dump()
i.type = QDeclarativeInstruction::FetchValueType;
i.fetchValue.property = 34;
i.fetchValue.type = 6;
+ i.fetchValue.bindingSkipList = 7;
data->bytecode << i;
}
@@ -538,7 +539,7 @@ void tst_qdeclarativeinstruction::dump()
<< "Index\tLine\tOperation\t\tData1\tData2\tData3\tComments"
<< "-------------------------------------------------------------------------------"
<< "0\t\t0\tINIT\t\t\t0\t3\t-1\t-1"
- << "1\t\t1\tCREATE\t\t\t0\t\t\t\"Test\""
+ << "1\t\t1\tCREATE\t\t\t0\t-1\t\t\"Test\""
<< "2\t\t2\tSETID\t\t\t0\t\t\t\"testId\""
<< "3\t\t3\tSET_DEFAULT"
<< "4\t\t4\tCREATE_COMPONENT\t3"
@@ -578,7 +579,7 @@ void tst_qdeclarativeinstruction::dump()
<< "38\t\t40\tFETCH_ATTACHED\t\t23"
<< "39\t\t42\tFETCH_QLIST\t\t32"
<< "40\t\t43\tFETCH\t\t\t33"
- << "41\t\t44\tFETCH_VALUE\t\t34\t6"
+ << "41\t\t44\tFETCH_VALUE\t\t34\t6\t7"
<< "42\t\t45\tPOP"
<< "43\t\t46\tPOP_QLIST"
<< "44\t\t47\tPOP_VALUE\t\t35\t8"
diff --git a/tests/auto/declarative/qdeclarativeproperty/data/aliasPropertyBindings.qml b/tests/auto/declarative/qdeclarativeproperty/data/aliasPropertyBindings.qml
new file mode 100644
index 0000000..a253a58
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeproperty/data/aliasPropertyBindings.qml
@@ -0,0 +1,19 @@
+import QtQuick 1.0
+
+Item {
+ id: root
+
+ property real test: 9
+ property real test2: 3
+
+ property real realProperty: test * test + test
+ property alias aliasProperty: root.realProperty
+
+ states: State {
+ name: "switch"
+ PropertyChanges {
+ target: root
+ aliasProperty: 32 * test2
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
index 0ca0e03..3cc71bb 100644
--- a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
+++ b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
@@ -132,6 +132,7 @@ private slots:
// Bugs
void crashOnValueProperty();
+ void aliasPropertyBindings();
void copy();
private:
@@ -1308,6 +1309,74 @@ void tst_qdeclarativeproperty::crashOnValueProperty()
QCOMPARE(p.read(), QVariant(20));
}
+// QTBUG-13719
+void tst_qdeclarativeproperty::aliasPropertyBindings()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertyBindings.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("realProperty").toReal(), 90.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 90.);
+
+ object->setProperty("test", 10);
+
+ QCOMPARE(object->property("realProperty").toReal(), 110.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 110.);
+
+ QDeclarativeProperty realProperty(object, QLatin1String("realProperty"));
+ QDeclarativeProperty aliasProperty(object, QLatin1String("aliasProperty"));
+
+ // Check there is a binding on these two properties
+ QVERIFY(QDeclarativePropertyPrivate::binding(realProperty) != 0);
+ QVERIFY(QDeclarativePropertyPrivate::binding(aliasProperty) != 0);
+
+ // Check that its the same binding on these two properties
+ QCOMPARE(QDeclarativePropertyPrivate::binding(realProperty),
+ QDeclarativePropertyPrivate::binding(aliasProperty));
+
+ // Change the binding
+ object->setProperty("state", QString("switch"));
+
+ QVERIFY(QDeclarativePropertyPrivate::binding(realProperty) != 0);
+ QVERIFY(QDeclarativePropertyPrivate::binding(aliasProperty) != 0);
+ QCOMPARE(QDeclarativePropertyPrivate::binding(realProperty),
+ QDeclarativePropertyPrivate::binding(aliasProperty));
+
+ QCOMPARE(object->property("realProperty").toReal(), 96.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 96.);
+
+ // Check the old binding really has not effect any more
+ object->setProperty("test", 4);
+
+ QCOMPARE(object->property("realProperty").toReal(), 96.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 96.);
+
+ object->setProperty("test2", 9);
+
+ QCOMPARE(object->property("realProperty").toReal(), 288.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 288.);
+
+ // Revert
+ object->setProperty("state", QString(""));
+
+ QVERIFY(QDeclarativePropertyPrivate::binding(realProperty) != 0);
+ QVERIFY(QDeclarativePropertyPrivate::binding(aliasProperty) != 0);
+ QCOMPARE(QDeclarativePropertyPrivate::binding(realProperty),
+ QDeclarativePropertyPrivate::binding(aliasProperty));
+
+ QCOMPARE(object->property("realProperty").toReal(), 20.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 20.);
+
+ object->setProperty("test2", 3);
+
+ QCOMPARE(object->property("realProperty").toReal(), 20.);
+ QCOMPARE(object->property("aliasProperty").toReal(), 20.);
+
+ delete object;
+}
+
void tst_qdeclarativeproperty::copy()
{
PropertyObject object;
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType.qml
new file mode 100644
index 0000000..f625d08
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ property bool boldProperty: false
+
+ font.bold: boldProperty
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType4.qml
new file mode 100644
index 0000000..0bdccce
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType4.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ property int dataProperty: 7
+
+ point: Qt.point(dataProperty, dataProperty)
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType5.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType5.qml
new file mode 100644
index 0000000..151c499
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType5.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ property int dataProperty: 7
+
+ point.x: dataProperty
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.1.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.1.qml
new file mode 100644
index 0000000..7012143
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.1.qml
@@ -0,0 +1,29 @@
+import Test 1.0
+import QtQuick 1.0
+
+BindingsSpliceCorrectlyType {
+ property bool test: false
+
+ property bool italicProperty: false
+
+ font.italic: italicProperty
+
+ Component.onCompleted: {
+ // Test initial state
+ if (font.italic != false) return;
+ if (font.bold != false) return;
+
+ // Test italic binding worked
+ italicProperty = true;
+
+ if (font.italic != true) return;
+ if (font.bold != false) return;
+
+ // Test bold binding worked
+ boldProperty = true;
+ if (font.italic != true) return;
+ if (font.bold != true) return;
+
+ test = true;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.2.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.2.qml
new file mode 100644
index 0000000..69dbcab
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.2.qml
@@ -0,0 +1,31 @@
+import Test 1.0
+import QtQuick 1.0
+
+BindingsSpliceCorrectlyType {
+ property bool test: false
+
+ property bool italicProperty: false
+
+ font.italic: italicProperty
+ font.bold: false
+
+ Component.onCompleted: {
+ // Test initial state
+ if (font.italic != false) return;
+ if (font.bold != false) return;
+
+ // Test italic binding worked
+ italicProperty = true;
+
+ if (font.italic != true) return;
+ if (font.bold != false) return;
+
+ // Test bold binding was removed by constant write
+ boldProperty = true;
+ if (font.italic != true) return;
+ if (font.bold != false) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.3.qml
new file mode 100644
index 0000000..669feb9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.3.qml
@@ -0,0 +1,36 @@
+import Test 1.0
+import QtQuick 1.0
+
+BindingsSpliceCorrectlyType {
+ property bool test: false
+
+ property bool italicProperty: false
+ property bool boldProperty2: false
+
+ font.italic: italicProperty
+ font.bold: boldProperty2
+
+ Component.onCompleted: {
+ // Test initial state
+ if (font.italic != false) return;
+ if (font.bold != false) return;
+
+ // Test italic binding worked
+ italicProperty = true;
+
+ if (font.italic != true) return;
+ if (font.bold != false) return;
+
+ // Test bold binding was overridden
+ boldProperty = true;
+ if (font.italic != true) return;
+ if (font.bold != false) return;
+
+ boldProperty2 = true;
+ if (font.italic != true) return;
+ if (font.bold != true) return;
+
+ test = true;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.4.qml
new file mode 100644
index 0000000..f28584f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.4.qml
@@ -0,0 +1,27 @@
+import Test 1.0
+import QtQuick 1.0
+
+BindingsSpliceCorrectlyType4 {
+ property bool test: false
+
+ property int dataProperty2: 8
+
+ point.x: dataProperty2
+
+ Component.onCompleted: {
+ if (point.x != 8) return;
+ if (point.y != 4) return;
+
+ dataProperty = 9;
+
+ if (point.x != 8) return;
+ if (point.y != 4) return;
+
+ dataProperty2 = 13;
+
+ if (point.x != 13) return;
+ if (point.y != 4) return;
+
+ test = true;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.5.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.5.qml
new file mode 100644
index 0000000..1214c83
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.5.qml
@@ -0,0 +1,27 @@
+import Test 1.0
+import QtQuick 1.0
+
+BindingsSpliceCorrectlyType5 {
+ property bool test: false
+
+ property int dataProperty2: 8
+
+ point: Qt.point(dataProperty2, dataProperty2);
+
+ Component.onCompleted: {
+ if (point.x != 8) return;
+ if (point.y != 8) return;
+
+ dataProperty = 9;
+
+ if (point.x != 8) return;
+ if (point.y != 8) return;
+
+ dataProperty2 = 13;
+
+ if (point.x != 13) return;
+ if (point.y != 13) return;
+
+ test = true;
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
index a4819f3..c243a75 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
+++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
@@ -94,6 +94,7 @@ private slots:
void conflictingBindings();
void returnValues();
void varAssignment();
+ void bindingsSpliceCorrectly();
private:
QDeclarativeEngine engine;
@@ -942,6 +943,61 @@ void tst_qdeclarativevaluetypes::varAssignment()
delete object;
}
+// Test bindings splice together correctly
+void tst_qdeclarativevaluetypes::bindingsSpliceCorrectly()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("bindingsSpliceCorrectly.1.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("bindingsSpliceCorrectly.2.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("bindingsSpliceCorrectly.3.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("bindingsSpliceCorrectly.4.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("bindingsSpliceCorrectly.5.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+}
+
QTEST_MAIN(tst_qdeclarativevaluetypes)
#include "tst_qdeclarativevaluetypes.moc"
--
cgit v0.12
From 3aabc92c72bdd9f7e7bc67dd22dae203033e958a Mon Sep 17 00:00:00 2001
From: Rhys Weatherley
Date: Tue, 30 Nov 2010 08:33:25 +1000
Subject: Fix resource leak in QEgl::getCompatibleVisualld()
Contributed patch.
Task-number: QT-4335
Reviewed-by: Daniel Pope
---
src/gui/egl/qegl_x11.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/gui/egl/qegl_x11.cpp b/src/gui/egl/qegl_x11.cpp
index 15cc109..29415ed 100644
--- a/src/gui/egl/qegl_x11.cpp
+++ b/src/gui/egl/qegl_x11.cpp
@@ -165,8 +165,10 @@ VisualID QEgl::getCompatibleVisualId(EGLConfig config)
if (chosenVisualInfo) {
// Skip size checks if implementation supports non-matching visual
// and config (http://bugreports.qt.nokia.com/browse/QTBUG-9444).
- if (QEgl::hasExtension("EGL_NV_post_convert_rounding"))
+ if (QEgl::hasExtension("EGL_NV_post_convert_rounding")) {
+ XFree(chosenVisualInfo);
return visualId;
+ }
int visualRedSize = countBits(chosenVisualInfo->red_mask);
int visualGreenSize = countBits(chosenVisualInfo->green_mask);
--
cgit v0.12
From d1dbc94fad945e7a80ce0ca0d17b713d3685dc22 Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Tue, 30 Nov 2010 09:53:46 +1000
Subject: Add license to example code
---
doc/src/snippets/declarative/keynavigation.qml | 39 ++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/doc/src/snippets/declarative/keynavigation.qml b/doc/src/snippets/declarative/keynavigation.qml
index d72bb3a..e11cdf1 100644
--- a/doc/src/snippets/declarative/keynavigation.qml
+++ b/doc/src/snippets/declarative/keynavigation.qml
@@ -1,3 +1,42 @@
+/****************************************************************************
+**
+** 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
--
cgit v0.12
From 067d63d03556d361b13f5d9fb9d41b78294fc04c Mon Sep 17 00:00:00 2001
From: Aaron Kennedy
Date: Tue, 30 Nov 2010 11:08:48 +1000
Subject: Remove expect-fails from passing tests
---
.../declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 8658217..14755f32 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -745,11 +745,9 @@ void tst_qdeclarativeecmascript::constantsOverrideBindings()
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 47914053d93abe291ea85ad46e00fa8a6dc7a702 Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Tue, 30 Nov 2010 11:55:51 +1000
Subject: Link to List Properties docs from QML Intro page
Task-number: QTBUG-15606
---
doc/src/declarative/qdeclarativeintro.qdoc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc
index 1d807e3..a3773fd 100644
--- a/doc/src/declarative/qdeclarativeintro.qdoc
+++ b/doc/src/declarative/qdeclarativeintro.qdoc
@@ -233,6 +233,10 @@ Image {
}
\endcode
+Items in the list can be accessed by index. See the \l{list}{list type} documentation
+for more details about list properties and their available operations.
+
+
\section2 Default properties
Each object type can specify one of its list or object properties as its default property.
--
cgit v0.12
From e960316477982d21061ca8894109f1f8426b2dec Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Tue, 30 Nov 2010 12:19:18 +1000
Subject: Fix id documentation
Task-number: QTBUG-15604
---
doc/src/declarative/qdeclarativeintro.qdoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc
index a3773fd..4e41fda 100644
--- a/doc/src/declarative/qdeclarativeintro.qdoc
+++ b/doc/src/declarative/qdeclarativeintro.qdoc
@@ -186,7 +186,7 @@ Item {
\section3 The \c id property
Each object can be given a special unique property called an \e id. No other object within the
-same \l{QML Documents}{QML document} can have the same \c id value. Assigning an id enables the object
+same QML component (see \l{QML Documents}) can have the same \c id value. Assigning an id enables the object
to be referred to by other objects and scripts.
The first Rectangle element below has an \e id, "myRect". The second Rectangle element defines its
--
cgit v0.12
From 282441f72a7704aadc5525a360430d0c3d49aea6 Mon Sep 17 00:00:00 2001
From: Joona Petrell
Date: Tue, 30 Nov 2010 11:37:09 +1000
Subject: Don't draw null pixmap in QDeclarativeImage paint function
Task-number: QTBUG-15690
Reviewed-by: Martin Jones
---
.../graphicsitems/qdeclarativeimage.cpp | 2 +-
.../qdeclarativeimage/tst_qdeclarativeimage.cpp | 30 ++++++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp
index 3b08a9b..aa74716 100644
--- a/src/declarative/graphicsitems/qdeclarativeimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp
@@ -461,7 +461,7 @@ QRectF QDeclarativeImage::boundingRect() const
void QDeclarativeImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
{
Q_D(QDeclarativeImage);
- if (d->pix.isNull())
+ if (d->pix.pixmap().isNull() )
return;
bool oldAA = p->testRenderHint(QPainter::Antialiasing);
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index bf779ad..447210d 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -87,6 +87,7 @@ private slots:
void noLoading();
void paintedWidthHeight();
void sourceSize_QTBUG_14303();
+ void nullPixmapPaint();
private:
template
@@ -540,6 +541,35 @@ void tst_qdeclarativeimage::sourceSize_QTBUG_14303()
QTRY_COMPARE(sourceSizeSpy.count(), 2);
}
+static int numberOfWarnings = 0;
+static void checkWarnings(QtMsgType, const char *)
+{
+ numberOfWarnings++;
+}
+
+// QTBUG-15690
+void tst_qdeclarativeimage::nullPixmapPaint()
+{
+ QString componentStr = QString("import QtQuick 1.0\nImage { width: 10; height:10; fillMode: Image.PreserveAspectFit; source: \"")
+ + SERVER_ADDR + QString("/no-such-file.png\" }");
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeImage *image = qobject_cast(component.create());
+
+ QTRY_VERIFY(image != 0);
+
+ QtMsgHandler previousMsgHandler = qInstallMsgHandler(checkWarnings);
+
+ QPixmap pm(100, 100);
+ QPainter p(&pm);
+
+ // used to print "QTransform::translate with NaN called"
+ image->paint(&p, 0, 0);
+ qInstallMsgHandler(previousMsgHandler);
+ QVERIFY(numberOfWarnings == 0);
+ delete image;
+}
+
/*
Find an item with the specified objectName. If index is supplied then the
item must also evaluate the {index} expression equal to index
--
cgit v0.12
From efc41eaa7224c33b5b5af7eae27c93c6748255bc Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Tue, 30 Nov 2010 13:48:30 +1000
Subject: Document which header to include for qmlRegister functions.
Task-number: QTBUG-15630
Reviewed-by: Bea Lam
---
doc/src/declarative/extending.qdoc | 2 ++
doc/src/declarative/qtdeclarative.qdoc | 16 ++++++++++++++++
.../declarative/qtbinding/newelements/imageviewer.h | 2 +-
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 5c1b977..740f7d1 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -75,6 +75,8 @@ constructor.
\endquotation
+#include to use qmlRegisterType().
+
Types can be registered by libraries, application code, or by plugins
(see QDeclarativeExtensionPlugin).
diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc
index f2b2032..b0c6e06 100644
--- a/doc/src/declarative/qtdeclarative.qdoc
+++ b/doc/src/declarative/qtdeclarative.qdoc
@@ -57,6 +57,8 @@
\relates QDeclarativeEngine
Equivalent to \c Q_DECLARE_METATYPE(TYPE) and \c Q_DECLARE_METATYPE(QDeclarativeListProperty)
+
+ #include to use this macro.
*/
/*!
@@ -68,6 +70,8 @@
Current the only supported type info is \c QML_HAS_ATTACHED_PROPERTIES which
declares that the \a Type supports \l {Attached Properties}.
+
+ #include to use this macro.
*/
@@ -86,6 +90,10 @@
"com.mycompany.qmlcomponents":
\code
+ #include
+
+ ...
+
qmlRegisterType("com.mycompany.qmlcomponents", 1, 0, "Slider");
\endcode
@@ -119,6 +127,8 @@
Returns the QML type id.
+ #include to use this function.
+
\sa qmlRegisterTypeNotAvailable()
*/
@@ -154,6 +164,8 @@
Without this, a generic "Game is not a type" message would be given.
+ #include to use this function.
+
\sa qmlRegisterUncreatableType()
*/
@@ -166,6 +178,8 @@
system. Instances of this type cannot be created from the QML
system.
+ #include to use this function.
+
Returns the QML type id.
*/
@@ -176,5 +190,7 @@
This template function registers the C++ type in the QML system
under the name \a typeName.
+ #include to use this function.
+
Returns the QML type id.
*/
diff --git a/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h
index fd9db5e..cec9757 100644
--- a/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h
+++ b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h
@@ -37,10 +37,10 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+//![0]
#include
#include
-//![0]
class ImageViewer : public QDeclarativeItem
{
Q_OBJECT
--
cgit v0.12
From 1de080649c6b810ed6bc05e883795687ecde1f3d Mon Sep 17 00:00:00 2001
From: Joona Petrell
Date: Fri, 29 Oct 2010 13:05:16 +1000
Subject: Fix Browser.qml warnings
Task-number: QTBUG-15720
Reviewed-by: Martin Jones
---
src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp | 2 +-
.../qdeclarativeviewer/tst_qdeclarativeviewer.cpp | 12 ++++++++++++
tools/qml/browser/Browser.qml | 4 ++--
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
index abab33c..9c71004 100644
--- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
+++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
@@ -279,7 +279,7 @@ void QDeclarativeFolderListModel::classBegin()
void QDeclarativeFolderListModel::componentComplete()
{
- if (!d->folder.isValid() || !QDir().exists(d->folder.toLocalFile()))
+ if (!d->folder.isValid() || d->folder.toLocalFile().isEmpty() || !QDir().exists(d->folder.toLocalFile()))
setFolder(QUrl(QLatin1String("file://")+QDir::currentPath()));
if (!d->folderIndex.isValid())
diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
index 21c7197..f19eb03 100644
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
@@ -238,13 +238,25 @@ void tst_QDeclarativeViewer::loading()
delete viewer;
}
+static int numberOfWarnings = 0;
+static void checkWarnings(QtMsgType, const char *)
+{
+ numberOfWarnings++;
+}
+
void tst_QDeclarativeViewer::fileBrowser()
{
+ QtMsgHandler previousMsgHandler = qInstallMsgHandler(checkWarnings);
QDeclarativeViewer *viewer = new QDeclarativeViewer();
QVERIFY(viewer);
viewer->setUseNativeFileBrowser(false);
viewer->openFile();
viewer->show();
+ QCoreApplication::processEvents();
+ qInstallMsgHandler(previousMsgHandler);
+
+ // QTBUG-15720
+ QVERIFY(numberOfWarnings == 0);
QApplication::setActiveWindow(viewer);
QTest::qWaitForWindowShown(viewer);
diff --git a/tools/qml/browser/Browser.qml b/tools/qml/browser/Browser.qml
index ebed72f..b9573da 100644
--- a/tools/qml/browser/Browser.qml
+++ b/tools/qml/browser/Browser.qml
@@ -180,7 +180,7 @@ Rectangle {
GradientStop { id: t1; position: 0.0; color: palette.highlight }
GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
}
- width: view1.currentItem.width
+ width: view1.currentItem == null ? 0 : view1.currentItem.width
}
highlightMoveSpeed: 1000
pressDelay: 100
@@ -230,7 +230,7 @@ Rectangle {
GradientStop { id: t1; position: 0.0; color: palette.highlight }
GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
}
- width: view1.currentItem.width
+ width: view1.currentItem == null ? 0 : view1.currentItem.width
}
highlightMoveSpeed: 1000
pressDelay: 100
--
cgit v0.12
From 46213b30d639505849d079b30e72ef8393e9a748 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy
Date: Tue, 30 Nov 2010 14:30:35 +1000
Subject: Correctly handle CppOwnership even when a QDeclarativeData doesn't
exist
Task-number: QTBUG-15695
---
src/declarative/qml/qdeclarativeengine.cpp | 4 +-
.../tst_qdeclarativeecmascript.cpp | 46 ++++++++++++++++++++++
2 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index c646302..add1ab7 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -897,9 +897,7 @@ void QDeclarativeEngine::setObjectOwnership(QObject *object, ObjectOwnership own
if (!object)
return;
- // No need to do anything if CppOwnership and there is no QDeclarativeData as
- // the current ownership must be CppOwnership
- QDeclarativeData *ddata = QDeclarativeData::get(object, ownership == JavaScriptOwnership);
+ QDeclarativeData *ddata = QDeclarativeData::get(object, true);
if (!ddata)
return;
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 14755f32..7c0a316 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -135,6 +135,7 @@ private slots:
void scriptConnect();
void scriptDisconnect();
void ownership();
+ void cppOwnershipReturnValue();
void qlistqobjectMethods();
void strictlyEquals();
void compiled();
@@ -2100,6 +2101,51 @@ void tst_qdeclarativeecmascript::ownership()
}
}
+class CppOwnershipReturnValue : public QObject
+{
+ Q_OBJECT
+public:
+ CppOwnershipReturnValue() : value(0) {}
+
+ Q_INVOKABLE QObject *create() {
+ Q_ASSERT(value == 0);
+
+ value = new QObject;
+ QDeclarativeEngine::setObjectOwnership(value, QDeclarativeEngine::CppOwnership);
+ return value;
+ }
+
+ QPointer value;
+};
+
+// QTBUG-15695.
+// Test setObjectOwnership(CppOwnership) works even when there is no QDeclarativeData
+void tst_qdeclarativeecmascript::cppOwnershipReturnValue()
+{
+ CppOwnershipReturnValue source;
+
+ {
+ QDeclarativeEngine engine;
+ engine.rootContext()->setContextProperty("source", &source);
+
+ QVERIFY(source.value == 0);
+
+ QDeclarativeComponent component(&engine);
+ component.setData("import QtQuick 1.0\nQtObject {\nComponent.onCompleted: { var a = source.create(); }\n}\n", QUrl());
+
+ QObject *object = component.create();
+
+ QVERIFY(object != 0);
+ QVERIFY(source.value != 0);
+
+ delete object;
+ }
+
+ QCoreApplication::instance()->processEvents(QEventLoop::DeferredDeletion);
+
+ QVERIFY(source.value != 0);
+}
+
class QListQObjectMethodsObject : public QObject
{
Q_OBJECT
--
cgit v0.12
From 16cbe54f41ff4ff9a03ce3973c52be32d63b7138 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy
Date: Tue, 30 Nov 2010 15:13:42 +1000
Subject: Correct ownership semantics for QObject derived types
Task-number: QTBUG-15697
---
.../qml/qdeclarativeobjectscriptclass.cpp | 11 +++++--
.../tst_qdeclarativeecmascript.cpp | 37 ++++++++++++++++++++++
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
index eff59df..b0bc5bb 100644
--- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
+++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp
@@ -69,7 +69,7 @@ struct ObjectData : public QScriptDeclarativeClass::Object {
virtual ~ObjectData() {
if (object && !object->parent()) {
QDeclarativeData *ddata = QDeclarativeData::get(object, false);
- if (ddata && !ddata->indestructible && 0 == --ddata->objectDataRefCount)
+ if (ddata && !ddata->indestructible && 0 == --ddata->objectDataRefCount)
object->deleteLater();
}
}
@@ -808,7 +808,14 @@ QScriptDeclarativeClass::Value MetaCallArgument::toValue(QDeclarativeEngine *e)
}
return QScriptDeclarativeClass::Value(engine, rv);
} else if (type == -1 || type == qMetaTypeId()) {
- return QScriptDeclarativeClass::Value(engine, QDeclarativeEnginePrivate::get(e)->scriptValueFromVariant(*((QVariant *)&data)));
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(e);
+ QScriptValue rv = ep->scriptValueFromVariant(*((QVariant *)&data));
+ if (rv.isQObject()) {
+ QObject *object = rv.toQObject();
+ if (object)
+ QDeclarativeData::get(object, true)->setImplicitDestructible();
+ }
+ return QScriptDeclarativeClass::Value(engine, rv);
} else {
return QScriptDeclarativeClass::Value();
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 7c0a316..77fab91 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -136,6 +136,7 @@ private slots:
void scriptDisconnect();
void ownership();
void cppOwnershipReturnValue();
+ void ownershipCustomReturnValue();
void qlistqobjectMethods();
void strictlyEquals();
void compiled();
@@ -2106,6 +2107,7 @@ class CppOwnershipReturnValue : public QObject
Q_OBJECT
public:
CppOwnershipReturnValue() : value(0) {}
+ ~CppOwnershipReturnValue() { delete value; }
Q_INVOKABLE QObject *create() {
Q_ASSERT(value == 0);
@@ -2115,6 +2117,14 @@ public:
return value;
}
+ Q_INVOKABLE MyQmlObject *createQmlObject() {
+ Q_ASSERT(value == 0);
+
+ MyQmlObject *rv = new MyQmlObject;
+ value = rv;
+ return rv;
+ }
+
QPointer value;
};
@@ -2146,6 +2156,33 @@ void tst_qdeclarativeecmascript::cppOwnershipReturnValue()
QVERIFY(source.value != 0);
}
+// QTBUG-15697
+void tst_qdeclarativeecmascript::ownershipCustomReturnValue()
+{
+ CppOwnershipReturnValue source;
+
+ {
+ QDeclarativeEngine engine;
+ engine.rootContext()->setContextProperty("source", &source);
+
+ QVERIFY(source.value == 0);
+
+ QDeclarativeComponent component(&engine);
+ component.setData("import QtQuick 1.0\nQtObject {\nComponent.onCompleted: { var a = source.createQmlObject(); }\n}\n", QUrl());
+
+ QObject *object = component.create();
+
+ QVERIFY(object != 0);
+ QVERIFY(source.value != 0);
+
+ delete object;
+ }
+
+ QCoreApplication::instance()->processEvents(QEventLoop::DeferredDeletion);
+
+ QVERIFY(source.value == 0);
+}
+
class QListQObjectMethodsObject : public QObject
{
Q_OBJECT
--
cgit v0.12
From fe3cfced940f41d078380ef7bdebe40d85aa49a2 Mon Sep 17 00:00:00 2001
From: Joona Petrell
Date: Tue, 30 Nov 2010 15:23:45 +1000
Subject: Fix integer overflow in QDeclarativeItemPrivate::origin enumeration
Task-number: QTBUG-15694
Reviewed-by: Martin Jones
---
src/declarative/graphicsitems/qdeclarativeitem_p.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h
index f85fa27..d8635b9 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h
@@ -259,7 +259,7 @@ public:
QDeclarativeStateGroup *_states();
QDeclarativeStateGroup *_stateGroup;
- QDeclarativeItem::TransformOrigin origin:4;
+ QDeclarativeItem::TransformOrigin origin:5;
bool widthValid:1;
bool heightValid:1;
bool componentComplete:1;
--
cgit v0.12
From 840ffbd6187fe2573d8c00481120d4cf30aed351 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Tue, 30 Nov 2010 15:54:25 +1000
Subject: Ensure header is considered when positioning content with snapping.
When snapping is enabled the header was ignored and content would be
aligned with the first item rather than the header, when at the top of
the view.
Task-number: QTBUG-15710
Reviewed-by: Bea Lam
---
.../graphicsitems/qdeclarativegridview.cpp | 37 ++++++++++++----------
.../graphicsitems/qdeclarativelistview.cpp | 6 +++-
.../tst_qdeclarativegridview.cpp | 2 +-
.../qdeclarativelistview/data/header.qml | 31 ++++++++++++++++++
.../tst_qdeclarativelistview.cpp | 31 ++++++++++++++++++
5 files changed, 89 insertions(+), 18 deletions(-)
create mode 100644 tests/auto/declarative/qdeclarativelistview/data/header.qml
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 6f38f63..4454284 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -219,12 +219,8 @@ public:
}
} else {
qreal pos = (modelIndex / columns) * rowSize();
- if (header) {
- qreal headerSize = flow == QDeclarativeGridView::LeftToRight
- ? header->item->height()
- : header->item->width();
- pos += headerSize;
- }
+ if (header)
+ pos += headerSize();
return pos;
}
return 0;
@@ -291,11 +287,9 @@ public:
if (item->index == -1)
continue;
qreal itemTop = item->rowPos();
- if (item->index == model->count()-1 || (itemTop+rowSize()/2 >= pos))
+ if (itemTop+rowSize()/2 >= pos && itemTop - rowSize()/2 <= pos)
return item;
}
- if (visibleItems.count() && visibleItems.first()->rowPos() <= pos)
- return visibleItems.first();
return 0;
}
@@ -315,6 +309,16 @@ public:
return index;
}
+ qreal headerSize() const {
+ if (!header)
+ return 0.0;
+
+ return flow == QDeclarativeGridView::LeftToRight
+ ? header->item->height()
+ : header->item->width();
+ }
+
+
virtual void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) {
Q_Q(const QDeclarativeGridView);
QDeclarativeFlickablePrivate::itemGeometryChanged(item, newGeometry, oldGeometry);
@@ -878,14 +882,11 @@ void QDeclarativeGridViewPrivate::updateHeader()
if (header) {
if (visibleItems.count()) {
qreal startPos = startPosition();
- qreal headerSize = flow == QDeclarativeGridView::LeftToRight
- ? header->item->height()
- : header->item->width();
if (visibleIndex == 0) {
- header->setPosition(0, startPos - headerSize);
+ header->setPosition(0, startPos - headerSize());
} else {
- if (position() <= startPos || header->rowPos() > startPos - headerSize)
- header->setPosition(0, startPos - headerSize);
+ if (position() <= startPos || header->rowPos() > startPos - headerSize())
+ header->setPosition(0, startPos - headerSize());
}
} else {
header->setPosition(0, 0);
@@ -920,10 +921,14 @@ void QDeclarativeGridViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
qreal bottomPos = qMax(bottomItem->rowPos() - highlightRangeEnd, -minExtent);
pos = qAbs(data.move + topPos) < qAbs(data.move + bottomPos) ? topPos : bottomPos;
} else if (topItem) {
- pos = qMax(qMin(topItem->rowPos() - highlightRangeStart, -maxExtent), -minExtent);
+ if (topItem->index == 0 && header && position()+highlightRangeStart < header->rowPos()+headerSize()/2)
+ pos = header->rowPos() - highlightRangeStart;
+ else
+ pos = qMax(qMin(topItem->rowPos() - highlightRangeStart, -maxExtent), -minExtent);
} else if (bottomItem) {
pos = qMax(qMin(bottomItem->rowPos() - highlightRangeStart, -maxExtent), -minExtent);
} else {
+ QDeclarativeFlickablePrivate::fixup(data, minExtent, maxExtent);
fixupDuration = oldDuration;
return;
}
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 450b6af..d1f52be 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -1185,10 +1185,14 @@ void QDeclarativeListViewPrivate::fixup(AxisData &data, qreal minExtent, qreal m
FxListItem *bottomItem = snapItemAt(position()+highlightRangeEnd);
qreal pos;
if (topItem) {
- pos = qMax(qMin(topItem->position() - highlightRangeStart, -maxExtent), -minExtent);
+ if (topItem->index == 0 && header && position()+highlightRangeStart < header->position()+header->size()/2)
+ pos = header->position() - highlightRangeStart;
+ else
+ pos = qMax(qMin(topItem->position() - highlightRangeStart, -maxExtent), -minExtent);
} else if (bottomItem) {
pos = qMax(qMin(bottomItem->position() - highlightRangeStart, -maxExtent), -minExtent);
} else {
+ QDeclarativeFlickablePrivate::fixup(data, minExtent, maxExtent);
fixupDuration = oldDuration;
return;
}
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index 327bba2..7998e30 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -1263,7 +1263,7 @@ void tst_QDeclarativeGridView::header()
QDeclarativeView *canvas = createView();
TestModel model;
- for (int i = 0; i < 7; i++)
+ for (int i = 0; i < 30; i++)
model.addItem("Item" + QString::number(i), "");
QDeclarativeContext *ctxt = canvas->rootContext();
diff --git a/tests/auto/declarative/qdeclarativelistview/data/header.qml b/tests/auto/declarative/qdeclarativelistview/data/header.qml
new file mode 100644
index 0000000..6da996e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/header.qml
@@ -0,0 +1,31 @@
+import QtQuick 1.0
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ Component {
+ id: myDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ height: 30
+ width: 240
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+ ListView {
+ id: list
+ objectName: "list"
+ focus: true
+ width: 240
+ height: 320
+ snapMode: ListView.SnapToItem
+ model: testModel
+ delegate: myDelegate
+ header: Text { objectName: "header"; text: "Header"; height: 10 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index 37d836d..295a75d 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -98,6 +98,7 @@ private slots:
void QTBUG_9791();
void manualHighlight();
void QTBUG_11105();
+ void header();
void footer();
void resizeView();
void sizeLessThan1();
@@ -1661,6 +1662,36 @@ void tst_QDeclarativeListView::QTBUG_11105()
delete canvas;
}
+void tst_QDeclarativeListView::header()
+{
+ 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);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/header.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = findItem(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QDeclarativeText *header = findItem(contentItem, "header");
+ QVERIFY(header);
+ QCOMPARE(header->y(), 0.0);
+
+ QCOMPARE(listview->contentY(), 0.0);
+
+ model.clear();
+ QTRY_COMPARE(header->y(), 0.0);
+}
+
void tst_QDeclarativeListView::footer()
{
QDeclarativeView *canvas = createView();
--
cgit v0.12
From 16c3df54960b776f35f59288b888e829e7e81002 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 30 Nov 2010 12:09:48 +0100
Subject: Fixed incorrect angle values in the RotationAnimation description.
Task-number: QTBUG-15696
---
src/declarative/util/qdeclarativeanimation.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index f2e6217..dd7e5fd 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -1324,7 +1324,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
/*!
\qmlclass RotationAnimation QDeclarativeRotationAnimation
- \ingroup qml-animation-transition
+ \ingroup qml-animation-transition
\since 4.7
\inherits PropertyAnimation
\brief The RotationAnimation element animates changes in rotation values.
@@ -1333,8 +1333,8 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
over the direction of rotation during an animation.
By default, it rotates in the direction
- of the numerical change; a rotation from 0 to 240 will rotate 220 degrees
- clockwise, while a rotation from 240 to 0 will rotate 220 degrees
+ of the numerical change; a rotation from 0 to 240 will rotate 240 degrees
+ clockwise, while a rotation from 240 to 0 will rotate 240 degrees
counterclockwise. The \l direction property can be set to specify the
direction in which the rotation should occur.
@@ -1342,7 +1342,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
between states via the shortest path:
\snippet doc/src/snippets/declarative/rotationanimation.qml 0
-
+
Notice the RotationAnimation did not need to set a \l target
value. As a convenience, when used in a transition, RotationAnimation will rotate all
properties named "rotation" or "angle". You can override this by providing
--
cgit v0.12
From 6f18ee7ce50bc9b2688079e923a34c08117b3eb8 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Wed, 1 Dec 2010 11:15:46 +1000
Subject: Fix BorderImage painting at sizes less than margin size.
If the width < left+right margins or height < top+bottom margins the
image was painted with the complete margins, resulting in an ugle
pattern. This change reduces the size of the margins proportionately,
which gives a much better appearance.
Task-number: QTBUG-15736
Reviewed-by: Yann Bodson
---
.../graphicsitems/qdeclarativeborderimage.cpp | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
index 649c8fb..c0a7d72 100644
--- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
@@ -509,7 +509,7 @@ void QDeclarativeBorderImage::doUpdate()
void QDeclarativeBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
{
Q_D(QDeclarativeBorderImage);
- if (d->pix.isNull())
+ if (d->pix.isNull() || d->width() <= 0.0 || d->height() <= 0.0)
return;
bool oldAA = p->testRenderHint(QPainter::Antialiasing);
@@ -518,7 +518,23 @@ void QDeclarativeBorderImage::paint(QPainter *p, const QStyleOptionGraphicsItem
p->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth);
const QDeclarativeScaleGrid *border = d->getScaleGrid();
- QMargins margins(border->left(), border->top(), border->right(), border->bottom());
+ int left = border->left();
+ int right = border->right();
+ qreal borderWidth = left + right;
+ if (borderWidth > 0.0 && d->width() < borderWidth) {
+ qreal diff = borderWidth - d->width() - 1;
+ left -= qRound(diff * qreal(left) / borderWidth);
+ right -= qRound(diff * qreal(right) / borderWidth);
+ }
+ int top = border->top();
+ int bottom = border->bottom();
+ qreal borderHeight = top + bottom;
+ if (borderHeight > 0.0 && d->height() < borderHeight) {
+ qreal diff = borderHeight - d->height() - 1;
+ top -= qRound(diff * qreal(top) / borderHeight);
+ bottom -= qRound(diff * qreal(bottom) / borderHeight);
+ }
+ QMargins margins(left, top, right, bottom);
QTileRules rules((Qt::TileRule)d->horizontalTileMode, (Qt::TileRule)d->verticalTileMode);
qDrawBorderPixmap(p, QRect(0, 0, (int)d->width(), (int)d->height()), margins, d->pix, d->pix.rect(), margins, rules);
if (d->smooth) {
--
cgit v0.12
From fe90d7a3d9f00fa2ea46c0816f63c65f812c360f Mon Sep 17 00:00:00 2001
From: Aaron Kennedy
Date: Wed, 1 Dec 2010 11:29:23 +1000
Subject: Change pen correctly when drawing cached text
Task-number: QTBUG-14568
---
src/declarative/graphicsitems/qdeclarativetextlayout.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
index e8da367..14a1109 100644
--- a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
@@ -361,10 +361,18 @@ void QDeclarativeTextLayout::draw(QPainter *painter, const QPointF &p)
d->position = p;
}
+ QPen oldPen = priv->state->pen;
+ QColor currentColor = oldPen.color();
for (int ii = 0; ii < itemCount; ++ii) {
QStaticTextItem &item = d->items[ii];
+ if (item.color.isValid() && currentColor != item.color) {
+ painter->setPen(item.color);
+ currentColor = item.color;
+ }
priv->extended->drawStaticTextItem(&item);
}
+ if (currentColor != oldPen.color())
+ painter->setPen(oldPen);
}
QT_END_NAMESPACE
--
cgit v0.12
From e46bf51f830dcc80932b9219fe608d1bc1a388ad Mon Sep 17 00:00:00 2001
From: Jason McDonald
Date: Wed, 1 Dec 2010 16:03:08 +1000
Subject: Fix license header.
---
doc/src/declarative/qmlinuse.qdoc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/doc/src/declarative/qmlinuse.qdoc b/doc/src/declarative/qmlinuse.qdoc
index 90ce02c..1127b4c 100644
--- a/doc/src/declarative/qmlinuse.qdoc
+++ b/doc/src/declarative/qmlinuse.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
--
cgit v0.12
From 1337a3e031477aa4d628d01252557dee622629ff Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Wed, 1 Dec 2010 17:30:52 +1000
Subject: ListView header is not visible initially.
If the header size was not set explicitly, but determined implicitly
from Text height, the view was not positioned so that the header
was visible when first shown.
Task-number: QTBUG-15599
Reviewed-by: Bea Lam
---
.../graphicsitems/qdeclarativegridview.cpp | 16 ++++--
.../graphicsitems/qdeclarativelistview.cpp | 22 ++++---
.../qdeclarativelistview/data/header1.qml | 33 +++++++++++
.../tst_qdeclarativelistview.cpp | 67 ++++++++++++++++------
4 files changed, 108 insertions(+), 30 deletions(-)
create mode 100644 tests/auto/declarative/qdeclarativelistview/data/header1.qml
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 4454284..1615b0f 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1769,8 +1769,10 @@ void QDeclarativeGridView::setFooter(QDeclarativeComponent *footer)
d->footer = 0;
}
d->footerComponent = footer;
- d->updateFooter();
- d->updateGrid();
+ if (isComponentComplete()) {
+ d->updateFooter();
+ d->updateGrid();
+ }
emit footerChanged();
}
}
@@ -1799,9 +1801,11 @@ void QDeclarativeGridView::setHeader(QDeclarativeComponent *header)
d->header = 0;
}
d->headerComponent = header;
- d->updateHeader();
- d->updateFooter();
- d->updateGrid();
+ if (isComponentComplete()) {
+ d->updateHeader();
+ d->updateFooter();
+ d->updateGrid();
+ }
emit headerChanged();
}
}
@@ -2226,6 +2230,8 @@ void QDeclarativeGridView::componentComplete()
{
Q_D(QDeclarativeGridView);
QDeclarativeFlickable::componentComplete();
+ d->updateHeader();
+ d->updateFooter();
d->updateGrid();
if (d->isValid()) {
refill();
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index d1f52be..845da79 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -402,6 +402,8 @@ public:
void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) {
Q_Q(QDeclarativeListView);
QDeclarativeFlickablePrivate::itemGeometryChanged(item, newGeometry, oldGeometry);
+ if (!q->isComponentComplete())
+ return;
if (item != contentItem && (!highlight || item != highlight->item)) {
if ((orient == QDeclarativeListView::Vertical && newGeometry.height() != oldGeometry.height())
|| (orient == QDeclarativeListView::Horizontal && newGeometry.width() != oldGeometry.width())) {
@@ -1123,8 +1125,6 @@ void QDeclarativeListViewPrivate::updateHeader()
QDeclarativeItemPrivate *itemPrivate = static_cast(QGraphicsItemPrivate::get(item));
itemPrivate->addItemChangeListener(this, QDeclarativeItemPrivate::Geometry);
header = new FxListItem(item, q);
- if (visibleItems.isEmpty())
- visiblePos = header->size();
}
}
if (header) {
@@ -1137,6 +1137,8 @@ void QDeclarativeListViewPrivate::updateHeader()
header->setPosition(startPos - header->size());
}
} else {
+ if (itemCount == 0)
+ visiblePos = header->size();
header->setPosition(0);
}
}
@@ -2215,8 +2217,10 @@ void QDeclarativeListView::setFooter(QDeclarativeComponent *footer)
d->footerComponent = footer;
d->minExtentDirty = true;
d->maxExtentDirty = true;
- d->updateFooter();
- d->updateViewport();
+ if (isComponentComplete()) {
+ d->updateFooter();
+ d->updateViewport();
+ }
emit footerChanged();
}
}
@@ -2247,9 +2251,11 @@ void QDeclarativeListView::setHeader(QDeclarativeComponent *header)
d->headerComponent = header;
d->minExtentDirty = true;
d->maxExtentDirty = true;
- d->updateHeader();
- d->updateFooter();
- d->updateViewport();
+ if (isComponentComplete()) {
+ d->updateHeader();
+ d->updateFooter();
+ d->updateViewport();
+ }
emit headerChanged();
}
}
@@ -2659,6 +2665,8 @@ void QDeclarativeListView::componentComplete()
Q_D(QDeclarativeListView);
QDeclarativeFlickable::componentComplete();
updateSections();
+ d->updateHeader();
+ d->updateFooter();
if (d->isValid()) {
refill();
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
diff --git a/tests/auto/declarative/qdeclarativelistview/data/header1.qml b/tests/auto/declarative/qdeclarativelistview/data/header1.qml
new file mode 100644
index 0000000..f2ab4c1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/header1.qml
@@ -0,0 +1,33 @@
+import QtQuick 1.0
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+
+ ListModel { id: testModel }
+
+ ListView {
+ id: list
+ objectName: "list"
+ width: parent.width
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ model: testModel
+ delegate: Text {
+ objectName: "wrapper"
+ font.pointSize: 20
+ text: index
+ }
+ footer: Rectangle {
+ width: parent.width
+ height: 40
+ color: "green"
+ }
+ header: Text { objectName: "header"; text: "Header" }
+ }
+
+ Component.onCompleted: {
+ for (var i=0; i<30; i++) testModel.append({"name" : i, "val": i})
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index 295a75d..759caf2 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -1664,32 +1664,63 @@ void tst_QDeclarativeListView::QTBUG_11105()
void tst_QDeclarativeListView::header()
{
- QDeclarativeView *canvas = createView();
+ {
+ QDeclarativeView *canvas = createView();
- TestModel model;
- for (int i = 0; i < 30; i++)
- model.addItem("Item" + QString::number(i), "");
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), "");
- QDeclarativeContext *ctxt = canvas->rootContext();
- ctxt->setContextProperty("testModel", &model);
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/header.qml"));
- qApp->processEvents();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/header.qml"));
+ qApp->processEvents();
- QDeclarativeListView *listview = findItem(canvas->rootObject(), "list");
- QTRY_VERIFY(listview != 0);
+ QDeclarativeListView *listview = findItem(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
- QDeclarativeItem *contentItem = listview->contentItem();
- QTRY_VERIFY(contentItem != 0);
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
- QDeclarativeText *header = findItem(contentItem, "header");
- QVERIFY(header);
- QCOMPARE(header->y(), 0.0);
+ QDeclarativeText *header = findItem(contentItem, "header");
+ QVERIFY(header);
+ QCOMPARE(header->y(), 0.0);
- QCOMPARE(listview->contentY(), 0.0);
+ QCOMPARE(listview->contentY(), 0.0);
- model.clear();
- QTRY_COMPARE(header->y(), 0.0);
+ model.clear();
+ QTRY_COMPARE(header->y(), 0.0);
+
+ delete canvas;
+ }
+ {
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/header1.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = findItem(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QDeclarativeText *header = findItem(contentItem, "header");
+ QVERIFY(header);
+ QCOMPARE(header->y(), 0.0);
+
+ QCOMPARE(listview->contentY(), 0.0);
+
+ model.clear();
+ QTRY_COMPARE(header->y(), 0.0);
+
+ delete canvas;
+ }
}
void tst_QDeclarativeListView::footer()
--
cgit v0.12
From 5822db01277a19d8424b1f0d55868a82c8e719e6 Mon Sep 17 00:00:00 2001
From: Andy Shaw
Date: Wed, 1 Dec 2010 08:55:47 +0100
Subject: Fix two minor doc errors
Task-number: QTBUG-14929, QTBUG-15739
Reviewed-by: TrustMe
---
doc/src/platforms/emb-envvars.qdoc | 2 +-
src/corelib/tools/qalgorithms.qdoc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/src/platforms/emb-envvars.qdoc b/doc/src/platforms/emb-envvars.qdoc
index 1d109b4..3f318eb 100644
--- a/doc/src/platforms/emb-envvars.qdoc
+++ b/doc/src/platforms/emb-envvars.qdoc
@@ -112,7 +112,7 @@
device, e.g., \c /dev/mouse for mouse devices and \c /dev/ts for
touch panels.
- Multiple keyboard drivers can be specified in one go:
+ Multiple mouse drivers can be specified in one go:
\snippet doc/src/snippets/code/doc_src_emb-envvars.qdoc 3
diff --git a/src/corelib/tools/qalgorithms.qdoc b/src/corelib/tools/qalgorithms.qdoc
index 898f940..cd33f28 100644
--- a/src/corelib/tools/qalgorithms.qdoc
+++ b/src/corelib/tools/qalgorithms.qdoc
@@ -266,7 +266,7 @@
\overload
- This is the same as qFind(\a{container}.begin(), \a{container}.end(), value);
+ This is the same as qFind(\a{container}.constBegin(), \a{container}.constEnd(), value);
*/
/*! \fn void qCount(InputIterator begin, InputIterator end, const T &value, Size &n)
--
cgit v0.12
From de30288bb108d70cd66774c3beb7497efb5d0e6d Mon Sep 17 00:00:00 2001
From: aavit
Date: Tue, 30 Nov 2010 15:31:09 +0100
Subject: Workaround for certain malformed PNGs that lack the final crc bytes
Task-number: QT-4103
Reviewed-by: gunnar
---
src/gui/image/qpnghandler.cpp | 80 +++++++++++++++++++++++++------------------
1 file changed, 46 insertions(+), 34 deletions(-)
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index 935aba0..a4d669b 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -82,6 +82,41 @@ QT_BEGIN_NAMESPACE
Never to grayscale.
*/
+class QPngHandlerPrivate
+{
+public:
+ enum State {
+ Ready,
+ ReadHeader,
+ ReadingEnd,
+ Error
+ };
+
+ QPngHandlerPrivate(QPngHandler *qq)
+ : gamma(0.0), quality(2), png_ptr(0), info_ptr(0),
+ end_info(0), row_pointers(0), state(Ready), q(qq)
+ { }
+
+ float gamma;
+ int quality;
+ QString description;
+
+ png_struct *png_ptr;
+ png_info *info_ptr;
+ png_info *end_info;
+ png_byte **row_pointers;
+
+ bool readPngHeader();
+ bool readPngImage(QImage *image);
+
+ QImage::Format readImageFormat();
+
+ State state;
+
+ QPngHandler *q;
+};
+
+
#if defined(Q_C_CALLBACKS)
extern "C" {
#endif
@@ -118,7 +153,15 @@ private:
static
void CALLBACK_CALL_TYPE iod_read_fn(png_structp png_ptr, png_bytep data, png_size_t length)
{
- QIODevice *in = (QIODevice *)png_get_io_ptr(png_ptr);
+ QPngHandlerPrivate *d = (QPngHandlerPrivate *)png_get_io_ptr(png_ptr);
+ QIODevice *in = d->q->device();
+
+ if (d->state == QPngHandlerPrivate::ReadingEnd && in->atEnd() && length == 4) {
+ // Workaround for certain malformed PNGs that lack the final crc bytes
+ uchar endcrc[4] = { 0xae, 0x42, 0x60, 0x82 };
+ qMemCopy(data, endcrc, 4);
+ return;
+ }
while (length) {
int nr = in->read((char*)data, length);
@@ -314,38 +357,6 @@ static void CALLBACK_CALL_TYPE qt_png_warning(png_structp /*png_ptr*/, png_const
}
#endif
-class QPngHandlerPrivate
-{
-public:
- enum State {
- Ready,
- ReadHeader,
- Error
- };
-
- QPngHandlerPrivate(QPngHandler *qq)
- : gamma(0.0), quality(2), png_ptr(0), info_ptr(0),
- end_info(0), row_pointers(0), state(Ready), q(qq)
- { }
-
- float gamma;
- int quality;
- QString description;
-
- png_struct *png_ptr;
- png_info *info_ptr;
- png_info *end_info;
- png_byte **row_pointers;
-
- bool readPngHeader();
- bool readPngImage(QImage *image);
-
- QImage::Format readImageFormat();
-
- State state;
-
- QPngHandler *q;
-};
/*!
\internal
@@ -379,7 +390,7 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandlerPrivate::readPngHeader()
return false;
}
- png_set_read_fn(png_ptr, q->device(), iod_read_fn);
+ png_set_read_fn(png_ptr, this, iod_read_fn);
png_read_info(png_ptr, info_ptr);
#ifndef QT_NO_IMAGE_TEXT
@@ -505,6 +516,7 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandlerPrivate::readPngImage(QImage *outImage)
}
#endif
+ state = ReadingEnd;
png_read_end(png_ptr, end_info);
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
delete [] row_pointers;
--
cgit v0.12
From fa72ccc5076e80c9a4c51501d8ff7c8161abfdeb Mon Sep 17 00:00:00 2001
From: aavit
Date: Wed, 1 Dec 2010 11:52:00 +0100
Subject: Improvement of de30288: handle PNGs having 1 to 4 bytes truncated.
Task-number: QT-4103
Reviewed-by: trustme
---
src/gui/image/qpnghandler.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index a4d669b..1a78bae 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -156,10 +156,11 @@ void CALLBACK_CALL_TYPE iod_read_fn(png_structp png_ptr, png_bytep data, png_siz
QPngHandlerPrivate *d = (QPngHandlerPrivate *)png_get_io_ptr(png_ptr);
QIODevice *in = d->q->device();
- if (d->state == QPngHandlerPrivate::ReadingEnd && in->atEnd() && length == 4) {
+ if (d->state == QPngHandlerPrivate::ReadingEnd && !in->isSequential() && (in->size() - in->pos()) < 4 && length == 4) {
// Workaround for certain malformed PNGs that lack the final crc bytes
uchar endcrc[4] = { 0xae, 0x42, 0x60, 0x82 };
qMemCopy(data, endcrc, 4);
+ in->seek(in->size());
return;
}
--
cgit v0.12
From 0f8e39459b47b99195eb677e7a32784b325834bd Mon Sep 17 00:00:00 2001
From: Robert Loehning
Date: Wed, 1 Dec 2010 16:52:17 +0100
Subject: fix line endings
---
.../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 03ff62841c5dae85fde40982a65980a91c5f3109 Mon Sep 17 00:00:00 2001
From: Christopher Ham
Date: Thu, 2 Dec 2010 13:12:18 +1000
Subject: Rectangle should not paint with negative width or height
Task-number: QTBUG-15250
Reviewed-by: Martin Jones
---
src/declarative/graphicsitems/qdeclarativerectangle.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index dedb3f7..59d1a84 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -470,6 +470,8 @@ void QDeclarativeRectangle::generateBorderedRect()
void QDeclarativeRectangle::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
{
Q_D(QDeclarativeRectangle);
+ if (width() <= 0 || height() <= 0)
+ return;
if (d->radius > 0 || (d->pen && d->pen->isValid())
|| (d->gradient && d->gradient->gradient()) ) {
drawRect(*p);
--
cgit v0.12
From b5a2e8bc3e49ed13d44d4273f5e65cda97c55db1 Mon Sep 17 00:00:00 2001
From: Martin Jones
Date: Thu, 2 Dec 2010 13:07:29 +1000
Subject: Ensure semi-transparent rects paint correctly with radius == size/2.
The margins could overlap, which caused overpainting. Ensure the
margins are always <= width or height /2.
Task-number: QTBUG-14657
Reviewed-by: Yann Bodson
---
src/declarative/graphicsitems/qdeclarativerectangle.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index 59d1a84..99b36a8 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -541,6 +541,12 @@ void QDeclarativeRectangle::drawRect(QPainter &p)
Q_ASSERT(d->rectImage.width() == 2*xOffset + 1);
Q_ASSERT(d->rectImage.height() == 2*yOffset + 1);
+ // check whether we've eliminated the center completely
+ if (2*xOffset > width()+pw)
+ xOffset = (width()+pw)/2;
+ if (2*yOffset > height()+pw)
+ yOffset = (height()+pw)/2;
+
QMargins margins(xOffset, yOffset, xOffset, yOffset);
QTileRules rules(Qt::StretchTile, Qt::StretchTile);
//NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects
--
cgit v0.12
From afbf017b8929d1215851dc43823de61fb1ffa400 Mon Sep 17 00:00:00 2001
From: Yann Bodson
Date: Thu, 2 Dec 2010 16:55:28 +1000
Subject: Update TextInput when echoMode changes.
Task-number: QTBUG-15779
Reviewed-by: Martin Jones
---
src/declarative/graphicsitems/qdeclarativetextinput.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index 0deacf8..f8421a3 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -771,7 +771,7 @@ void QDeclarativeTextInput::setEchoMode(QDeclarativeTextInput::EchoMode echo)
imHints &= ~(Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText);
setInputMethodHints(imHints);
d->control->setEchoMode((uint)echo);
- update();
+ q_textChanged();
emit echoModeChanged(echoMode());
}
--
cgit v0.12
From d4b73604d545da4ab802f22a55fbf420f4bf5baa Mon Sep 17 00:00:00 2001
From: Joona Petrell
Date: Thu, 2 Dec 2010 15:16:58 +1000
Subject: Append qml import path individually for each available drive on
Symbian
Task-number: QTBUG-15405
Reviewed-by: Jason Barron
---
src/declarative/declarative.pro | 5 ++++-
src/declarative/qml/qdeclarativeimport.cpp | 30 +++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
index 299ca06..93ad861 100644
--- a/src/declarative/declarative.pro
+++ b/src/declarative/declarative.pro
@@ -25,7 +25,10 @@ include(graphicsitems/graphicsitems.pri)
include(qml/qml.pri)
include(debugger/debugger.pri)
-symbian:TARGET.UID3=0x2001E623
+symbian: {
+ TARGET.UID3=0x2001E623
+ LIBS += -lefsrv
+}
DEFINES += QT_NO_OPENTYPE
INCLUDEPATH += ../3rdparty/harfbuzz/src
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 6f5216a..acc13de 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -51,6 +51,10 @@
#include
#include
+#ifdef Q_OS_SYMBIAN
+#include "private/qcore_symbian_p.h"
+#endif
+
QT_BEGIN_NAMESPACE
DEFINE_BOOL_CONFIG_OPTION(qmlImportTrace, QML_IMPORT_TRACE)
@@ -658,8 +662,32 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
// Search order is applicationDirPath(), $QML_IMPORT_PATH, QLibraryInfo::ImportsPath
- addImportPath(QLibraryInfo::location(QLibraryInfo::ImportsPath));
+ QString installImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
+#if defined(Q_OS_SYMBIAN)
+ // Append imports path for all available drives in Symbian
+ if (installImportsPath.at(1) != QChar(QLatin1Char(':'))) {
+ QString tempPath = installImportsPath;
+ if (tempPath.at(tempPath.length() - 1) != QDir::separator()) {
+ tempPath += QDir::separator();
+ }
+ RFs& fs = qt_s60GetRFs();
+ TPtrC tempPathPtr(reinterpret_cast (tempPath.constData()));
+ TFindFile finder(fs);
+ TInt err = finder.FindByDir(tempPathPtr, tempPathPtr);
+ while (err == KErrNone) {
+ QString foundDir(reinterpret_cast(finder.File().Ptr()),
+ finder.File().Length());
+ foundDir = QDir(foundDir).canonicalPath();
+ addImportPath(foundDir);
+ err = finder.Find();
+ }
+ } else {
+ addImportPath(installImportsPath);
+ }
+#else
+ addImportPath(installImportsPath);
+#endif
// env import paths
QByteArray envImportPath = qgetenv("QML_IMPORT_PATH");
if (!envImportPath.isEmpty()) {
--
cgit v0.12
From 187a42d1ee1a86e6e0ecd79f39c86d4f790bf98f Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen
Date: Thu, 2 Dec 2010 14:50:02 +0200
Subject: Cleaned up sis_targets.prf
Removed the unnecessary checks for the case where pkg file doesn't exist
are no longer needed as we now have dependencies to pkg files and no
sis creation targets are generated if pkg is not generated.
Also improved documentation a bit and added the missing
ok_installer_sis target generation.
Reviewed-by: Janne Koskinen
---
doc/src/platforms/symbian-introduction.qdoc | 9 ++++
mkspecs/features/symbian/sis_targets.prf | 84 +++++++++++++----------------
2 files changed, 45 insertions(+), 48 deletions(-)
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 9da94c4..cce2be3 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -144,8 +144,17 @@
Smart installer will attempt to download
missing dependencies in addition to
just installing the application.
+ Note: The application \c .sis contained in smart installer \c .sis
+ will be recreated and signed with same certificates as
+ smart installer \c .sis.
+ \row \o \c ok_installer_sis \o Otherwise similar to \c installer_sis target, except
+ the application sis will not be recreated. This is useful
+ when application \c .sis needs to be separately signed before
+ including it into smart installer \c .sis.
\row \o \c unsigned_installer_sis \o Create unsigned \l{Smart Installer}{smart installer}
\c .sis file for project.
+ Note: The application \c .sis contained in smart installer
+ \c .sis will also be unsigned.
\row \o \c stub_sis \o Create a stub sis to allow upgradability of projects
that are deployed in ROM
\endtable
diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf
index ad81803..024378b 100644
--- a/mkspecs/features/symbian/sis_targets.prf
+++ b/mkspecs/features/symbian/sis_targets.prf
@@ -33,19 +33,16 @@ equals(GENERATE_SIS_TARGETS, true) {
make_cache_name = .make.cache
sis_target.target = sis
- sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
+ sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_sis \
, \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+
sis_target.depends += $${baseTarget}_template.pkg
ok_sis_target.target = ok_sis
@@ -53,19 +50,16 @@ equals(GENERATE_SIS_TARGETS, true) {
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
unsigned_sis_target.target = unsigned_sis
- unsigned_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
- , \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ unsigned_sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
, \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
- ) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+ ) \
+ )
+
unsigned_sis_target.depends += $${baseTarget}_template.pkg
ok_unsigned_sis_target.target = ok_unsigned_sis
@@ -74,49 +68,39 @@ equals(GENERATE_SIS_TARGETS, true) {
target_sis_target.target = $${baseTarget}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
+ # The installer_sis target has dependency to sis target, so it will regenerate sis package.
+ # To create smart installer wrapper for for an existing sis package, use ok_installer_sis target directly.
installer_sis_target.target = installer_sis
- installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
- $(MAKE) -f $(MAKEFILE) ok_installer_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_installer_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 - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ ok_installer_sis_target.depends = $${baseTarget}_installer.pkg
unsigned_installer_sis_target.target = unsigned_installer_sis
- unsigned_installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_installer_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ unsigned_installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_unsigned_installer_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
-
- fail_sis_nopkg_target.target = fail_sis_nopkg
- fail_sis_nopkg_target.commands = "$(error PKG file does not exist, 'sis' and 'installer_sis' target are only supported for executables or projects with DEPLOYMENT statement)"
+ ok_unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg
fail_sis_nocache_target.target = fail_sis_nocache
fail_sis_nocache_target.commands = "$(error Project has to be built or QT_SIS_TARGET environment variable has to be set before calling 'SIS' target)"
stub_sis_target.target = stub_sis
- stub_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
+ stub_sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_stub_sis \
, \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_stub_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+
stub_sis_target.depends += $${baseTarget}_stub.pkg
ok_stub_sis_target.target = ok_stub_sis
@@ -132,7 +116,6 @@ equals(GENERATE_SIS_TARGETS, true) {
ok_installer_sis_target \
unsigned_installer_sis_target \
ok_unsigned_installer_sis_target \
- fail_sis_nopkg_target \
fail_sis_nocache_target \
stub_sis_target \
ok_stub_sis_target
@@ -178,10 +161,14 @@ equals(GENERATE_SIS_TARGETS, true) {
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
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.commands = $(MAKE) -f $(MAKEFILE) ok_installer_sis
installer_sis_target.depends = $${baseTarget}_installer.pkg sis
+ ok_installer_sis_target.target = ok_installer_sis
+ ok_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
+ $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ ok_installer_sis_target.depends = $${baseTarget}_installer.pkg
+
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 = $${baseTarget}_installer.pkg unsigned_sis
@@ -197,6 +184,7 @@ equals(GENERATE_SIS_TARGETS, true) {
unsigned_sis_target \
target_sis_target \
installer_sis_target \
+ ok_installer_sis_target \
unsigned_installer_sis_target
QMAKE_DISTCLEAN += $${sis_destdir}/$${baseTarget}.sis
--
cgit v0.12
From e0ecd0d3d6f0cf32061ccf3631a4038c255b41fe Mon Sep 17 00:00:00 2001
From: Alan Alpert
Date: Fri, 3 Dec 2010 10:12:59 +1000
Subject: Update QML visual tests
Reintroducing text tests to X11, and updating a few tests where the
behaviour of the items has subtly changed (and it was deemed acceptable)
Task-number: QTBUG-14792
---
.../qmlvisual/ListView/data/listview.5.png | Bin 1663 -> 1661 bytes
.../qmlvisual/ListView/data/listview.6.png | Bin 1666 -> 1674 bytes
.../qmlvisual/ListView/data/listview.qml | 234 ++---
.../data-X11/colorAnimation-visual.0.png | Bin 0 -> 622 bytes
.../data-X11/colorAnimation-visual.1.png | Bin 0 -> 627 bytes
.../data-X11/colorAnimation-visual.2.png | Bin 0 -> 626 bytes
.../data-X11/colorAnimation-visual.3.png | Bin 0 -> 625 bytes
.../data-X11/colorAnimation-visual.qml | 951 +++++++++++++++++++++
.../data/usingRepeater.0.png | Bin 1199 -> 1203 bytes
.../qdeclarativepositioners/data/usingRepeater.qml | 62 +-
.../qdeclarativespringanimation/data/follow.0.png | Bin 941 -> 950 bytes
.../qdeclarativespringanimation/data/follow.1.png | Bin 975 -> 983 bytes
.../qdeclarativespringanimation/data/follow.2.png | Bin 1235 -> 1243 bytes
.../qdeclarativespringanimation/data/follow.3.png | Bin 1225 -> 1235 bytes
.../qdeclarativespringanimation/data/follow.4.png | Bin 1247 -> 1253 bytes
.../qdeclarativespringanimation/data/follow.5.png | Bin 1243 -> 1249 bytes
.../qdeclarativespringanimation/data/follow.6.png | Bin 1234 -> 1241 bytes
.../qdeclarativespringanimation/data/follow.7.png | Bin 1242 -> 1251 bytes
.../qdeclarativespringanimation/data/follow.qml | 852 +++++++++---------
.../baseline/data-X11/parentanchor.0.png | Bin 1313 -> 1313 bytes
.../baseline/data-X11/parentanchor.qml | 60 +-
.../qdeclarativetext/elide/data-X11/elide.0.png | Bin 483 -> 481 bytes
.../qdeclarativetext/elide/data-X11/elide.1.png | Bin 483 -> 481 bytes
.../qdeclarativetext/elide/data-X11/elide.qml | 130 +--
.../qdeclarativetext/elide/data-X11/elide2.0.png | Bin 1189 -> 1187 bytes
.../qdeclarativetext/elide/data-X11/elide2.1.png | Bin 1068 -> 1066 bytes
.../qdeclarativetext/elide/data-X11/elide2.qml | 194 ++---
.../elide/data-X11/multilength.0.png | Bin 747 -> 742 bytes
.../elide/data-X11/multilength.1.png | Bin 814 -> 810 bytes
.../elide/data-X11/multilength.2.png | Bin 809 -> 805 bytes
.../elide/data-X11/multilength.3.png | Bin 527 -> 529 bytes
.../elide/data-X11/multilength.4.png | Bin 526 -> 528 bytes
.../elide/data-X11/multilength.qml | 552 ++++++------
.../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 13140 -> 13194 bytes
.../font/data-X11/plaintext2.0.png | Bin 1503 -> 1510 bytes
.../qdeclarativetext/font/data-X11/richtext.0.png | Bin 9297 -> 9415 bytes
.../qdeclarativetext/font/data-X11/richtext2.0.png | Bin 10626 -> 10671 bytes
.../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 688 -> 692 bytes
.../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 693 -> 696 bytes
.../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 695 -> 699 bytes
.../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 694 -> 698 bytes
.../qdeclarativetextedit/data-X11/qt-669.4.png | Bin 688 -> 692 bytes
.../qdeclarativetextedit/data-X11/qt-669.qml | 528 ++++++------
.../qdeclarativetextedit/data-X11/wrap.0.png | Bin 3493 -> 3481 bytes
.../qdeclarativetextedit/data-X11/wrap.1.png | Bin 3617 -> 3606 bytes
.../qdeclarativetextedit/data-X11/wrap.2.png | Bin 3688 -> 3676 bytes
.../qdeclarativetextedit/data-X11/wrap.3.png | Bin 3766 -> 3754 bytes
.../qdeclarativetextedit/data-X11/wrap.4.png | Bin 3839 -> 3828 bytes
.../qdeclarativetextedit/data-X11/wrap.5.png | Bin 3940 -> 3927 bytes
.../qdeclarativetextedit/data-X11/wrap.6.png | Bin 3943 -> 3930 bytes
.../qdeclarativetextedit/data-X11/wrap.7.png | Bin 3943 -> 3930 bytes
.../qdeclarativetextedit/data-X11/wrap.qml | 842 +++++++++---------
.../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 339 -> 342 bytes
.../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 446 -> 445 bytes
.../qdeclarativetextinput/data-X11/echoMode.3.png | Bin 510 -> 508 bytes
.../qdeclarativetextinput/data-X11/echoMode.qml | 270 +++---
.../qdeclarativetextinput/data-X11/hAlign.0.png | Bin 3661 -> 3685 bytes
.../qdeclarativetextinput/data-X11/hAlign.qml | 48 +-
tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 7 +-
59 files changed, 2838 insertions(+), 1892 deletions(-)
create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png
create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png
create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png
create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png
create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
index d1f06fa..63a594e 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 9e6e29c..05e24c6 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 b1ffe8f..059128d 100644
--- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
@@ -1550,7 +1550,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "ad913e53e63c030ffdf4560766722760"
+ hash: "84b477b46c313d6dcb0a77628182905b"
}
Mouse {
type: 5
@@ -1570,7 +1570,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "ef31f8a4d5bde5a2e308d19ee6d5e759"
+ hash: "281c0499db31ca78175ca7af6292b853"
}
Mouse {
type: 5
@@ -1582,7 +1582,7 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "3ba07527f66e8bea5a8fb7647b0b4f3f"
+ hash: "5c29d61f037e4636988fdc99ee2ed8a4"
}
Mouse {
type: 5
@@ -1594,7 +1594,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "70e5fe656f5fd843383964825690b678"
+ hash: "a18f5e9f7be932dcd1bcb4c7fe0797e8"
}
Mouse {
type: 5
@@ -1614,7 +1614,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "b7d8738be4cd6caa63dbecdb0f810a2f"
+ hash: "85a4130b4a57ef79e90d350cf4816801"
}
Mouse {
type: 5
@@ -1626,7 +1626,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "d6312191f9d7bbddc07f9253d8a93469"
+ hash: "364dd89fd6f96e1c77723436c7078a7b"
}
Mouse {
type: 5
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "b182da64886cf4f444296e5fde26701e"
+ hash: "3e37312c45aa92de34d9661f9b482c48"
}
Mouse {
type: 5
@@ -1650,7 +1650,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "ebefef14b6fb990e0c6900884528bbd3"
+ hash: "dc2d63ad430ea6214f962629793925f3"
}
Mouse {
type: 5
@@ -1662,7 +1662,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "9a3451ed091b1bb6b975a9c5506b1ea4"
+ hash: "188fe1e6af9d02b2680426127ef1d39e"
}
Mouse {
type: 5
@@ -1674,7 +1674,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Mouse {
type: 5
@@ -1686,7 +1686,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "eaaf9ea1d7fcf4a2a9dd58b1b5bb3cae"
+ hash: "bb74813667f49b15978aa78843436205"
}
Mouse {
type: 5
@@ -1698,7 +1698,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "7ca8e3d76cf913d85f84f0b96acde829"
+ hash: "8e88500470517ed1d7c3ca10edd4e230"
}
Mouse {
type: 5
@@ -1710,7 +1710,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "7cfef56b24a552c6d4ecb3d0b88a1d08"
+ hash: "614dc45593db51f467adeda87d84f9a4"
}
Mouse {
type: 5
@@ -1730,7 +1730,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "d032b257259810b4fe514c63ca5c9e4b"
+ hash: "b170583b9b284debdd04af643752aa6b"
}
Mouse {
type: 5
@@ -1742,7 +1742,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "568f6a57e6f1644b0dc245d03a1d7b85"
+ hash: "dba0394b92f3ee166bc397439a86e6dc"
}
Mouse {
type: 5
@@ -1754,87 +1754,87 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4496
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4512
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4528
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4544
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4560
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4576
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4592
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4608
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4624
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4640
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4656
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4672
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4688
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4704
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4720
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4736
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4752
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4768
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4784
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4800
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4816
@@ -1842,11 +1842,11 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4848
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Mouse {
type: 5
@@ -1866,7 +1866,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "d48ecbd0661e08b2117fe2fd96ffeb2c"
+ hash: "95ab953fc04389396da9a38d97262d98"
}
Mouse {
type: 5
@@ -1878,7 +1878,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "7cfef56b24a552c6d4ecb3d0b88a1d08"
+ hash: "614dc45593db51f467adeda87d84f9a4"
}
Mouse {
type: 5
@@ -1890,7 +1890,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "5b12e9d17d9d464b055601db9cf0da44"
+ hash: "0d884cdb22e3668203d07c72055bcb85"
}
Mouse {
type: 5
@@ -1902,7 +1902,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "25333e1f0cc9cfc664fd7369af544c06"
+ hash: "23bd71236829253fb3ef18ebc9dd3136"
}
Mouse {
type: 5
@@ -1914,39 +1914,39 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4944
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4960
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4976
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4992
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5008
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5024
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5040
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5056
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Mouse {
type: 3
@@ -1958,179 +1958,179 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5088
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5104
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5120
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5136
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5152
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5168
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5184
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5200
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5216
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5232
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5248
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5264
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5280
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5296
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5312
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5328
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5344
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5360
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5376
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5392
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5408
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5424
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5440
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5456
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5472
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5488
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5504
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5520
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5536
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5552
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5568
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5584
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5600
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5616
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5632
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5648
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5664
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5680
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5696
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5712
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5728
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5744
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5760
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5776
@@ -2138,90 +2138,90 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5808
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5824
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5840
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5856
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5872
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5888
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5904
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5920
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5936
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5952
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5968
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5984
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6000
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6016
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6032
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6048
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6064
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6080
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6096
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6112
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6128
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
}
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
new file mode 100644
index 0000000..99748a7
Binary files /dev/null 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
new file mode 100644
index 0000000..5393dd8
Binary files /dev/null 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
new file mode 100644
index 0000000..8c17bf7
Binary files /dev/null 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
new file mode 100644
index 0000000..930f08f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml
@@ -0,0 +1,951 @@
+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: 67108864
+ 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/qdeclarativepositioners/data/usingRepeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png
index 75a6c49..f5b5622 100644
Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png 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 3365d40..3869b73 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
@@ -10,126 +10,126 @@ VisualTest {
}
Frame {
msec: 32
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 48
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 64
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 80
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 96
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 112
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 128
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 144
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 160
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 176
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 192
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 208
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 224
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 240
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 256
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "3b670c14311188b82f37aa260fb1a8de"
}
Frame {
msec: 272
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 288
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 304
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 320
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 336
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 352
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 368
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 384
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 400
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 416
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 432
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 448
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 464
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 480
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 496
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
Frame {
msec: 512
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "07b267d5a8c194322d339e1ad609f199"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png
index ae89849..6525dbb 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.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png
index 7b7db05..5b8d209 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 7c1442f..cf012ba 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 c01c980..57e77a4 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 8806e4c..24d26bd 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 b331119..a540734 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 76e3c6f..17da643 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
index 141753c..e03cfe4 100644
Binary files a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png 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 4548e5b..2cbd278 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "e94ba580322887dbbbf9cb6309e39c23"
+ hash: "2ddcb50f5d285eb80a8136f0cf4cf85a"
}
Frame {
msec: 48
- hash: "787a59cda2c0b27d8959026e6d1b9427"
+ hash: "519d93a844e05f8215139d91c9aef58b"
}
Frame {
msec: 64
- hash: "9ca724d4b31aa16015b5cbb50eea0c3a"
+ hash: "9f075a5547e4dc67cbe2ace2766395bb"
}
Frame {
msec: 80
- hash: "8a2c62a0190da1b7c1bade243baea6b8"
+ hash: "8fc48f74a51d45b4ea1fb7bd1d48002f"
}
Frame {
msec: 96
- hash: "e129bebca7ad348c3134569d8eee4efc"
+ hash: "a28fc4be5a5bb9ff36f796d9b071f02c"
}
Frame {
msec: 112
- hash: "fd6387415e1c02fe6d17d9c3aa1d1ed8"
+ hash: "ebc14c2905f3596ec451dd96409e6001"
}
Frame {
msec: 128
- hash: "a82a4042fdca7c30facd2c4740c455f7"
+ hash: "4f270bdcff44006a56055edb1cda522a"
}
Frame {
msec: 144
- hash: "62195722eb3acbfbad137ec71fd50bfe"
+ hash: "571f347e764bf38985768c85c2a13ba1"
}
Frame {
msec: 160
- hash: "449819cdc880d59650732b5447ec6237"
+ hash: "b1aa23268167b7e2a1190288926f52c0"
}
Frame {
msec: 176
- hash: "552a838ebcacc0e08fa93b64a2433831"
+ hash: "06d548aef9a678edbf3ab4d3ce62a647"
}
Frame {
msec: 192
- hash: "3984992606d54f05eb31dd0974af2183"
+ hash: "daf6af0ae78f39566913c656450a66e5"
}
Frame {
msec: 208
- hash: "3fd7225bbb0215ca8b6397580f2352a5"
+ hash: "f101cd0c026ee0ed6ccef7a4aed302a0"
}
Frame {
msec: 224
- hash: "0fd8f26f40a9049de1cf2a9493d579d1"
+ hash: "b3caa673f072c53d31d71109c9b33357"
}
Frame {
msec: 240
- hash: "d08f0c57f071dc42e79fc5e0e3c32eeb"
+ hash: "8596f1d305d6b8f97b9feda9e69bdefe"
}
Frame {
msec: 256
- hash: "084c2db330ee82cd032df248ecc9629d"
+ hash: "23c23df2c130aafb2092fe47a958a4cd"
}
Frame {
msec: 272
- hash: "98da0d7f280d7fc4579c970c9a173b51"
+ hash: "66a4f2d8213264437a5f4d6cf10cd442"
}
Frame {
msec: 288
- hash: "4c819c54ced1b6ef0574417a7e11f2e7"
+ hash: "6392490111813bad0a9467cc0c1746ed"
}
Frame {
msec: 304
- hash: "3dc5f7b412cb176c3b23d37cda3ef87c"
+ hash: "c115a47e0ecab63b881e2ec492d24e68"
}
Frame {
msec: 320
- hash: "c368a01b43d94205c03f9c750c37f330"
+ hash: "c2a2b57e6f9ea2975c0846124d2dbc66"
}
Frame {
msec: 336
- hash: "8842bd0c8b17cac4fc9df84835999174"
+ hash: "8286c315dfda4241607b2de1154f869d"
}
Frame {
msec: 352
- hash: "26829e9c7ca44dfcb0c03852f4158a18"
+ hash: "3f0f7cae80357176892ff7628ec3153a"
}
Frame {
msec: 368
- hash: "ecffdb0888f1721e27b163e1f29a1950"
+ hash: "d13bde4a5b5ed8202f92ae33913166c9"
}
Frame {
msec: 384
- hash: "eaead96f2683c464a12df8aadba20691"
+ hash: "b70cc32134b1b0d31a5e7f145af09495"
}
Frame {
msec: 400
- hash: "1e931963925bd208dce1ec9011372a3b"
+ hash: "03ebc2ff317ac840f4508e8701d66955"
}
Frame {
msec: 416
- hash: "1c3fd049001c1e883f21d0d1e0e32cba"
+ hash: "8dff08e72365e8e2fee8088c386dedca"
}
Frame {
msec: 432
- hash: "e8c3422ca637750ac52565594737d092"
+ hash: "720f3bbaf3fa3e3a064747d5689e47a0"
}
Frame {
msec: 448
- hash: "b1c36322cf89e15a80af7c43f2aebca1"
+ hash: "350e3ebfcfef96969ef5b8d5944f7e62"
}
Frame {
msec: 464
- hash: "f676c3171495f7bb2cb1812cfebaa17a"
+ hash: "1e4e6e68b3a8eac0c5cd039164eec166"
}
Frame {
msec: 480
- hash: "255119e2efa99c8e31fee611aaaa5137"
+ hash: "62a10c4250ad025139a3f9e72109e8e1"
}
Frame {
msec: 496
- hash: "e0bd32e3d44cfc2351db105f4595f18a"
+ hash: "23cfd643adfc98f6a06c7e7b15dac954"
}
Frame {
msec: 512
- hash: "b7f23b8f3769f929b42491efda7ebe19"
+ hash: "3a78930d5b86b886723fad85e77dd075"
}
Frame {
msec: 528
- hash: "718cee11d869a8a8c5191cc0c09f2d30"
+ hash: "64dc878e2f527e80403c766e61fe14a6"
}
Frame {
msec: 544
- hash: "fbdbf92f8c5f507605ff50abc594682b"
+ hash: "d79160989d2584044042271e79a88e69"
}
Frame {
msec: 560
- hash: "c07fdc69c72b40d3c8dd1cc499008888"
+ hash: "22cbaea4affc88433834c7d0dc1f1644"
}
Frame {
msec: 576
- hash: "38e17ecd537dc0f51211ad672a2ebb21"
+ hash: "77cb616902257e1f239a0e6bfaabb33c"
}
Frame {
msec: 592
- hash: "2cbdc8728ef779c62f9938672986658a"
+ hash: "a2fe73dced03b23c4acb9aae9b774b41"
}
Frame {
msec: 608
- hash: "7fb66509d5d1df34861e9c70f9a579f0"
+ hash: "230e21d3a9ed0e185593677233af1275"
}
Frame {
msec: 624
- hash: "410b89392e859058718a08b79ec3d8fa"
+ hash: "4e10ecffac4e06d624855d3f8917f76c"
}
Frame {
msec: 640
- hash: "9bd90f80700217d08dafed93b81ee9cf"
+ hash: "84f49d56baace4a02e50d3eafaea04ec"
}
Frame {
msec: 656
- hash: "6d83671504a4274887b4e0d9bd2b24e7"
+ hash: "e3cd0b334551a9f91723eb2c876d335a"
}
Frame {
msec: 672
- hash: "51ff7bd3fd4a776af33fce7b935b145c"
+ hash: "259330f3ec390c9926d9c2ddc2d77319"
}
Frame {
msec: 688
- hash: "20f27392368b63b248bcd455cf3c9106"
+ hash: "cc659623bfa385d282d608684d7cdc2b"
}
Frame {
msec: 704
- hash: "1a5ab296bd55aa215c9b04a7ff6c73a1"
+ hash: "47ed75d077143a6bfa0e10158550c542"
}
Frame {
msec: 720
- hash: "020fd7b14e8662fc006b0c39adca7c6a"
+ hash: "0de93bbd9f9ee63e97968089321003e1"
}
Frame {
msec: 736
- hash: "2619120bdb25a153963bdf05c4a16d44"
+ hash: "b33d867d4399879256a01344ce0b81f2"
}
Frame {
msec: 752
- hash: "fd321314031efeb9ce71146764289d9f"
+ hash: "97c31fce937d11f62bebc6169b464a42"
}
Frame {
msec: 768
- hash: "378a71f09445dfff284db919787cbf87"
+ hash: "ea4166b8a4001bca3f27af30f251267f"
}
Frame {
msec: 784
- hash: "d59eefe82ab8a00c903141dd9ea767ef"
+ hash: "b56d270b7893565f8d7ed2a0bfe10d60"
}
Frame {
msec: 800
- hash: "0a65004d69a4567f2a5c7e84dab3a905"
+ hash: "88a42559fe22b45cff379258dd40ced9"
}
Frame {
msec: 816
- hash: "92a4631716a51ff484ca14d9cfe05b2e"
+ hash: "4ee1a711cb8d26087e1b75a3166ca5f0"
}
Frame {
msec: 832
- hash: "87203f627cf410cad56d6ba38a140efa"
+ hash: "9b88a00d041092e79b4a08bccbaca0e1"
}
Frame {
msec: 848
- hash: "054cc085998cc059a6b7b4a7300dd36b"
+ hash: "afea397b3d740dc42f0313624fc10efd"
}
Frame {
msec: 864
- hash: "af3fefeb908a0485c723d36f61eff0a4"
+ hash: "39fd8e4cefbd9fed283d62a7aecded22"
}
Frame {
msec: 880
- hash: "3f905d1e1ea79858b5a9bbfeab4eb255"
+ hash: "916b783d2379ac054c749e7b6eae7ddf"
}
Frame {
msec: 896
- hash: "f935f1fc5f26a201098d894fca9a4d1f"
+ hash: "fccd44740ff7ffb0f2adccf00a7588bd"
}
Frame {
msec: 912
- hash: "42b003dbb531da514716b9c32bdd3614"
+ hash: "c064f20703a13543e8273d251fd645fe"
}
Frame {
msec: 928
- hash: "a82fed83ee4efee7896b639c7691b13a"
+ hash: "1b9b0755101841e3d1cbe208d81575d5"
}
Frame {
msec: 944
- hash: "31ad8cbf875233ea495330b0d3d4d2dd"
+ hash: "1eb5e4a301b565012bc8f6af8e879eb9"
}
Frame {
msec: 960
- hash: "00586f2f1d49fa81f90f7b06614311b4"
+ hash: "032db65eb5c405e433f88df3975c322b"
}
Frame {
msec: 976
@@ -250,175 +250,175 @@ VisualTest {
}
Frame {
msec: 992
- hash: "5d71ff48b865ad4266eb8292f981b04e"
+ hash: "fdb67e11d7cc767b2389a8bbef752c7e"
}
Frame {
msec: 1008
- hash: "df599d934d131c92b209284277009efb"
+ hash: "ed89cb161336c61b13e3514fdf816023"
}
Frame {
msec: 1024
- hash: "5aaf33d11eb70ffdfe89246c637caed7"
+ hash: "331b873c5367e0aaa62af85cb54a6a96"
}
Frame {
msec: 1040
- hash: "9648cf623a66ded145c4fd23a42917b3"
+ hash: "cde4503f02f0c3732e310a7d0418cd1e"
}
Frame {
msec: 1056
- hash: "9d33c2cc44ceac5a527ddcf809a51df6"
+ hash: "f8c028c591fc1495d5bec8763da6f011"
}
Frame {
msec: 1072
- hash: "6d0ad2e0d012e53a03e246e6d5e49e13"
+ hash: "9dc68483218335afe41aa3cd052a98b5"
}
Frame {
msec: 1088
- hash: "d33fa68796e38b19f44571d11c1bcd33"
+ hash: "31105c455418a3284700cf9c88571507"
}
Frame {
msec: 1104
- hash: "636680f49bbf30b0fac31a6c581f18dd"
+ hash: "72724947167a1ac600aaa1d7f331f7ec"
}
Frame {
msec: 1120
- hash: "66801dbc39301e6b46b244fe502e0340"
+ hash: "a4a1243326de6b9e93948fcb22fecac4"
}
Frame {
msec: 1136
- hash: "f8fa6a033483279e78636f26493b10ac"
+ hash: "c3e26e62f12dd658f21a0330fefb0533"
}
Frame {
msec: 1152
- hash: "11b46611550173df42986dee4339d907"
+ hash: "15d85b4a9ad761a911bbaa3e0c4b2b61"
}
Frame {
msec: 1168
- hash: "5c9afdb519006079ee8d28b2b60d0b76"
+ hash: "bce1400b437cc43b8ff57b1a5fbc9551"
}
Frame {
msec: 1184
- hash: "9a55c38b2cd8abf25fbe448c7ef80971"
+ hash: "5d05848afcd8f697c1b3762f00a759f6"
}
Frame {
msec: 1200
- hash: "27ebdf1424e892b35c93ec009d942407"
+ hash: "6c83f68ea72cd54793149f4c9e759d44"
}
Frame {
msec: 1216
- hash: "2d9e3f0ae56f7337012b51c4dd173108"
+ hash: "5206b93666e51cee3e25a7a85e27b5b8"
}
Frame {
msec: 1232
- hash: "e6f89ca892131d68ff1f4ca95c95d807"
+ hash: "a3ef5c76efece4455e5ad12bcc8bd8f5"
}
Frame {
msec: 1248
- hash: "f75791f1b12a217d37acb09bdb114cc5"
+ hash: "c36c6ee7b6c8074f5dc1af7446fad1ad"
}
Frame {
msec: 1264
- hash: "94c5ab1460fb1b0f957a9718b45bca36"
+ hash: "bb0887f1f10548bb53f0dc1ffeec25ee"
}
Frame {
msec: 1280
- hash: "e246c8a0ec3d01ea20258b24a5673fe1"
+ hash: "ebffe547a7c3528e5deddc590510506d"
}
Frame {
msec: 1296
- hash: "529de7735e73409dff266d8c1275215c"
+ hash: "18962faef1a1a1207a3c6783116154a2"
}
Frame {
msec: 1312
- hash: "330400763a670580570cb62241ebec62"
+ hash: "8aaa876e4a6c4de04e557f35ddd4fb61"
}
Frame {
msec: 1328
- hash: "ae444d1de9c509fc6f74136ca90f927a"
+ hash: "c66123bb4e01ce267629f5b50d147db1"
}
Frame {
msec: 1344
- hash: "c43631ca8ee90ea5dc7664be5bc45429"
+ hash: "334e5acf84d90e70ca3085b9d5e057a7"
}
Frame {
msec: 1360
- hash: "b366ac4a5b66c331a7667e9df0fc4eda"
+ hash: "9bb49ddcc775307c3c1159908323e010"
}
Frame {
msec: 1376
- hash: "1c7f4c47a9c57a34787cc9703e99bff1"
+ hash: "1b3cfb8b6b6c39a34ea86a66ea1cc6b1"
}
Frame {
msec: 1392
- hash: "5555535609d512e8d34549b6624f74b8"
+ hash: "d2a68c6eb2b05390ab1049137f96f227"
}
Frame {
msec: 1408
- hash: "be59df714541923494b59f31f57e310e"
+ hash: "91e254fd2376ba35a283b18b947ca1a8"
}
Frame {
msec: 1424
- hash: "63e434f053032e54298f6e61c8d4da7d"
+ hash: "fe94e2e8b4978390e9e8cbfe77dfc241"
}
Frame {
msec: 1440
- hash: "b0bb838637eceb6f8993ebc5b887afed"
+ hash: "e3d32b73c5c50e7aa59f4e4725de170e"
}
Frame {
msec: 1456
- hash: "fc39f33add4ebcaf578558ecd4aea281"
+ hash: "a73b90254d7da5557cc3941db0017a65"
}
Frame {
msec: 1472
- hash: "3f36faa7cc1e5898d4d5890c47633ff3"
+ hash: "9aa49cce5d63f8dd6409995ac6d91d63"
}
Frame {
msec: 1488
- hash: "4b328002b4461869b1f7de48e7291902"
+ hash: "0ba674df46accec28a3c1b81e656adc7"
}
Frame {
msec: 1504
- hash: "26252c63924d2abcaebea2c7caf1d7aa"
+ hash: "025a45417b8c75d47b5dac6c5ef913e9"
}
Frame {
msec: 1520
- hash: "a9a6023484ae439be86b2c2ff59dc40b"
+ hash: "742527b97c7f580b0b7ff9d6aa105d31"
}
Frame {
msec: 1536
- hash: "620dab11bd4aab84cc0d949c48dd9a5d"
+ hash: "965ec8315d45894e704fcc5a3efc8c55"
}
Frame {
msec: 1552
- hash: "3b45ef80ee3e6fbbd3533bfa0d666e2f"
+ hash: "6abdd59e6bd2c31124eab254418a5322"
}
Frame {
msec: 1568
- hash: "b33306abcb6a8402e491b7216495c778"
+ hash: "9f6d06b176c55fa292e7f0ef4b5cd1cb"
}
Frame {
msec: 1584
- hash: "3cc52e8649a02e87785f1dc63f5c1efd"
+ hash: "05eba8c6e02c0d4af49e59b3346c9e68"
}
Frame {
msec: 1600
- hash: "fe21141f48da685213ed9d7641b2e7a0"
+ hash: "3c4215f6253aba836516cd51368bc471"
}
Frame {
msec: 1616
- hash: "205aac4e822e20bd32f637256250f3c8"
+ hash: "c6339a290007c0106cb18ecef5b7392b"
}
Frame {
msec: 1632
- hash: "124df0948f36aaf6151556d301f4b930"
+ hash: "39a4bcd2ce84035f9db70f196ca00971"
}
Frame {
msec: 1648
- hash: "c1701edd5eaf143fd1dbdc4a5324b48a"
+ hash: "b75a4be472583c3b893fc894ebe7d4d8"
}
Frame {
msec: 1664
- hash: "117402df55367c918a3835958f4ab1d6"
+ hash: "d1efebbe748c43b3c1241753612e100d"
}
Mouse {
type: 2
@@ -430,67 +430,67 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "73e3b86a1da28490cae4b03fdceefe19"
+ hash: "f6f3ad64fb71ffb68a5ea0375cc94bae"
}
Frame {
msec: 1696
- hash: "172e329fb47d6db0180242990a84fe3b"
+ hash: "778ecbafb5d235edde1683cabe3c3cfe"
}
Frame {
msec: 1712
- hash: "82cf704cdfd406bab22689bc888ddc8d"
+ hash: "5a41b9196fe4a97e6ba2400806299bd8"
}
Frame {
msec: 1728
- hash: "4c288f198a06d1b2815d34c3c8f97051"
+ hash: "1c8ddbc5910e35be389a1cb34fab9dec"
}
Frame {
msec: 1744
- hash: "6404d81456bb95a6b1c1ae55a181e40e"
+ hash: "5e8b236c00087a067d366afde67184f3"
}
Frame {
msec: 1760
- hash: "b2b4b3de77e2b7fd58d3da1ad52355a9"
+ hash: "72fe42361833054cd9388bb98ac9b150"
}
Frame {
msec: 1776
- hash: "95388037c1f79a9dab951031f1d7c307"
+ hash: "bbe9f0b030efa716f34a05f0af929c66"
}
Frame {
msec: 1792
- hash: "c4ee57d9bffbb5f0ff173db48eadf2e3"
+ hash: "cd393fc19a30d896bfe62aa0000308f8"
}
Frame {
msec: 1808
- hash: "703ac9672a9c55cf08e6381ef76ac13c"
+ hash: "c390f5b1bcff54de203490d8f2616fcd"
}
Frame {
msec: 1824
- hash: "ea7726d2a2923290398262c8f70d511e"
+ hash: "b5da2ea467c334dd13c75b811b94efb1"
}
Frame {
msec: 1840
- hash: "5d1af6cbdb4ee5b00045751204408632"
+ hash: "49887c9312c3a4dfc2d9719f47c83a15"
}
Frame {
msec: 1856
- hash: "a52aa37b10a05382f1b136896b7e00e8"
+ hash: "7f077703e49f154d01c12a44f53469c5"
}
Frame {
msec: 1872
- hash: "a5acc1a45c95a67725e5e15084b7be18"
+ hash: "7be4130ed767f0e0bf41c3bebf050cac"
}
Frame {
msec: 1888
- hash: "c9fac8b5a4110493958d49b073ea96ed"
+ hash: "cc1590486c172000557b76c6eadb51e0"
}
Frame {
msec: 1904
- hash: "6fca3a5c6d1cfbf1b905aca25b7785c5"
+ hash: "7ccd05236d9c1f8af0e9645404326122"
}
Frame {
msec: 1920
- hash: "a40e5e2744d1d84c8b9a45525801a745"
+ hash: "2da165bf7e868b53b85bb630649ddc3e"
}
Frame {
msec: 1936
@@ -498,239 +498,239 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "b2f980ab19d44ee98ab3e82a19adfe2d"
+ hash: "2b6a24b6ceeaa956527c872af70fb5f9"
}
Frame {
msec: 1968
- hash: "e01732623930aebefd76ab62c81dc722"
+ hash: "8c882de21f4ed0fb68433c19b114c3f8"
}
Frame {
msec: 1984
- hash: "3a59c6851bc89eb31100092b1ceddbd9"
+ hash: "f75226c58726a687079d0d24e865ee6f"
}
Frame {
msec: 2000
- hash: "2949de19eacb9f35816aa7ba69614f2c"
+ hash: "2fa9b69fe85b4e1361ba260545c10e06"
}
Frame {
msec: 2016
- hash: "f2c4c1f4429cbb6bd10f2318b2cb6904"
+ hash: "6d513bc03f2798fbce1a0790969da6b5"
}
Frame {
msec: 2032
- hash: "2c48af64162e7e028cd536dba03eab71"
+ hash: "7e359e605483493e9a865f6eb912c394"
}
Frame {
msec: 2048
- hash: "7fe13b8f9253f720b6591b396cfba2d1"
+ hash: "497c7c82c24408dcaff5ec981d3d4f35"
}
Frame {
msec: 2064
- hash: "559947a03e650575a764801366cc504b"
+ hash: "8738b024cf75ef970ffe20166e85141c"
}
Frame {
msec: 2080
- hash: "a8d09f6c862fd5ec2dcf34f06d1ef744"
+ hash: "014b805eb1ecf2ea1cd61727bfd1ca08"
}
Frame {
msec: 2096
- hash: "e3bb4b62209631ff84134f2243bfdb42"
+ hash: "a81cde60979300f397054ea017382114"
}
Frame {
msec: 2112
- hash: "a1956a9d1939bc154ea0c88d596948cc"
+ hash: "c46183b5224e762335eea98d9da65465"
}
Frame {
msec: 2128
- hash: "c98a375727860da1e827d4dd74af8f63"
+ hash: "11afbb88994f298a1fed6575fae3d7fd"
}
Frame {
msec: 2144
- hash: "df4edcbb2ef5348341ff55c808609b6c"
+ hash: "0195fa503143561d9ae3ffe68739ca3f"
}
Frame {
msec: 2160
- hash: "6287564be85b7cbadc6bb6f0232bc837"
+ hash: "6d298df37d2116eb9a62b58853cb3344"
}
Frame {
msec: 2176
- hash: "9826fdb48f7ea770fa5f198ec49d7cb7"
+ hash: "1660865f00ea9adf94c8e56c7a8a73b2"
}
Frame {
msec: 2192
- hash: "56f82641a5591df9bb929cc0d32eb95d"
+ hash: "9835b5527b84e8e8a8fea2bdf9653a99"
}
Frame {
msec: 2208
- hash: "526c55e555fb2e58796561efa3568c50"
+ hash: "ec1158b83daa9e98437abc9ce90b70f0"
}
Frame {
msec: 2224
- hash: "6b4b74613421c1841a17c369cb316754"
+ hash: "11ce5e37747e05ff5f5071b13324ce9e"
}
Frame {
msec: 2240
- hash: "37f785c30947d5eec113dcf6af649abf"
+ hash: "6d7d427d5a15a31fd395f26c94ea455e"
}
Frame {
msec: 2256
- hash: "5ff2c975dd9e261c764537c836627c4d"
+ hash: "828949e0fbdb7c79719fb533febb5b35"
}
Frame {
msec: 2272
- hash: "efe554981583749c3d09988bce7fed02"
+ hash: "7ef7f73ef6a59c9210cfa37df3894cb1"
}
Frame {
msec: 2288
- hash: "0f7204b4afb0ea5d58e49650e8027c0c"
+ hash: "e74bec397b32ba2934ffdde23a3d60c6"
}
Frame {
msec: 2304
- hash: "817291f91f4b309710ad3aed53a7d47a"
+ hash: "09c2ca9c22e9b77bc166b4567b29bca7"
}
Frame {
msec: 2320
- hash: "c15c9cd03089090cf8a777c1f0d88de7"
+ hash: "44d87983f33c4e03f4be70b406bb9bd9"
}
Frame {
msec: 2336
- hash: "05f45cb8d0856dcc81091351615e35d6"
+ hash: "92844b36c2f30e618f04bfbc5cfbcad6"
}
Frame {
msec: 2352
- hash: "99785a16fed6d6409b4b47ec55afb56b"
+ hash: "0245f39a8966c4addb3f8dbcee93cd3f"
}
Frame {
msec: 2368
- hash: "39032cb4432ee9536af500673fccf526"
+ hash: "eb1e81cfa29295d4b1522c69d4501f51"
}
Frame {
msec: 2384
- hash: "9057653e3cd6042831037d3590e7595b"
+ hash: "2af9c3bea11b25c0f6c2b780d533a968"
}
Frame {
msec: 2400
- hash: "76c772eb2ab8f117c260c9c96bc99e1d"
+ hash: "5062e9ab29c4a7a9657a4d29249ca822"
}
Frame {
msec: 2416
- hash: "b6474665b8f8bcdd76d1a38efecad889"
+ hash: "d7652ddc85d3be3bb3a2fc268ae9bc29"
}
Frame {
msec: 2432
- hash: "106c2d2efafad0181e3ded3a6805f2c6"
+ hash: "7c924bf2ad6167db439723679b373a3a"
}
Frame {
msec: 2448
- hash: "5275fa4ffef6c1909f9d03bb1e7b9cae"
+ hash: "a93b61dd26a2ca72100b747ac3ed81b6"
}
Frame {
msec: 2464
- hash: "0c1043c0087d60000dc7259d4ac03618"
+ hash: "5fedc849d3d21e0acf0ab4a4815a1285"
}
Frame {
msec: 2480
- hash: "645748569b4f5cb9b206b0808bb7d23d"
+ hash: "4313d2458f4bede8d3b02ac60135e728"
}
Frame {
msec: 2496
- hash: "dd95dfa80e1b3ff511e7c75efd0d87ce"
+ hash: "0f09e81d89262b569c56a9c876f3898d"
}
Frame {
msec: 2512
- hash: "86b3dd03b04d7610837cdc67cad07e0a"
+ hash: "ea932789ded14fc5c8bae565b67d004c"
}
Frame {
msec: 2528
- hash: "8264f67ac92e4ebcfe4cc8e954f8c5d2"
+ hash: "fd1f7b9b51f1284fee4d777ef83bba3f"
}
Frame {
msec: 2544
- hash: "6bf52377d822b09eb28a1ec36d3a36a9"
+ hash: "e98b884a1ec8ce4b4dc20749b85b571e"
}
Frame {
msec: 2560
- hash: "7ae1d65cdaf7fa71eb4ec318b37bb0aa"
+ hash: "d144072bb87bb88750b9df9cd92f7a4b"
}
Frame {
msec: 2576
- hash: "860f5ce9844c90cf9e6a6d383ff0972f"
+ hash: "9d8ad80d3367292d7e89d67cf49862b8"
}
Frame {
msec: 2592
- hash: "5502229c038dfc59d966f69ae6ed8957"
+ hash: "c09b89e71e862da15d2b9edb0e00aa7b"
}
Frame {
msec: 2608
- hash: "21843c027bc1434ae60b3bb0fced2c54"
+ hash: "551277add3f8f09951d9c8f55ccd40f7"
}
Frame {
msec: 2624
- hash: "962df45680949c3eb6c968f98cd76b20"
+ hash: "1d0be0e7108516869374a9b985fd7543"
}
Frame {
msec: 2640
- hash: "f313c26fa76a0edce61244bdf92528e4"
+ hash: "12e7cfb6c4a26af54c4b35182294a7b7"
}
Frame {
msec: 2656
- hash: "b7bbde239e98cbd66b1e51b54b747f51"
+ hash: "a666a5a59d5854973668798eb8d508ba"
}
Frame {
msec: 2672
- hash: "62340707fbc832fcb805c8f80ab353d1"
+ hash: "420d2e21461dc45f134b7dfa11d04d25"
}
Frame {
msec: 2688
- hash: "d008a3f7af1810ff70b68b38a4cd0f0d"
+ hash: "95f848874899fb58a81c62b5921cf857"
}
Frame {
msec: 2704
- hash: "e651dd628af24faf34d716beb392b052"
+ hash: "fa3ea7a0f90ca549cc9a857f0647b061"
}
Frame {
msec: 2720
- hash: "a97733963c7a7616b25741545b07ffba"
+ hash: "cbc5338de6157cd5dad511b246f5093b"
}
Frame {
msec: 2736
- hash: "3e017cc1db720cf16521bd17308e4f44"
+ hash: "e26b43c83197abab3746830bbfacc0f4"
}
Frame {
msec: 2752
- hash: "13652ebaa610cca71486517e2eed21a5"
+ hash: "5225e854ff2763e562dee2810331d560"
}
Frame {
msec: 2768
- hash: "09f0f500c6f7d11be39c31f9e589b38a"
+ hash: "a1d114ea67233ac4c6351e18e3afa64e"
}
Frame {
msec: 2784
- hash: "b87968cbc60ddc6a5f5699e830410eab"
+ hash: "bc9f12af2d0816bb84fd5040ed29bdad"
}
Frame {
msec: 2800
- hash: "50e65b043d1f07a321a08ee4c25204f6"
+ hash: "d9337da38caa4ad3385249602a830df3"
}
Frame {
msec: 2816
- hash: "122d1ffa1510468e8c4067e0f511588f"
+ hash: "6ce20e0c89181b0f11e609b248da71d7"
}
Frame {
msec: 2832
- hash: "585f6c25caaafb99a22a23d8a998d202"
+ hash: "bbc8337950a78c7bfa48aab2635120a8"
}
Frame {
msec: 2848
- hash: "9b245a00ad576666c10f509d8a80a61e"
+ hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d"
}
Frame {
msec: 2864
- hash: "9b245a00ad576666c10f509d8a80a61e"
+ hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d"
}
Frame {
msec: 2880
- hash: "3c5d3d10bacc093afc6a9c0b5aa4cddc"
+ hash: "b496af17513d60d4028bd7402fbfba93"
}
Frame {
msec: 2896
@@ -738,215 +738,215 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "31926d69c2309fdf13fbd7f0e9868c3d"
+ hash: "29aa7ce0fb1aa350753d3ec6da05bdf9"
}
Frame {
msec: 2928
- hash: "eb3acacce5dd31b0e94b59b9e546ccae"
+ hash: "fde474797d8105d9d004a7020e010fa4"
}
Frame {
msec: 2944
- hash: "9a51cff3276d75803a0a6e480f7ecb70"
+ hash: "5a553d9a4bd2ef5d86f5eb37a863d28f"
}
Frame {
msec: 2960
- hash: "fbbd8b9d519993a699815d935bcd2b9f"
+ hash: "2dcbf6c84abd49529f0b5d85bfb74808"
}
Frame {
msec: 2976
- hash: "0314190c6de73f9f374a4eaed0709645"
+ hash: "e96ec3b7d37bbf4c9ca297ad5afde31c"
}
Frame {
msec: 2992
- hash: "8ca1a203bdb5446094eb948aeb0a333e"
+ hash: "9d824068affe32c143226b0b530206fc"
}
Frame {
msec: 3008
- hash: "301e1b86ce38e11ad9d0d7aba0909985"
+ hash: "3e85f0ace68cffed47f4c9b00145f0f0"
}
Frame {
msec: 3024
- hash: "922095867d0a91b73ab7a63df2041279"
+ hash: "540b8e1e2bee7d2ba5e29fd3b1086cd1"
}
Frame {
msec: 3040
- hash: "ba8275f3ba4633bf64a1f81f630c90f1"
+ hash: "0786585d11934c5e4a7e965eaac9a152"
}
Frame {
msec: 3056
- hash: "efe39545279a7bd015d2de75d2b9d8b1"
+ hash: "8271705df2ca697f4343007a7810d4ac"
}
Frame {
msec: 3072
- hash: "78926c3c0c6fcf89b9291f9902710964"
+ hash: "b98e1cd20ab2e4239f35d04df5e5175a"
}
Frame {
msec: 3088
- hash: "ea63dcb7f00d3ddede0d8be59ad9d6bc"
+ hash: "ab1a7eaa5c5d919ee76cba405d0dd4cd"
}
Frame {
msec: 3104
- hash: "286ad493301b713a49e378f123482a53"
+ hash: "52682386448379a395dc6c541224b7d4"
}
Frame {
msec: 3120
- hash: "a4bbbb8bb88188d3e99996502e3eebd1"
+ hash: "31dffcb9da94dfc085ab8c561404c248"
}
Frame {
msec: 3136
- hash: "a6100e79f3dc5af594e86ab6cd8dfb76"
+ hash: "f3703eed8ebf9ece776ebe51e4c60ae6"
}
Frame {
msec: 3152
- hash: "d9e3f777dc89bcf1b7f712206db768e2"
+ hash: "1126b90345bb42691cd17f37ecec6bdb"
}
Frame {
msec: 3168
- hash: "768045c600c0aa0b1e9e6f012733c600"
+ hash: "7a63ab96d1c8d4992c03a6f59bba4e7e"
}
Frame {
msec: 3184
- hash: "d8b4caa641ddee786f7898359efe9d07"
+ hash: "91f4a00c9a7ea6164b334aa4b90da862"
}
Frame {
msec: 3200
- hash: "f7c3b76d5bb7c263ac9447eaad685158"
+ hash: "485471140f6a5336837377612e7a85bf"
}
Frame {
msec: 3216
- hash: "f7f97db815d653ec29fa31b87f72af2a"
+ hash: "96881b4021aff05020e0a9342fbae75d"
}
Frame {
msec: 3232
- hash: "18524623762487b60943312cd8bd4388"
+ hash: "9891326646c3da4ff250aab69c862f96"
}
Frame {
msec: 3248
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3264
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3280
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3296
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3312
- hash: "18524623762487b60943312cd8bd4388"
+ hash: "9891326646c3da4ff250aab69c862f96"
}
Frame {
msec: 3328
- hash: "430995770b655054aaeda383df8e27f7"
+ hash: "c766238db55f4704c2f29a6be6ee6907"
}
Frame {
msec: 3344
- hash: "16a3a00f2b89aed676f80d63c4933ec3"
+ hash: "0254665427dcbd1c155bc954cc7aa7cd"
}
Frame {
msec: 3360
- hash: "6c55aa62079ec546522edbf69c37b270"
+ hash: "33ae1012816b997ef5c61c03ccfcc590"
}
Frame {
msec: 3376
- hash: "0d68ca3ccecdd831013950cc7405e46e"
+ hash: "4c7857bbbcb9aa812fc2503af2b395cf"
}
Frame {
msec: 3392
- hash: "9da2511bc8b434218695fa74ed543439"
+ hash: "3a570e4af992d35e55923cea23c3c11b"
}
Frame {
msec: 3408
- hash: "05afdd0b99dab81a500cdc2b2f0786fe"
+ hash: "533ef554538005512ce37c73c6def722"
}
Frame {
msec: 3424
- hash: "e6f8882d146ae60bcc6ea47ff41a637b"
+ hash: "f863fa215d0642708bfa82780c766dc4"
}
Frame {
msec: 3440
- hash: "154542ed0e88321294f382501819aefc"
+ hash: "fcca3ec34521c4b9087a102ba1e47293"
}
Frame {
msec: 3456
- hash: "8f47b6980c387c5020145bf04645fd2d"
+ hash: "47d67cd74cb96b12801842b288a8b9ff"
}
Frame {
msec: 3472
- hash: "b34b055c7602f1f4e1cde875b258120c"
+ hash: "34c5ea76f297ec68cba70521caa468e4"
}
Frame {
msec: 3488
- hash: "5a697f675575f05e297d4877604b9a47"
+ hash: "7be247cc7a4032ff0478fca1a2aace8a"
}
Frame {
msec: 3504
- hash: "729dff1d1b357d19fc81804ec8940d0e"
+ hash: "3ade2a1a48edef15f522b9fc016e137e"
}
Frame {
msec: 3520
- hash: "c6f3fee46baa94a6139d2ee40254b160"
+ hash: "8b37b9d123504931d82bb06f6981bade"
}
Frame {
msec: 3536
- hash: "af0e700bb8ae34834510830f8b44afdb"
+ hash: "5eb39825003f405f353f629e236b3395"
}
Frame {
msec: 3552
- hash: "9c87bb54c2dfe58c2da9194dae6f7502"
+ hash: "c4550722260c4a30ab1176c7e5cb62bf"
}
Frame {
msec: 3568
- hash: "2132356a92c75d725f9feafb8201b142"
+ hash: "bd33e3ecd4b59cd659588c0298b61095"
}
Frame {
msec: 3584
- hash: "50d855d2595eeae2bfd6aaa8c2fa0454"
+ hash: "4b3a62bff0019df7412aa2e1c07c0a23"
}
Frame {
msec: 3600
- hash: "5fde3c62d6e53a9056e3586f9dcda59e"
+ hash: "a9b98adcc3350febbb89dbf725b81436"
}
Frame {
msec: 3616
- hash: "8f04460254a1e9fb949d5165894cd92a"
+ hash: "66eb8c84e75141d1575caf7d3cbc1ceb"
}
Frame {
msec: 3632
- hash: "2b514c5e3b20d30f9c7e71092c69f081"
+ hash: "238f2b1dc5bf5b65e827c860f9ee76b5"
}
Frame {
msec: 3648
- hash: "2c1ba6224037790e15f5c0f2864ace4d"
+ hash: "6d1fed0697370b2a2163c369fe559739"
}
Frame {
msec: 3664
- hash: "0d5b8e7bd5f560888aacaf2b3c6827a8"
+ hash: "04ea478c785586d900bbe3472371bbc7"
}
Frame {
msec: 3680
- hash: "ae25004530e7df134414018e4a34780e"
+ hash: "ba429e711c9363eebfb20e641fa44c84"
}
Frame {
msec: 3696
- hash: "1a8fd9eaf9a91f1b42924f8986fbed9a"
+ hash: "0129dfba166ffcbaa15087467c864068"
}
Frame {
msec: 3712
- hash: "2ea6de2025d40ed5beeff12a5b70ccc9"
+ hash: "3fb340c874eee94e8baa1453b37c3fb5"
}
Frame {
msec: 3728
- hash: "624e417718d3cac1e4b7e4ce258ce6ea"
+ hash: "068c51d99c458f3edefe3371f46de260"
}
Frame {
msec: 3744
- hash: "8b56d29391257c7be8966af6be26ea9f"
+ hash: "dd1e04ed3d610c2712158d73ee2c5b9d"
}
Mouse {
type: 3
@@ -958,27 +958,27 @@ VisualTest {
}
Frame {
msec: 3760
- hash: "5c0d977d8b446d9191bde57335cf1062"
+ hash: "840154afb9e7e0c859c66667bb6944b6"
}
Frame {
msec: 3776
- hash: "100be2b21d069e3a5dbb694a90da4d4f"
+ hash: "239c2e33800e386b468a95341d0e23f4"
}
Frame {
msec: 3792
- hash: "caab03f6c81080dd8fdbedb4e94ae4a5"
+ hash: "0a00515f2d297362862c1a5cf6519845"
}
Frame {
msec: 3808
- hash: "3328a4d06f2f80a7e9ccf2ff21522fca"
+ hash: "f855df3495e44291aed8f085163c804b"
}
Frame {
msec: 3824
- hash: "a534e6cc28daf3eff6a9cf8379bd6375"
+ hash: "b4eb31e48c65550bb78d175b48e0e9fb"
}
Frame {
msec: 3840
- hash: "6686f9c1a814c6a6b785b70f94937b68"
+ hash: "70243664f9db83614e5972fc18ee81a1"
}
Frame {
msec: 3856
@@ -986,239 +986,239 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "d3f1c3593375ca5c022a1361a7ec70bd"
+ hash: "c48ce2a4cf28ab706b9c097bddc74c27"
}
Frame {
msec: 3888
- hash: "67843e6192e2ecaa3820c37dc2f93106"
+ hash: "754a957e0df02839dd2fe33fefb7a721"
}
Frame {
msec: 3904
- hash: "19a022f678e5b8f4ebdff936162323dc"
+ hash: "ec3ebe7b941af9bf2163634d7f15e8aa"
}
Frame {
msec: 3920
- hash: "34e55ae70c9e156db339ae15642359c3"
+ hash: "a76423ff2184cd9dac47abf7ae52ce5a"
}
Frame {
msec: 3936
- hash: "3784778c817f9d9bb73d990cfe12685a"
+ hash: "559bec54f51c36c6e90004ca5e77c23c"
}
Frame {
msec: 3952
- hash: "0403fdf79e3ba339c7e3786db0c9c0f0"
+ hash: "dc6fdd6a867a675afcb58f7052605614"
}
Frame {
msec: 3968
- hash: "93e4a0d5645d1cfc916f1e8422655555"
+ hash: "b2fb0dbbec01490243f37fe5f80ab6c7"
}
Frame {
msec: 3984
- hash: "29080bfabb87160b7c51385fb36b474b"
+ hash: "2bc1df7a913b1948ee7bb77eeaa55aa2"
}
Frame {
msec: 4000
- hash: "9da2d83edc9d35f00fb8a159e79de4d9"
+ hash: "82c6430d85c6a94c4b55a9529d2bc78f"
}
Frame {
msec: 4016
- hash: "5505a42d4788f00cfc7499fbfda851ce"
+ hash: "463e70dc9a9bdabdc158199bdcd7d2fa"
}
Frame {
msec: 4032
- hash: "bdd3040ab16fa9ffdd2fbc66b06699f8"
+ hash: "c1e9553327f060b70caa713bf3015342"
}
Frame {
msec: 4048
- hash: "2a347e30a20c693a9440caa60ade0a0f"
+ hash: "42f7f505d4e5ef316240e4f287a039bf"
}
Frame {
msec: 4064
- hash: "0307f1857c091a639d47f112ce1a2f5a"
+ hash: "200500f600ffe43c5ad4d057bcfc0831"
}
Frame {
msec: 4080
- hash: "778d18e539bbd562ebe39283a6315df1"
+ hash: "22e78edb813f7830776b2603b0aaae5c"
}
Frame {
msec: 4096
- hash: "0369cf6c3d1f5db2e92ee1f7c5d3b8ed"
+ hash: "32ebf3490832fd0693b1b922b4501251"
}
Frame {
msec: 4112
- hash: "9f7413587ab50f1abf776bf180ec2d6f"
+ hash: "1be622caa5ef94f87e2ec8297b6e1caa"
}
Frame {
msec: 4128
- hash: "7d04a27236485808e571e8a39f23ea17"
+ hash: "d1480529e0cb94c51c412109663e5fab"
}
Frame {
msec: 4144
- hash: "a1dff63b723473d5a4c9c59975a2fb81"
+ hash: "e55e627d6d13b647f35233f18f0cbe89"
}
Frame {
msec: 4160
- hash: "9795ea70a3b9d3b7805221a58c19e5da"
+ hash: "87d7b349cd2898de7686e5f1a14f6338"
}
Frame {
msec: 4176
- hash: "f1392c489e21107136eb8e0d1e8b427e"
+ hash: "2ac974836ee5e6092b55fcda20d7c35d"
}
Frame {
msec: 4192
- hash: "95c225ef07171a96335e99078195b06a"
+ hash: "53867256c1dac4de2f02af1ae000b49f"
}
Frame {
msec: 4208
- hash: "d46ef3e7f9cec06e8c18afc0d07be4f3"
+ hash: "08623509e9e5089fdaa1af2bf9a77eb1"
}
Frame {
msec: 4224
- hash: "b017f5b51d423bb0fca0d6df3aaded8b"
+ hash: "e4692f42c12593ee865048aef00cbeb2"
}
Frame {
msec: 4240
- hash: "60584d085b0cd6fbc436773be678597e"
+ hash: "981ad6459e3e7483bb323ab4bc514630"
}
Frame {
msec: 4256
- hash: "117951465dfd5c386826b295560d2dec"
+ hash: "79e8adfcdc9d6dae0d2b6a69e8e322fa"
}
Frame {
msec: 4272
- hash: "1b70137da5f4e024593999e93121fe8b"
+ hash: "58f967a607972faa9daa13402eeb9912"
}
Frame {
msec: 4288
- hash: "bd50dffd41941fef127f39b55c4748e0"
+ hash: "1fd5b002b049132565b6a963fb7b3bb6"
}
Frame {
msec: 4304
- hash: "8eec34d8e1d2e22d11b85a671cd4d3aa"
+ hash: "a16c96598f47404ec5f4ef55e87a1e70"
}
Frame {
msec: 4320
- hash: "9e3c97cfad5002ef5f3fcc365aeb7bd0"
+ hash: "3c632899804812c93c7edd3e3f3d2bac"
}
Frame {
msec: 4336
- hash: "28e1cf1ee033915ea2ee39c9ab00a73d"
+ hash: "af0eb810e0273f9bacb082d9f90612df"
}
Frame {
msec: 4352
- hash: "99101a156a553f441f00221f6facbf1f"
+ hash: "728d7ac4a5410482c7d86d03c2d8a996"
}
Frame {
msec: 4368
- hash: "419023e5d59d16c26b35bee7d3cea559"
+ hash: "416e76064f2be71a03eddddf61a33cb0"
}
Frame {
msec: 4384
- hash: "485d23519293975b04031fe4baa5c276"
+ hash: "c41f20b4ac9a7b34eefd066f77ea351a"
}
Frame {
msec: 4400
- hash: "c8bc60735e0ede26dbaf228294853f9a"
+ hash: "821d51db415a210b09ebdf8d861aadf2"
}
Frame {
msec: 4416
- hash: "ada3680b807d59843e3adf6640704066"
+ hash: "9394266815a52f1779858bb088d557dc"
}
Frame {
msec: 4432
- hash: "3e28f3adf9241512cd0d6918d81ffffb"
+ hash: "cc475d1589665414e5aef051ec237ef4"
}
Frame {
msec: 4448
- hash: "8f339acc33cbc89ae1c62391ce021bb3"
+ hash: "a95f3b8128faa7820f36391fa9bd579f"
}
Frame {
msec: 4464
- hash: "d303960c0853a90557d64a04b8283c94"
+ hash: "d52687293a11891c364de52525039203"
}
Frame {
msec: 4480
- hash: "f907dbdacf2cfa9fdf8f9c8dead5b4c4"
+ hash: "5333dc4f65b2f1e066edcd23f7621bd7"
}
Frame {
msec: 4496
- hash: "30c6e6f283f4a3f538cdda9c2e92de8c"
+ hash: "797bb5e27b2fe2b733a54402433901b4"
}
Frame {
msec: 4512
- hash: "04d2ac55774b43107a43a7d33764199b"
+ hash: "84c610cdff7f8b04a34977216e37847d"
}
Frame {
msec: 4528
- hash: "cddf3e111cbc59e721725daa1d8a0c31"
+ hash: "0317f0406a566b2851c8bda62900e40c"
}
Frame {
msec: 4544
- hash: "15b1b63cd1695207ebf9f04387be0739"
+ hash: "6538ecd7abd35234c5cc5c2a17249fc1"
}
Frame {
msec: 4560
- hash: "690769b9bbe86a3c5b1fbdee39615fbd"
+ hash: "f9019150a132eb5f5cfafcd5337aff7a"
}
Frame {
msec: 4576
- hash: "2bd640d8ddbf878d808f22656fef1ed9"
+ hash: "0f0136fffbc65c02cee249ece4c8c0ef"
}
Frame {
msec: 4592
- hash: "a654f1e4519bf883d554276ebbe96323"
+ hash: "0027e0d236b8b33a451a0cc35e81b4ce"
}
Frame {
msec: 4608
- hash: "68f0313cfc3f51a0bb9b47c5407c19b6"
+ hash: "ac2f86b2d4f29f223fb78440d67ccd31"
}
Frame {
msec: 4624
- hash: "77f29806b084de4cabf7ab9bf1a93d5e"
+ hash: "a6eb112a10c849e337f816ee408f22a6"
}
Frame {
msec: 4640
- hash: "f9991189e3282d107b98fb0ae5f5ef00"
+ hash: "dafbb01f2615a2513310478ebe484a05"
}
Frame {
msec: 4656
- hash: "0cd1f2f6e347d48feea1b26a4968dec7"
+ hash: "17c400c4c29652dc278980ab578b75b3"
}
Frame {
msec: 4672
- hash: "e75a6f6a088e2289042572a161ffb0e9"
+ hash: "48696c02a2a4839b893a4c0b431b78a3"
}
Frame {
msec: 4688
- hash: "5a541081444c0a71128223a4c4c3144c"
+ hash: "04e05c7e722e53299d24cd0f1b7d17ee"
}
Frame {
msec: 4704
- hash: "6813d442cc610f346a5441ed0cd723e5"
+ hash: "55d158f13ffc7ccde5ee368656d2830b"
}
Frame {
msec: 4720
- hash: "24ec539bc57899819915f833f26deacd"
+ hash: "fa478e1575acedae023322a520171a5b"
}
Frame {
msec: 4736
- hash: "3a7ed1b4b533b817674aa141c420cd61"
+ hash: "e2147ddd6e19fde80bb76da24011400c"
}
Frame {
msec: 4752
- hash: "d0a643fae97bb152e97ca60e96299003"
+ hash: "44ee0144db4c55aa90d2a931d83a895e"
}
Frame {
msec: 4768
- hash: "c84093931520f4661eff6645091a294b"
+ hash: "552e87bbce4ad48006c899052a2c8cad"
}
Frame {
msec: 4784
- hash: "81e7ceaece82505a4a16ead195a66162"
+ hash: "3b6efe225303566f751c3f884ac8c069"
}
Frame {
msec: 4800
- hash: "315764d20b647f6ab1ba30239a69bf72"
+ hash: "3a7175916d1dc103506061607b910550"
}
Frame {
msec: 4816
@@ -1226,239 +1226,239 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "d1824ced8af34ad9edb36a58ae9aa7f5"
+ hash: "b2e5d5c14b02a13bca62673f87e85627"
}
Frame {
msec: 4848
- hash: "167b9a49fbb94908e09e7e9c9147cd8b"
+ hash: "bd89a911d6fb13e4e841f8ee5b8b42af"
}
Frame {
msec: 4864
- hash: "442d5f0906840de526d59a80ada322c0"
+ hash: "89795784185e83d0299e656f2eec73c8"
}
Frame {
msec: 4880
- hash: "78206c4d4d23c7c1ba888b9062b09432"
+ hash: "5b6d6fe78f341bdf0eb4bedfe3d975d0"
}
Frame {
msec: 4896
- hash: "e898202cfebbff1952efc6e01254d855"
+ hash: "e246bc451ee48e16ef6dee20d6256e9c"
}
Frame {
msec: 4912
- hash: "ab31dc7bbad2b0552359866bb8d92f0c"
+ hash: "8c1bc37b1b268743aa314247ea949ef5"
}
Frame {
msec: 4928
- hash: "f093304e88964376baf9721d53d4fb49"
+ hash: "04f34203c34dc87efc708bfb232663df"
}
Frame {
msec: 4944
- hash: "3ef76f3e1c44d13c3a469bd192ff7b5d"
+ hash: "d37a48545e81970d16951e3388f0ff8c"
}
Frame {
msec: 4960
- hash: "5d3b6d0d91f8cc5b89e39407bc3b5a15"
+ hash: "9411e846c9f59cc915288efb59d4c9de"
}
Frame {
msec: 4976
- hash: "3c73573f12f49b34e1d990a55ad913fa"
+ hash: "6ee179741ac74837708afb55943f15bd"
}
Frame {
msec: 4992
- hash: "d1bac071b01a1c6fddab90cdc435fad4"
+ hash: "f626fc3166bd5b01171271ae9bfa9b22"
}
Frame {
msec: 5008
- hash: "36a219aadec910f1dbef616c641e1d2b"
+ hash: "e22898b2c0c566bbf531223234f98327"
}
Frame {
msec: 5024
- hash: "5871fc67d361cc988551592ee21dfb23"
+ hash: "1343d90c5eae70713cd49110fe61237b"
}
Frame {
msec: 5040
- hash: "6e65ee6c814b9a9da205c36925e663bf"
+ hash: "493d9322da6d01979a3f1a120c265f8c"
}
Frame {
msec: 5056
- hash: "290b20fa8e91d34000d7c2d81745f6d2"
+ hash: "defccc76caf3a7c7c67e8abf5ccc2def"
}
Frame {
msec: 5072
- hash: "19e7405a9083a8143f7bb040f8837b29"
+ hash: "fe3cad9227fcfa7ba2238465078f2ac7"
}
Frame {
msec: 5088
- hash: "c0a0fa2b4c1ceb6c70594994a1ac8713"
+ hash: "66ebfeee3a63323c7d8b949db9aafd7e"
}
Frame {
msec: 5104
- hash: "c236224c16743fb606deb78bcb8afc8d"
+ hash: "805820b382d005894f9a615004b97b0d"
}
Frame {
msec: 5120
- hash: "7d44db15eb300b4338ffc26e9bcfce20"
+ hash: "eee1620f47bb071de8a9c788d1fd258e"
}
Frame {
msec: 5136
- hash: "067a79148a194c45c6f32d85316a1e11"
+ hash: "f5a7d9a81fcfc8cfb9e7cc8ead0f1ff8"
}
Frame {
msec: 5152
- hash: "9075c379044476994a87f0fdcce8e332"
+ hash: "249903ee123090b27019350f120c8b79"
}
Frame {
msec: 5168
- hash: "b2316988fbd51096a4f512e71fe7d0a2"
+ hash: "019793a363c905809af32bf34ef52ec0"
}
Frame {
msec: 5184
- hash: "280f70877d93af5f84e178aad6a102d8"
+ hash: "4f5ad5a3ebb6eca73dd7567199d07b08"
}
Frame {
msec: 5200
- hash: "3eef4ae7e43a8cf1cd9dd562237296f8"
+ hash: "fdc1b42d50c7a5c45458498788ff0abd"
}
Frame {
msec: 5216
- hash: "e3184f77ce3a47ca4dca6386f42d7fec"
+ hash: "cc091469598cad28d0a00690f1acb412"
}
Frame {
msec: 5232
- hash: "a2a5df66fe4808ea8d466cac84ba910c"
+ hash: "5c8757e1f8f34a31d8b3717b64b84c07"
}
Frame {
msec: 5248
- hash: "9f8a0e54788112d6c30482e840504f35"
+ hash: "5da75559f60eac1b9f518ed55a174e5b"
}
Frame {
msec: 5264
- hash: "ae69cf84798844f9f360c86790feaecd"
+ hash: "1214c08daec4dcfb27690fdc18f2ac28"
}
Frame {
msec: 5280
- hash: "0244526572acb6266db5b7eb9d29c6fc"
+ hash: "87d92c1ba694d0cf187d8616b0f622f0"
}
Frame {
msec: 5296
- hash: "8fb53d60b95ddb5aef27442934ea9983"
+ hash: "d4af63638fe69b6c4f087a935351057e"
}
Frame {
msec: 5312
- hash: "930fcfde491b4f5681e3861764003895"
+ hash: "0573c41f34c2c117cada987e4ee813a5"
}
Frame {
msec: 5328
- hash: "bcdcd0a637112d113ebe11dc18823237"
+ hash: "f179ef4b7bf0f915e25ffd8168a9126f"
}
Frame {
msec: 5344
- hash: "65a564d5a5afbc14c0cdad4d52753507"
+ hash: "1618bf7c94e7898392eb5ffbf44b8aff"
}
Frame {
msec: 5360
- hash: "0c5056d438d2d54938f31ef5f996673a"
+ hash: "5af24b902e3729d544f70c77e189b8a7"
}
Frame {
msec: 5376
- hash: "11c157ad2236fc390ffbdf339366cbc1"
+ hash: "4e5789404e58113cc2d8aa737a03ab58"
}
Frame {
msec: 5392
- hash: "6cb341b1f281a97a35c2e41bfd4c4d9d"
+ hash: "e4bf91a249e47597e959bbaf25f0724d"
}
Frame {
msec: 5408
- hash: "553a945f7f19f70ddae4ebe88e52a79b"
+ hash: "39a3e3d6269522ed57a0e37319ab94d5"
}
Frame {
msec: 5424
- hash: "d10b42b4095a2474e66a5a322f72e936"
+ hash: "f2e2e47922e7e058e14537a0455cd77f"
}
Frame {
msec: 5440
- hash: "0f943d61e8072d70eddee8aa1ba0de5a"
+ hash: "64abb3f2c9e05fd1dd7490d11c74f06a"
}
Frame {
msec: 5456
- hash: "3df18e237b666e78d57857739b759e6d"
+ hash: "a9bf45c29536ca34c42aa916747b485b"
}
Frame {
msec: 5472
- hash: "1ddc0bfdb2ca7b6dee63f1024e62f26e"
+ hash: "da21839b6635e5c4e0a589d163e62752"
}
Frame {
msec: 5488
- hash: "aaa397714528f41238059e3a88833abc"
+ hash: "f31e49258bcbb2a144daa320e4567df1"
}
Frame {
msec: 5504
- hash: "c94bd69f925c782656afc5f9618180a6"
+ hash: "f96c5b39f94bf2ac1e3f4de96767d720"
}
Frame {
msec: 5520
- hash: "824ff8c0e1ab43e3c0eaa79b7cc19b9c"
+ hash: "281b90d1056803093cc37f30465f0e73"
}
Frame {
msec: 5536
- hash: "6c440a0b2293811335bdbf2c4f25f47d"
+ hash: "d63a2424e1947328957ad8f5f0bec043"
}
Frame {
msec: 5552
- hash: "bfc7936cdf833d5b720ec9baca740112"
+ hash: "bd510a0de7df02b1b5741824b6f90944"
}
Frame {
msec: 5568
- hash: "375fa305dbae2872dc9b20e59381cc0c"
+ hash: "47dc4e5ff91cb84c89dd0fc0459f75f2"
}
Frame {
msec: 5584
- hash: "fffd6173aa49e74164dc17a238bcd830"
+ hash: "4bc46b5e116dd30e1db4d4bb650ed6ed"
}
Frame {
msec: 5600
- hash: "44d9007e00fab161fd393b653255d7f4"
+ hash: "c6964b89f1962f120028057d1c588694"
}
Frame {
msec: 5616
- hash: "f669ee25c58b4fa20a01705d334f0065"
+ hash: "39a77544a1c88b68cb63da9a8910a35e"
}
Frame {
msec: 5632
- hash: "2dbb7d57711b67d5d9e1b81f70e22d34"
+ hash: "bd8ac21d7a507a8e195437ccac254ecc"
}
Frame {
msec: 5648
- hash: "19351b91448265cb95c1670ee283c611"
+ hash: "7b39b2667a8f8efae20ec8696e35dbc4"
}
Frame {
msec: 5664
- hash: "19351b91448265cb95c1670ee283c611"
+ hash: "7b39b2667a8f8efae20ec8696e35dbc4"
}
Frame {
msec: 5680
- hash: "3a24b99d048348a21f4e4bd69393de89"
+ hash: "8628f4f24670d17965fec40a02e0196f"
}
Frame {
msec: 5696
- hash: "35a6fe955a52950bbfa954a453e4008e"
+ hash: "515903d9896a853cb18cc7b7c45c1cce"
}
Frame {
msec: 5712
- hash: "896f4ec28c976237b34fb2725a44460e"
+ hash: "b7a3f70bedcb3f90a2e294b447e05f70"
}
Frame {
msec: 5728
- hash: "ed3008ea950ec84c57518e573ea36d15"
+ hash: "8e8b104ef82b1e219021aa38276f8b45"
}
Frame {
msec: 5744
- hash: "3447c7be992759f772c1db2033eead99"
+ hash: "70abe79da860bebd2d17a8c7abb20b4e"
}
Frame {
msec: 5760
- hash: "b7133225daa03563d3f5b1dac5f56a23"
+ hash: "d99af176fb6cf9d9cbcf7cf4286a165c"
}
Frame {
msec: 5776
@@ -1466,239 +1466,239 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "adc55f2fcf312a90b025a75fa80aa079"
+ hash: "67809c7daad6716d0a664c52de9906ce"
}
Frame {
msec: 5808
- hash: "3ac85cad400d2b8e4f33798f4f6b7b42"
+ hash: "29a27fd59b7316ce305803482686ea58"
}
Frame {
msec: 5824
- hash: "1c115efd84ccbe489d24c3c521c4a61c"
+ hash: "25b9ca40d1d6208d026e5c965923f8fb"
}
Frame {
msec: 5840
- hash: "39518f1bbc0c4aba6ff517bc3dc7c279"
+ hash: "126b1542415aea11dbb35492be4f66aa"
}
Frame {
msec: 5856
- hash: "7bd28d32996f4de61c415d3217da16d0"
+ hash: "26ca7034536e0e690236797df740f19a"
}
Frame {
msec: 5872
- hash: "f5d06e25d775bf8db07e95625a712733"
+ hash: "fec9db60af63a4712b0da037cf1d89cd"
}
Frame {
msec: 5888
- hash: "4820ea6ea3be88af2f86111c547a19d7"
+ hash: "d9b7e2729c75ca0c0f33b542525c4880"
}
Frame {
msec: 5904
- hash: "fa6e681c368118b7f135a47ae8fc12ff"
+ hash: "89149d16b893ea432b6d0fb05ead48cb"
}
Frame {
msec: 5920
- hash: "f6b30e618aeeb837d2b3eca270b0a060"
+ hash: "8e389d2ca706277ce06e1da557e2e6c1"
}
Frame {
msec: 5936
- hash: "ac8504bde8d3063a8bf02b9d4b69d755"
+ hash: "fc5c74473410da1ddd451c5901572172"
}
Frame {
msec: 5952
- hash: "9670537bb77caa8e23fda7bbfa96ca60"
+ hash: "54514970eadff9362d31499a737e4c95"
}
Frame {
msec: 5968
- hash: "8cd292865ce5c1d240e9ddc93881a0ed"
+ hash: "d5953bc29532ec49c20ee552c8756ba1"
}
Frame {
msec: 5984
- hash: "de112013e526203d151c46e6cfba9f92"
+ hash: "5f03be3ed5824e6a6f8f371ce6a47997"
}
Frame {
msec: 6000
- hash: "cd61066e697de8c055aaa168791c2d8c"
+ hash: "0431e2ec4765167d0099c59df400f3fd"
}
Frame {
msec: 6016
- hash: "cd61066e697de8c055aaa168791c2d8c"
+ hash: "0431e2ec4765167d0099c59df400f3fd"
}
Frame {
msec: 6032
- hash: "e68b27ff14aac03c827fd43ac488d23e"
+ hash: "403e1f235770f2b7c8b1b2e86aea69a5"
}
Frame {
msec: 6048
- hash: "e68b27ff14aac03c827fd43ac488d23e"
+ hash: "403e1f235770f2b7c8b1b2e86aea69a5"
}
Frame {
msec: 6064
- hash: "1f61d857a8c26587fbda5895c603441a"
+ hash: "32ff9f959598972f5a264418587dca1f"
}
Frame {
msec: 6080
- hash: "1e0dffdd02e05ade1ae444427d4aa345"
+ hash: "b4c7c07e52a684f7ce21e47a4d66356a"
}
Frame {
msec: 6096
- hash: "9a416ee7a1de9ac45ab2d609233c9520"
+ hash: "e0f214bed2c3a31f473952929b8f3ea9"
}
Frame {
msec: 6112
- hash: "dfa35bf1cd908011c3214a506bcbdcb8"
+ hash: "15328b8a205965f3f29fc63a6a8ac8ed"
}
Frame {
msec: 6128
- hash: "bd502dc72dce4af3036f7af9ed7cf9e9"
+ hash: "72c46ed63633e6879373f4783df25d8b"
}
Frame {
msec: 6144
- hash: "8cd5edce652013a2ed4bf95693259538"
+ hash: "ae73e0adbdaacc648c2e97840cef4194"
}
Frame {
msec: 6160
- hash: "a38ed1532a40210ad7da4c0d4d1a7195"
+ hash: "df9451c6634d72e6f794e962b3591086"
}
Frame {
msec: 6176
- hash: "8ac8a8df937da526bbffb9a3590d89ac"
+ hash: "773e10bbd133e64457e7ddbc73a10fc2"
}
Frame {
msec: 6192
- hash: "07527cb9a4494e11f4c9f99eb72598b9"
+ hash: "c79abb97eb86761b69053d77156dffd4"
}
Frame {
msec: 6208
- hash: "655b0327ef0f8711810714ba50f2f8cc"
+ hash: "d927934b19ffd55ea7cea1916983351a"
}
Frame {
msec: 6224
- hash: "4c1ce8b4eb16c69614e2560c04ad48cf"
+ hash: "ae5058d935c1e44d103be66921b19e77"
}
Frame {
msec: 6240
- hash: "7a382ae4e6a48826eaa2c83ee7a73fb2"
+ hash: "b6a1446b6be054d5785ba52ac23f8aa8"
}
Frame {
msec: 6256
- hash: "5acd5f250c5b32d9006ed68dfecbfa1c"
+ hash: "3dffbffded44249fdbe58aecd24ab97f"
}
Frame {
msec: 6272
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6288
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6304
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6320
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6336
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6352
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6368
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6384
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6400
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6416
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6432
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6448
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6464
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6480
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6496
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6512
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6528
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6544
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6560
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6576
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6592
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6608
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6624
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6640
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6656
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6672
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6688
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6704
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6720
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6736
@@ -1706,58 +1706,58 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6768
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6784
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6800
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6816
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6832
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Key {
type: 6
key: 16777249
- modifiers: 67108864
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
msec: 6848
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6864
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6880
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6896
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6912
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6928
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
}
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 d85498b..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 26cd97b..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: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 48
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 64
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 80
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 96
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 112
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 128
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 144
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 160
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 176
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 192
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 208
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 224
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 240
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 256
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 272
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 288
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 304
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 320
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 336
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 352
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 368
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 384
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 400
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 416
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 432
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 448
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 464
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 480
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 496
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
}
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 16202c4..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
index 16202c4..53d3c12 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 c911b0a9..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,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 48
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 64
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 80
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 96
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 112
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 128
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 144
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 160
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 176
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 192
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 208
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 224
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 240
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 256
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 272
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 288
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 304
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 320
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 336
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 352
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 368
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 384
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 400
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 416
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 432
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 448
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 464
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 480
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 496
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 512
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 528
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 544
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 560
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 576
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 592
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 608
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 624
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 640
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 656
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 672
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 688
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 704
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 720
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 736
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 752
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 768
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 784
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 800
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 816
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 832
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 848
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 864
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 880
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 896
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 912
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 928
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 944
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 960
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
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: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 1008
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 1024
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 1040
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "40d4596fcecc4e6a214decccc581a75f"
}
Frame {
msec: 1056
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ 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 38b9668..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 801ec2b..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.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml
index 5275c05..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,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 48
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 64
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 80
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 96
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 112
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 128
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 144
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 160
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 176
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 192
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 208
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 224
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 240
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 256
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 272
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 288
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 304
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 320
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 336
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 352
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 368
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 384
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 400
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 416
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 432
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 448
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 464
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 480
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 496
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 512
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 528
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 544
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 560
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 576
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 592
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 608
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 624
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 640
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 656
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 672
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 688
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 704
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 720
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 736
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 752
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 768
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 784
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 800
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 816
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 832
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 848
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 864
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 880
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 896
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 912
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 928
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 944
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 960
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 976
@@ -250,151 +250,151 @@ VisualTest {
}
Frame {
msec: 992
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 1008
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 1024
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1040
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1056
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1072
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1088
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1104
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1120
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1136
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1152
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1168
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1184
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1200
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1216
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1232
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1248
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1264
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1280
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1296
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1312
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1328
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1344
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1360
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1376
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1392
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1408
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1424
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1440
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1456
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1472
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1488
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1504
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1520
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1536
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1552
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1568
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1584
@@ -443,7 +443,7 @@ VisualTest {
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
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 730925e..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 ddd6cc5..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 4679774..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 51018b4..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 f5ed905..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.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
index faf7240..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,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "12cd5401549bc43283d6c46964528b9b"
+ hash: "b5dfa53607ab952a07d77b4d6bd53a4a"
}
Frame {
msec: 48
- hash: "ae042a0f3c6e32550288a9b0e6a0ce0d"
+ hash: "c9b99388f7570a65162026739c365edd"
}
Frame {
msec: 64
- hash: "9124b4e5f5dd374e44f3f57fe3d6809b"
+ hash: "6f612fe36fa8028a75f6149390bd3585"
}
Frame {
msec: 80
- hash: "54dabe45069a00c8759bb5560c9b269f"
+ hash: "efada1cf68ff7dae90962e7540c79b53"
}
Frame {
msec: 96
- hash: "0d908ef6e3ea15455e35a9ebbc90c735"
+ hash: "f42b6952937376ae34f7ef493e86aee6"
}
Frame {
msec: 112
- hash: "de5fcf719cd096b99a531e7af9b26e35"
+ hash: "008b0419f3ec6dbb16220a8e484a1ec8"
}
Frame {
msec: 128
- hash: "d48ccb7c22c2606ef814cd5abd3888f3"
+ hash: "ecb3c1cb02f7a01d4343dad1a066fa6f"
}
Frame {
msec: 144
- hash: "2ec7418477158ee60afe123fa2b7ce4b"
+ hash: "ce5adf6c5c4d5e385ce7e461e380b00e"
}
Frame {
msec: 160
- hash: "418d6d46726c688bee6f415eb2ff2e43"
+ hash: "79b8fefae0ac2784391c15c0221bd99d"
}
Frame {
msec: 176
- hash: "e754141341d9f81366f21820e46bd1ca"
+ hash: "259da9a4c2bb9c89d16dd1943645e836"
}
Frame {
msec: 192
- hash: "89b4b5f7563bfdb5d1e636a5462e0d8e"
+ hash: "40ee5004fed2af60ab5fc4983bd2dacd"
}
Frame {
msec: 208
- hash: "46c3a7d4700a9599d474b7de1ab44a18"
+ hash: "935314bef478d43e30b6cbdcb33ba72b"
}
Frame {
msec: 224
- hash: "c50698470bc6c1ea04633b9e819a2d4d"
+ hash: "9860af14b459925078467f334bf41e42"
}
Frame {
msec: 240
- hash: "dc7d5345363cad6ee007f162f9ea75e2"
+ hash: "d9955eabd55559d7bef3f4cd96b42a35"
}
Frame {
msec: 256
- hash: "3b9ccb93f6375ea401c1fc3bcdf847d5"
+ hash: "7fa3de8afdeb61c6e2e87cde2e96152f"
}
Frame {
msec: 272
- hash: "6d034da407af9e27ce70e9dbfee3bb38"
+ hash: "0deea16d1f6d18f1e9c57546b485fe75"
}
Frame {
msec: 288
- hash: "3bce938e5db4c2295cd25a6e2b33738c"
+ hash: "231a71ad0981525d9eb15643bc397130"
}
Frame {
msec: 304
- hash: "68266f4f9da256b9df499285ebb842fb"
+ hash: "119e67ab3b30bd9a716ad81bbb10d626"
}
Frame {
msec: 320
- hash: "a9c912fd159baadc4afcd963f857e91b"
+ hash: "4f29d912920ab6b8973a2c392a19ea53"
}
Frame {
msec: 336
- hash: "85cb9086774297b2772e71229f7d84fc"
+ hash: "8544592eb1d48a55cfd0e274c05622cb"
}
Frame {
msec: 352
- hash: "585e6f2d28ec70d10741a52fb68d718c"
+ hash: "eca3de3a1f3e388a0029ea03327e4b21"
}
Frame {
msec: 368
- hash: "bfd552ccaccc569d2478ac4d92fe2eb0"
+ hash: "7672135d842f0f6f3a06c19e320b9431"
}
Frame {
msec: 384
- hash: "748d57dff4cdc09a842353e51de41e5a"
+ hash: "49b5720ebbb03a9c61aebdc6eaf6b2a8"
}
Frame {
msec: 400
- hash: "e0012622a4ef1d5b2090c02020b676c2"
+ hash: "7d2ddf271385fef343412c43a41d88da"
}
Frame {
msec: 416
- hash: "8e4d4a808564a8ba80578600104f230d"
+ hash: "3df6034ff296ab1242146ba7298a9dd8"
}
Frame {
msec: 432
- hash: "d92e44d8e1f7651a9d256e9e4f3e8168"
+ hash: "5a52202453c359370c017a397cbc6f20"
}
Frame {
msec: 448
- hash: "d99b016a0dfdb332dbb1a2c10f53bc05"
+ hash: "649d58d817e37e7b14d3080998dbc126"
}
Frame {
msec: 464
- hash: "3ce4357881a34f4c9e2f0d684218e253"
+ hash: "f00b682156bde560b571e0044eff150a"
}
Frame {
msec: 480
- hash: "07ee4bb59f7ee591bd7a6f117d9f1aa6"
+ hash: "0e5ce3806c60e7a67e72ee9f4c334454"
}
Frame {
msec: 496
- hash: "f66ce51f2eece9f0fa89c41340245976"
+ hash: "9d8c0e6a6a66560752abc68de10a6ec0"
}
Frame {
msec: 512
- hash: "a9d2b2d4f6ae5e071897d17469a5bad3"
+ hash: "ffd81c8901cdf67ec3fa574b606eba89"
}
Frame {
msec: 528
- hash: "55db2dbd65cae186d59cb2edb5841880"
+ hash: "56b7098e63f8cc1d8957829e7779ae73"
}
Frame {
msec: 544
- hash: "576297445ee3f89994538fcd8c8b102c"
+ hash: "7d7417b2b2c07c93bf5d951fddf4363b"
}
Frame {
msec: 560
- hash: "6ca41b83b8ff27f97c71a23d1c7f9765"
+ hash: "a2dd725545042e9b6a366d809d2cfc4f"
}
Frame {
msec: 576
- hash: "7e41ef79cae5966821106df39f6a748d"
+ hash: "8fd5ccba4b997a96f7773936afc4fc92"
}
Frame {
msec: 592
- hash: "9e8b750bbb3680f90d6bbddb6e394d5e"
+ hash: "85f29eae877f93c4617a37b5c445c605"
}
Frame {
msec: 608
- hash: "9a61dddcc33ff2b778097b5edb706912"
+ hash: "a8eb3ebef75081964a6beba533eba89b"
}
Frame {
msec: 624
- hash: "395d015e538dde494059df392379ba26"
+ hash: "8c3e3f4833419e7df6de0c9443390751"
}
Frame {
msec: 640
- hash: "d1db5dc62ca702f4241e45811aebe6f3"
+ hash: "537f3d9760f6cc0c07452ea3f334a008"
}
Frame {
msec: 656
- hash: "18f1a038041bd8a51f3375ca64084251"
+ hash: "93a1851ca2afb595ad684a7f613e860c"
}
Frame {
msec: 672
- hash: "6c0f6360156cb806a8b30cafc69013af"
+ hash: "fd353e60da99a884f60a2d1ab6e4be46"
}
Frame {
msec: 688
- hash: "69525e71fe8fe9847ff956e40c2c45ec"
+ hash: "21cff9dcfa9e7bb4a44d75338e314d0e"
}
Frame {
msec: 704
- hash: "ac7ae453f35a05e760976df6d91206e2"
+ hash: "64153f5d57b7191f5e957f22dcdff6d3"
}
Frame {
msec: 720
- hash: "c96358482f0900a906b2fc4742981e3a"
+ hash: "211d8e9b6427129e4b9292fc862edfb6"
}
Frame {
msec: 736
- hash: "2cccb8f6a63f21d01cd3b61a97730bf8"
+ hash: "35f96f202391dc805b0bbb45d7efb1bf"
}
Frame {
msec: 752
- hash: "bf01c0cb968768199f3158e6cefcb09f"
+ hash: "0336a1ba71d4bf7b4cbf98812ba1ae9c"
}
Frame {
msec: 768
- hash: "0ac63c33649462f06979de77c042476c"
+ hash: "c5ec3a61d64228efe448b0d5c0004baa"
}
Frame {
msec: 784
- hash: "61931edba8d1abcdc07bb43e17446f4e"
+ hash: "9154774bce1d89b84c0f525e282bc95d"
}
Frame {
msec: 800
- hash: "e8122f997a4076055d8addda88c4ad6e"
+ hash: "8d07794b2b17971ff69ff7961c441765"
}
Frame {
msec: 816
- hash: "cc7e654138605c25cb21aa8966361cf4"
+ hash: "086c711c3794f8ad8d634ed6483f3caf"
}
Frame {
msec: 832
- hash: "177aaec34c677b21798de1e024860490"
+ hash: "af591122aee8c949957ae19136505a57"
}
Frame {
msec: 848
- hash: "d0fe9544e55f6876908d9c118366f038"
+ hash: "c84db4548f53ae95023e56fad3c4aea3"
}
Frame {
msec: 864
- hash: "f713b7e11bf61a0f0a06e6aedb36b7f1"
+ hash: "d7a7bb5cfb91923db8d72d9a12f0016c"
}
Frame {
msec: 880
- hash: "b703bd46b9f355711318882194f28d52"
+ hash: "7171788040f36bf1c878678906a84290"
}
Frame {
msec: 896
- hash: "047dad73e6c845704f3de6b317ce9290"
+ hash: "d2016d9ba6b29c7dfb5d64e506e7f980"
}
Frame {
msec: 912
- hash: "8c48b0963af8d71fc245373083c14a93"
+ hash: "75945e6719cea6aaf021fcd28dfe4da0"
}
Frame {
msec: 928
- hash: "d11944e0d9035b6eff85ca9fc5adc2c0"
+ hash: "e203a20fc8dda077ff217ac74895b8f6"
}
Frame {
msec: 944
- hash: "d650943a979c7bf52fff77063406c46d"
+ hash: "1acb696745e0ead2f8c9d807787ce225"
}
Frame {
msec: 960
- hash: "13d533b5b3b01be7dbad7b8403ce1c24"
+ hash: "b8d60fcd3e262dc33d623a741fdafb0b"
}
Frame {
msec: 976
@@ -250,239 +250,239 @@ VisualTest {
}
Frame {
msec: 992
- hash: "ba51fa05accf637b31328ab0a11e4b61"
+ hash: "0acda3300bec26515f7ddfd33af6ca84"
}
Frame {
msec: 1008
- hash: "25c783c07b5eb03c351274c3b6494e24"
+ hash: "12f5c647778c868638845fd66c825f51"
}
Frame {
msec: 1024
- hash: "5665113db0b932b07ac707875e5d77e6"
+ hash: "e87432496a570b68c18d563fd3e55b7c"
}
Frame {
msec: 1040
- hash: "aceeb64e5935f1889828f3487767db3e"
+ hash: "332a165345a53198ec22a69e12a7cd6c"
}
Frame {
msec: 1056
- hash: "7c66c51a9fd694940a93a7acf036e6d3"
+ hash: "92f7d768af912807dca6ad16006d84e9"
}
Frame {
msec: 1072
- hash: "8b699d11b0a8c7df7df448f5c27a0bc2"
+ hash: "50c330c7e9ed8f08e4b496b322fed388"
}
Frame {
msec: 1088
- hash: "c592cebdfadf68eecbddb0add92afa42"
+ hash: "554317004bc31ba56c970fac294577df"
}
Frame {
msec: 1104
- hash: "e175f718809eea5b38a1de46f061871f"
+ hash: "3c6391b4296451f1ca1db737e4d928c3"
}
Frame {
msec: 1120
- hash: "3182ba22228e8cd056db81eea4678b5d"
+ hash: "8274fa399e0b132582389c909775e8cb"
}
Frame {
msec: 1136
- hash: "e09776f37769f34bd2d856c6af3a1e53"
+ hash: "f66504b79f0415652f4c6720a2643afe"
}
Frame {
msec: 1152
- hash: "085f9dd2539b950d9f62bdcdf4f3b172"
+ hash: "53ce26d4f839451868c70133c3f0dff2"
}
Frame {
msec: 1168
- hash: "3c290084b9c251e039aef4df8581ed31"
+ hash: "715b6a5090e0a947cbbd5f8902088177"
}
Frame {
msec: 1184
- hash: "893f5dc3cd01ace8d31ebc63e0d7e132"
+ hash: "3715a52358febdbfa4aeefe56b4b173e"
}
Frame {
msec: 1200
- hash: "5cadde434641daffa52965659a4a056f"
+ hash: "d89459730ea136a34135fded35bc2247"
}
Frame {
msec: 1216
- hash: "741d34abca5ba1a2e5678f3ca272dbd3"
+ hash: "ba8471a6c2449a05dfe411b86a38ff35"
}
Frame {
msec: 1232
- hash: "96dd3f940c637b085026e224021239bd"
+ hash: "5c477b14e0ff59e5d7db360005deaea7"
}
Frame {
msec: 1248
- hash: "df8334c4ce1ca5f2317a771e787aea96"
+ hash: "becdcaa9d4f78d94e3f3af87467798bd"
}
Frame {
msec: 1264
- hash: "aeef63be208b75c9246248025c977b75"
+ hash: "2b1f5c5c6a9f26e6b359cf786591d480"
}
Frame {
msec: 1280
- hash: "8722a8e9b1cca4cf20ec31da27f38614"
+ hash: "9b1cbb944a941fd2869ac193e9701582"
}
Frame {
msec: 1296
- hash: "bdc1392f8e1a55e7c970502785024a89"
+ hash: "e1c67be1ec2030529335c02099a3d9cc"
}
Frame {
msec: 1312
- hash: "ed2be797ca3d623ca532fea7ca5b1f2c"
+ hash: "4f4ecadaa0afad0e38530067ee7688b9"
}
Frame {
msec: 1328
- hash: "bb79d75488df131bf5443371c6b4464f"
+ hash: "13f13cb8ea96d764c93ab43f538af2a7"
}
Frame {
msec: 1344
- hash: "0b7dd91d5bc8290d4be1a0af6b2756c2"
+ hash: "cd33ccd1ac45f1f83cf93cfbdefa415a"
}
Frame {
msec: 1360
- hash: "4f1c88a745105934fb94a6a3e3620602"
+ hash: "8c84a3842a8da763c4b398e49a13831f"
}
Frame {
msec: 1376
- hash: "c5a3b476c66e9b6a33f93d5114303669"
+ hash: "3b47b3c27171032450a421ae8ecc786d"
}
Frame {
msec: 1392
- hash: "3104791545798f8e43ca976c893d078f"
+ hash: "524517523cb15d7886c6dbfa8724ea95"
}
Frame {
msec: 1408
- hash: "3c8c329b4c757ab37054cbcc93840a75"
+ hash: "3ae90a6ed20fe62da9fb81b51d6d9a1e"
}
Frame {
msec: 1424
- hash: "36b1fc7d93664005449d818dd063c8e7"
+ hash: "70c0880f0d0d1deefc22baebbeda06c3"
}
Frame {
msec: 1440
- hash: "25927d84d7394e912977d25ddf555ddf"
+ hash: "d97f6cda6df39ffe1db076204191bba6"
}
Frame {
msec: 1456
- hash: "6f226e26d6a40b3688923fb833ce0fd9"
+ hash: "d170a0b8339bd0c29b664403ce8b3286"
}
Frame {
msec: 1472
- hash: "75aaa5301fc8d716371d9fcec6491e81"
+ hash: "fd962a3a4e2fbe03f6730136cdc2a824"
}
Frame {
msec: 1488
- hash: "fb87bcb1b620d48d6bfa6eeb94025907"
+ hash: "75bcbfc7d7bf3139538347b17b41cf12"
}
Frame {
msec: 1504
- hash: "88231c28ef82974f8eb47060e64176d0"
+ hash: "0fcba8fa11a2f3fc7ebcefee6e9dafcd"
}
Frame {
msec: 1520
- hash: "06db390a17fc2fa4a93012a168801d05"
+ hash: "621f80511b2ce7106b1d285045f505ca"
}
Frame {
msec: 1536
- hash: "41400211939574696e04bcd615130f34"
+ hash: "be6896d8de4bbb8b7ef9e1d34f6f7f32"
}
Frame {
msec: 1552
- hash: "ca979c24603d8cd31583c1670f15b1a9"
+ hash: "a770cffe72c2791d6d76c16926f98f2f"
}
Frame {
msec: 1568
- hash: "515a32b5c4567c8dec3004c41214daa1"
+ hash: "7e8222f9831e235c7d044b5188a20dd1"
}
Frame {
msec: 1584
- hash: "d4fbe8e354db8b1b5fc543daf7007fdb"
+ hash: "a740dfb5ae432712abb4f5f9479a22fa"
}
Frame {
msec: 1600
- hash: "ec6351064566a120836cb115bb81e46a"
+ hash: "a731135b3ac067712081b959f27d8784"
}
Frame {
msec: 1616
- hash: "74dcd99e1ba3e5e8447d2695e4c4acd9"
+ hash: "c6cdb85a28bdc970cf2a30f0e2cef763"
}
Frame {
msec: 1632
- hash: "7a751f44c384b87b0c2f633932587795"
+ hash: "4c901d5879cd4e1602b4f3560745f0b1"
}
Frame {
msec: 1648
- hash: "04e45b241cf498777835f74feeea0c15"
+ hash: "ef64a09b2bd30a6c618ac59a8cacd628"
}
Frame {
msec: 1664
- hash: "66096d2ef700bb64771fa192219e034a"
+ hash: "816f55f5b0b8e3baa52e274ae737ee30"
}
Frame {
msec: 1680
- hash: "1dd2437b0f63a8acaa8c62819d7de10e"
+ hash: "90db19b8b2d820d36d7a45518f730014"
}
Frame {
msec: 1696
- hash: "89e6b25fc16c5d1eba04cd0f7bd2f910"
+ hash: "f94248d3df175536a4a6b88722763d75"
}
Frame {
msec: 1712
- hash: "7cd23dbc40340bc3652255d4a65ce7ec"
+ hash: "d1aa57e0666a7d9b5b0dc7b021a1387c"
}
Frame {
msec: 1728
- hash: "5f94c6ba73d2dbeb8ec90b17cb7fab6f"
+ hash: "77b17a540862f5ec6b2256408fd3637f"
}
Frame {
msec: 1744
- hash: "e8e01bc97bbd349e2f64a59d13ca25a3"
+ hash: "e9b9a37996f5825006565f5b56e755ea"
}
Frame {
msec: 1760
- hash: "a0cf054ef1005191637173a22e325891"
+ hash: "1ce712e1755047d17d5cf3c97cff1c96"
}
Frame {
msec: 1776
- hash: "fa8b35c0141049d691735b26eb9410ac"
+ hash: "95c21bab93788ed45280e61c51173a99"
}
Frame {
msec: 1792
- hash: "c55b4d3a3ee530480d0a0e0aa52f340f"
+ hash: "6f62ae9bba2b1d2ea67f13d63157bd7c"
}
Frame {
msec: 1808
- hash: "b2639e3e32e513c991525a87448e805d"
+ hash: "b5f11412bdb100f88a1f29aa577316e5"
}
Frame {
msec: 1824
- hash: "d66f25378bbec3eca675a90795567825"
+ hash: "d4e2468ed0935687e370fcf70059f57f"
}
Frame {
msec: 1840
- hash: "13bb009108dfcdc861a16ab33a3c4f3a"
+ hash: "e7b5970ef9f327a8e7905f1a16c3f1a3"
}
Frame {
msec: 1856
- hash: "3a09ccaf62d8929def529260da98dc7a"
+ hash: "c5b9694fe2d7952d6ef03ff5febec00b"
}
Frame {
msec: 1872
- hash: "79564d7447732fcfdbb81ff2bcd85a4f"
+ hash: "0604da4b328d80162fd88bdfcf2a8a68"
}
Frame {
msec: 1888
- hash: "149c65ef5ec18af4fd264fa284bfa027"
+ hash: "cbeffb3c86fcd7b52672382d6a186692"
}
Frame {
msec: 1904
- hash: "e5370728e870ac9f907aafbd17526631"
+ hash: "deb96a6469b351f5e70d3032ad250df9"
}
Frame {
msec: 1920
- hash: "98034cff5b93c905bbc53cf9582bc4be"
+ hash: "d4bcb6da72c0b7f2e0e55be917eb5720"
}
Frame {
msec: 1936
@@ -490,239 +490,239 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "05c3a8016110ad576c349964af3d4d05"
+ hash: "c044b96932667fd56ca8c87ec70791a3"
}
Frame {
msec: 1968
- hash: "91caa4f007dfd1ab7994a11bf4b4fa94"
+ hash: "f197116b796c3647986337515c04a812"
}
Frame {
msec: 1984
- hash: "d1fb233313ef6e7be742a504e171f6c0"
+ hash: "3d06fad059276fd5f8f58faeac482d52"
}
Frame {
msec: 2000
- hash: "0e20bbd3c80189a6d8ea23205bf7b278"
+ hash: "841ab0655e2bd498d51605fd37607378"
}
Frame {
msec: 2016
- hash: "6f2b8de20e5800bda7a533353bb5805a"
+ hash: "5968dd4f704d72f264704ae6d6a416cf"
}
Frame {
msec: 2032
- hash: "e25e8c3e7df20b0b7e8f25fba5d2608a"
+ hash: "5daf3758175963e409ad7ea18d40a894"
}
Frame {
msec: 2048
- hash: "8802faef3121ac361b448b42b89d2176"
+ hash: "37750cd0aca54fc6fa6651213a4a8aa0"
}
Frame {
msec: 2064
- hash: "567c710da8f36b51192a8994611a50a8"
+ hash: "b64411f26c1bde823daa4caf96402887"
}
Frame {
msec: 2080
- hash: "d45309aabf9c510234276c28ef4e3c35"
+ hash: "cf6d68046e9b7cc39305bfbdbd64a6eb"
}
Frame {
msec: 2096
- hash: "ef698cc1ea8eee480c57f38a8f704e6b"
+ hash: "47f89ab15314ce63dc3828aa4ae16d54"
}
Frame {
msec: 2112
- hash: "5301682074b5343d18748cf6e7bada1c"
+ hash: "a7116055b3b33ad02bae75f2db016314"
}
Frame {
msec: 2128
- hash: "dd5220c0d94b747cd462e35e41945ae8"
+ hash: "0a0443c4927d3d8d3373c311b89ead0d"
}
Frame {
msec: 2144
- hash: "0d1c246956283f80eff128bbb5241e03"
+ hash: "6be5e906e9127471bb11e98ba9d68d4c"
}
Frame {
msec: 2160
- hash: "7b57a3c6ee9b8ae316e2a2d7a1ab630d"
+ hash: "759c0e5e8a435846bf4471075df9ce1b"
}
Frame {
msec: 2176
- hash: "61780d8d53f21b275f9ee795c5519cbf"
+ hash: "b7648957a2fdcca31b863907ea5cbc4f"
}
Frame {
msec: 2192
- hash: "1876746b0b6bdc40c808c3afb0ad00e8"
+ hash: "7e9ead6f87c989160681fe87eb44224b"
}
Frame {
msec: 2208
- hash: "6f7e9a1d8240b037501b486245eb5c33"
+ hash: "f7ab3534218320a49b8cc14b39d23a38"
}
Frame {
msec: 2224
- hash: "8a5f3d8d9e0147072690740d567f8a2a"
+ hash: "44ac6d8e7fd3facac856b532bea9b0dd"
}
Frame {
msec: 2240
- hash: "2ea7f42b92e407b50ebf82c841e77f7f"
+ hash: "238d68eb27eaacddcf428706fca95cad"
}
Frame {
msec: 2256
- hash: "7ce3e829b75be2f2f72952c614748b51"
+ hash: "8568076d97d416810f1e91acd33bbba0"
}
Frame {
msec: 2272
- hash: "112cbf9bf521c2fb0f0573081feb6051"
+ hash: "3649d85321ac7674d8c3dd77815aaf32"
}
Frame {
msec: 2288
- hash: "c6d16bde84f714d3f14a105deb68e989"
+ hash: "0c6dab9f7d575265d554093b88ee7e17"
}
Frame {
msec: 2304
- hash: "f1e3f7416233bc8b3bce90672185cbd2"
+ hash: "6387cb408d048d7b139f3d9aed2f14d6"
}
Frame {
msec: 2320
- hash: "009fd4bfc354c91f3766bcf32732b027"
+ hash: "de2fa29a82cec9d9f22d50bba257f5de"
}
Frame {
msec: 2336
- hash: "67220a780fc2cd8e9fbd314c5f000f7c"
+ hash: "ba77a0dc547202e129e899998c7e0909"
}
Frame {
msec: 2352
- hash: "c306d1be1dc40fb115b583a83497fbb0"
+ hash: "0acde6d2435444611f7d5fc67d336d4b"
}
Frame {
msec: 2368
- hash: "f6bedbbffec4447da8fda2d75169644c"
+ hash: "1032d38e48cc3485c7a50bcf3ae949d0"
}
Frame {
msec: 2384
- hash: "be4f28bd814ce3688bd7a28a2dc71606"
+ hash: "571649ca193507216f344405d8cb9636"
}
Frame {
msec: 2400
- hash: "130ec2ff6e06927a02df769743de19b5"
+ hash: "968aa311380ef783852b4a642d61d0c3"
}
Frame {
msec: 2416
- hash: "34ffeec40133a30903809a30d9108887"
+ hash: "b440b4f5f2cb4a061b69e9a99bca0417"
}
Frame {
msec: 2432
- hash: "133a89cf6c784106066b96f51e43f43a"
+ hash: "c1a2c2fd58f52c6a6f3e5dc2c1e9e8cf"
}
Frame {
msec: 2448
- hash: "6336801efb0d62e5b790ff67b76754a5"
+ hash: "2eab036693343475b799188c98f18bad"
}
Frame {
msec: 2464
- hash: "04d50179982fdf346a33e346eeb9eb62"
+ hash: "9b0e2eb4c5ed398dfe5ac82c83d38065"
}
Frame {
msec: 2480
- hash: "5432d629a9bce20e041841d79acf91ab"
+ hash: "d6459b44113b2514a036a39449579918"
}
Frame {
msec: 2496
- hash: "afbdef35aae3d79f0ba992a34c46b1dc"
+ hash: "99e24ed5413be65aee179d7fdd0aa473"
}
Frame {
msec: 2512
- hash: "18a051efc4bf47515d2220549970fa69"
+ hash: "43c7a5fe622eee2202ab1061155da474"
}
Frame {
msec: 2528
- hash: "a0cde51080347ba164227c8a40cf37c1"
+ hash: "78bc6de01b343c19ce11bcb5ce5db091"
}
Frame {
msec: 2544
- hash: "b2eeabc7208b7a3f9e5a7d16f984be86"
+ hash: "77463f64f99952f37467b4cae5a75a73"
}
Frame {
msec: 2560
- hash: "ee5c97a5bd22b22a4e18998b6d056517"
+ hash: "39181ec3e10fba5d73221e3ef725661d"
}
Frame {
msec: 2576
- hash: "84f4575d2c4ba3a91ef72cb8caf64e63"
+ hash: "f23732daf5b25cbfa79256ad21739537"
}
Frame {
msec: 2592
- hash: "bd14115e10086864de3ab6a7bc13f9a2"
+ hash: "171b8149512f9a1fc44c4076ae8e6891"
}
Frame {
msec: 2608
- hash: "9b3672f731fad142ae7e3621a325cf21"
+ hash: "1c30c5284764d3aba948f417dc67ea95"
}
Frame {
msec: 2624
- hash: "17d1887942d2b7297b6f3a2545ec8bf2"
+ hash: "5b40de40cc84f75a3038a2adafea6688"
}
Frame {
msec: 2640
- hash: "c5c8b41e74b90fcb9d4da432fa01e361"
+ hash: "11e918309ac265c0dddc34b05ddd2beb"
}
Frame {
msec: 2656
- hash: "a2992b652305077906db9dcbb90c1a23"
+ hash: "a18c91eae3fd3154c12e46717248577a"
}
Frame {
msec: 2672
- hash: "bfb30aa4caa43833eca59ceaaca04084"
+ hash: "839199f3940822a38fc2b44161ee0840"
}
Frame {
msec: 2688
- hash: "cbb06915ae6176ef52fdb518fb5a12de"
+ hash: "8b62f8b4c353981788111a9434995a18"
}
Frame {
msec: 2704
- hash: "a894d34c39b274149a9391a5956f0666"
+ hash: "db7ee2d5e4905959c836d5162bd241c0"
}
Frame {
msec: 2720
- hash: "7dcc1008d2287ca15f726854e5e204f2"
+ hash: "cb770a4cd0f56108ef703147e74338ae"
}
Frame {
msec: 2736
- hash: "811db22f9a25dd594f59d97adb41b9ce"
+ hash: "bdaaedef0c17b19cc283eba699799073"
}
Frame {
msec: 2752
- hash: "6535cb3f4cf2839158f172bd0c1baf88"
+ hash: "8a7f5f87493ba387c14056f9a598e320"
}
Frame {
msec: 2768
- hash: "1919a3d079c06fbb00b6a23d4a47951a"
+ hash: "3974497b297fa233f3821abba2bdd6ce"
}
Frame {
msec: 2784
- hash: "69f3525379f7628c4435d2681a2a0bb8"
+ hash: "41a5744b7747765764829328217e80ea"
}
Frame {
msec: 2800
- hash: "4ce4253e733c24a1a988de018916d0b2"
+ hash: "4d380bb823659cdfc1d3517234144b72"
}
Frame {
msec: 2816
- hash: "7610bee04c98b9af5e6ae34f4a1a4a09"
+ hash: "4699cc1dad5c6d5c84137ee5c5db52a4"
}
Frame {
msec: 2832
- hash: "5e2a2c16c0a218afc3eb9095f3432f41"
+ hash: "22a34c810c640b378708079761d16c9b"
}
Frame {
msec: 2848
- hash: "0124a41ff860d31b3e36973226db2916"
+ hash: "0c76a943b24dc9538416b05a678c7c94"
}
Frame {
msec: 2864
- hash: "a1126e1d8cce43dfb571803a62f790de"
+ hash: "575a20b793f899d50a95121708263283"
}
Frame {
msec: 2880
- hash: "6eee371fe5cc8b052ca49bb5e3509307"
+ hash: "830757417bbff5d6950177aa3617516a"
}
Frame {
msec: 2896
@@ -730,239 +730,239 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "331bcae7bd6aeaede3556cf926bd1a0c"
+ hash: "1b83db1121bb3436621d3f22758af76d"
}
Frame {
msec: 2928
- hash: "a7561f3a6ce4fee43e4b06dfe5ee7844"
+ hash: "b2a6d502e9ed62f67c29b8ae7b857116"
}
Frame {
msec: 2944
- hash: "712e52e72cc01ae29cd7e736a78f94b3"
+ hash: "e9e06068090c076021e508772ae85b5a"
}
Frame {
msec: 2960
- hash: "d34a4414fca4ef7a2cce288d438bfcc1"
+ hash: "5c7288791d73792b914e99a38b7b455c"
}
Frame {
msec: 2976
- hash: "1c2c5241aee7efcc9a6adcbe01f56609"
+ hash: "ad2b35c647da055a1088e476f250ea78"
}
Frame {
msec: 2992
- hash: "90a8547113c36002f62405aac41de5b1"
+ hash: "7cc9bbd4a2ed2ba1646b10a68c11241f"
}
Frame {
msec: 3008
- hash: "5726801ea37dcfd2c087c9523b360b55"
+ hash: "f633c12a9d078c4a1405ee399bd75e6f"
}
Frame {
msec: 3024
- hash: "a371d1f9ef687f50d433b0efb6bb57c9"
+ hash: "e4638bb2b40ed7c31630412010bccef1"
}
Frame {
msec: 3040
- hash: "75e0e2728e2160dcc012a21c759c62d0"
+ hash: "76fdd98f79c08d9211c42b79f953315a"
}
Frame {
msec: 3056
- hash: "428e6d8adbd0e85790365d7537dc37c8"
+ hash: "df754dffbe6429aa7222e7a37d1956c5"
}
Frame {
msec: 3072
- hash: "798babedde2192b4ac9becc5bae3ea62"
+ hash: "68edef9b10728f0785cc74dfe92c3e03"
}
Frame {
msec: 3088
- hash: "39745e87e8e96993fccfed6710c3c14f"
+ hash: "627ac43eb191db77345ab1a08bfd7e7a"
}
Frame {
msec: 3104
- hash: "08624110f2bba4e676b4a339ead23f78"
+ hash: "c38698cc4c2de1eb96855f0b6398fd7f"
}
Frame {
msec: 3120
- hash: "1d45fc90eb70a3c21d503284637355de"
+ hash: "6264db59fa7dd4498cedac94b856d90e"
}
Frame {
msec: 3136
- hash: "37c6eed126e265f4a60a1bc92879e18e"
+ hash: "b550d8181dbf88c5079e2fb6310f0309"
}
Frame {
msec: 3152
- hash: "a25f2accf6e19eb293a5540efa9447ec"
+ hash: "6ffecf31343192ae352c42c6ba978fd3"
}
Frame {
msec: 3168
- hash: "5212d86075595cb1a9c47cf683ac411a"
+ hash: "445e7056bfb7726fcf1b0b6411400ec0"
}
Frame {
msec: 3184
- hash: "8f43028def9e949ca3a15fdec9932a59"
+ hash: "9648c06d3a89c054587fa1e86c727fd0"
}
Frame {
msec: 3200
- hash: "90b55602b8aa530d634db72c202f2d75"
+ hash: "8d0af1ad33c06cfceaba1a0ca84cf0a0"
}
Frame {
msec: 3216
- hash: "f5a84978918f8987b49ce500959d81ef"
+ hash: "f8f0c27738b186f17a9dd106481e85c5"
}
Frame {
msec: 3232
- hash: "588382357311925157e12ae7a576426c"
+ hash: "44e5893cd28e2d70afbfbb779f2dd154"
}
Frame {
msec: 3248
- hash: "ce3e9a93f60579f77f6503637cb316d0"
+ hash: "dc0d1baafa24423402caf63d6fcd6189"
}
Frame {
msec: 3264
- hash: "63c2ba78f5a81375fe79c5b2b2030b55"
+ hash: "12c17a563b37bf633dce6fc6793d1cd9"
}
Frame {
msec: 3280
- hash: "7dceb950e0cae31bddeca1d279a688f3"
+ hash: "a8647172101b59753ea6aa40ec4570dc"
}
Frame {
msec: 3296
- hash: "c6681bcf60562b16eb515f6b0bfdc751"
+ hash: "e21afb74f793bef8c1b03d252b5700a8"
}
Frame {
msec: 3312
- hash: "cd2b41f01af6b80622158bf38a13c609"
+ hash: "2e10ccbdee088b17172a479a8a859d56"
}
Frame {
msec: 3328
- hash: "69401bc38be274791a26f6ea161eb296"
+ hash: "f111c24e1e8d643543519fd703811f24"
}
Frame {
msec: 3344
- hash: "425238342219c4fc66c4a0a8b16c5345"
+ hash: "dd9aeec2ed05f9c68e1726a91e90e127"
}
Frame {
msec: 3360
- hash: "a501082add225fa59f468808d34d1c16"
+ hash: "043923ed2dee91815d0dce6cd38834e9"
}
Frame {
msec: 3376
- hash: "58bba6d1eb3166e7ac9bfe36cd9a4fa9"
+ hash: "07e0dbb223355b2921eb0597235ee820"
}
Frame {
msec: 3392
- hash: "293df1a2bdd526e97d5783f46f74262c"
+ hash: "0fba3e9a08d83405df35c632f9dc051e"
}
Frame {
msec: 3408
- hash: "6808ee202e8eae3c72474126b59aa0dc"
+ hash: "a0a5a515ec395bdf4912ab24c8780339"
}
Frame {
msec: 3424
- hash: "7ef977f275851649324e333d58777156"
+ hash: "4e04e0246eb952cfae716214084cc1ed"
}
Frame {
msec: 3440
- hash: "12007edff45f9cc21a2f633052e4b9d6"
+ hash: "e7e989234e360e7c0cb44e7be4d654e8"
}
Frame {
msec: 3456
- hash: "bc1d362d3a42ab3610136727605222dc"
+ hash: "139b3309ac9e25b2165342bfb202169f"
}
Frame {
msec: 3472
- hash: "6bfead8d9644f5abdd3b896714521002"
+ hash: "b4008ee73b92abad9c5fd7c83cb864cf"
}
Frame {
msec: 3488
- hash: "341c311e4b08d69a053c1faffc208838"
+ hash: "b801a917995bd41eee2f4e4fed3006c5"
}
Frame {
msec: 3504
- hash: "54e4c8001d06c7c48180865598f5f5df"
+ hash: "a0ea151cd2a2056a45ff5428239b37f4"
}
Frame {
msec: 3520
- hash: "e69c142bf2a6cf85194de5df91e54886"
+ hash: "01df418b5ba99271d3a2e8807de78899"
}
Frame {
msec: 3536
- hash: "fb9fda1e790c64aea264a6af0020ce33"
+ hash: "047fd42df7a5ba0f939930c2021df5fe"
}
Frame {
msec: 3552
- hash: "74c27a13090e8eb78bc157daff840e07"
+ hash: "4336498cee8b516e79297a073257e008"
}
Frame {
msec: 3568
- hash: "f9a8c1764b0a1625ce336e80a91db00e"
+ hash: "ce404ce21bc91ff8dc61bd95b9e1d5ac"
}
Frame {
msec: 3584
- hash: "11fd6f7cee3971ebce744f20da77139f"
+ hash: "06b5c263105ec574f10e70002c29adee"
}
Frame {
msec: 3600
- hash: "6cea030cfc1c53772f14d760d046d7f8"
+ hash: "6a224a56bbeaeb703afa0c2a7f2daf7d"
}
Frame {
msec: 3616
- hash: "599cf14ec73f6812ffb49312d3d8f742"
+ hash: "65259fcbdb9edfefc4fcbd1ab5f62542"
}
Frame {
msec: 3632
- hash: "879798ae161f1550096abdfa113e3eac"
+ hash: "93be4111a6aa21d85ab354bbd41e5b31"
}
Frame {
msec: 3648
- hash: "4cc9b679554a2a8b809a88504c17f86a"
+ hash: "2e4edcdc4807466620c9671d329a0977"
}
Frame {
msec: 3664
- hash: "943bca80ab42c1856aa095add705a3fe"
+ hash: "e3232d08b83e3e9917b6f4eabc86df72"
}
Frame {
msec: 3680
- hash: "0386a55ebc0cd32b4b7727eac2908a59"
+ hash: "f27caa5d738b4778d4343f7b197c5dac"
}
Frame {
msec: 3696
- hash: "74ed8ea60f1c1b3fb097eb7f5bca43e8"
+ hash: "dcf3032bc798daf1dc6bb7d608e2dffb"
}
Frame {
msec: 3712
- hash: "225f78966947d20268f1bea32093c0c9"
+ hash: "9f2d4ba31ab4ec10b43b7de19197994e"
}
Frame {
msec: 3728
- hash: "d2ed6af6fbdfbdcd9c82a588b72c5f6b"
+ hash: "4bf6419de081524ecdeb4c07b376f06d"
}
Frame {
msec: 3744
- hash: "3c0e45078e5223335a4204fb8904d116"
+ hash: "3fdd8166873e768e1346e52a1b4a6554"
}
Frame {
msec: 3760
- hash: "58ad3d7030b079cdedf1a84d6c6a59fc"
+ hash: "7b25b2f1b2694a87095fba46d505684f"
}
Frame {
msec: 3776
- hash: "2c8ce9f237a2c373584b661defe84e7f"
+ hash: "d8246057d4b0306747ba449d5247dd21"
}
Frame {
msec: 3792
- hash: "c2f2ae8c7481036ddda01776db61ef0a"
+ hash: "e45c06fbf48923393f672381f0256513"
}
Frame {
msec: 3808
- hash: "7236e9d1e086479acd5047070a4ae700"
+ hash: "fef8f1bf977d6567eebe14ccafd36853"
}
Frame {
msec: 3824
- hash: "7f95776ac1804971cc939f8f1f0fee70"
+ hash: "04152eab971eac3fbba26f15ba09d329"
}
Frame {
msec: 3840
- hash: "d6d76b50b7d2ec522a51d2512a5aeff8"
+ hash: "5039cb5183587fe46ef30c5d0f8c9584"
}
Frame {
msec: 3856
@@ -970,99 +970,99 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "29b8b535c9321752a68b17400c7133ac"
+ hash: "5d62550ba4502c3eae3f62ce5b8e9374"
}
Frame {
msec: 3888
- hash: "846f4f5718bce8dc7a333d8603bfe729"
+ hash: "859ab80ee7d563a158970d1f3360c7dd"
}
Frame {
msec: 3904
- hash: "b285f6a417bfb46add698f4193b39552"
+ hash: "4f900b694d6e552c9287472ca58be35a"
}
Frame {
msec: 3920
- hash: "b79708e4aa2b05a1c285dd075127460d"
+ hash: "6b3aa5a3071ea5ec911bae3dee02a496"
}
Frame {
msec: 3936
- hash: "0cdded9c7796292cd38a3bc2fdc65597"
+ hash: "d1b1536b5162e5367db66bb21ccebdcd"
}
Frame {
msec: 3952
- hash: "6f8855c20666a58bbf4ade762403180e"
+ hash: "8c8dd0b84be58a3257dbd0210a7b21ab"
}
Frame {
msec: 3968
- hash: "1a7979b578c8b330099a5e840d5d2bd8"
+ hash: "f96cb092836d67c81fdfd3668005e912"
}
Frame {
msec: 3984
- hash: "30fb74a2bf4e1ec57332713994e405cd"
+ hash: "7b06694d2fd4dd2def94b11a1e46a391"
}
Frame {
msec: 4000
- hash: "1c7df42f90a867350adca840106d3ba1"
+ hash: "cef499e6c1665d2bd4a4322d4334234a"
}
Frame {
msec: 4016
- hash: "5509a232afe047f365465ef8fd9f0af0"
+ hash: "664503d5cef2676e287c363a488e91f1"
}
Frame {
msec: 4032
- hash: "2149d59ffd7c07bdc0bcb2d8ad9b1ca3"
+ hash: "cefa44e348ea0d6955a71c7eb0a9b45c"
}
Frame {
msec: 4048
- hash: "4b8848019eaf4af67db4db09b98b183e"
+ hash: "0ee5684bf4d5b54c5bc9aeefcb98a3d1"
}
Frame {
msec: 4064
- hash: "e3f6f9db89bd81ce68f8dfd401f1baa8"
+ hash: "fb6667f1c516187cfb93774469ea8165"
}
Frame {
msec: 4080
- hash: "6e8d991c83094c89025148bc0943e554"
+ hash: "fba776d4d3056bf64e335de876e118be"
}
Frame {
msec: 4096
- hash: "ed4d8bde61581cdcf6128c65d427846c"
+ hash: "a49aa08c4bd8a1ae9420e0962cf77e01"
}
Frame {
msec: 4112
- hash: "c63d0baaa43c4f6a0f0150ecf268b06d"
+ hash: "bff31d464ae9fc68adf0c8072b637592"
}
Frame {
msec: 4128
- hash: "b36c6a0092f400bb99b2c68a0ba4e6ce"
+ hash: "23bd0afacb2d9bd009c9b5006dc6adf1"
}
Frame {
msec: 4144
- hash: "b4b1059c1e00ee77fda538f9e71a6206"
+ hash: "d918e94e5be77741d1172fbf960db07e"
}
Frame {
msec: 4160
- hash: "e7c36e10dee12ea2d22d7c17cde9d8ca"
+ hash: "9abce75f201e20a730e79a672bf837e8"
}
Frame {
msec: 4176
- hash: "78d070c37bbc707e38db98896f997349"
+ hash: "aae93f5e2a2c6e06dbe78bea4e6b1283"
}
Frame {
msec: 4192
- hash: "e56cb5fbb7713a66ef1f1577eff20db8"
+ hash: "66cba82f479ae6536800b05f6d694884"
}
Frame {
msec: 4208
- hash: "17e466af39cdde893cf93fa38392bb90"
+ hash: "d79d43b820c4a53735cfb84288dd5efd"
}
Frame {
msec: 4224
- hash: "75bf32afe1071794bba58623d7165a22"
+ hash: "fe0237b64a2ef664ce2c3028b730fdc4"
}
Frame {
msec: 4240
- hash: "6de50f6748021b99731f6cb25d6d6ec3"
+ hash: "771b02756dadb0a1f268166138f7cad4"
}
Frame {
msec: 4256
@@ -1258,66 +1258,66 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "f803bd7bdc97bb8bbb5103a54901d756"
+ hash: "c95868a45ccb031ea1d440bedd1fc33f"
}
Frame {
msec: 5040
- hash: "de956b3223e24a615713c35faa403128"
+ hash: "eb78d75fbf3ef0b88c072f69ac3f490d"
}
Frame {
msec: 5056
- hash: "9124b4e5f5dd374e44f3f57fe3d6809b"
+ hash: "6f612fe36fa8028a75f6149390bd3585"
}
Frame {
msec: 5072
- hash: "5b8313c622796aa87248b38ab336bcf8"
+ hash: "7906071fe656ccf18d24c100950b6a7a"
}
Frame {
msec: 5088
- hash: "de6477fc7e6b8f14a7a51f9cf762ee79"
+ hash: "064a0b9a0adb235fd52a6d53b65c9d1c"
}
Frame {
msec: 5104
- hash: "0d908ef6e3ea15455e35a9ebbc90c735"
+ hash: "f42b6952937376ae34f7ef493e86aee6"
}
Frame {
msec: 5120
- hash: "bd1d7ad510cd5e04283f6167a5a8e2df"
+ hash: "3444491cc10b0ae2f298ac3aefcda77c"
}
Frame {
msec: 5136
- hash: "2ec7418477158ee60afe123fa2b7ce4b"
+ hash: "ce5adf6c5c4d5e385ce7e461e380b00e"
}
Frame {
msec: 5152
- hash: "04c671070b1eba13380aa2fbb672d3a1"
+ hash: "6b6c1a422f778935b400c9a170439ec4"
}
Frame {
msec: 5168
- hash: "ce031ba5b388dfaff34674eb71f790f2"
+ hash: "fdaff741a826c10cb9799adc70d92145"
}
Frame {
msec: 5184
- hash: "e754141341d9f81366f21820e46bd1ca"
+ hash: "259da9a4c2bb9c89d16dd1943645e836"
}
Frame {
msec: 5200
- hash: "acf56542617bc742ad729709645ac919"
+ hash: "fd2903f4b3d7086981a89e87e460a7ba"
}
Frame {
msec: 5216
- hash: "c50698470bc6c1ea04633b9e819a2d4d"
+ hash: "9860af14b459925078467f334bf41e42"
}
Frame {
msec: 5232
- hash: "c156d3540c3cf6d406b72696fd6e9148"
+ hash: "ae2b8b255d48c12a954f02c63e0d5aa4"
}
Frame {
msec: 5248
- hash: "82a04f09cd35db0dbf012797625368e4"
+ hash: "c33e9369e76654433e97b2b72cca7911"
}
Frame {
msec: 5264
- hash: "3b9ccb93f6375ea401c1fc3bcdf847d5"
+ hash: "7fa3de8afdeb61c6e2e87cde2e96152f"
}
}
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 56d98ff..b4e1d3a 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 1ab1eb5..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/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png
index 68921f6..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
index c9450c7..34f8e38 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 59fc0fc..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 2747b50..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 74efe73..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 02f6e17..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
index 59fc0fc..19a7ea1 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 760a831..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: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 48
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 64
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 80
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 96
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 112
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 128
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 144
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 160
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 176
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 192
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 208
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 224
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 240
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 256
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 272
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 288
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 304
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 320
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 336
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 352
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 368
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 384
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Key {
type: 6
@@ -110,15 +110,15 @@ VisualTest {
}
Frame {
msec: 400
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 416
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 432
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Key {
type: 7
@@ -130,27 +130,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 464
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 480
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 496
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 512
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 528
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Key {
type: 6
@@ -162,15 +162,15 @@ VisualTest {
}
Frame {
msec: 544
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 560
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 576
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Key {
type: 7
@@ -182,27 +182,27 @@ VisualTest {
}
Frame {
msec: 592
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 608
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 624
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 640
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 656
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 672
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Key {
type: 6
@@ -214,19 +214,19 @@ VisualTest {
}
Frame {
msec: 688
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 704
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 720
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 736
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Key {
type: 7
@@ -238,23 +238,23 @@ VisualTest {
}
Frame {
msec: 752
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 768
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 784
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 800
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 816
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Key {
type: 6
@@ -266,19 +266,19 @@ VisualTest {
}
Frame {
msec: 832
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 848
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 864
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 880
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Key {
type: 7
@@ -290,19 +290,19 @@ VisualTest {
}
Frame {
msec: 896
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 912
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 928
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 944
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Key {
type: 6
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 976
@@ -322,11 +322,11 @@ VisualTest {
}
Frame {
msec: 992
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 1008
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Key {
type: 7
@@ -338,23 +338,23 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 1040
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 1056
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 1072
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 1088
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1120
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1136
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Key {
type: 7
@@ -386,23 +386,23 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1168
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1184
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1200
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 1216
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Key {
type: 6
@@ -414,19 +414,19 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1248
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1264
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1280
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Key {
type: 7
@@ -438,19 +438,19 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1312
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1328
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 1344
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Key {
type: 6
@@ -462,19 +462,19 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1376
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1392
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1408
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Key {
type: 7
@@ -486,23 +486,23 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1440
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1456
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1472
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1488
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Key {
type: 6
@@ -514,15 +514,15 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1520
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1536
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Key {
type: 7
@@ -534,79 +534,79 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1568
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1584
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1600
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1616
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1632
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1648
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1664
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1680
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1696
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1712
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1728
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1744
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1760
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1776
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1792
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1808
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1824
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Frame {
msec: 1840
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "79ad12250ec5379ed79ad01604968fe0"
}
Key {
type: 6
@@ -618,23 +618,23 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1872
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1888
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1904
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1920
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1936
@@ -642,15 +642,15 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1968
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 1984
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Key {
type: 7
@@ -662,23 +662,23 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 2016
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 2032
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 2048
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Frame {
msec: 2064
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "0a110e257ae412b8440a17be98a6b7f5"
}
Key {
type: 6
@@ -690,23 +690,23 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2096
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2112
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2128
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2144
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Key {
type: 7
@@ -718,23 +718,23 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2176
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2192
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2208
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Frame {
msec: 2224
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "162c39ecb50d0a2a03953cca07c493ff"
}
Key {
type: 6
@@ -746,11 +746,11 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 2256
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Key {
type: 7
@@ -762,23 +762,23 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 2288
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 2304
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 2320
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Frame {
msec: 2336
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "0386e92fe3ea2eda40b6f785419cf9f7"
}
Key {
type: 6
@@ -790,15 +790,15 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2368
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2384
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Key {
type: 7
@@ -810,55 +810,55 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2416
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2432
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2448
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2464
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2480
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2496
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2512
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2528
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2544
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2560
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2576
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Frame {
msec: 2592
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "671d2393c31db71d33cd29482294b855"
}
Key {
type: 6
@@ -870,23 +870,23 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2624
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2640
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2656
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2672
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Key {
type: 7
@@ -898,23 +898,23 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2704
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2720
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2736
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Frame {
msec: 2752
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "59923f379655d063d27641c88064c071"
}
Key {
type: 6
@@ -926,15 +926,15 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 2784
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 2800
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Key {
type: 7
@@ -946,19 +946,19 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 2832
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 2848
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Frame {
msec: 2864
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "5815bbb03307e196fa567ae273366394"
}
Key {
type: 6
@@ -970,7 +970,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 2896
@@ -978,11 +978,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 2928
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Key {
type: 7
@@ -994,23 +994,23 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 2960
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 2976
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 2992
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Frame {
msec: 3008
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "7f418dcd1c4ef954cbb66e16361b8871"
}
Key {
type: 6
@@ -1022,23 +1022,23 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3040
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3056
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3072
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3088
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Key {
type: 7
@@ -1050,155 +1050,155 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3120
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3136
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3152
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3168
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3184
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3200
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3216
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3232
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3248
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3264
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3280
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3296
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3312
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3328
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3344
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3360
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3376
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3392
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3408
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3424
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3440
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3456
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3472
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3488
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3504
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3520
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3536
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3552
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3568
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3584
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3600
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3616
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3632
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3648
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3664
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3680
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Frame {
msec: 3696
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "ff9e0c6cfbbbd68708698875037ac3d3"
}
Key {
type: 6
@@ -1210,27 +1210,27 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3728
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3744
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3760
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3776
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3792
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Key {
type: 7
@@ -1242,15 +1242,15 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3824
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3840
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3856
@@ -1258,114 +1258,114 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3888
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3904
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3920
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3936
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3952
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3968
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 3984
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4000
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4016
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4032
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4048
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4064
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4080
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4096
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4112
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4128
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4144
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4160
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4176
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4192
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4208
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4224
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4240
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4256
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4272
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4288
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
Frame {
msec: 4304
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "5efa0360e73361a50a5fb4e2b7a650b5"
}
}
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 d63f753..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 bb7daa3..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 bcad242..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 7be45e7..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 42f7f51..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 147632a..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 d624a71..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
index d624a71..99d451c 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 72f68e7..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: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 7
@@ -30,11 +30,11 @@ VisualTest {
}
Frame {
msec: 48
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Frame {
msec: 64
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 7
@@ -46,11 +46,11 @@ VisualTest {
}
Frame {
msec: 80
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Frame {
msec: 96
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 6
@@ -62,15 +62,15 @@ VisualTest {
}
Frame {
msec: 112
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Frame {
msec: 128
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Frame {
msec: 144
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Key {
type: 6
@@ -82,15 +82,15 @@ VisualTest {
}
Frame {
msec: 160
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 176
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 192
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Key {
type: 7
@@ -102,11 +102,11 @@ VisualTest {
}
Frame {
msec: 208
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 224
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Key {
type: 6
@@ -118,7 +118,7 @@ VisualTest {
}
Frame {
msec: 240
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 7
@@ -130,19 +130,19 @@ VisualTest {
}
Frame {
msec: 256
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 272
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 288
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 304
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 7
@@ -154,11 +154,11 @@ VisualTest {
}
Frame {
msec: 320
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 336
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 6
@@ -170,19 +170,19 @@ VisualTest {
}
Frame {
msec: 352
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 368
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 384
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 400
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Key {
type: 7
@@ -194,19 +194,19 @@ VisualTest {
}
Frame {
msec: 416
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 432
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 448
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 464
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Key {
type: 6
@@ -218,19 +218,19 @@ VisualTest {
}
Frame {
msec: 480
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 496
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 512
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 528
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Key {
type: 6
@@ -250,23 +250,23 @@ VisualTest {
}
Frame {
msec: 544
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 560
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 576
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 592
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 608
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Key {
type: 7
@@ -286,19 +286,19 @@ VisualTest {
}
Frame {
msec: 624
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 640
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 656
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 672
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Key {
type: 7
@@ -310,11 +310,11 @@ VisualTest {
}
Frame {
msec: 688
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 704
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Key {
type: 6
@@ -326,23 +326,23 @@ VisualTest {
}
Frame {
msec: 720
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 736
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 752
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 768
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 784
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Key {
type: 7
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 800
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 816
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 832
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 848
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Key {
type: 7
@@ -386,15 +386,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 880
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 896
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Key {
type: 6
@@ -406,19 +406,19 @@ VisualTest {
}
Frame {
msec: 912
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 928
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 944
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 960
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 976
@@ -426,7 +426,7 @@ VisualTest {
}
Frame {
msec: 992
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Key {
type: 6
@@ -446,23 +446,23 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1024
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1040
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1056
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1072
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Key {
type: 7
@@ -474,31 +474,31 @@ VisualTest {
}
Frame {
msec: 1088
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1104
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1120
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1136
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1152
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1168
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1184
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Key {
type: 6
@@ -510,23 +510,23 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1216
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1232
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1248
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1264
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Key {
type: 7
@@ -546,11 +546,11 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "7136f5cfcca4a86b8764667895efa813"
+ hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed"
}
Frame {
msec: 1296
- hash: "7136f5cfcca4a86b8764667895efa813"
+ hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed"
}
Key {
type: 6
@@ -562,15 +562,15 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1328
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1344
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 7
@@ -582,11 +582,11 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1376
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 7
@@ -598,19 +598,19 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1408
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1424
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1440
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 6
@@ -622,23 +622,23 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1472
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1488
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1504
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1520
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Key {
type: 7
@@ -650,11 +650,11 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1552
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Key {
type: 6
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1584
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1600
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1616
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1632
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Key {
type: 6
@@ -702,23 +702,23 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1664
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1680
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1696
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1712
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Key {
type: 6
@@ -730,15 +730,15 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Frame {
msec: 1744
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Frame {
msec: 1760
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Key {
type: 7
@@ -750,7 +750,7 @@ VisualTest {
}
Frame {
msec: 1776
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Key {
type: 6
@@ -762,11 +762,11 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1808
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 7
@@ -778,19 +778,19 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1840
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1856
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1872
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 7
@@ -802,15 +802,15 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1904
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1920
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1936
@@ -818,7 +818,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 6
@@ -830,27 +830,27 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 1984
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2000
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2016
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2032
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2048
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Key {
type: 6
@@ -862,7 +862,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 7
@@ -874,15 +874,15 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2096
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2112
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 7
@@ -894,27 +894,27 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2144
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2160
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2176
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2192
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2208
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 6
@@ -926,23 +926,23 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2240
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2256
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2272
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2288
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Key {
type: 6
@@ -954,7 +954,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Key {
type: 7
@@ -966,15 +966,15 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Frame {
msec: 2336
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Frame {
msec: 2352
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Key {
type: 6
@@ -986,11 +986,11 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2384
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 7
@@ -1002,15 +1002,15 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2416
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2432
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 7
@@ -1022,15 +1022,15 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2464
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2480
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 6
@@ -1042,19 +1042,19 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2512
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2528
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2544
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Key {
type: 7
@@ -1066,27 +1066,27 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2576
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2592
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2608
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2624
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2640
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Key {
type: 6
@@ -1098,19 +1098,19 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2672
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2688
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2704
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Key {
type: 7
@@ -1122,15 +1122,15 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2736
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2752
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Key {
type: 6
@@ -1142,23 +1142,23 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2784
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2800
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2816
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2832
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Key {
type: 6
@@ -1178,15 +1178,15 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2864
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2880
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2896
@@ -1202,11 +1202,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2928
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 7
@@ -1218,11 +1218,11 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2960
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 7
@@ -1234,35 +1234,35 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2992
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3008
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3024
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3040
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3056
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3072
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3088
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 6
@@ -1274,23 +1274,23 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3120
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3136
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3152
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3168
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Key {
type: 7
@@ -1302,23 +1302,23 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3200
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3216
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3232
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3248
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Key {
type: 6
@@ -1330,15 +1330,15 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3280
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3296
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Key {
type: 7
@@ -1350,15 +1350,15 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3328
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3344
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Key {
type: 6
@@ -1370,23 +1370,23 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3376
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3392
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3408
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3424
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Key {
type: 7
@@ -1398,15 +1398,15 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3456
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3472
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Key {
type: 6
@@ -1418,19 +1418,19 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3504
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3520
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3536
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Key {
type: 7
@@ -1442,11 +1442,11 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3568
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Key {
type: 6
@@ -1458,27 +1458,27 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3600
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3616
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3632
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3648
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3664
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Key {
type: 6
@@ -1490,7 +1490,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 7
@@ -1502,23 +1502,23 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3712
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3728
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3744
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3760
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 7
@@ -1530,23 +1530,23 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3792
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3808
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3824
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3840
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3856
@@ -1554,15 +1554,15 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3888
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3904
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 6
@@ -1574,23 +1574,23 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3936
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3952
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3968
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3984
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Key {
type: 7
@@ -1602,11 +1602,11 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 4016
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Key {
type: 6
@@ -1618,15 +1618,15 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Frame {
msec: 4048
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Frame {
msec: 4064
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Key {
type: 7
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Key {
type: 6
@@ -1650,19 +1650,19 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4112
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4128
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4144
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Key {
type: 7
@@ -1674,15 +1674,15 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4176
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4192
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Key {
type: 6
@@ -1694,23 +1694,23 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4224
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4240
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4256
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4272
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Key {
type: 6
@@ -1722,7 +1722,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 7
@@ -1734,15 +1734,15 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4320
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4336
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 7
@@ -1754,23 +1754,23 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4368
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4384
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4400
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4416
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 6
@@ -1782,15 +1782,15 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4448
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4464
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Key {
type: 7
@@ -1802,23 +1802,23 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4496
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4512
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4528
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4544
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Key {
type: 6
@@ -1830,19 +1830,19 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4576
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4592
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4608
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Key {
type: 7
@@ -1854,19 +1854,19 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4640
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4656
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4672
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Key {
type: 6
@@ -1878,19 +1878,19 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4704
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4720
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4736
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Key {
type: 7
@@ -1902,15 +1902,15 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4768
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4784
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Key {
type: 6
@@ -1922,7 +1922,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4816
@@ -1938,19 +1938,19 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4848
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4864
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4880
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Key {
type: 6
@@ -1962,19 +1962,19 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4912
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4928
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4944
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Key {
type: 7
@@ -1986,207 +1986,207 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4976
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4992
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5008
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5024
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5040
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5056
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5072
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5088
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5104
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5120
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5136
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5152
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5168
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5184
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5200
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5216
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5232
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5248
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5264
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5280
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5296
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5312
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5328
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5344
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5360
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5376
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5392
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5408
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5424
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5440
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5456
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5472
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5488
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5504
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5520
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5536
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5552
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5568
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5584
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5600
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5616
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5632
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5648
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5664
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5680
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5696
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5712
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5728
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5744
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5760
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5776
@@ -2194,239 +2194,239 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5808
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5824
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5840
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5856
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5872
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5888
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5904
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5920
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5936
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5952
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5968
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5984
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6000
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6016
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6032
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6048
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6064
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6080
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6096
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6112
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6128
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6144
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6160
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6176
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6192
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6208
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6224
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6240
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6256
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6272
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6288
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6304
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6320
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6336
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6352
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6368
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6384
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6400
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6416
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6432
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6448
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6464
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6480
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6496
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6512
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6528
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6544
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6560
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6576
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6592
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6608
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6624
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6640
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6656
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6672
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6688
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6704
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6720
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6736
@@ -2434,34 +2434,34 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6768
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6784
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6800
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6816
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6832
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6848
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6864
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
}
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 914f1b1..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 dd2b946..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
index 629b84b..a63fd07 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 211ca68..c752f0f 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: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 880
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 896
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Key {
type: 7
@@ -294,19 +294,19 @@ VisualTest {
}
Frame {
msec: 912
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 928
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 944
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 960
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "24a0a2f12031b23a98d65178f0d6d58d"
}
Frame {
msec: 976
@@ -322,19 +322,19 @@ VisualTest {
}
Frame {
msec: 992
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1008
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1024
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1040
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Key {
type: 7
@@ -346,51 +346,51 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1072
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1088
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1104
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1120
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1136
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1152
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1168
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1184
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1200
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1216
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Frame {
msec: 1232
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "7dde2dd8afe7283dd0601b12831f8946"
}
Key {
type: 6
@@ -402,15 +402,15 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Frame {
msec: 1264
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Frame {
msec: 1280
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Key {
type: 7
@@ -422,15 +422,15 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Frame {
msec: 1312
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Frame {
msec: 1328
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "e098aa83b3287f67aba57e134e871d62"
}
Key {
type: 6
@@ -442,39 +442,39 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1360
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1376
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1392
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1408
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1424
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1440
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1456
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Frame {
msec: 1472
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "3f0a9e0cfd6937c943273bc1d39ce336"
}
Key {
type: 6
@@ -498,19 +498,19 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1520
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1536
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1552
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Key {
type: 7
@@ -522,27 +522,27 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1584
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1600
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1616
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1632
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Frame {
msec: 1648
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "b78259d22dd86c1dd7ba722795e7e155"
}
Key {
type: 6
@@ -554,23 +554,23 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "1402f8182c74124a1fb34ecd78fa4819"
}
Frame {
msec: 1680
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "1402f8182c74124a1fb34ecd78fa4819"
}
Frame {
msec: 1696
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "1402f8182c74124a1fb34ecd78fa4819"
}
Frame {
msec: 1712
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "1402f8182c74124a1fb34ecd78fa4819"
}
Frame {
msec: 1728
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "1402f8182c74124a1fb34ecd78fa4819"
}
Key {
type: 6
@@ -582,7 +582,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Key {
type: 7
@@ -594,15 +594,15 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Frame {
msec: 1776
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Frame {
msec: 1792
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Key {
type: 7
@@ -614,19 +614,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Frame {
msec: 1824
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Frame {
msec: 1840
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Frame {
msec: 1856
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
}
Key {
type: 6
@@ -638,19 +638,19 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 1888
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 1904
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 1920
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Key {
type: 7
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 1968
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 1984
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 2000
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Frame {
msec: 2016
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "1f3b2da0ad387187f202857ed9bb4934"
}
Key {
type: 6
@@ -694,11 +694,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "f2fd02bca5f5bf26013957e11d3f11ce"
}
Frame {
msec: 2048
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "f2fd02bca5f5bf26013957e11d3f11ce"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "f2fd02bca5f5bf26013957e11d3f11ce"
}
Frame {
msec: 2080
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "f2fd02bca5f5bf26013957e11d3f11ce"
}
Key {
type: 6
@@ -726,19 +726,19 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "550f7f60df621c951ce7d5271aabc41f"
}
Frame {
msec: 2112
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "550f7f60df621c951ce7d5271aabc41f"
}
Frame {
msec: 2128
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "550f7f60df621c951ce7d5271aabc41f"
}
Frame {
msec: 2144
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "550f7f60df621c951ce7d5271aabc41f"
}
Key {
type: 6
@@ -758,19 +758,19 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "d2aca851dde9f96747d3f54fb831144a"
}
Frame {
msec: 2176
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "d2aca851dde9f96747d3f54fb831144a"
}
Frame {
msec: 2192
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "d2aca851dde9f96747d3f54fb831144a"
}
Frame {
msec: 2208
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "d2aca851dde9f96747d3f54fb831144a"
}
Key {
type: 6
@@ -782,7 +782,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Key {
type: 7
@@ -794,23 +794,23 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Frame {
msec: 2256
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Frame {
msec: 2272
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Frame {
msec: 2288
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Frame {
msec: 2304
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Key {
type: 7
@@ -822,11 +822,11 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Frame {
msec: 2336
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "9ed75a4dc5b88fe1c1531833db1dd364"
}
Key {
type: 6
@@ -838,27 +838,27 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2368
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2384
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2400
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2416
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2432
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Key {
type: 7
@@ -870,19 +870,19 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2464
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2480
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Frame {
msec: 2496
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "39079b642f00ea767114d5a831be939a"
}
Key {
type: 6
@@ -894,15 +894,15 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2528
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2544
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Key {
type: 7
@@ -914,87 +914,87 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2576
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2592
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2608
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2624
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2640
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2656
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2672
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2688
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2704
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2720
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2736
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2752
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2768
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2784
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2800
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2816
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2832
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2848
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2864
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2880
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2896
@@ -1002,42 +1002,42 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2928
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2944
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2960
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2976
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 2992
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 3008
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 3024
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 3040
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "92035cf4d7df9e637567c7834f23b030"
}
Frame {
msec: 3056
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ 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 a12db0a..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 acc646c..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: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 48
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 64
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 80
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 96
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 112
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 128
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 144
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 160
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 176
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 192
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 208
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 224
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 240
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 256
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 272
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 288
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 304
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 320
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 336
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 352
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 368
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 384
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 400
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
}
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index ef0d4dc..fe23e09 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -104,13 +104,8 @@ void tst_qmlvisual::visual_data()
QStringList files;
files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
if (qgetenv("QMLVISUAL_ALL") != "1") {
-#if defined(Q_WS_X11)
- //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
+ //Text on Mac 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);
--
cgit v0.12
From 89f4a877c401e1ab18d3ed520d17440b3e9078e7 Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Thu, 2 Dec 2010 14:20:50 +1000
Subject: Mention that image providers should be added before loading QML files
---
src/declarative/qml/qdeclarativeengine.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 7ac3a68..a8404f0 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -678,6 +678,9 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
requests. See the QDeclarativeImageProvider documentation for details on
implementing and using image providers.
+ All required image providers should be added to the engine before any
+ QML sources files are loaded.
+
Note that images loaded from a QDeclarativeImageProvider are cached
by QPixmapCache, similar to any image loaded by QML.
--
cgit v0.12
From fe63d0ee5671ec4f0a1926ad8875b9f11789b105 Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Fri, 3 Dec 2010 10:50:43 +1000
Subject: Add 'Writing New Components' docs, and document the connect()
function.
The 'Writing QML Components' is mainly a restructuring of the
'Extending types from QML' page. It also documents the signal
connect() function that was previously undocumented.
Task-number: QTBUG-15718, QTBUG-15138
---
doc/src/declarative/basictypes.qdoc | 4 +-
doc/src/declarative/declarativeui.qdoc | 4 +-
doc/src/declarative/dynamicobjects.qdoc | 3 +
doc/src/declarative/extending-tutorial.qdoc | 4 +-
doc/src/declarative/extending.qdoc | 617 +++++++++++----------
doc/src/declarative/javascriptblocks.qdoc | 19 +
doc/src/declarative/pics/qml-extending-types.png | Bin 0 -> 738 bytes
doc/src/declarative/qtbinding.qdoc | 2 +-
doc/src/declarative/tutorial.qdoc | 4 +-
doc/src/examples/qml-examples.qdoc | 3 +-
.../integrating-javascript/connectjs.qml | 57 ++
.../declarative/integrating-javascript/script.js | 47 ++
.../qml-extending-types/components/Button.qml | 53 ++
.../qml-extending-types/components/application.qml | 49 ++
.../qml-extending-types/methods/app.qml | 55 ++
.../qml-extending-types/properties/ImageViewer.qml | 52 ++
.../properties/alias-override.qml | 48 ++
.../qml-extending-types/properties/alias.qml | 51 ++
.../properties/alias/ImageViewer.qml | 52 ++
.../properties/alias/application.qml | 54 ++
.../qml-extending-types/properties/application.qml | 50 ++
.../properties/property-signals.qml | 49 ++
.../qml-extending-types/signals/Button.qml | 55 ++
.../qml-extending-types/signals/basic.qml | 55 ++
.../qml-extending-types/signals/connectdynamic.qml | 61 ++
.../qml-extending-types/signals/connectslots.qml | 56 ++
.../qml-extending-types/signals/no-parameters.qml | 49 ++
.../qml-extending-types/signals/parameters.qml | 50 ++
.../modelviews/visualitemmodel/visualitemmodel.qml | 7 +
.../ui-components/tabwidget/TabWidget.qml | 4 +-
30 files changed, 1296 insertions(+), 318 deletions(-)
create mode 100644 doc/src/declarative/pics/qml-extending-types.png
create mode 100644 doc/src/snippets/declarative/integrating-javascript/connectjs.qml
create mode 100644 doc/src/snippets/declarative/integrating-javascript/script.js
create mode 100644 doc/src/snippets/declarative/qml-extending-types/components/Button.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/components/application.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/methods/app.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/application.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/Button.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/basic.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml
create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml
diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc
index 71192bf..034b7d1 100644
--- a/doc/src/declarative/basictypes.qdoc
+++ b/doc/src/declarative/basictypes.qdoc
@@ -33,7 +33,7 @@
the \l {QML Elements}.
Some of these types can also be used for defining
- \c property values in QML. See \l{Extending types from QML} for the
+ \c property values in QML. See \l{Writing QML Components: Properties, Methods and Signals} for the
list of types that can be used for \c property values.
\annotatedlist qmlbasictypes
@@ -380,7 +380,7 @@
\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
+ List \l {Adding 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:
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 01e1302..5d9eaaf 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -91,9 +91,10 @@ Module.
\list
\o \l{QML Documents}
\o \l{Property Binding}
+\o \l{Anchor-based Layout in QML}
+\o \l{Writing QML Components: Properties, Methods and Signals}
\o \l{QML Scope}
\o \l{QML Modules}
-\o \l{Anchor-based Layout in QML}
\endlist
\section1 User Interaction
@@ -118,7 +119,6 @@ Module.
\list
\o \l{Qt Declarative UI Runtime}
\o \l{Integrating JavaScript}
-\o \l{Extending types from QML}
\o \l{Dynamic Object Management in QML}
\endlist
diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc
index daf2ae1..fcc9fd4 100644
--- a/doc/src/declarative/dynamicobjects.qdoc
+++ b/doc/src/declarative/dynamicobjects.qdoc
@@ -102,6 +102,9 @@ Notice in both instances, \l {Component::createObject()}{createObject()} is call
When using files with relative paths, the path should
be relative to the file where \l {QML:Qt::createComponent()}{Qt.createComponent()} is executed.
+To connect signals to (or receive signals from) dynamically created objects, use the signal
+\c connect() method. See \l {Connecting signals to methods and other signals} for more information.
+
\section2 Creating an object from a string of QML
diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc
index dff1d9c..c998c5c 100644
--- a/doc/src/declarative/extending-tutorial.qdoc
+++ b/doc/src/declarative/extending-tutorial.qdoc
@@ -285,8 +285,8 @@ int-type property to store an identifier for each chart:
}
\endcode
-We can also use various other property types. QML has built-in support for the following
-types listed in the \l{Extending Types from QML} document, including the following:
+We can also use various other property types. QML has built-in support for the types
+listed in the \l{Adding Properties} documentation, which includes the following:
\list
\o bool, unsigned int, int, float, double, qreal
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 740f7d1..fc5c586 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -82,8 +82,8 @@ Types can be registered by libraries, application code, or by plugins
Once registered, all \l {Qt's Property System}{properties} of the
supported types are available in QML. QML has intrinsic support for
-properties of the types listed in the \l{Extending Types from QML}
-document, including the following:
+properties of the types listed in the \l{Adding Properties}
+document, which includes the following:
\list
\o bool, unsigned int, int, float, double, qreal
@@ -429,7 +429,7 @@ onChanged, regardless of the name used for the NOTIFY
signal in C++. We recommend using Changed() for the
NOTIFY signal in C++.
-See also \l {Extending Types from QML}.
+See also \l {Writing QML Components: Properties, Methods and Signals}
\section1 Methods
@@ -637,147 +637,177 @@ public:
/*!
\page qml-extending-types.html
-\title Extending Types from QML
+\title Writing QML Components: Properties, Methods and Signals
-Many of the elements available for use in QML are implemented in
-\l {Extending QML in C++}{C++}. These types are know as "core types". QML
-allows programmers to build new, fully functional elements without using C++.
-Existing core types can be extended, and new types defined entirely in the QML
-language.
+One of the key concepts in QML is the ability to define your own QML components that suit
+the purposes of your application. The standard \l {QML Elements} provide the essential components
+for creating a QML application; beyond these, you can write your own custom components that can
+be created and reused, without the use of C++.
-\tableofcontents
+Components are the building blocks of a QML project. When writing a QML application, whether
+large or small, it is best to separate QML code into smaller components that perform specific
+sets of operations, instead of creating mammoth QML files with large, combined functionality
+that is more difficult to manage and may contain duplicated code.
+
+
+\section1 Defining New Components
-\section1 Adding new properties
+A component is a reusable type with a well-defined interface, built entirely in QML.
+Any snippet of QML code can become a component, by placing the code in a file ".qml" where
+ is the new component name, beginning with an uppercase letter. These QML files automatically
+become available as new QML element types to other QML components and applications in the same directory.
-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.
+For example, one of the simplest and most common components you can build in QML is a
+button-type component. Below, we implement this component as a \l Rectangle with a clickable
+\l MouseArea, in a file named \c Button.qml:
-Like all properties in QML, custom properties are typed. The type is used to
-define the property's behavior, and also determines the C++ type of the created
-Qt property. The following table shows the list of types available when
-declaring a new property, and the corresponding C++ type.
+\snippet doc/src/snippets/declarative/qml-extending-types/components/Button.qml 0
+
+Now this component can be reused by another file within the same directory. Since the file is
+named \c Button.qml, the component is referred to as \c Button:
\table
-\header \o QML Type Name \o C++ Type Name
-\row \o int \o int
-\row \o bool \o bool
-\row \o double \o double
-\row \o real \o double
-\row \o string \o QString
-\row \o url \o QUrl
-\row \o color \o QColor
-\row \o date \o QDateTime
-\row \o variant \o QVariant
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/components/application.qml 0
+\o \image qml-extending-types.png
\endtable
-From QML you can also declare object and list properties using any element name
-like this:
+The root object in \c Button.qml defines the attributes that are available to users of the
+\c Button component. In this case, the root object is a \l Rectangle, so any properties, methods
+and signals of \l Rectangle are made available, allowing \c application.qml to
+customize the \c width, \c height, \c radius and \c color properties of \c Button objects.
-\code
- property QtObject objectProperty
- property Item itemProperty
- property MyCustomType customProperty
- 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.
+If \c Button.qml was not in the same directory, \c application.qml would need to load it as a
+\l {Modules}{module} from a specific filesystem path or \l{QDeclarativeExtensionPlugin}{plugin}.
+Also, note the letter case of the component file name is significant on some (notably UNIX)
+filesystems. It is recommended the file name case matches the case of the QML component name
+exactly - for example, \c Box.qml and not \c BoX.qml - regardless of the platform to which the
+QML component will be deployed.
+
+To write a useful component, it is generally necessary to provide it with custom attributes that store and
+communicate specific data. This is achieved by adding the following attributes to your components:
+
+\list
+\o \bold Properties that can be accessed externally to modify an object (for example, \l Item has
+ \l {Item::}{width} and \l {Item::}{height} properties) and used in \l {Property Binding}
+\o \bold Methods of JavaScript code can be invoked internally or externally (for example,
+ \l Animation has a \l {Animation::}{start()} method)
+\o \bold Signals to notify other objects when an event has occurred (for example, MouseArea has a
+ \c clicked signal)
+\endlist
+
+The following sections show how these attributes can be added to QML components.
-QML supports two methods for adding a new property to a type: a new property
-definition, and a property alias. These are shown below.
-\section2 Property definitions
+\section1 Adding Properties
-Property definitions add a new property to an existing type. The storage of the
-property is managed by QML. The defined property may be read, written and bound
-to and from.
+A property is a value of a QML component that can be read and modified by other objects. For
+example, a \l Rectangle component has \l {Item::}{width}, \l {Item::}{height} and \l
+{Rectangle::}{color} properties. Significantly, properties be used with \l {Property Binding}, where
+a property value is automatically updated using the value of another property.
The syntax for defining a new property is:
+
\code
- [default] property
[: defaultValue]
+[default] property [: defaultValue]
\endcode
-This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two properties with the same name
-in the same type block is an error. However, a new property may reuse the name
-of an existing property on the type. This should be done with caution, as the
-existing property will be hidden, and become inaccessible.
+A \c property declaration can appear anywhere within a QML component definition, but it is customary
+to place it at the top. A component cannot declare more than one property with the same name. (It is
+possible to have a property name that is the same as an existing property in a type, but this is not
+recommended as the existing property becomes hidden and inaccessible.)
-The must be one of the QML type names shown in the above table.
-Additionally, an optional default value of the property can be provided. The
-default value is a convenient shortcut, but is behaviorally identical to doing
-it in two steps, like this:
+Below is an example. The \c ImageViewer component has defined a \c string type property named
+\c currentImage, and its initial value is "default-image.png". This property is used to set the image
+displayed in the child \l Image object. Another file, \c application.qml, can create
+an \c ImageViewer object and read or modify the \c currentImage value:
-\code
- // Use default value
- property int myProperty: 10
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/application.qml 0
+\endtable
- // Longer, but behaviorally identical
- property int myProperty
- myProperty: 10
-\endcode
+It is optional for a property to have a default value. The default value is a convenient shortcut, and is
+behaviorally identical to doing it in two steps, like this:
+
+\qml
+// Use default value
+property int myProperty: 10
+
+// Longer, but behaviorally identical
+property int myProperty
+myProperty: 10
+\endqml
-If a default value is not supplied or set later in the file, each type has a
-default value for when none is explicitly set. Below are the default values
-of some of the types. For the remaining types the default values are undefined.
+
+\section2 Supported property types
+
+All QML properties are typed. The examples above show properties with \c int and \c string types;
+notice that the type of the property must be declared. The type is used to determine the property
+behavior, and how the property is defined in C++.
+
+A number of property types are supported by default. These are listed in the table below,
+with their default values and the corresponding C++ type:
\table
-\header \o QML Type \o Default Value
-\row \o bool \o false
-\row \o int \o 0
-\row \o double, real \o 0.0
-\row \o string, url \o "" (an empty string)
-\row \o color \o #000000 (black)
+\header \o QML Type Name \o Default value \o C++ Type Name
+\row \o int \o 0 \o int
+\row \o bool \o \c false \o bool
+\row \o double \o 0.0 \o double
+\row \o real \o 0.0 \o double
+\row \o string \o "" (empty string) \o QString
+\row \o url \o "" (empty url) \o QUrl
+\row \o color \o #000000 (black) \o QColor
+\row \o date \o \c undefined \o QDateTime
+\row \o variant \o \c undefined \o QVariant
\endtable
-The following example shows how to declare a new "innerColor" property that
-controls the color of the inner rectangle.
+QML object types can also be used as property types. This includes
+\l {Defining new QML elements}{custom QML types} implemented in C++. Such properties are
+defined like this:
-\code
- Rectangle {
- property color innerColor: "black"
-
- color: "red"; width: 100; height: 100
- Rectangle {
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: innerColor
- }
- }
-\endcode
+\qml
+property Item itemProperty
+property QtObject objectProperty
+property MyCustomType customProperty
+\endqml
+Such object-type properties default to an \c undefined value.
-\section3 Property signal handlers
+\l{list}{List properties} are created with the \c list syntax, and default to an empty
+list:
-Adding a property to an item automatically adds a \e{value-changed}
-signal handler to the item. The signal hander is named
-\c{onChanged}, with the first letter of the property
-name being upper case.
+\qml
+property list- listOfItems
+\endqml
-Signal handlers can have arbitrary JavaScript code assigned. The following
-example shows how to output to a text console a new value of property
-\c{innerColor} whenever the value of this property changes.
+Note that list properties cannot be modified like ordinary JavaScript
+arrays. See the \l {list}{list type documentation} for details.
-\code
- Rectangle {
- id: rect
- property color innerColor: "black"
+For details about accessing and manipulating QML properties from C++, see \l {Using QML with C++}.
- onInnerColorChanged: { console.log(rect.innerColor); }
- }
-\endcode
+\section2 Property change signals
+
+Adding a \c property to an item automatically adds a \e {value changed}
+signal handler to the item. To connect to this signal, use a \l {Signal Handlers}{signal handler}
+named with the \c on
Changed syntax, using upper case for the first letter of the
+property name.
+
+For example, the following \c onMyNumberChanged signal handler is automatically called whenever the
+\c myNumber property changes:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml 0
-\section3 Setting default properties
+
+\section2 Default properties
The optional \c default attribute for a property marks it as the \e {default property}
for a type. This allows other items to specify the default property's value
-as child elements. For example, the \l Item element's default property is its
-\l{Item::children}{children} property. This allows the children of an \l Item
+as child elements. For example, the \l Item element's default property is its
+\l{Item::children}{children} property. This allows the children of an \l Item
to be set like this:
\qml
@@ -787,7 +817,7 @@ Item {
}
\endqml
-If the \l{Item::children}{children} property was not the default property for
+If the \l{Item::children}{children} property was not the default property for
\l Item, its value would have to be set like this instead:
\qml
@@ -804,21 +834,20 @@ demonstration of using default properties.
Specifying a default property overrides any existing default property (for
example, any default property inherited from a parent item). Using the
-default attribute twice in the same type block is an error.
+\c default attribute twice in the same type block is an error.
-\target qml-property-aliases
\section2 Property aliases
Property aliases are a more advanced form of property declaration. Unlike a
-property definition, that allocates a new, unique storage space for the
+property definition, which allocates a new, unique storage space for the
property, a property alias connects the newly declared property (called the
-aliasing property) to an existing property (the aliased property). Read
+aliasing property) as a direct reference to an existing property (the aliased property). Read
operations on the aliasing property act as read operations on the aliased
property, and write operations on the aliasing property as write operations on
the aliased property.
-A property alias declaration looks a lot like a property definition:
+A property alias declaration looks a lot like an ordinary property definition:
\code
[default] property alias :
\endcode
@@ -829,7 +858,7 @@ value, a property alias includes a compulsory alias reference. The alias
reference is used to locate the aliased property. While similar to a property
binding, the alias reference syntax is highly restricted.
-An alias reference takes one of the following forms
+An alias reference takes one of the following forms:
\code
.
@@ -838,61 +867,58 @@ An alias reference takes one of the following forms
where must refer to an object id within the same component as the type
declaring the alias, and, optionally, refers to a property on that object.
-Here is the property definition example rewritten to use property aliases.
-\code
-Rectangle {
- property alias innerColor: innerRect.color
-
- color: "red"; width: 100; height: 100
- Rectangle {
- id: innerRect
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: "black"
- }
-}
-\endcode
+For example, below is a \c Button.qml component with a \c buttonText aliased property which is
+connected to the child Text object's \c text property:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/alias.qml 0
+
+The following code would create a \c Button with a defined text string for the
+child \l Text object:
-Aliases are most useful when \l {Defining new Components}. Consequently
-they have several apparent limitations that only make sense in this context.
+\qml
+Button { buttonText: "This is a button" }
+\endqml
+
+Here, modifying \c buttonText directly modifies the \c textItem.text value; it does not
+change some other value that then updates \c textItem.text.
+
+In this case, the use of aliased properties is essential. If \c buttonText was not an alias,
+changing its value would not actually change the displayed text at all, as
+\l {Property Binding}{property bindings} are not bi-directional: the \c buttonText value would
+change when \c textItem.text changes, but not the other way around.
+
+Aliased properties are also useful for allowing external objects to directly modify and
+access child objects in a component. For example, here is a modified version of the \c ImageViewer
+component shown \l {Adding Properties}{earlier} on this page. The \c currentImage property has
+been changed to an alias to the child \l Image object:
+
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml 0
+\endtable
+
+Instead of being limited to setting the \l Image source, \c application.qml can now directly
+access and modify the child \l Image object and its properties.
+
+Obviously, exposing child objects in this manner should be done with care, as it allows external
+objects to modify them freely. However, this use of aliased properties can be quite useful in
+particular situations, such as for the \l {declarative/ui-components/tabwidget}{TabWidget}
+example, where new tab items are actually parented to a child object that displays the current tab.
+
+
+\section3 Considerations for property aliases
Aliases are only activated once the component specifying them is completed. The
most obvious consequence of this is that the component itself cannot generally
-use the aliased property directly. For example, this will not work:
+use the aliased property directly during creation. For example, this will not work:
\code
// Does NOT work
- property alias innerColor: innerRect.color
- innerColor: "black"
+ property alias buttonText: textItem.text
+ buttonText: "Some text" // buttonText is not yet defined when this value is set
\endcode
-This behavior is required to allow type developers to redefine the behavior
-of existing property names while continuing to use the existing behavior within
-the type they are building, something that is not possible with property
-definitions. In the example used so far, this could allows the developer to fix
-the external rectangle's color as "red" and redefine the "color" property to
-refer to the inner rectangle, like this:
-
-\code
-Rectangle {
- property alias color: innerRect.color
-
- color: "red"; width: 100; height: 100
- Rectangle {
- id: innerRect
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: "black"
- }
-}
-\endcode
-
-Users of this type would not be able to affect the color of the red rectangle,
-but would find using the "color" property, rather than the strange new
-"innerColor" property, much more familiar.
-
A second, much less significant, consequence of the delayed activation of
aliases is that an alias reference cannot refer to another aliasing property
declared within the same component. This will not work:
@@ -900,198 +926,177 @@ declared within the same component. This will not work:
\code
// Does NOT work
id: root
- property alias innerColor: innerRect.color
- property alias innerColor2: root.innerColor
+ property alias buttonText: textItem.text
+ property alias buttonText2: root.buttonText
\endcode
-From outside the component, aliasing properties appear as regular Qt properties
-and consequently can be used in alias references.
+At the time the component is created, the \c buttonText value has not yet been assigned,
+so \c root.buttonText would refer to an undefined value. (From outside the component,
+however, aliasing properties appear as regular Qt properties and consequently can be
+used in alias references.)
-\section1 Adding new signals
+It is possible for an aliased property to have the same name as an existing property. For example,
+the following component has a \c color alias property, named the same as the built-in
+\l {Rectangle::color} property:
-New signals can be added to an existing type. These new signals are available
-for use within QML, and also appear as regular Qt signals on the C++ object that
-can be used in Qt signal/slot connections.
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml 0
+
+Any objects that use this component and refer to its \c color property will be
+referring to the alias rather than the ordinary \l {Rectangle::color} property. Internally,
+however, the rectangle can correctly set this property to "red" and refer to the actual defined
+property rather than the alias.
+
+
+\section1 Adding Methods
+
+A QML component can define methods of JavaScript code. These methods can be invoked
+either internally or by other objects.
+
+The syntax for defining a method is:
-The syntax for defining a new signal is:
\code
-signal [([ [, ...]])]
+function ([[, ...]]) { }
\endcode
This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two signals or methods with the
-same name in the same type block is an error. However, a new signal may reuse
-the name of an existing signal on the type. This should be done with caution,
-as the existing signal may be hidden and become inaccessible.
+include it at the top. Attempting to declare two methods or signals with the
+same name in the same type block is an error. However, a new method may reuse
+the name of an existing method on the type. (This should be done with caution,
+as the existing method may be hidden and become inaccessible.)
-The options for parameter types are the same as for property types (see
-\l {Adding new properties}. If this signal has no parameters, the parameter
-list may be omitted entirely.
+Unlike \l{Adding Signals}{signals}, method parameter types do not have to be declared as they
+default to the \c variant type. The body of the method is written in JavaScript and may access
+the parameters by name.
-Here are three examples of signal declarations:
-\code
- Item {
- signal clicked
- signal hovered()
- signal performAction(string action, variant actionArgument)
- }
-\endcode
+Here is an example of a component with a \c say() method that accepts a single \c text argument:
-Adding a signal to an item automatically adds a signal handler to it.
-The signal hander is named on, with the first letter of the
-signal name being upper cased. The above example item would now have the
-following signal handlers:
+\snippet doc/src/snippets/declarative/qml-extending-types/methods/app.qml 0
-\list
- \o onClicked
- \o onHovered
- \o onPerformAction
-\endlist
+A method can be connected to a signal so that it is automatically invoked whenever the signal
+is emitted. See \l {Connecting signals to methods and other signals} below.
+
+Also see \l {Integrating JavaScript} for more information on using JavaScript with QML.
-\section1 Adding new methods
-New methods can be added to an existing type. These new methods are available
-for use within QML, and also appear as regular Qt slots on the C++ object that
-can be used in Qt signal/slot connections.
+\section1 Adding Signals
+
+Signals provide a way to notify other objects when an event has occurred. For example, the MouseArea
+\c clicked signal notifies other objects that the mouse has been clicked within the area.
+
+The syntax for defining a new signal is:
\code
-function ([[, ...]]) { }
+signal [([ [, ...]])]
\endcode
This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two methods or signals with the
-same name in the same type block is an error. However, a new method may reuse
-the name of an existing method on the type. This should be done with caution,
-as the existing method may be hidden and become inaccessible.
+include it at the top. Attempting to declare two signals or methods with the
+same name in the same type block is an error. However, a new signal may reuse
+the name of an existing signal on the type. (This should be done with caution,
+as the existing signal may be hidden and become inaccessible.)
-Methods parameters are not typed. In C++ these parameters are of type QVariant.
-The body of the method is written in JavaScript and may access the parameters by
-name.
+Here are three examples of signal declarations:
-This example adds a new method that behaves like a child:
\code
Item {
- function say(text) {
- console.log("You said " + text);
- }
+ signal clicked
+ signal hovered()
+ signal performAction(string action, variant actionArgument)
}
\endcode
-This may be connected to via QObject::connect() or called directly from C++ using
-QMetaObject::invokeMethod():
+If the signal has no parameters, the "()" brackets are optional. If parameters are used, the
+parameter types must be declared, as for the \c string and \c variant arguments for the \c
+performAction signal above; the allowed parameter types are the same as those listed in the \l
+{Adding Properties} section on this page.
-\code
- QDeclarativeEngine engine;
- QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
- QDeclarativeComponent component(&engine, QUrl::fromLocalFile("main.qml"));
- QObject *object = component.create(context);
- QVariant str("Hello");
- QMetaObject::invokeMethod(object, "say", Q_ARG(QVariant, str));
-\endcode
-
-Return values of type QVariant are also supported via Q_RETURN_ARG.
-
-\section1 Defining new Components
-\target components
+Adding a signal to an item automatically adds a \l {Signal Handlers}{signal handler} as well.
+The signal hander is named \c on, with the first letter of the signal being upper
+cased. The above example item would now have the following signal handlers:
-A component is a reusable type with a well-defined interface built entirely in
-QML. Components appear as regular QML elements, and can be used interchangeably
-with core types. Components allow developers to create new types to be reused
-in other projects without the use of C++. Components can also help to reduce
-duplication inside one project by limiting the need for large numbers of
-copy-and-pasted blocks.
+\list
+\o onClicked
+\o onHovered
+\o onPerformAction
+\endlist
-Any snippet of QML code can become a component, just by placing it in the file ".qml"
-where is the new element name, and begins with an uppercase letter. Note that
-the case of all characters in the are significant on some filesystems, notably
-UNIX filesystems. It is recommended that the case of the filename matches the case of
-the component name in QML exactly, regardless of the platform the QML will be deployed to.
+To emit a signal, simply invoke it in the same way as a method. Below left, when the \l MouseArea is
+clicked, it emits the parent \c buttonClicked signal by invoking \c rect.buttonClicked(). The
+signal is received by \c application.qml through an \c onButtonClicked signal handler:
-These QML files automatically become available as new QML element types
-to other QML components and applications in the same directory.
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/basic.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml 0
+\endtable
-For example, here we show how a component named "Box" is defined and used
-multiple times by an application.
+If the signal has parameters, they are accessible by parameter name in the signal handler.
+In the example below, \c buttonClicked is emitted with \c xPos and \c yPos parameters instead:
\table
\row
-\o application.qml
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0 }
- Box { x: 0; y: 150 }
- Box { x: 0; y: 300 }
-}
-\endcode
-\o Box.qml
-\code
-Rectangle {
- width: 100; height: 100;
- color: "blue"
-}
-\endcode
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/Button.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml 0
\endtable
-Components may be collected into \l {Modules} that gives the
-developer more freedom than just putting files in the same directory.
-\section2 Building reusable components
+\section2 Connecting signals to methods and other signals
-A component type built to be reused by others must have a well defined
-interface. In QML, an interface consists of a defined collection of
-properties, signals and methods. Users of a component have access to all the
-properties, signals and methods defined on the root element of the component.
+Signal objects have a \c connect() method that can be used to a connect a signal to a method or
+another signal. When a signal is connected to a method, the method is automatically invoked
+whenever the signal is emitted. (In Qt terminology, the method is a \e slot that is connected
+to the \e signal; all methods defined in QML are created as Qt slots.) This enables a signal
+to be received by a method instead of a \l {Signal Handlers}{signal handler}.
-In the component example above, the root element of the "Box" component is a
-Rect. As the Rect type has a "color" property, this property is accessible to
-users of the Box component. For example, the application.qml can be modified
-to show three different colored boxes like this:
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0; color: "red"; }
- Box { x: 0; y: 150; color: "yellow"; }
- Box { x: 0; y: 300; color: "green"; }
-}
-\endcode
+For example, the \c application.qml above could be rewritten as:
-As expected, adding additional properties to the root element of Box, makes them
-available externally. Here we add a "text" property:
+\snippet doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml 0
-\table
-\row
-\o application.qml
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0; color: "red"; text: "stop" }
- Box { x: 0; y: 150; color: "yellow"; text: "slow" }
- Box { x: 0; y: 300; color: "green"; text: "go" }
-}
-\endcode
-\o Box.qml
-\code
-Rectangle {
- property alias text: myText.text
- width: 100; height: 100;
- color: "blue"
- Text {
- id: myText
- anchors.centerIn: parent
+The \c myMethod() method will be called whenever the \c buttonClicked signal is received.
+
+In many cases it is sufficient to receive signals through signal handlers rather than using
+the \c connect() function; the above example does not provide any improvements over using a
+simple \c onButtonClicked handler. However, if you are \l{Dynamic Object Management in QML}{creating objects dynamically},
+or \l {Integrating JavaScript}{integrating JavaScript code}, then you will find the
+\c connect() method useful. For example, the component below creates three \c Button
+objects dynamically, and connects the \c buttonClicked signal of each object to the
+\c myMethod() function:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml 0
+
+In the same way, you could connect a signal to methods defined in a dynamically
+created object, or \l {Receiving QML Signals in JavaScript}{connect a signal to a JavaScript method}.
+
+There is also a corresponding \c disconnect() method for removing connected signals. The following
+code removes the connection created in \c application.qml above:
+
+\qml
+// application.qml
+Item {
+ ...
+
+ function removeSignal() {
+ button.clicked.disconnect(item.myMethod)
}
}
-\endcode
-\endtable
+\endqml
+
+
+\section3 Forwarding signals
+
+The \c connect() method can also connect a signal to other signals. This has the effect
+of "forwarding" a signal: it is automatically emitted whenever the relevant signal is emitted. For
+example, the MouseArea \c onClicked handler in \c Button.qml above could have been replaced with
+a call to \c connect():
+
+\qml
+MouseArea {
+ anchors.fill: parent
+ Component.onCompleted: clicked.connect(item.buttonClicked)
+}
+\endqml
-Methods and signals may be added in the same way.
+Whenever the \l MouseArea \c clicked signal is emitted, the \c rect.buttonClicked signal will
+automatically be emitted as well.
-As all external methods, signals and properties are accessible to external
-users, developers should ensure that setting these properties does not have
-any undesirable side-effects. For most resilience, root level properties should
-only be used for literal default values. When a root level property must be
-used inside the component - such as the children property - property aliases
-can be used to redirect this property to a "safe" location for external users.
-Try to think of the root level properties as being "owned" by the components
-user, rather than the component itself.
*/
diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc
index b6fad5b..16d0633 100644
--- a/doc/src/declarative/javascriptblocks.qdoc
+++ b/doc/src/declarative/javascriptblocks.qdoc
@@ -207,6 +207,25 @@ changes.
See \l {Property Binding} for more information.
+\section1 Receiving QML Signals in JavaScript
+
+To receive a QML signal, use the signal's \c connect() method to connect it to a JavaScript
+function.
+
+For example, the following code connects the MouseArea \c clicked signal to the \c jsFunction()
+in \c script.js:
+
+\table
+\row
+\o \snippet doc/src/snippets/declarative/integrating-javascript/connectjs.qml 0
+\o \snippet doc/src/snippets/declarative/integrating-javascript/script.js 0
+\endtable
+
+The \c jsFunction() will now be called whenever MouseArea's \c clicked signal is emitted.
+
+See \l {Connecting signals to methods and other signals} for more information.
+
+
\section1 QML JavaScript Restrictions
QML executes standard JavaScript code, with the following restrictions:
diff --git a/doc/src/declarative/pics/qml-extending-types.png b/doc/src/declarative/pics/qml-extending-types.png
new file mode 100644
index 0000000..6990d7c
Binary files /dev/null and b/doc/src/declarative/pics/qml-extending-types.png differ
diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc
index c3ce6d0..71f41bc 100644
--- a/doc/src/declarative/qtbinding.qdoc
+++ b/doc/src/declarative/qtbinding.qdoc
@@ -230,7 +230,7 @@ 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
+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.
diff --git a/doc/src/declarative/tutorial.qdoc b/doc/src/declarative/tutorial.qdoc
index 8467478..d8139b4 100644
--- a/doc/src/declarative/tutorial.qdoc
+++ b/doc/src/declarative/tutorial.qdoc
@@ -124,7 +124,7 @@ Our color picker is made of six cells with different colors.
To avoid writing the same code multiple times for each cell, we create a new \c Cell component.
A component provides a way of defining a new type that we can re-use in other QML files.
A QML component is like a black-box and interacts with the outside world through properties, signals and functions and is generally
-defined in its own QML file. (For more details, see \l {Defining new Components}).
+defined in its own QML file. (For more details, see \l {Defining New Components}).
The component's filename must always start with a capital letter.
Here is the QML code for \c Cell.qml:
@@ -144,7 +144,7 @@ An \l Item is the most basic visual element in QML and is often used as a contai
We declare a \c cellColor property. This property is accessible from \e outside our component, this allows us
to instantiate the cells with different colors.
-This property is just an alias to an existing property - the color of the rectangle that compose the cell (see \l{Adding new properties}).
+This property is just an alias to an existing property - the color of the rectangle that compose the cell (see \l{Adding Properties}).
\snippet examples/declarative/tutorials/helloworld/Cell.qml 5
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index ca24c66..0834527 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -663,7 +663,8 @@
\example declarative/ui-components/tabwidget
This example shows how to create a tab widget. It also demonstrates how
- \l {Setting default properties}{default properties} can be used to collect and
+ \l {Property aliases}{property aliases} and
+ \l {Default Properties}{default properties} can be used to collect and
assemble the child items declared within an \l Item.
\image qml-tabwidget-example.png
diff --git a/doc/src/snippets/declarative/integrating-javascript/connectjs.qml b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml
new file mode 100644
index 0000000..d84b827
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml
@@ -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$
+**
+****************************************************************************/
+//![0]
+import QtQuick 1.0
+import "script.js" as MyScript
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+
+ Component.onCompleted: {
+ mouseArea.clicked.connect(MyScript.jsFunction)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/integrating-javascript/script.js b/doc/src/snippets/declarative/integrating-javascript/script.js
new file mode 100644
index 0000000..f7099f8
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/script.js
@@ -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]
+// script.js
+
+function jsFunction() {
+ console.log("Called JavaScript function!")
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/qml-extending-types/components/Button.qml b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml
new file mode 100644
index 0000000..43fe0e2
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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]
+// Button.qml
+import QtQuick 1.0
+
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: console.log("Button clicked!")
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/components/application.qml b/doc/src/snippets/declarative/qml-extending-types/components/application.qml
new file mode 100644
index 0000000..0c3b0df
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/components/application.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$
+**
+****************************************************************************/
+//![0]
+// application.qml
+import QtQuick 1.0
+
+Column {
+ Button { width: 50; height: 50 }
+ Button { x: 50; width: 100; height: 50; color: "blue" }
+ Button { width: 50; height: 50; radius: 8 }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/methods/app.qml b/doc/src/snippets/declarative/qml-extending-types/methods/app.qml
new file mode 100644
index 0000000..3b5f008
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/methods/app.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$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ function say(text) {
+ console.log("You said: " + text);
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.say("Mouse clicked")
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml
new file mode 100644
index 0000000..e37db9c
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.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$
+**
+****************************************************************************/
+//![0]
+// ImageViewer.qml
+import QtQuick 1.0
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ property string currentImage: "default-image.png"
+
+ Image { source: item.currentImage }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml
new file mode 100644
index 0000000..aab2748
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.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 QtQuick 1.0
+//![0]
+Rectangle {
+ property alias color: childRect.color
+ color: "red"
+
+ Rectangle { id: childRect }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml
new file mode 100644
index 0000000..1bda447
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml
@@ -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$
+**
+****************************************************************************/
+//![0]
+// Button.qml
+import QtQuick 1.0
+
+Item {
+ property alias buttonText: textItem.text
+
+ width: 200; height: 50
+
+ Text { id: textItem }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml
new file mode 100644
index 0000000..7f50674
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.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$
+**
+****************************************************************************/
+//![0]
+// ImageViewer.qml
+import QtQuick 1.0
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ property alias currentImage: image
+
+ Image { id: image }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml
new file mode 100644
index 0000000..3592e60
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.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]
+// application.qml
+import QtQuick 1.0
+
+ImageViewer {
+ id: viewer
+
+ currentImage.source: "http://qt.nokia.com/logo.png"
+ currentImage.width: width
+ currentImage.height: height
+ currentImage.fillMode: Image.Tile
+
+ Text { text: currentImage.source }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/application.qml
new file mode 100644
index 0000000..4978f05
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/application.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]
+import QtQuick 1.0
+
+ImageViewer {
+ id: viewer
+
+ currentImage: "http://qt.nokia.com/logo.png"
+
+ Text { text: viewer.currentImage }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml
new file mode 100644
index 0000000..1d1b325
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.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 QtQuick 1.0
+//![0]
+Item {
+ property int myNumber
+
+ onMyNumberChanged: { console.log("myNumber has changed:", myNumber); }
+
+ Component.onCompleted: myNumber = 100
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml b/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml
new file mode 100644
index 0000000..9272572
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/Button.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$
+**
+****************************************************************************/
+import QtQuick 1.0
+
+//![0]
+// Button.qml
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ signal buttonClicked(int xPos, int yPos)
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.buttonClicked(mouse.x, mouse.y)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml
new file mode 100644
index 0000000..272c972
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/basic.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]
+// Button.qml
+import QtQuick 1.0
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ signal buttonClicked
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.buttonClicked()
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml
new file mode 100644
index 0000000..4b1f217
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml
@@ -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$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Item {
+ id: item
+ width: 300; height: 100
+
+ function myMethod() {
+ console.log("Button was clicked!")
+ }
+
+ Row { id: row }
+
+ Component.onCompleted: {
+ var component = Qt.createComponent("Button.qml")
+ for (var i=0; i<3; i++) {
+ var button = component.createObject(row)
+ button.border.width = 1
+ button.buttonClicked.connect(myMethod)
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml
new file mode 100644
index 0000000..ae14281
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.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$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Item {
+ id: item
+ width: 200; height: 200
+
+ function myMethod() {
+ console.log("Button was clicked!")
+ }
+
+ Button {
+ id: button
+ anchors.fill: parent
+ Component.onCompleted: buttonClicked.connect(item.myMethod)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml
new file mode 100644
index 0000000..742ab18
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.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$
+**
+****************************************************************************/
+//![0]
+// application.qml
+import QtQuick 1.0
+
+Button {
+ width: 100; height: 100
+ onButtonClicked: console.log("Mouse was clicked")
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml
new file mode 100644
index 0000000..f513f5f
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.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$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+// application.qml
+Button {
+ width: 100; height: 100
+ onButtonClicked: {
+ console.log("Mouse clicked at " + xPos + "," + yPos)
+ }
+}
+//![0]
+
diff --git a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
index 15f2f11..f6564f7 100644
--- a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
+++ b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
@@ -55,16 +55,22 @@ Rectangle {
width: view.width; height: view.height
color: "#FFFEF0"
Text { text: "Page 1"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 1")
}
Rectangle {
width: view.width; height: view.height
color: "#F0FFF7"
Text { text: "Page 2"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 2")
}
Rectangle {
width: view.width; height: view.height
color: "#F4F0FF"
Text { text: "Page 3"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 3")
}
}
@@ -76,6 +82,7 @@ Rectangle {
highlightRangeMode: ListView.StrictlyEnforceRange
orientation: ListView.Horizontal
snapMode: ListView.SnapOneItem; flickDeceleration: 2000
+ cacheBuffer: 200
}
Rectangle {
diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml
index f066fd2..2a74c46 100644
--- a/examples/declarative/ui-components/tabwidget/TabWidget.qml
+++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml
@@ -45,8 +45,8 @@ Item {
// Setting the default property to stack.children means any child items
// of the TabWidget are actually added to the 'stack' item's children.
- // See the "Extending Types from QML" documentation for details on default
- // properties.
+ // See the "Writing QML Components: Properties, Methods and Signals"
+ // documentation for details on default properties.
default property alias content: stack.children
property int current: 0
--
cgit v0.12
From 2a67cbb031608e73b0e02a12ea26de6d43c9250d Mon Sep 17 00:00:00 2001
From: Bea Lam
Date: Fri, 3 Dec 2010 15:15:51 +1000
Subject: Give qmlviewer a minimum size if root object has no size.
de8c9d69fa7c7cc50e9a238e58f6e9370f158fc4 ensured the window was at
least partly visible on Windows and Linux but it did not work on Mac.
Task-number: QTBUG-15783
Reviewed-by: Alan Alpert
---
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 7ea77d1..a368bc1 100644
--- a/tools/qml/qmlruntime.cpp
+++ b/tools/qml/qmlruntime.cpp
@@ -1520,7 +1520,7 @@ void QDeclarativeViewer::updateSizeHints(bool initial)
//qWarning() << "USH: R2V: setting free size ";
layout()->setSizeConstraint(QLayout::SetNoConstraint);
layout()->activate();
- setMinimumSize(QSize(1,1));
+ setMinimumSize(minimumSizeHint());
setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
canvas->setMinimumSize(QSize(0,0));
canvas->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
--
cgit v0.12
From d55ea5c4b4d1d80ab94c3ef3a59b15359373c84a Mon Sep 17 00:00:00 2001
From: Alan Alpert
Date: Fri, 3 Dec 2010 18:52:03 +1000
Subject: Do not use openGL on Mac OS X for QML visual tests
It appears to lead to sporadic crashes in the CI system.
Task-number: QTBUG-14792
---
tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index fe23e09..3ca6d93 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -133,6 +133,9 @@ void tst_qmlvisual::visual()
QFETCH(QString, testdata);
QStringList arguments;
+#ifdef Q_WS_MAC
+ arguments << "-no-opengl";
+#endif
arguments << "-script" << testdata
<< "-scriptopts" << "play,testimages,testerror,testskip,exitoncomplete,exitonfailure"
<< file;
@@ -236,6 +239,9 @@ void action(Mode mode, const QString &file)
QString testdata = tst_qmlvisual::toTestScript(file,mode);
QStringList arguments;
+#ifdef Q_WS_MAC
+ arguments << "-no-opengl";
+#endif
switch (mode) {
case Test:
// Don't run qml
--
cgit v0.12
From 5b7b11238b0edbf1d0177732acc50fe0459c42c7 Mon Sep 17 00:00:00 2001
From: Alan Alpert
Date: Fri, 3 Dec 2010 19:11:41 +1000
Subject: Update visual tests for the recent qmlviewer change
Changing the minimum size of the viewer changes the size of some of the
visual test outputs which were really small.
Task-number: QTBUG-14792
---
.../qmlvisual/focusscope/data/test2.0.png | Bin 305 -> 439 bytes
.../qmlvisual/focusscope/data/test2.1.png | Bin 305 -> 439 bytes
.../qmlvisual/focusscope/data/test2.qml | 154 ++---
.../data/usingRepeater.0.png | Bin 1203 -> 1747 bytes
.../qdeclarativepositioners/data/usingRepeater.qml | 62 +-
.../align/data-X11/multilineAlign.0.png | Bin 762 -> 791 bytes
.../align/data-X11/multilineAlign.qml | 118 ++--
.../qdeclarativetext/data-X11/qtbug_14865.0.png | Bin 303 -> 465 bytes
.../qdeclarativetext/data-X11/qtbug_14865.1.png | Bin 303 -> 465 bytes
.../qdeclarativetext/data-X11/qtbug_14865.qml | 216 +++----
.../qdeclarativetext/elide/data-X11/elide.0.png | Bin 481 -> 581 bytes
.../qdeclarativetext/elide/data-X11/elide.1.png | Bin 481 -> 581 bytes
.../qdeclarativetext/elide/data-X11/elide.qml | 128 ++--
.../elide/data-X11/multilength.0.png | Bin 742 -> 903 bytes
.../elide/data-X11/multilength.1.png | Bin 810 -> 967 bytes
.../elide/data-X11/multilength.2.png | Bin 805 -> 962 bytes
.../elide/data-X11/multilength.3.png | Bin 529 -> 678 bytes
.../elide/data-X11/multilength.4.png | Bin 528 -> 676 bytes
.../elide/data-X11/multilength.5.png | Bin 399 -> 542 bytes
.../elide/data-X11/multilength.qml | 646 ++++++++++-----------
.../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 692 -> 855 bytes
.../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 696 -> 863 bytes
.../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 699 -> 865 bytes
.../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 698 -> 862 bytes
.../qdeclarativetextedit/data-X11/qt-669.4.png | Bin 692 -> 855 bytes
.../qdeclarativetextedit/data-X11/qt-669.qml | 528 ++++++++---------
.../qdeclarativetextinput/data-X11/echoMode.0.png | Bin 256 -> 358 bytes
.../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 342 -> 446 bytes
.../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 445 -> 553 bytes
.../qdeclarativetextinput/data-X11/echoMode.3.png | Bin 508 -> 622 bytes
.../qdeclarativetextinput/data-X11/echoMode.qml | 374 ++++++------
31 files changed, 1113 insertions(+), 1113 deletions(-)
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
index 22d7496..396bf2d 100644
Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png and b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
index 22d7496..396bf2d 100644
Binary files a/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png 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 62eff17..8669071 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 48
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 64
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 80
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 96
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 112
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 128
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 144
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 160
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 176
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 192
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 208
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 224
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 240
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 256
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 272
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 288
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 304
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 320
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 336
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 352
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 368
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 384
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 400
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 416
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 432
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 448
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 464
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 480
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 496
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 512
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 528
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 544
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 560
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 576
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 592
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 608
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 624
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 640
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 656
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 672
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 688
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 704
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 720
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 736
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 752
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 768
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 784
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 800
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 816
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 832
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 848
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 864
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 880
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 896
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 912
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 928
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 944
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 960
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 976
@@ -250,74 +250,74 @@ VisualTest {
}
Frame {
msec: 992
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1008
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1024
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1040
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1056
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1072
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1088
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1104
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1120
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1136
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1152
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1168
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1184
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1200
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1216
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1232
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1248
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1264
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png
index f5b5622..0efb20a 100644
Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png 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 3869b73..365c25f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
@@ -10,126 +10,126 @@ VisualTest {
}
Frame {
msec: 32
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 48
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 64
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 80
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 96
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 112
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 128
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 144
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 160
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 176
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 192
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 208
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 224
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 240
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 256
- hash: "3b670c14311188b82f37aa260fb1a8de"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 272
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 288
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 304
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 320
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 336
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 352
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 368
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 384
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 400
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 416
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 432
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 448
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 464
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 480
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 496
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 512
- hash: "07b267d5a8c194322d339e1ad609f199"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
}
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 38f2051..666d272 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 d431bb8..75e6859 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: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 48
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 64
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 80
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 96
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 112
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 128
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 144
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 160
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 176
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 192
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 208
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 224
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 240
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 256
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 272
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 288
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 304
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 320
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 336
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 352
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 368
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 384
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 400
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 416
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 432
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 448
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 464
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 480
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 496
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 512
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 528
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 544
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 560
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 576
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 592
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 608
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 624
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 640
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 656
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 672
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 688
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 704
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 720
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 736
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 752
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 768
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 784
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 800
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 816
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 832
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 848
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 864
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 880
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 896
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 912
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 928
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 944
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 960
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
}
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 026d06c..6119f92 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
index 026d06c..6119f92 100644
Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png 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 26d0656..481c9aa 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 48
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 64
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 80
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 96
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 112
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 128
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 144
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 160
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 176
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 192
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 208
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 224
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 240
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 256
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 272
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 288
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 304
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 320
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 336
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 352
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 368
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 384
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 400
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 416
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 432
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 448
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 464
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 480
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 496
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 512
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 528
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 544
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 560
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 576
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 592
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 608
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 624
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 640
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 656
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 672
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 688
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 704
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 720
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 736
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 752
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 768
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 784
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 800
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 816
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 832
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 848
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 864
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 880
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 896
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 912
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 928
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 944
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 960
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 976
@@ -250,198 +250,198 @@ VisualTest {
}
Frame {
msec: 992
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 1008
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 1024
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1040
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1056
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1072
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1088
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1104
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1120
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1136
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1152
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1168
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1184
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1200
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1216
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1232
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1248
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1264
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1280
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1296
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1312
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1328
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1344
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1360
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1376
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1392
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1408
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1424
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1440
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1456
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1472
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1488
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1504
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1520
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1536
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1552
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1568
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1584
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1600
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1616
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1632
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1648
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1664
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1680
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1696
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1712
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1728
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1744
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1760
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
}
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..f2e6117 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..f2e6117 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..f306f5c 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: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 48
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 64
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 80
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 96
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 112
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 128
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 144
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 160
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 176
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 192
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 208
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 224
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 240
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 256
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 272
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 288
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 304
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 320
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 336
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 352
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 368
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 384
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 400
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 416
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 432
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 448
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 464
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 480
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 496
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 512
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 528
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 544
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 560
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 576
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 592
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 608
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 624
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 640
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 656
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 672
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 688
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 704
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 720
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 736
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 752
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 768
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 784
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 800
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 816
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 832
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 848
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 864
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 880
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 896
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 912
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 928
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 944
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 960
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 976
@@ -258,22 +258,22 @@ VisualTest {
}
Frame {
msec: 992
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1008
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1024
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1040
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1056
- hash: "40d4596fcecc4e6a214decccc581a75f"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
}
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..f71c1ac 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..93c16dc 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..acec1ee 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..f380c08 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..18142dd 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
index 5005724..c7f59b8 100644
Binary files a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png 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 7b17ab2..6e802f4 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: "fde26fa3d17fb92d676afe61ca6a2170"
}
Frame {
msec: 48
- hash: "c9b99388f7570a65162026739c365edd"
+ hash: "54c7a0ea10fa212959dc4f7606c31f3c"
}
Frame {
msec: 64
- hash: "6f612fe36fa8028a75f6149390bd3585"
+ hash: "e73c4521144b2c810f15239e6d8fa468"
}
Frame {
msec: 80
- hash: "efada1cf68ff7dae90962e7540c79b53"
+ hash: "31a68bfd57846795db57bb30d1d60341"
}
Frame {
msec: 96
- hash: "f42b6952937376ae34f7ef493e86aee6"
+ hash: "55edcaeed37c1390eee2619d52a2eb03"
}
Frame {
msec: 112
- hash: "008b0419f3ec6dbb16220a8e484a1ec8"
+ hash: "2c27d9c3dc215c68630495e255c1670e"
}
Frame {
msec: 128
- hash: "ecb3c1cb02f7a01d4343dad1a066fa6f"
+ hash: "b27dd9260f6da3ab414076e83bf5a2bd"
}
Frame {
msec: 144
- hash: "ce5adf6c5c4d5e385ce7e461e380b00e"
+ hash: "bfcbba7e970af922ee87fbbe936eaa84"
}
Frame {
msec: 160
- hash: "79b8fefae0ac2784391c15c0221bd99d"
+ hash: "75af84ff6f21648737cef4a215410cc6"
}
Frame {
msec: 176
- hash: "259da9a4c2bb9c89d16dd1943645e836"
+ hash: "71fd1fe13a14632ff54ad7a87be68bca"
}
Frame {
msec: 192
- hash: "40ee5004fed2af60ab5fc4983bd2dacd"
+ hash: "69f553a1893403dc6fc82d3c9c47f501"
}
Frame {
msec: 208
- hash: "935314bef478d43e30b6cbdcb33ba72b"
+ hash: "9456b12d49cc2a1f9212dba98a83c8ab"
}
Frame {
msec: 224
- hash: "9860af14b459925078467f334bf41e42"
+ hash: "cfd826f91f6f880816d505c93a8f125a"
}
Frame {
msec: 240
- hash: "d9955eabd55559d7bef3f4cd96b42a35"
+ hash: "d8e3291525eff9f905102ed7654f986b"
}
Frame {
msec: 256
- hash: "7fa3de8afdeb61c6e2e87cde2e96152f"
+ hash: "044c1f37e37a68fbfbb9ddbc2da4300a"
}
Frame {
msec: 272
- hash: "0deea16d1f6d18f1e9c57546b485fe75"
+ hash: "d640cba5f14d9c065bec6f6c23f2831f"
}
Frame {
msec: 288
- hash: "231a71ad0981525d9eb15643bc397130"
+ hash: "9e15b68dace4b39b937dfea8777ae503"
}
Frame {
msec: 304
- hash: "119e67ab3b30bd9a716ad81bbb10d626"
+ hash: "7ea72711e3f8bdd1087181e127e093c7"
}
Frame {
msec: 320
- hash: "4f29d912920ab6b8973a2c392a19ea53"
+ hash: "c45dae8eb1768c8aba2d92dea4f268a2"
}
Frame {
msec: 336
- hash: "8544592eb1d48a55cfd0e274c05622cb"
+ hash: "181ebf6597be2d9e54c1d01a5ab54b46"
}
Frame {
msec: 352
- hash: "eca3de3a1f3e388a0029ea03327e4b21"
+ hash: "094b6cc486b60882836a9ba35411ae7d"
}
Frame {
msec: 368
- hash: "7672135d842f0f6f3a06c19e320b9431"
+ hash: "031f1bcb864b4507bf93caab88756317"
}
Frame {
msec: 384
- hash: "49b5720ebbb03a9c61aebdc6eaf6b2a8"
+ hash: "42b4d89a1026327f180ecc414dcd0ef0"
}
Frame {
msec: 400
- hash: "7d2ddf271385fef343412c43a41d88da"
+ hash: "a99c5d1d434687e2f16e7054bcff8a69"
}
Frame {
msec: 416
- hash: "3df6034ff296ab1242146ba7298a9dd8"
+ hash: "91cf18d3f8538ee8550f7e190911b072"
}
Frame {
msec: 432
- hash: "5a52202453c359370c017a397cbc6f20"
+ hash: "1c11a328d74bc7bf77da10f094db8d4a"
}
Frame {
msec: 448
- hash: "649d58d817e37e7b14d3080998dbc126"
+ hash: "e4da6dc99c962e8f37dc8d99669616d0"
}
Frame {
msec: 464
- hash: "f00b682156bde560b571e0044eff150a"
+ hash: "628d4c1455f58a304887050c0552499a"
}
Frame {
msec: 480
- hash: "0e5ce3806c60e7a67e72ee9f4c334454"
+ hash: "dd17a403f45bcd1001cb08e7f4ae8443"
}
Frame {
msec: 496
- hash: "9d8c0e6a6a66560752abc68de10a6ec0"
+ hash: "1ed042d0289fc6167143ddcd92f708f6"
}
Frame {
msec: 512
- hash: "ffd81c8901cdf67ec3fa574b606eba89"
+ hash: "b55abb6249925cf06439b3177310dcfc"
}
Frame {
msec: 528
- hash: "56b7098e63f8cc1d8957829e7779ae73"
+ hash: "251c3346640a2aa7a9c18ca84ff2d5bb"
}
Frame {
msec: 544
- hash: "7d7417b2b2c07c93bf5d951fddf4363b"
+ hash: "6f5e18d84c4107213599b57bf7284c4b"
}
Frame {
msec: 560
- hash: "a2dd725545042e9b6a366d809d2cfc4f"
+ hash: "2179c1d7d7acb3c2f6354b493cfe74e0"
}
Frame {
msec: 576
- hash: "8fd5ccba4b997a96f7773936afc4fc92"
+ hash: "bbc757e8f3c08f93ffcdd68b392c8cdb"
}
Frame {
msec: 592
- hash: "85f29eae877f93c4617a37b5c445c605"
+ hash: "7eefd9c7291c1a23679efd42f2c29539"
}
Frame {
msec: 608
- hash: "a8eb3ebef75081964a6beba533eba89b"
+ hash: "fa375510d3850614aebceb2bc31ab4de"
}
Frame {
msec: 624
- hash: "8c3e3f4833419e7df6de0c9443390751"
+ hash: "f643c5ba39bb90f396f00c0a9df995c8"
}
Frame {
msec: 640
- hash: "537f3d9760f6cc0c07452ea3f334a008"
+ hash: "c6b7792f780b00b1b07c0ce948dff13b"
}
Frame {
msec: 656
- hash: "93a1851ca2afb595ad684a7f613e860c"
+ hash: "d43d82ee9b0da8f237469c555b48bee8"
}
Frame {
msec: 672
- hash: "fd353e60da99a884f60a2d1ab6e4be46"
+ hash: "addaa9d2aa8f54d6a4e82dc7e029f19d"
}
Frame {
msec: 688
- hash: "21cff9dcfa9e7bb4a44d75338e314d0e"
+ hash: "b12af2fd05a1ccd4664c5093456bae01"
}
Frame {
msec: 704
- hash: "64153f5d57b7191f5e957f22dcdff6d3"
+ hash: "982d3505c51fc1bac026c744e2d1db11"
}
Frame {
msec: 720
- hash: "211d8e9b6427129e4b9292fc862edfb6"
+ hash: "a67a0705ce893dcafdcfc3a7fe71f608"
}
Frame {
msec: 736
- hash: "35f96f202391dc805b0bbb45d7efb1bf"
+ hash: "6e00f746695ca67fb4c4462740b13c8f"
}
Frame {
msec: 752
- hash: "0336a1ba71d4bf7b4cbf98812ba1ae9c"
+ hash: "bc4235d556a1e18d591b9afd87b29826"
}
Frame {
msec: 768
- hash: "c5ec3a61d64228efe448b0d5c0004baa"
+ hash: "830ebf4b9214f1dc31975c83cf49d31e"
}
Frame {
msec: 784
- hash: "9154774bce1d89b84c0f525e282bc95d"
+ hash: "bac049ae3d6676db8bca99620c9f5bd3"
}
Frame {
msec: 800
- hash: "8d07794b2b17971ff69ff7961c441765"
+ hash: "0f9623c23e4e45126078c3c93015d26c"
}
Frame {
msec: 816
- hash: "086c711c3794f8ad8d634ed6483f3caf"
+ hash: "bedde76baa8905970ea5fa8da62355a6"
}
Frame {
msec: 832
- hash: "af591122aee8c949957ae19136505a57"
+ hash: "018b9b1444d921b8cfd823265556c8f6"
}
Frame {
msec: 848
- hash: "c84db4548f53ae95023e56fad3c4aea3"
+ hash: "2be3e0693f54ffefd24e44f552d59e3f"
}
Frame {
msec: 864
- hash: "d7a7bb5cfb91923db8d72d9a12f0016c"
+ hash: "c8c99f68125df2a1f41f6b44fdcc0406"
}
Frame {
msec: 880
- hash: "7171788040f36bf1c878678906a84290"
+ hash: "3e18d6a24a1c6983f3f2ce984d22dbe4"
}
Frame {
msec: 896
- hash: "d2016d9ba6b29c7dfb5d64e506e7f980"
+ hash: "aa336c4e5ace2b33689ca280de2299db"
}
Frame {
msec: 912
- hash: "75945e6719cea6aaf021fcd28dfe4da0"
+ hash: "fd7245f879bbd72b6e72c563a588eea7"
}
Frame {
msec: 928
- hash: "e203a20fc8dda077ff217ac74895b8f6"
+ hash: "e484656517fcb5763c0c8992b22efe91"
}
Frame {
msec: 944
- hash: "1acb696745e0ead2f8c9d807787ce225"
+ hash: "fbd58b050963fc7cdbd5ae89aa7a4a70"
}
Frame {
msec: 960
- hash: "b8d60fcd3e262dc33d623a741fdafb0b"
+ hash: "b47ad6fb8b364e3c2764bf31e62f21e0"
}
Frame {
msec: 976
@@ -250,239 +250,239 @@ VisualTest {
}
Frame {
msec: 992
- hash: "0acda3300bec26515f7ddfd33af6ca84"
+ hash: "ac1a6692030ed80cd34c082ac70ea06e"
}
Frame {
msec: 1008
- hash: "12f5c647778c868638845fd66c825f51"
+ hash: "068a6b82a35d94e3db3eae772c7da56a"
}
Frame {
msec: 1024
- hash: "e87432496a570b68c18d563fd3e55b7c"
+ hash: "8252bb45e74bc09e1d5e6b3951fbb08e"
}
Frame {
msec: 1040
- hash: "332a165345a53198ec22a69e12a7cd6c"
+ hash: "a5d7ad9287238780cb45c61bb70d6cd4"
}
Frame {
msec: 1056
- hash: "92f7d768af912807dca6ad16006d84e9"
+ hash: "e0307f3a1193af0df0cd52d7dac44db9"
}
Frame {
msec: 1072
- hash: "50c330c7e9ed8f08e4b496b322fed388"
+ hash: "d649cf0c4a768dba1a0380b64bc7e48b"
}
Frame {
msec: 1088
- hash: "554317004bc31ba56c970fac294577df"
+ hash: "3fd512a0860c17abbb6ed71488cd7255"
}
Frame {
msec: 1104
- hash: "3c6391b4296451f1ca1db737e4d928c3"
+ hash: "26032efe6efd1de4b5fae23ce4e28a0a"
}
Frame {
msec: 1120
- hash: "8274fa399e0b132582389c909775e8cb"
+ hash: "846652a87d93e397d1a84b187b7aafea"
}
Frame {
msec: 1136
- hash: "f66504b79f0415652f4c6720a2643afe"
+ hash: "4dfdaa030da4c72a0e1a19bfd70b5856"
}
Frame {
msec: 1152
- hash: "53ce26d4f839451868c70133c3f0dff2"
+ hash: "365ad99db7302dfe078f4283af13f5ca"
}
Frame {
msec: 1168
- hash: "715b6a5090e0a947cbbd5f8902088177"
+ hash: "f378a096243bd2c6f7e33e0baf24716a"
}
Frame {
msec: 1184
- hash: "3715a52358febdbfa4aeefe56b4b173e"
+ hash: "e972a84715d314e8814cb7fcab1ad379"
}
Frame {
msec: 1200
- hash: "d89459730ea136a34135fded35bc2247"
+ hash: "8826dbafd12ba2a7437623c8967f2699"
}
Frame {
msec: 1216
- hash: "ba8471a6c2449a05dfe411b86a38ff35"
+ hash: "effa889b33b97f665a21d6562acc45fc"
}
Frame {
msec: 1232
- hash: "5c477b14e0ff59e5d7db360005deaea7"
+ hash: "6ebb408651cf5fbb2fa8788e0ec544d6"
}
Frame {
msec: 1248
- hash: "becdcaa9d4f78d94e3f3af87467798bd"
+ hash: "c4f45fd05b7b4f00acf80f768e99af38"
}
Frame {
msec: 1264
- hash: "2b1f5c5c6a9f26e6b359cf786591d480"
+ hash: "735a7c461f6b10cd967b03c173bfd81d"
}
Frame {
msec: 1280
- hash: "9b1cbb944a941fd2869ac193e9701582"
+ hash: "608cf5ebac88726ffe7e66d763d74e27"
}
Frame {
msec: 1296
- hash: "e1c67be1ec2030529335c02099a3d9cc"
+ hash: "6322c5aebdf814bfc5bfaef8b6bb4d91"
}
Frame {
msec: 1312
- hash: "4f4ecadaa0afad0e38530067ee7688b9"
+ hash: "730b7cef2e0cf57a4721e77e6849b862"
}
Frame {
msec: 1328
- hash: "13f13cb8ea96d764c93ab43f538af2a7"
+ hash: "13879c0772938e39d820b6fc10e0f7e5"
}
Frame {
msec: 1344
- hash: "cd33ccd1ac45f1f83cf93cfbdefa415a"
+ hash: "0710bf8a2beff02009d4bb02f2404b7b"
}
Frame {
msec: 1360
- hash: "8c84a3842a8da763c4b398e49a13831f"
+ hash: "2cd38c2cbf3d8b7eb3a50b9db4bb8f7f"
}
Frame {
msec: 1376
- hash: "3b47b3c27171032450a421ae8ecc786d"
+ hash: "4e988a74a3846171f86d4d69ce3407d9"
}
Frame {
msec: 1392
- hash: "524517523cb15d7886c6dbfa8724ea95"
+ hash: "82cc4b40fe1190de5a2cbbf3f11ac7b0"
}
Frame {
msec: 1408
- hash: "3ae90a6ed20fe62da9fb81b51d6d9a1e"
+ hash: "f15bd345b992b39167165a640ad45794"
}
Frame {
msec: 1424
- hash: "70c0880f0d0d1deefc22baebbeda06c3"
+ hash: "be5ca66da00327ecc9f5dde2aa3660d2"
}
Frame {
msec: 1440
- hash: "d97f6cda6df39ffe1db076204191bba6"
+ hash: "f97a1e863c36477d31a78342c7aa21b7"
}
Frame {
msec: 1456
- hash: "d170a0b8339bd0c29b664403ce8b3286"
+ hash: "d137a2a6ae95aba3f7a2b2a0560718a5"
}
Frame {
msec: 1472
- hash: "fd962a3a4e2fbe03f6730136cdc2a824"
+ hash: "e7529db7cf310e41eb0ac42ab86ae317"
}
Frame {
msec: 1488
- hash: "75bcbfc7d7bf3139538347b17b41cf12"
+ hash: "66914e90881a4a8751ba5391ac41a70b"
}
Frame {
msec: 1504
- hash: "0fcba8fa11a2f3fc7ebcefee6e9dafcd"
+ hash: "249863a5ef1a14ca0eb4397d206dfc1e"
}
Frame {
msec: 1520
- hash: "621f80511b2ce7106b1d285045f505ca"
+ hash: "26095384b724a5e704c7b627930f4e22"
}
Frame {
msec: 1536
- hash: "be6896d8de4bbb8b7ef9e1d34f6f7f32"
+ hash: "98281eed5ae9d9f933e47a8fba8709f1"
}
Frame {
msec: 1552
- hash: "a770cffe72c2791d6d76c16926f98f2f"
+ hash: "d9b50c54255edb300e36af2648ef8f30"
}
Frame {
msec: 1568
- hash: "7e8222f9831e235c7d044b5188a20dd1"
+ hash: "9bde860d92f5ec979fa5c274fd1c13a1"
}
Frame {
msec: 1584
- hash: "a740dfb5ae432712abb4f5f9479a22fa"
+ hash: "39c13a42f920f57d9f9fe85ebc4e68fa"
}
Frame {
msec: 1600
- hash: "a731135b3ac067712081b959f27d8784"
+ hash: "e80bd130bad05078212089586d6c2731"
}
Frame {
msec: 1616
- hash: "c6cdb85a28bdc970cf2a30f0e2cef763"
+ hash: "753732b5309fd8dd7daa16761dd7dad0"
}
Frame {
msec: 1632
- hash: "4c901d5879cd4e1602b4f3560745f0b1"
+ hash: "2eb56a98f728b224f7db073c6ea3c3b9"
}
Frame {
msec: 1648
- hash: "ef64a09b2bd30a6c618ac59a8cacd628"
+ hash: "21ab167d173e244ffb471faddf704e81"
}
Frame {
msec: 1664
- hash: "816f55f5b0b8e3baa52e274ae737ee30"
+ hash: "9964a0386ae349b909424f588d8decf5"
}
Frame {
msec: 1680
- hash: "90db19b8b2d820d36d7a45518f730014"
+ hash: "cee42f46df4c879fa6fc378481ec728c"
}
Frame {
msec: 1696
- hash: "f94248d3df175536a4a6b88722763d75"
+ hash: "4779aeed276cbe4112484d189d1baf8b"
}
Frame {
msec: 1712
- hash: "d1aa57e0666a7d9b5b0dc7b021a1387c"
+ hash: "d482cd14db734f5fed2eaec7d8c0c555"
}
Frame {
msec: 1728
- hash: "77b17a540862f5ec6b2256408fd3637f"
+ hash: "1f8b0681711c46afcf8af66df6d7caf8"
}
Frame {
msec: 1744
- hash: "e9b9a37996f5825006565f5b56e755ea"
+ hash: "44b0e6d69fcd2b7acb499dfdfced026b"
}
Frame {
msec: 1760
- hash: "1ce712e1755047d17d5cf3c97cff1c96"
+ hash: "b6e25c4a276917b7f7f9189e65d965a8"
}
Frame {
msec: 1776
- hash: "95c21bab93788ed45280e61c51173a99"
+ hash: "07e5da936f8d5c84606fcdc49fc6aca2"
}
Frame {
msec: 1792
- hash: "6f62ae9bba2b1d2ea67f13d63157bd7c"
+ hash: "f27a54a8d37ec62f54e083f1ca65aada"
}
Frame {
msec: 1808
- hash: "b5f11412bdb100f88a1f29aa577316e5"
+ hash: "074403259022efd08fcbd9d3a3052c79"
}
Frame {
msec: 1824
- hash: "d4e2468ed0935687e370fcf70059f57f"
+ hash: "a126762087c8f94beef81216b6010f0c"
}
Frame {
msec: 1840
- hash: "e7b5970ef9f327a8e7905f1a16c3f1a3"
+ hash: "96b8c7cebbb9676ea4f028907de71bbf"
}
Frame {
msec: 1856
- hash: "c5b9694fe2d7952d6ef03ff5febec00b"
+ hash: "e6f073522d0af8e504fdb7df971f5e0a"
}
Frame {
msec: 1872
- hash: "0604da4b328d80162fd88bdfcf2a8a68"
+ hash: "9223ed285f322fae3ba2b52afb408586"
}
Frame {
msec: 1888
- hash: "cbeffb3c86fcd7b52672382d6a186692"
+ hash: "b24575dd4c0b0da0b99a03c46209ed3a"
}
Frame {
msec: 1904
- hash: "deb96a6469b351f5e70d3032ad250df9"
+ hash: "5c82bc860f64183e66aead451ee5b893"
}
Frame {
msec: 1920
- hash: "d4bcb6da72c0b7f2e0e55be917eb5720"
+ hash: "3172ab9c62b0870d6894b13720e54918"
}
Frame {
msec: 1936
@@ -490,239 +490,239 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "c044b96932667fd56ca8c87ec70791a3"
+ hash: "5f8e85839f9ac82f46a17f871c3fffbc"
}
Frame {
msec: 1968
- hash: "f197116b796c3647986337515c04a812"
+ hash: "245219fb6c4aa37d8cba7b5e1f74265f"
}
Frame {
msec: 1984
- hash: "3d06fad059276fd5f8f58faeac482d52"
+ hash: "b68cfc5366c4ed8d1e5950a1facf0d85"
}
Frame {
msec: 2000
- hash: "841ab0655e2bd498d51605fd37607378"
+ hash: "dd5c2d2470cc87d57d35ecc9ae8a3528"
}
Frame {
msec: 2016
- hash: "5968dd4f704d72f264704ae6d6a416cf"
+ hash: "1a15d7f02b35d046305b40f9e6a6839d"
}
Frame {
msec: 2032
- hash: "5daf3758175963e409ad7ea18d40a894"
+ hash: "d44c382ea28d429e6f8bbef9ae17338a"
}
Frame {
msec: 2048
- hash: "37750cd0aca54fc6fa6651213a4a8aa0"
+ hash: "63598cb09d5ecbeb991c6db778c5c002"
}
Frame {
msec: 2064
- hash: "b64411f26c1bde823daa4caf96402887"
+ hash: "b3fcd0180ecd01e2ad0c0114b3dfbf78"
}
Frame {
msec: 2080
- hash: "cf6d68046e9b7cc39305bfbdbd64a6eb"
+ hash: "8d441044f5f10da23708d7ddf0472989"
}
Frame {
msec: 2096
- hash: "47f89ab15314ce63dc3828aa4ae16d54"
+ hash: "6e87518a368c39d68521046773c2f922"
}
Frame {
msec: 2112
- hash: "a7116055b3b33ad02bae75f2db016314"
+ hash: "59e377ccc851ee361e3874ad5ec18e55"
}
Frame {
msec: 2128
- hash: "0a0443c4927d3d8d3373c311b89ead0d"
+ hash: "57a9b0431c7db130bfe4d6603f98c1f5"
}
Frame {
msec: 2144
- hash: "6be5e906e9127471bb11e98ba9d68d4c"
+ hash: "526c93727c6321782a373ea6952a8784"
}
Frame {
msec: 2160
- hash: "759c0e5e8a435846bf4471075df9ce1b"
+ hash: "fcd0a4605e27ecb0bac18686e7846b3b"
}
Frame {
msec: 2176
- hash: "b7648957a2fdcca31b863907ea5cbc4f"
+ hash: "d697892f9944c67b5aadd7ad641e3ee5"
}
Frame {
msec: 2192
- hash: "7e9ead6f87c989160681fe87eb44224b"
+ hash: "f46fd7e568d0995c518749ec0f5a0882"
}
Frame {
msec: 2208
- hash: "f7ab3534218320a49b8cc14b39d23a38"
+ hash: "31cd2243fb23d4332c02e91f9956f648"
}
Frame {
msec: 2224
- hash: "44ac6d8e7fd3facac856b532bea9b0dd"
+ hash: "3b29a9c0121ff127b69abba9c0b13c2c"
}
Frame {
msec: 2240
- hash: "238d68eb27eaacddcf428706fca95cad"
+ hash: "ecd789e744ebb5dee7f25ebb089407bf"
}
Frame {
msec: 2256
- hash: "8568076d97d416810f1e91acd33bbba0"
+ hash: "c99a6dfad8d750b7e67c1e3ef1021cbb"
}
Frame {
msec: 2272
- hash: "3649d85321ac7674d8c3dd77815aaf32"
+ hash: "82d18b0c193f0ada9cae68e9f6ad5ff5"
}
Frame {
msec: 2288
- hash: "0c6dab9f7d575265d554093b88ee7e17"
+ hash: "a09e8144b06db76f5849561d880f037e"
}
Frame {
msec: 2304
- hash: "6387cb408d048d7b139f3d9aed2f14d6"
+ hash: "3e6922ca54c809a32ed5ef72e19d7ff0"
}
Frame {
msec: 2320
- hash: "de2fa29a82cec9d9f22d50bba257f5de"
+ hash: "28e46da32bf34b3e1cd3d351e4c40317"
}
Frame {
msec: 2336
- hash: "ba77a0dc547202e129e899998c7e0909"
+ hash: "297aeeaadc5f3268d95320bc3b33a429"
}
Frame {
msec: 2352
- hash: "0acde6d2435444611f7d5fc67d336d4b"
+ hash: "31721528cdb17b03d3d6ca9f9a91370b"
}
Frame {
msec: 2368
- hash: "1032d38e48cc3485c7a50bcf3ae949d0"
+ hash: "52fd1721330321daaea0b56122a72e5b"
}
Frame {
msec: 2384
- hash: "571649ca193507216f344405d8cb9636"
+ hash: "739c5179b9739021dbb522d01812388c"
}
Frame {
msec: 2400
- hash: "968aa311380ef783852b4a642d61d0c3"
+ hash: "4ae07f58d3a514f5c08f314c5dd445c4"
}
Frame {
msec: 2416
- hash: "b440b4f5f2cb4a061b69e9a99bca0417"
+ hash: "4305ea97d47bac3fb0eebf9181b3ce48"
}
Frame {
msec: 2432
- hash: "c1a2c2fd58f52c6a6f3e5dc2c1e9e8cf"
+ hash: "21c99059dba068bc145896217cc0883c"
}
Frame {
msec: 2448
- hash: "2eab036693343475b799188c98f18bad"
+ hash: "0a514ae5d36acc07c7809a7b4f21ed8e"
}
Frame {
msec: 2464
- hash: "9b0e2eb4c5ed398dfe5ac82c83d38065"
+ hash: "550ce887f462ace686bc6a9021c5cb73"
}
Frame {
msec: 2480
- hash: "d6459b44113b2514a036a39449579918"
+ hash: "b65857dcfa0b1281dd5b9821a12dd8e8"
}
Frame {
msec: 2496
- hash: "99e24ed5413be65aee179d7fdd0aa473"
+ hash: "5a6bb448a570e1a3eef142b8054f3717"
}
Frame {
msec: 2512
- hash: "43c7a5fe622eee2202ab1061155da474"
+ hash: "b38e2f6b4063e1b8a40292017c5ed4ec"
}
Frame {
msec: 2528
- hash: "78bc6de01b343c19ce11bcb5ce5db091"
+ hash: "fa7545e6e3fc92d62af2f7651077da5b"
}
Frame {
msec: 2544
- hash: "77463f64f99952f37467b4cae5a75a73"
+ hash: "ebf0c79720a5692b761b62c4ba360875"
}
Frame {
msec: 2560
- hash: "39181ec3e10fba5d73221e3ef725661d"
+ hash: "cb5356376d97308a4d102c9a53e93abe"
}
Frame {
msec: 2576
- hash: "f23732daf5b25cbfa79256ad21739537"
+ hash: "879f434f4901bdcb166294336c60e26a"
}
Frame {
msec: 2592
- hash: "171b8149512f9a1fc44c4076ae8e6891"
+ hash: "3ab575ac04bdd455346c0460aed413a0"
}
Frame {
msec: 2608
- hash: "1c30c5284764d3aba948f417dc67ea95"
+ hash: "8f08366cb474ca2a1988ebba9d65ecaa"
}
Frame {
msec: 2624
- hash: "5b40de40cc84f75a3038a2adafea6688"
+ hash: "2939cf0235f98aeaf48b3f28964cdddd"
}
Frame {
msec: 2640
- hash: "11e918309ac265c0dddc34b05ddd2beb"
+ hash: "9cf4b339914e48f896dda17e08759472"
}
Frame {
msec: 2656
- hash: "a18c91eae3fd3154c12e46717248577a"
+ hash: "3f5568ac7a4386f1d5072f1cda0c35b8"
}
Frame {
msec: 2672
- hash: "839199f3940822a38fc2b44161ee0840"
+ hash: "107edbf8181f79cd7847d0154b6eda11"
}
Frame {
msec: 2688
- hash: "8b62f8b4c353981788111a9434995a18"
+ hash: "9254497b95b89a7d40903edb04a3764a"
}
Frame {
msec: 2704
- hash: "db7ee2d5e4905959c836d5162bd241c0"
+ hash: "7e7d25a2ee3fbfd67a3b8fecb9fe9202"
}
Frame {
msec: 2720
- hash: "cb770a4cd0f56108ef703147e74338ae"
+ hash: "03759f59bbd2be573acd6c03eb088edd"
}
Frame {
msec: 2736
- hash: "bdaaedef0c17b19cc283eba699799073"
+ hash: "58689762be6c7d3d6de6f23580ec8886"
}
Frame {
msec: 2752
- hash: "8a7f5f87493ba387c14056f9a598e320"
+ hash: "0d4e315f9b079a30e6a4294a667f9ebc"
}
Frame {
msec: 2768
- hash: "3974497b297fa233f3821abba2bdd6ce"
+ hash: "3f3dfa1c8d160238dae2da79a6a569f3"
}
Frame {
msec: 2784
- hash: "41a5744b7747765764829328217e80ea"
+ hash: "b3cd7c3034e2a34c4ae9ed7f3144b2cc"
}
Frame {
msec: 2800
- hash: "4d380bb823659cdfc1d3517234144b72"
+ hash: "c27d3a9057d1f15c6e0b2d427ac12ad2"
}
Frame {
msec: 2816
- hash: "4699cc1dad5c6d5c84137ee5c5db52a4"
+ hash: "9b25ab315d9bfc582e41c05e88812cbe"
}
Frame {
msec: 2832
- hash: "22a34c810c640b378708079761d16c9b"
+ hash: "e75671bfb99741dcff476690ede42166"
}
Frame {
msec: 2848
- hash: "0c76a943b24dc9538416b05a678c7c94"
+ hash: "7dd3307fb41277ebcc4339cdb7747d7c"
}
Frame {
msec: 2864
- hash: "575a20b793f899d50a95121708263283"
+ hash: "a148bce140f1637e27ae5f0207b75351"
}
Frame {
msec: 2880
- hash: "830757417bbff5d6950177aa3617516a"
+ hash: "64e57a31c1baa16bcf47f2202fd6e2ed"
}
Frame {
msec: 2896
@@ -730,239 +730,239 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "1b83db1121bb3436621d3f22758af76d"
+ hash: "83381c54b1923356c403cad2ae2c3519"
}
Frame {
msec: 2928
- hash: "b2a6d502e9ed62f67c29b8ae7b857116"
+ hash: "e110f28619c2ec7c1c8d479793b93e54"
}
Frame {
msec: 2944
- hash: "e9e06068090c076021e508772ae85b5a"
+ hash: "996a9a698f1a7c673eeef67501d7b81b"
}
Frame {
msec: 2960
- hash: "5c7288791d73792b914e99a38b7b455c"
+ hash: "6cf2465c8b7c70343a26e981e6492212"
}
Frame {
msec: 2976
- hash: "ad2b35c647da055a1088e476f250ea78"
+ hash: "3a9078adf3d4ca207c97b62ad525998f"
}
Frame {
msec: 2992
- hash: "7cc9bbd4a2ed2ba1646b10a68c11241f"
+ hash: "0bf0d9a6a202119daa6a44f17d03b9ed"
}
Frame {
msec: 3008
- hash: "f633c12a9d078c4a1405ee399bd75e6f"
+ hash: "6dfadc21810c9176dad599a6f7f672b9"
}
Frame {
msec: 3024
- hash: "e4638bb2b40ed7c31630412010bccef1"
+ hash: "f1f866c6245bd6fd8141abfb8a040d46"
}
Frame {
msec: 3040
- hash: "76fdd98f79c08d9211c42b79f953315a"
+ hash: "84329287c7555bc6207039ea632632b2"
}
Frame {
msec: 3056
- hash: "df754dffbe6429aa7222e7a37d1956c5"
+ hash: "da7e80527f58c93bce9267958ce4c5d7"
}
Frame {
msec: 3072
- hash: "68edef9b10728f0785cc74dfe92c3e03"
+ hash: "cd8eea7543ebc42971b3f41ea21dd4ed"
}
Frame {
msec: 3088
- hash: "627ac43eb191db77345ab1a08bfd7e7a"
+ hash: "b9abb526dc3447370d847a5bca868b50"
}
Frame {
msec: 3104
- hash: "c38698cc4c2de1eb96855f0b6398fd7f"
+ hash: "b8d63ac8331a9375ca06adacb56d12ea"
}
Frame {
msec: 3120
- hash: "6264db59fa7dd4498cedac94b856d90e"
+ hash: "20fcdd73a4cc2abebbc462c32fb9b2c8"
}
Frame {
msec: 3136
- hash: "b550d8181dbf88c5079e2fb6310f0309"
+ hash: "3f656f80771828ee6696a2e0a0626ae4"
}
Frame {
msec: 3152
- hash: "6ffecf31343192ae352c42c6ba978fd3"
+ hash: "0d99110edca4f8ec544d10d680d27092"
}
Frame {
msec: 3168
- hash: "445e7056bfb7726fcf1b0b6411400ec0"
+ hash: "48026f803bd17f56d13dd946fb359e3a"
}
Frame {
msec: 3184
- hash: "9648c06d3a89c054587fa1e86c727fd0"
+ hash: "40759d794139327e2e66685c9fcb047b"
}
Frame {
msec: 3200
- hash: "8d0af1ad33c06cfceaba1a0ca84cf0a0"
+ hash: "419953a3f882008e82bd733e63e66ab6"
}
Frame {
msec: 3216
- hash: "f8f0c27738b186f17a9dd106481e85c5"
+ hash: "ddcd288b0a825ef6899755fbad56f2dd"
}
Frame {
msec: 3232
- hash: "44e5893cd28e2d70afbfbb779f2dd154"
+ hash: "bc203d9f0f32efdd177353b9589bd127"
}
Frame {
msec: 3248
- hash: "dc0d1baafa24423402caf63d6fcd6189"
+ hash: "a4ae6c449b53545a683cd33bc9274d59"
}
Frame {
msec: 3264
- hash: "12c17a563b37bf633dce6fc6793d1cd9"
+ hash: "59e7c218b5a1b857469972f966489a43"
}
Frame {
msec: 3280
- hash: "a8647172101b59753ea6aa40ec4570dc"
+ hash: "521fc5833ab0e3088200e1fea9a887b0"
}
Frame {
msec: 3296
- hash: "e21afb74f793bef8c1b03d252b5700a8"
+ hash: "bd2386f85afb7516d147bff4c07e239f"
}
Frame {
msec: 3312
- hash: "2e10ccbdee088b17172a479a8a859d56"
+ hash: "5298fdee07ff2ff34121f064fed3db4e"
}
Frame {
msec: 3328
- hash: "f111c24e1e8d643543519fd703811f24"
+ hash: "311a8f163cebf7bafcb47c8e6db40ed1"
}
Frame {
msec: 3344
- hash: "dd9aeec2ed05f9c68e1726a91e90e127"
+ hash: "ad6342bed57257a1616a74e19f2bb484"
}
Frame {
msec: 3360
- hash: "043923ed2dee91815d0dce6cd38834e9"
+ hash: "4eb186c5f4963dc72b3dbc3a9da4df65"
}
Frame {
msec: 3376
- hash: "07e0dbb223355b2921eb0597235ee820"
+ hash: "58f1f128001dd1ce0d405595acbaab2a"
}
Frame {
msec: 3392
- hash: "0fba3e9a08d83405df35c632f9dc051e"
+ hash: "ba4a39b66cac22fceba9c4ecfdbae363"
}
Frame {
msec: 3408
- hash: "a0a5a515ec395bdf4912ab24c8780339"
+ hash: "bbfde54a4de637bc1c54248e2e342544"
}
Frame {
msec: 3424
- hash: "4e04e0246eb952cfae716214084cc1ed"
+ hash: "ddc3b4e87782e0472630e2f9f8a57099"
}
Frame {
msec: 3440
- hash: "e7e989234e360e7c0cb44e7be4d654e8"
+ hash: "1bf1212686520da772fc18ca7684a924"
}
Frame {
msec: 3456
- hash: "139b3309ac9e25b2165342bfb202169f"
+ hash: "706ec5a3b48123d3b5113d55b71f7968"
}
Frame {
msec: 3472
- hash: "b4008ee73b92abad9c5fd7c83cb864cf"
+ hash: "62b08db0c3c4f1313bcf4a1e7b90badb"
}
Frame {
msec: 3488
- hash: "b801a917995bd41eee2f4e4fed3006c5"
+ hash: "ae8409fed9d8919b1af2b4d0eafce670"
}
Frame {
msec: 3504
- hash: "a0ea151cd2a2056a45ff5428239b37f4"
+ hash: "9f6ed6ada78e42f06f33514e363c736f"
}
Frame {
msec: 3520
- hash: "01df418b5ba99271d3a2e8807de78899"
+ hash: "97e9a504c2c4ba5329a616810fc19505"
}
Frame {
msec: 3536
- hash: "047fd42df7a5ba0f939930c2021df5fe"
+ hash: "348b6d15b8ef6862818b4fbdb938f241"
}
Frame {
msec: 3552
- hash: "4336498cee8b516e79297a073257e008"
+ hash: "c1845df466f5690a8d7a439d33a27f7d"
}
Frame {
msec: 3568
- hash: "ce404ce21bc91ff8dc61bd95b9e1d5ac"
+ hash: "aee2486331275b9f4116b61588ce169e"
}
Frame {
msec: 3584
- hash: "06b5c263105ec574f10e70002c29adee"
+ hash: "efca3eaffa3421d68d788ee3f0ec068c"
}
Frame {
msec: 3600
- hash: "6a224a56bbeaeb703afa0c2a7f2daf7d"
+ hash: "35f2940b51ed8c4734c23a43bf6fe448"
}
Frame {
msec: 3616
- hash: "65259fcbdb9edfefc4fcbd1ab5f62542"
+ hash: "92b7d34480b7fab4dd39bbccfa8455a5"
}
Frame {
msec: 3632
- hash: "93be4111a6aa21d85ab354bbd41e5b31"
+ hash: "4408049f405ecf5c3c696780390e2155"
}
Frame {
msec: 3648
- hash: "2e4edcdc4807466620c9671d329a0977"
+ hash: "29aa30678d5c87c79ac67198e4dd7bd4"
}
Frame {
msec: 3664
- hash: "e3232d08b83e3e9917b6f4eabc86df72"
+ hash: "2f88ac156017b20795f01716d9e9f2e8"
}
Frame {
msec: 3680
- hash: "f27caa5d738b4778d4343f7b197c5dac"
+ hash: "4d72dec4a2e8edcff806c11f3742cf07"
}
Frame {
msec: 3696
- hash: "dcf3032bc798daf1dc6bb7d608e2dffb"
+ hash: "3f5ebad282a4aa9c03a17d32aea03151"
}
Frame {
msec: 3712
- hash: "9f2d4ba31ab4ec10b43b7de19197994e"
+ hash: "a8d289d15353d45159607377de285732"
}
Frame {
msec: 3728
- hash: "4bf6419de081524ecdeb4c07b376f06d"
+ hash: "af2d2fcfa4510e0d26ea90fc7711b0cf"
}
Frame {
msec: 3744
- hash: "3fdd8166873e768e1346e52a1b4a6554"
+ hash: "aed6897bc8b2163822a052e1cc9ad36b"
}
Frame {
msec: 3760
- hash: "7b25b2f1b2694a87095fba46d505684f"
+ hash: "bf7077614b5045f79c8697bab1e83839"
}
Frame {
msec: 3776
- hash: "d8246057d4b0306747ba449d5247dd21"
+ hash: "e5c8c0bf1fce3a964f4bb911ffee0bdb"
}
Frame {
msec: 3792
- hash: "e45c06fbf48923393f672381f0256513"
+ hash: "bcfe4aebc880809f56d480f23b17dfd1"
}
Frame {
msec: 3808
- hash: "fef8f1bf977d6567eebe14ccafd36853"
+ hash: "2ce342f7864ab26124093edc88585c97"
}
Frame {
msec: 3824
- hash: "04152eab971eac3fbba26f15ba09d329"
+ hash: "8be15d95125e03a0282e897096abb443"
}
Frame {
msec: 3840
- hash: "5039cb5183587fe46ef30c5d0f8c9584"
+ hash: "a4486f30becceca3ec3cc5c8718af82a"
}
Frame {
msec: 3856
@@ -970,239 +970,239 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "5d62550ba4502c3eae3f62ce5b8e9374"
+ hash: "38de7ed0d05015f9b06a4bb278fc96c1"
}
Frame {
msec: 3888
- hash: "859ab80ee7d563a158970d1f3360c7dd"
+ hash: "1cd9a38bb1fc8b06d5c05cd28719d4b3"
}
Frame {
msec: 3904
- hash: "4f900b694d6e552c9287472ca58be35a"
+ hash: "682ba6e2eb83ce1b6bf8526b21cf2694"
}
Frame {
msec: 3920
- hash: "6b3aa5a3071ea5ec911bae3dee02a496"
+ hash: "3da075fccb3d26f30530a69f86d999a8"
}
Frame {
msec: 3936
- hash: "d1b1536b5162e5367db66bb21ccebdcd"
+ hash: "b0fb39798dfa94d0898e5e0d7afd1277"
}
Frame {
msec: 3952
- hash: "8c8dd0b84be58a3257dbd0210a7b21ab"
+ hash: "7e41bbe233d6bc7354ba4516edec4841"
}
Frame {
msec: 3968
- hash: "f96cb092836d67c81fdfd3668005e912"
+ hash: "1d3f24f20ba123940d97f09949cfcc0f"
}
Frame {
msec: 3984
- hash: "7b06694d2fd4dd2def94b11a1e46a391"
+ hash: "abc7a82d91e28c5a3ee9ffd663c8c7bd"
}
Frame {
msec: 4000
- hash: "cef499e6c1665d2bd4a4322d4334234a"
+ hash: "e685c0218a3d80584013806707693eb0"
}
Frame {
msec: 4016
- hash: "664503d5cef2676e287c363a488e91f1"
+ hash: "6ff98dc7eb0453f058a5d4cadf86ddf4"
}
Frame {
msec: 4032
- hash: "cefa44e348ea0d6955a71c7eb0a9b45c"
+ hash: "5a3d0c2c95cb85678f32a8b68dc8d399"
}
Frame {
msec: 4048
- hash: "0ee5684bf4d5b54c5bc9aeefcb98a3d1"
+ hash: "d5bde2f063d524ac0e7bcef26d543668"
}
Frame {
msec: 4064
- hash: "fb6667f1c516187cfb93774469ea8165"
+ hash: "64e7bc5e0798ecd009fd05cbc1523977"
}
Frame {
msec: 4080
- hash: "fba776d4d3056bf64e335de876e118be"
+ hash: "3c87a9ee92661da2aacc09b71dd393ca"
}
Frame {
msec: 4096
- hash: "a49aa08c4bd8a1ae9420e0962cf77e01"
+ hash: "bf4806e0e8cb73cded37ca97966078d7"
}
Frame {
msec: 4112
- hash: "bff31d464ae9fc68adf0c8072b637592"
+ hash: "a5956031dac15dba64bf49c9d308c9c7"
}
Frame {
msec: 4128
- hash: "23bd0afacb2d9bd009c9b5006dc6adf1"
+ hash: "51395284acf731266eaed86387ad768a"
}
Frame {
msec: 4144
- hash: "d918e94e5be77741d1172fbf960db07e"
+ hash: "489ab28b773d48b8fdf9cf674b1da87f"
}
Frame {
msec: 4160
- hash: "9abce75f201e20a730e79a672bf837e8"
+ hash: "4c6a5b7442a4ff241329157657b8c9f7"
}
Frame {
msec: 4176
- hash: "aae93f5e2a2c6e06dbe78bea4e6b1283"
+ hash: "629faa780676c705ca8349b8765ed38b"
}
Frame {
msec: 4192
- hash: "66cba82f479ae6536800b05f6d694884"
+ hash: "28654cb8801bea906a4f181004ed0e85"
}
Frame {
msec: 4208
- hash: "d79d43b820c4a53735cfb84288dd5efd"
+ hash: "2abf774ccf33e6d0af4a8c4154e2ab2a"
}
Frame {
msec: 4224
- hash: "fe0237b64a2ef664ce2c3028b730fdc4"
+ hash: "f1cbdf35081b08b676d1661834829c9a"
}
Frame {
msec: 4240
- hash: "771b02756dadb0a1f268166138f7cad4"
+ hash: "a49ef4ec40d59be1e872c6f8bcdbbb4c"
}
Frame {
msec: 4256
- hash: "cbd224a02668f57413b6999dfb141723"
+ hash: "dab02c8afd3914177bfdf29e68b54291"
}
Frame {
msec: 4272
- hash: "f770a74ce40615095798b244af3cc097"
+ hash: "7bdca9571a346117277b0de6fa1f6e5e"
}
Frame {
msec: 4288
- hash: "faea3d28eb65656392860d888ec087b1"
+ hash: "11dc19768b1a4a787f46082a583c068c"
}
Frame {
msec: 4304
- hash: "1f1d5ee10403184ab83ec5c1f94c4290"
+ hash: "5e72d13702108d55d650a01c1caf2cfb"
}
Frame {
msec: 4320
- hash: "501253b40939d98beac9db85d3cd5b4b"
+ hash: "e5a379841ae54f07d54c4baa78fa7b69"
}
Frame {
msec: 4336
- hash: "0819ece70a98a3ea4371947375b52d46"
+ hash: "88d2363709d377cad251dc956b0ff866"
}
Frame {
msec: 4352
- hash: "2b5f64e4a03aa416a4cf172c99aec498"
+ hash: "5e6db7322e69f41d37efdd35a769df4e"
}
Frame {
msec: 4368
- hash: "931a6fa175b8d540fc745d425a9b93b3"
+ hash: "cc781d136bb48a1a41bd9243327bacc3"
}
Frame {
msec: 4384
- hash: "fa6f54fae79a428029fbd0ae6481bcc5"
+ hash: "69612d6379a204fa1e1c6d7b58f78370"
}
Frame {
msec: 4400
- hash: "7796756dfd30688ed74c2e6e0b05ca5a"
+ hash: "a81c15225bc81a19e22375532a5457ab"
}
Frame {
msec: 4416
- hash: "b42cfbfe1527412b977b8e2c7506cdf0"
+ hash: "a97bb0ac528a1377ef8f6bf655795b69"
}
Frame {
msec: 4432
- hash: "c81300e8d29770c0efd2ab91d75a669a"
+ hash: "7fa6d66219c66ae8aec43e44626b427a"
}
Frame {
msec: 4448
- hash: "923494f5147a85432e6efbcf5b79e26a"
+ hash: "99f47bc80b706692f16c6c5fa3c0c85d"
}
Frame {
msec: 4464
- hash: "3aaffee732cb243bbda5df938f487b2d"
+ hash: "55d6cf7f545c74ed59a8bf040f9d5d58"
}
Frame {
msec: 4480
- hash: "ce8e33f621c7f5cd5047da86bdef4084"
+ hash: "1a07d14fa7866c5268e622d0925cbf4d"
}
Frame {
msec: 4496
- hash: "55e2bc371ea853ee4f3ba22e35c20e8e"
+ hash: "a41b281563c401d0e4ff55f4a3c45e18"
}
Frame {
msec: 4512
- hash: "e8bec4813a6c8f212c70019f907ba904"
+ hash: "6bff67c2f53a4e620c63eea539f4abe0"
}
Frame {
msec: 4528
- hash: "aae9dd25ca9935c478e5d9fa629c6f70"
+ hash: "a5f06e5ff2fd7f390279f7df822c8297"
}
Frame {
msec: 4544
- hash: "30828a796072deb6e6505090dbc2c840"
+ hash: "213b174770c13105b89a1d88cd2f0b7c"
}
Frame {
msec: 4560
- hash: "c8ebeb539a6ebb2ca47544f7f1617da9"
+ hash: "dde34ca92317a54ddaa2f9bff515d91c"
}
Frame {
msec: 4576
- hash: "3ad9a23b57b0938a430c636910dc312f"
+ hash: "12446cca2aae19fd721cda11bbb51bae"
}
Frame {
msec: 4592
- hash: "1a12587ebbae18dd761c70c4ed845fa5"
+ hash: "f4d00502cab0a843563fcfd336b74596"
}
Frame {
msec: 4608
- hash: "f1d6ee0cd7aaa221d151c2d32e963358"
+ hash: "b6ae2b396adf6068ef3a6027e4b175db"
}
Frame {
msec: 4624
- hash: "e9bbf398abc09d9740dce4e3843c53f4"
+ hash: "370dabffdfc0bebf5d25abfaefff399c"
}
Frame {
msec: 4640
- hash: "f839c105f1897f028611d557b11f5814"
+ hash: "fd496e8c03f85a872bd5ee6e8a85db7f"
}
Frame {
msec: 4656
- hash: "b923b46ccfe53ceb7ea228b12f44842d"
+ hash: "0999335427d63f318e166ea8662c4c22"
}
Frame {
msec: 4672
- hash: "8e3708a8f2ba63f7cb01b8d66d1b3dec"
+ hash: "5a4eb9267cd35a71f6c2daaca1a582be"
}
Frame {
msec: 4688
- hash: "68659fce94c9d019a1d5da6273186674"
+ hash: "4270d7a26d56f1d805b647c5ec7cc6ce"
}
Frame {
msec: 4704
- hash: "56797caf6f2987b7d03c0401871d87e3"
+ hash: "334f1e3c8520196016352bf4d00fbc18"
}
Frame {
msec: 4720
- hash: "de0d89aaa5b1ce0ed99d2906b63e7434"
+ hash: "2bf704e85c197c776a188927a80deaad"
}
Frame {
msec: 4736
- hash: "e3802a76b64eeaeae06b23134b5198a9"
+ hash: "e2c5c42e55dc185977bd5049eb4bd3d2"
}
Frame {
msec: 4752
- hash: "1a3ddf57aa429a407705ae268441c5b5"
+ hash: "7ead4353fdc135d6b959be0ce22955e3"
}
Frame {
msec: 4768
- hash: "319b09c0e4a8c0d1f507594b53a407c4"
+ hash: "ab42998e1e17ac8637d76dc0cf356c7a"
}
Frame {
msec: 4784
- hash: "fd54c9ee19133b0f75c56e4d6472cdad"
+ hash: "030f34f8caf0814eaaf18ea5fda669dd"
}
Frame {
msec: 4800
- hash: "e6b983b491133a41b753411c587c69ec"
+ hash: "6e12a04ac25553142875a10a5c8e46e8"
}
Frame {
msec: 4816
@@ -1210,114 +1210,114 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "2760407d7defa4738d7b9ecb243f41a9"
+ hash: "e2f2ab9a3fe6a3a375341010c91017bd"
}
Frame {
msec: 4848
- hash: "1ff562f05454980d4f677e783ba4bf75"
+ hash: "9301889debd3932772a1c81314eb1ef2"
}
Frame {
msec: 4864
- hash: "43ad6e0926f812af5553e3a8492404e9"
+ hash: "671feec6eb1166c612a22405db9c044e"
}
Frame {
msec: 4880
- hash: "b9c34d52c0c44dcdf8a2ca8a0e20ae65"
+ hash: "648215ffa5448dc173165d24389c014e"
}
Frame {
msec: 4896
- hash: "4fd7f6d183626686569462a9828837d2"
+ hash: "a70806b54806f29d0e240cd63d86b77e"
}
Frame {
msec: 4912
- hash: "3b904440f68aa0009707b5f3a0c2af74"
+ hash: "4bf9ffe611c52c21fbdb84221d3d4dba"
}
Frame {
msec: 4928
- hash: "cc58910f0881ec5b3cb2eec404c19e16"
+ hash: "ae78202b0ebd4c13a92d468a7470bdc9"
}
Frame {
msec: 4944
- hash: "8b638f369c3629530d91e6acac8c5fdf"
+ hash: "fb0c3d6c3e3479abb6a1b44b1a5f3785"
}
Frame {
msec: 4960
- hash: "b403e21b14646ac0cdaee2027125c0ad"
+ hash: "48906c21e17479807f736d7f7713f6b0"
}
Frame {
msec: 4976
- hash: "d037545cc68b7582c400c8c9da49ff2a"
+ hash: "a661a461542b3078dd1dad25bf6d8414"
}
Frame {
msec: 4992
- hash: "551435ecb008ff217eb65a5a77a28090"
+ hash: "387deb0df0c59cfb120313946c4e5c9a"
}
Frame {
msec: 5008
- hash: "a1684c1c0938386bbfb309969114beee"
+ hash: "f2473c6e4877f3035f0b511ff2d27684"
}
Frame {
msec: 5024
- hash: "c95868a45ccb031ea1d440bedd1fc33f"
+ hash: "f88d3767ccd773930ef9d99dfd0e8c17"
}
Frame {
msec: 5040
- hash: "eb78d75fbf3ef0b88c072f69ac3f490d"
+ hash: "aef8a93d2caafec839d425184176bcc7"
}
Frame {
msec: 5056
- hash: "6f612fe36fa8028a75f6149390bd3585"
+ hash: "e73c4521144b2c810f15239e6d8fa468"
}
Frame {
msec: 5072
- hash: "7906071fe656ccf18d24c100950b6a7a"
+ hash: "a66856750cc5aa7a21ffb6e0a9c94306"
}
Frame {
msec: 5088
- hash: "064a0b9a0adb235fd52a6d53b65c9d1c"
+ hash: "22bce57e360790c356564a0568ec3bee"
}
Frame {
msec: 5104
- hash: "f42b6952937376ae34f7ef493e86aee6"
+ hash: "55edcaeed37c1390eee2619d52a2eb03"
}
Frame {
msec: 5120
- hash: "3444491cc10b0ae2f298ac3aefcda77c"
+ hash: "51d8495324954f1bd62caa67d15e9ab2"
}
Frame {
msec: 5136
- hash: "ce5adf6c5c4d5e385ce7e461e380b00e"
+ hash: "bfcbba7e970af922ee87fbbe936eaa84"
}
Frame {
msec: 5152
- hash: "6b6c1a422f778935b400c9a170439ec4"
+ hash: "a7652fe427ca7b8ef37dbf9a6097f8af"
}
Frame {
msec: 5168
- hash: "fdaff741a826c10cb9799adc70d92145"
+ hash: "d5ab00fc274a7fd568af514c55f24e04"
}
Frame {
msec: 5184
- hash: "259da9a4c2bb9c89d16dd1943645e836"
+ hash: "71fd1fe13a14632ff54ad7a87be68bca"
}
Frame {
msec: 5200
- hash: "fd2903f4b3d7086981a89e87e460a7ba"
+ hash: "761f9b41ce4136619f89c73746ab176e"
}
Frame {
msec: 5216
- hash: "9860af14b459925078467f334bf41e42"
+ hash: "cfd826f91f6f880816d505c93a8f125a"
}
Frame {
msec: 5232
- hash: "ae2b8b255d48c12a954f02c63e0d5aa4"
+ hash: "33fbc77640cc73c17a0f68db5f70ddec"
}
Frame {
msec: 5248
- hash: "c33e9369e76654433e97b2b72cca7911"
+ hash: "ef925f6709f7603d8acddbbe3e3b0426"
}
Frame {
msec: 5264
- hash: "7fa3de8afdeb61c6e2e87cde2e96152f"
+ hash: "044c1f37e37a68fbfbb9ddbc2da4300a"
}
}
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..8d74b8d 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..8a642d2 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..5698741 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..7f56f34 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..8d74b8d 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..a4ba005 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: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 48
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 64
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 80
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 96
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 112
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 128
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 144
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 160
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 176
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 192
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 208
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 224
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 240
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 256
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 272
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 288
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 304
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 320
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 336
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 352
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 368
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 384
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Key {
type: 6
@@ -110,15 +110,15 @@ VisualTest {
}
Frame {
msec: 400
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 416
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 432
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 7
@@ -130,27 +130,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 464
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 480
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 496
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 512
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 528
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 6
@@ -162,15 +162,15 @@ VisualTest {
}
Frame {
msec: 544
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 560
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 576
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 7
@@ -182,27 +182,27 @@ VisualTest {
}
Frame {
msec: 592
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 608
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 624
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 640
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 656
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 672
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 6
@@ -214,19 +214,19 @@ VisualTest {
}
Frame {
msec: 688
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 704
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 720
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 736
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 7
@@ -238,23 +238,23 @@ VisualTest {
}
Frame {
msec: 752
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 768
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 784
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 800
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 816
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 6
@@ -266,19 +266,19 @@ VisualTest {
}
Frame {
msec: 832
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 848
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 864
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 880
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 7
@@ -290,19 +290,19 @@ VisualTest {
}
Frame {
msec: 896
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 912
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 928
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 944
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 6
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 976
@@ -322,11 +322,11 @@ VisualTest {
}
Frame {
msec: 992
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1008
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 7
@@ -338,23 +338,23 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1040
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1056
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1072
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1088
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1120
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1136
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 7
@@ -386,23 +386,23 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1168
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1184
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1200
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1216
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 6
@@ -414,19 +414,19 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1248
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1264
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1280
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 7
@@ -438,19 +438,19 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1312
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1328
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1344
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 6
@@ -462,19 +462,19 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1376
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1392
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1408
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 7
@@ -486,23 +486,23 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1440
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1456
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1472
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1488
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 6
@@ -514,15 +514,15 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1520
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1536
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Key {
type: 7
@@ -534,79 +534,79 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1568
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1584
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1600
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1616
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1632
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1648
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1664
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1680
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1696
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1712
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1728
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1744
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1760
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1776
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1792
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1808
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1824
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1840
- hash: "79ad12250ec5379ed79ad01604968fe0"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Key {
type: 6
@@ -618,23 +618,23 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1872
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1888
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1904
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1920
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1936
@@ -642,15 +642,15 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1968
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1984
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 7
@@ -662,23 +662,23 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2016
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2032
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2048
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2064
- hash: "0a110e257ae412b8440a17be98a6b7f5"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 6
@@ -690,23 +690,23 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2096
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2112
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2128
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2144
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 7
@@ -718,23 +718,23 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2176
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2192
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2208
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2224
- hash: "162c39ecb50d0a2a03953cca07c493ff"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 6
@@ -746,11 +746,11 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2256
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 7
@@ -762,23 +762,23 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2288
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2304
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2320
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2336
- hash: "0386e92fe3ea2eda40b6f785419cf9f7"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 6
@@ -790,15 +790,15 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2368
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2384
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 7
@@ -810,55 +810,55 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2416
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2432
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2448
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2464
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2480
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2496
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2512
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2528
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2544
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2560
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2576
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2592
- hash: "671d2393c31db71d33cd29482294b855"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 6
@@ -870,23 +870,23 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2624
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2640
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2656
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2672
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 7
@@ -898,23 +898,23 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2704
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2720
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2736
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2752
- hash: "59923f379655d063d27641c88064c071"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 6
@@ -926,15 +926,15 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2784
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2800
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 7
@@ -946,19 +946,19 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2832
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2848
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2864
- hash: "5815bbb03307e196fa567ae273366394"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 6
@@ -970,7 +970,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2896
@@ -978,11 +978,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2928
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 7
@@ -994,23 +994,23 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2960
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2976
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2992
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 3008
- hash: "7f418dcd1c4ef954cbb66e16361b8871"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 6
@@ -1022,23 +1022,23 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3040
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3056
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3072
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3088
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 7
@@ -1050,155 +1050,155 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3120
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3136
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3152
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3168
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3184
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3200
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3216
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3232
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3248
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3264
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3280
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3296
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3312
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3328
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3344
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3360
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3376
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3392
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3408
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3424
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3440
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3456
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3472
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3488
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3504
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3520
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3536
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3552
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3568
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3584
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3600
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3616
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3632
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3648
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3664
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3680
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3696
- hash: "ff9e0c6cfbbbd68708698875037ac3d3"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 6
@@ -1210,27 +1210,27 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3728
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3744
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3760
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3776
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3792
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Key {
type: 7
@@ -1242,15 +1242,15 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3824
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3840
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3856
@@ -1258,114 +1258,114 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3888
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3904
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3920
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3936
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3952
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3968
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3984
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4000
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4016
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4032
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4048
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4064
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4080
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4096
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4112
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4128
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4144
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4160
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4176
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4192
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4208
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4224
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4240
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4256
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4272
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4288
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4304
- hash: "5efa0360e73361a50a5fb4e2b7a650b5"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
}
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 a6593c9..63b1779 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 c9e17f9..7924652 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..e77bfde 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..67d7e52 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..ee29db6 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
@@ -10,7 +10,7 @@ VisualTest {
}
Frame {
msec: 32
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Key {
type: 6
@@ -22,83 +22,83 @@ VisualTest {
}
Frame {
msec: 48
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 64
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 80
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 96
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 112
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 128
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 144
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 160
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 176
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 192
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 208
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 224
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 240
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 256
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 272
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 288
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 304
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 320
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 336
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 352
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Key {
type: 6
@@ -110,23 +110,23 @@ VisualTest {
}
Frame {
msec: 368
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 384
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 400
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 416
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 432
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 7
@@ -138,27 +138,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 464
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 480
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 496
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 512
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 528
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 7
@@ -170,43 +170,43 @@ VisualTest {
}
Frame {
msec: 544
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 560
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 576
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 592
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 608
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 624
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 640
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 656
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 672
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 688
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 6
@@ -218,23 +218,23 @@ VisualTest {
}
Frame {
msec: 704
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 720
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 736
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 752
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 768
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Key {
type: 7
@@ -246,23 +246,23 @@ VisualTest {
}
Frame {
msec: 784
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 800
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 816
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 832
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 848
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Key {
type: 6
@@ -274,15 +274,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 880
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 896
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Key {
type: 7
@@ -294,19 +294,19 @@ VisualTest {
}
Frame {
msec: 912
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 928
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 944
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 960
- hash: "24a0a2f12031b23a98d65178f0d6d58d"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 976
@@ -322,19 +322,19 @@ VisualTest {
}
Frame {
msec: 992
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1008
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1024
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1040
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Key {
type: 7
@@ -346,51 +346,51 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1072
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1088
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1104
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1120
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1136
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1152
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1168
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1184
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1200
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1216
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1232
- hash: "7dde2dd8afe7283dd0601b12831f8946"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Key {
type: 6
@@ -402,15 +402,15 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1264
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1280
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Key {
type: 7
@@ -422,15 +422,15 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1312
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1328
- hash: "e098aa83b3287f67aba57e134e871d62"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Key {
type: 6
@@ -442,39 +442,39 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1360
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1376
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1392
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1408
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1424
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1440
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1456
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1472
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "3f0a9e0cfd6937c943273bc1d39ce336"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Key {
type: 6
@@ -498,19 +498,19 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1520
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1536
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1552
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Key {
type: 7
@@ -522,27 +522,27 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1584
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1600
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1616
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1632
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1648
- hash: "b78259d22dd86c1dd7ba722795e7e155"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Key {
type: 6
@@ -554,23 +554,23 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "1402f8182c74124a1fb34ecd78fa4819"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1680
- hash: "1402f8182c74124a1fb34ecd78fa4819"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1696
- hash: "1402f8182c74124a1fb34ecd78fa4819"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1712
- hash: "1402f8182c74124a1fb34ecd78fa4819"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1728
- hash: "1402f8182c74124a1fb34ecd78fa4819"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Key {
type: 6
@@ -582,7 +582,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 7
@@ -594,15 +594,15 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1776
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1792
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 7
@@ -614,19 +614,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1824
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1840
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1856
- hash: "93d5b02d77829aef8f8afa0f5a9e93d1"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 6
@@ -638,19 +638,19 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1888
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1904
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1920
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Key {
type: 7
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1968
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1984
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 2000
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 2016
- hash: "1f3b2da0ad387187f202857ed9bb4934"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Key {
type: 6
@@ -694,11 +694,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "f2fd02bca5f5bf26013957e11d3f11ce"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Frame {
msec: 2048
- hash: "f2fd02bca5f5bf26013957e11d3f11ce"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "f2fd02bca5f5bf26013957e11d3f11ce"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Frame {
msec: 2080
- hash: "f2fd02bca5f5bf26013957e11d3f11ce"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Key {
type: 6
@@ -726,19 +726,19 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "550f7f60df621c951ce7d5271aabc41f"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2112
- hash: "550f7f60df621c951ce7d5271aabc41f"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2128
- hash: "550f7f60df621c951ce7d5271aabc41f"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2144
- hash: "550f7f60df621c951ce7d5271aabc41f"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Key {
type: 6
@@ -758,19 +758,19 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "d2aca851dde9f96747d3f54fb831144a"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2176
- hash: "d2aca851dde9f96747d3f54fb831144a"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2192
- hash: "d2aca851dde9f96747d3f54fb831144a"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2208
- hash: "d2aca851dde9f96747d3f54fb831144a"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Key {
type: 6
@@ -782,7 +782,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 7
@@ -794,23 +794,23 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2256
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2272
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2288
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2304
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 7
@@ -822,11 +822,11 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2336
- hash: "9ed75a4dc5b88fe1c1531833db1dd364"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 6
@@ -838,27 +838,27 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2368
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2384
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2400
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2416
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2432
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Key {
type: 7
@@ -870,19 +870,19 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2464
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2480
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2496
- hash: "39079b642f00ea767114d5a831be939a"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Key {
type: 6
@@ -894,15 +894,15 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2528
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2544
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Key {
type: 7
@@ -914,87 +914,87 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2576
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2592
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2608
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2624
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2640
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2656
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2672
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2688
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2704
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2720
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2736
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2752
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2768
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2784
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2800
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2816
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2832
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2848
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2864
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2880
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2896
@@ -1002,42 +1002,42 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2928
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2944
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2960
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2976
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2992
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3008
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3024
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3040
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3056
- hash: "92035cf4d7df9e637567c7834f23b030"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
}
--
cgit v0.12
From a3967216f29b3ec8303c7aa71959dd30ae18ecc3 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen
Date: Fri, 3 Dec 2010 11:06:29 +0200
Subject: Unify epocroot usage in createpackage and patch_capabilities scripts
Some tools calls required epoc32/tools to be in path and some didn't.
Now all tools calls will use tools from under %EPOCROOT%epoc32/tools
if EPOCROOT env variable is defined.
Reviewed-by: Janne Koskinen
---
bin/createpackage.pl | 15 +++++++--------
bin/patch_capabilities.pl | 16 ++++++++++++----
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index 6b83585..87ed29e 100755
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -144,11 +144,13 @@ unless (GetOptions('i|install' => \$install,
}
my $epocroot = $ENV{EPOCROOT};
+my $epocToolsDir = "";
if ($epocroot ne "") {
$epocroot =~ s,\\,/,g;
if ($epocroot =~ m,[^/]$,) {
$epocroot = $epocroot."/";
}
+ $epocToolsDir = "${epocroot}epoc32/tools/";
}
my $certfilepath = abs_path(dirname($certfile));
@@ -341,7 +343,7 @@ if($stub) {
mkpath($systeminstall);
my $stub_sis_name = $systeminstall."/".$stub_sis_name;
# Create stub SIS.
- system ("${epocroot}epoc32/tools/makesis -s $pkgoutput $stub_sis_name");
+ system ("${epocToolsDir}makesis -s $pkgoutput $stub_sis_name");
} else {
if ($certtext eq "Self Signed"
&& !@certificates
@@ -358,11 +360,8 @@ if($stub) {
# Create SIS.
# The 'and' is because system uses 0 to indicate success.
- if($epocroot) {
- system ("${epocroot}epoc32/tools/makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
- } else {
- system ("makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
- }
+ system ("${epocToolsDir}makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
+
print("\n");
my $targetInsert = "";
@@ -389,7 +388,7 @@ if($stub) {
my $relcert = File::Spec->abs2rel($certificate);
my $relkey = File::Spec->abs2rel($key);
# The 'and' is because system uses 0 to indicate success.
- system ("signsis $unsigned_sis_name $signed_sis_name $relcert $relkey $passphrase") and die ("ERROR: signsis failed");
+ system ("${epocToolsDir}signsis $unsigned_sis_name $signed_sis_name $relcert $relkey $passphrase") and die ("ERROR: signsis failed");
# Check if creating signed SIS Succeeded
stat($signed_sis_name);
@@ -402,7 +401,7 @@ if($stub) {
my $relcert = File::Spec->abs2rel(File::Spec->rel2abs( $row->[0], $certfilepath));
my $relkey = File::Spec->abs2rel(File::Spec->rel2abs( $row->[1], $certfilepath));
- system ("signsis $signed_sis_name $signed_sis_name $relcert $relkey $row->[2]");
+ system ("${epocToolsDir}signsis $signed_sis_name $signed_sis_name $relcert $relkey $row->[2]");
print ("\tAdditionally signed the SIS with certificate: $row->[0]!\n");
}
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index df71339..c3fb89f 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -78,6 +78,16 @@ sub trim($) {
return $string;
}
+my $epocroot = $ENV{EPOCROOT};
+my $epocToolsDir = "";
+if ($epocroot ne "") {
+ $epocroot =~ s,\\,/,g;
+ if ($epocroot =~ m,[^/]$,) {
+ $epocroot = $epocroot."/";
+ }
+ $epocToolsDir = "${epocroot}epoc32/tools/";
+}
+
my $nullDevice = "/dev/null";
$nullDevice = "NUL" if ($^O =~ /MSWin/);
@@ -237,7 +247,7 @@ if (@ARGV)
}
print ("\n");
- my $baseCommandToExecute = "elftran -vid 0x0 -capability \"%s\" ";
+ my $baseCommandToExecute = "${epocToolsDir}elftran -vid 0x0 -capability \"%s\" ";
# Actually set the capabilities of the listed binaries.
foreach my $binaryPath(@binaries)
@@ -256,7 +266,7 @@ if (@ARGV)
# 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 ("ERROR: Could not execute elftran");
+ open($dllCaps, "${epocToolsDir}elftran -dump s $binaryPath |") or die ("ERROR: Could not execute elftran");
my $capsFound = 0;
my $originalVid;
my @capabilitiesToSet;
@@ -329,8 +339,6 @@ if (@ARGV)
system ("$commandToExecute > $nullDevice");
$somethingPatched = true;
}
- ## Create another command line to check that the set capabilities are correct.
- #$commandToExecute = "elftran -dump s ".$binaryPath;
}
if ($checkFailed) {
--
cgit v0.12
From 2eec8cbb2227db6e84a268d53591dd2ef026cbeb Mon Sep 17 00:00:00 2001
From: Mark Brand
Date: Fri, 3 Dec 2010 13:38:11 +0100
Subject: purge vestiges of imageformat-plugins
The imageformat-plugins variable is never referenced by the .pr[io] for
building Qt. Its presence in configure.exe appears to be a vestige of
an earlier state of affairs.
As a reminder, jpeg, mng, tiff and gif can be built into QtGui or built
as plugins. The default is plugin. During configuration, this can be
overridden by adding, for example, "no-jpeg" to disable support
altogether or "jpeg" to build into QtGui.
Merge-request: 961
Reviewed-by: Oswald Buddenhagen
---
tools/configure/configureapp.cpp | 8 --------
tools/configure/configureapp.h | 2 --
2 files changed, 10 deletions(-)
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index f4fd7c6..9649aba 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2471,15 +2471,11 @@ void Configure::generateOutputVars()
qtConfig += "no-gif";
else if (dictionary[ "GIF" ] == "yes")
qtConfig += "gif";
- else if (dictionary[ "GIF" ] == "plugin")
- qmakeFormatPlugins += "gif";
if (dictionary[ "TIFF" ] == "no")
qtConfig += "no-tiff";
else if (dictionary[ "TIFF" ] == "yes")
qtConfig += "tiff";
- else if (dictionary[ "TIFF" ] == "plugin")
- qmakeFormatPlugins += "tiff";
if (dictionary[ "LIBTIFF" ] == "system")
qtConfig += "system-tiff";
@@ -2487,8 +2483,6 @@ void Configure::generateOutputVars()
qtConfig += "no-jpeg";
else if (dictionary[ "JPEG" ] == "yes")
qtConfig += "jpeg";
- else if (dictionary[ "JPEG" ] == "plugin")
- qmakeFormatPlugins += "jpeg";
if (dictionary[ "LIBJPEG" ] == "system")
qtConfig += "system-jpeg";
@@ -2807,8 +2801,6 @@ void Configure::generateOutputVars()
qmakeVars += QString("styles += ") + qmakeStyles.join(" ");
if (!qmakeStylePlugins.isEmpty())
qmakeVars += QString("style-plugins += ") + qmakeStylePlugins.join(" ");
- if (!qmakeFormatPlugins.isEmpty())
- qmakeVars += QString("imageformat-plugins += ") + qmakeFormatPlugins.join(" ");
if (dictionary["QMAKESPEC"].endsWith("-g++")) {
QString includepath = qgetenv("INCLUDE");
diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h
index b3c07f7..32d1860 100644
--- a/tools/configure/configureapp.h
+++ b/tools/configure/configureapp.h
@@ -122,8 +122,6 @@ private:
QStringList qmakeStyles;
QStringList qmakeStylePlugins;
- QStringList qmakeFormatPlugins;
-
QStringList qmakeVars;
QStringList qmakeDefines;
// makeList[0] for qt and qtmain
--
cgit v0.12
From 401ce2a3be40047bdbc3e66be1d88e371a316e16 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen
Date: Wed, 24 Nov 2010 12:47:25 +0100
Subject: build lrelease as part of the "libs" part.
currently it is a bootstrapped tool like moc, rcc and uic in src/tools/,
so just force it into the same group. every qt build includes the libs
part, so this will resolve the translation part's dependency.
---
configure | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 059aa1a..e5f5745 100755
--- a/configure
+++ b/configure
@@ -8530,8 +8530,8 @@ PART_ROOTS=
for part in $CFG_BUILD_PARTS; do
case "$part" in
tools) PART_ROOTS="$PART_ROOTS tools" ;;
- libs) PART_ROOTS="$PART_ROOTS src" ;;
- translations) PART_ROOTS="$PART_ROOTS tools/linguist/lrelease translations" ;;
+ libs) PART_ROOTS="$PART_ROOTS src tools/linguist/lrelease" ;;
+ translations) PART_ROOTS="$PART_ROOTS translations" ;;
examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
*) ;;
esac
--
cgit v0.12
From 64836cf058266ac6251d6ff9ae24df655159ac27 Mon Sep 17 00:00:00 2001
From: Oleh Vasyura
Date: Mon, 22 Nov 2010 15:26:06 +0200
Subject: Synchronized configure.exe OpenGL options with Unix configure
Windows configure tool and Linux configure script use different options for OpenGL modules.
Windows configure tool uses -opengl-es-cm and -opengl-es-2.
Linux configure script uses -opengl where can be as "desktop", "es1", "es2" and are more common.
Windows configure tool is changed to understand Linux OpenGL configure options as well.
The old options are retained for compatibility but not documented any
more.
Reviewed-by: ossi
---
tools/configure/configureapp.cpp | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 9649aba..050ad62 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -741,6 +741,23 @@ void Configure::parseCmdLine()
} else if (configCmdLine.at(i) == "-opengl-es-2") {
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else if (configCmdLine.at(i) == "-opengl") {
+ dictionary[ "OPENGL" ] = "yes";
+ i++;
+ if (i == argCount)
+ break;
+
+ if (configCmdLine.at(i) == "es1") {
+ dictionary[ "OPENGL_ES_CM" ] = "yes";
+ } else if ( configCmdLine.at(i) == "es2" ) {
+ dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else if ( configCmdLine.at(i) == "desktop" ) {
+ dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else {
+ cout << "Argument passed to -opengl option is not valid." << endl;
+ dictionary[ "DONE" ] = "error";
+ break;
+ }
}
// OpenVG Support -------------------------------------------
@@ -1735,6 +1752,11 @@ bool Configure::displayHelp()
desc("QT3SUPPORT", "no","-no-qt3support", "Disables the Qt 3 support functionality.\n");
desc("OPENGL", "no","-no-opengl", "Disables OpenGL functionality\n");
+ desc("OPENGL", "no","-opengl ", "Enable OpenGL support with specified API version.\n"
+ "Available values for :");
+ desc("", "", "", " desktop - Enable support for Desktop OpenGL", ' ');
+ desc("OPENGL_ES_CM", "no", "", " es1 - Enable support for OpenGL ES Common Profile", ' ');
+ desc("OPENGL_ES_2", "no", "", " es2 - Enable support for OpenGL ES 2.0", ' ');
desc("OPENVG", "no","-no-openvg", "Disables OpenVG functionality\n");
desc("OPENVG", "yes","-openvg", "Enables OpenVG functionality");
@@ -1895,8 +1917,7 @@ bool Configure::displayHelp()
desc("CETEST", "no", "-no-cetest", "Do not compile Windows CE remote test application");
desc("CETEST", "yes", "-cetest", "Compile Windows CE remote test application");
desc( "-signature ", "Use file for signing the target project");
- desc("OPENGL_ES_CM", "no", "-opengl-es-cm", "Enable support for OpenGL ES Common");
- desc("OPENGL_ES_2", "no", "-opengl-es-2", "Enable support for OpenGL ES 2.0");
+
desc("DIRECTSHOW", "no", "-phonon-wince-ds9", "Enable Phonon Direct Show 9 backend for Windows CE");
// Qt\Symbian only options go below here -----------------------------------------------------------------------------
--
cgit v0.12
From 0359135db3ece1eced29b7c867c10f9bd3b7c4bf Mon Sep 17 00:00:00 2001
From: Oleh Vasyura
Date: Wed, 17 Nov 2010 14:31:29 +0200
Subject: Adding -dont-process option to Unix configure script
This option is supported by Windows configure tool and used in Symbian releases.
Reviewed-by: ossi
---
configure | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/configure b/configure
index e5f5745..5687505 100755
--- a/configure
+++ b/configure
@@ -800,6 +800,7 @@ CFG_ALSA=auto
CFG_PULSEAUDIO=auto
CFG_COREWLAN=auto
CFG_ICD=auto
+CFG_NOPROCESS=no
# initalize variables used for installation
QT_INSTALL_PREFIX=
@@ -2236,6 +2237,12 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ dont-process)
+ CFG_NOPROCESS=yes
+ ;;
+ process)
+ CFG_NOPROCESS=no
+ ;;
audio-backend)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_AUDIO_BACKEND="$VAL"
@@ -8397,11 +8404,13 @@ EXEC=""
#-------------------------------------------------------------------------------
echo "Finding project files. Please wait..."
-"$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
-if [ -f "${relpath}/projects.pro" ]; then
- mkfile="${outpath}/Makefile"
- [ -f "$mkfile" ] && chmod +w "$mkfile"
- QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
+if [ "$CFG_NOPROCESS" != "yes" ]; then
+ "$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
+ if [ -f "${relpath}/projects.pro" ]; then
+ mkfile="${outpath}/Makefile"
+ [ -f "$mkfile" ] && chmod +w "$mkfile"
+ QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
+ fi
fi
# .projects -> projects to process
@@ -8558,13 +8567,17 @@ for file in .projects .projects.3; do
*winmain/winmain.pro)
[ "$XPLATFORM_MINGW" = "yes" ] || continue
SPEC=$XQMAKESPEC ;;
- *s60main/s60main.pro) if [ -z "`echo "$XPLATFORM" | grep "symbian" >/dev/null`" ]; then
+ *s60main/s60main.pro) if [ "$CFG_NOPROCESS" = "yes" ] || [ -z "`echo "$XPLATFORM" | grep "symbian" >/dev/null`"]; then
continue
fi;;
*examples/activeqt/*) continue ;;
*/qmake/qmake.pro) continue ;;
*tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*linguist/lrelease*) SPEC=$QMAKESPEC ;;
- *) SPEC=$XQMAKESPEC ;;
+ *) if [ "$CFG_NOPROCESS" = "yes" ]; then
+ continue
+ else
+ SPEC=$XQMAKESPEC
+ fi;;
esac
dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
test -d "$dir" || mkdir -p "$dir"
--
cgit v0.12
From 62385d41ba287908439fb97ab079951e136a9039 Mon Sep 17 00:00:00 2001
From: Oleh Vasyura
Date: Wed, 17 Nov 2010 14:34:30 +0200
Subject: VFP type on ARM option in Linux configure script
Windows configuration tool uses -fpu option for VFP types.
This option is used in Symbian releases but is not supported by
Linux configure script.
Reviewed-by: ossi
---
configure | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 5687505..6eb2a99 100755
--- a/configure
+++ b/configure
@@ -840,6 +840,9 @@ QT_LIBS_GLIB=
QT_CFLAGS_GSTREAMER=
QT_LIBS_GSTREAMER=
+#flag for Symbian fpu settings
+QT_CFLAGS_FPU=
+
# flags for libconnsettings0 (used for Maemo ICD bearer management plugin)
QT_CFLAGS_CONNSETTINGS=
QT_LIBS_CONNSETTINGS=
@@ -1072,6 +1075,16 @@ while [ "$#" -gt 0 ]; do
VAL=`echo $1 | sed 's,-D,,'`
fi
;;
+ -fpu)
+ VAR="fpu"
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=no
+ else
+ shift
+ VAL=$1
+ fi
+ ;;
-I?*|-I)
VAR="add_ipath"
if [ "$1" = "-I" ]; then
@@ -2250,6 +2263,11 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ fpu)
+ if [ "$VAL" != "no" ]; then
+ QT_CFLAGS_FPU=$VAL
+ fi
+ ;;
*)
UNKNOWN_OPT=yes
;;
@@ -7944,6 +7962,12 @@ if [ "$CFG_DEV" = "yes" ]; then
QT_CONFIG="$QT_CONFIG private_tests"
fi
+if [ -z "$QT_CFLAGS_FPU" ]; then
+ if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
+ QT_CFLAGS_FPU=softvfp
+ fi
+fi
+
# Make the application arch follow the Qt arch for single arch builds.
# (for multiple-arch builds, set CONFIG manually in the application .pro file)
if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
@@ -7977,10 +8001,11 @@ if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
fi
-if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
+if [ -n "$QT_CFLAGS_FPU" ]; then
echo "#Qt for symbian FPU settings" >> "$QTCONFIG.tmp"
- echo "MMP_RULES += \"ARMFPU softvfp\"" >> "$QTCONFIG.tmp"
+ echo "MMP_RULES += \"ARMFPU $QT_CFLAGS_FPU\"" >> "$QTCONFIG.tmp"
fi
+
# replace qconfig.pri if it differs from the newly created temp file
if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
rm -f "$QTCONFIG.tmp"
--
cgit v0.12
From b611d84da963372b180b98e0e76761b60f7f23f4 Mon Sep 17 00:00:00 2001
From: Oleh Vasyura
Date: Mon, 22 Nov 2010 15:26:06 +0200
Subject: Disable OpenGL on Symbian only by default instead of always
Reviewed-by: ossi
---
configure | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 6eb2a99..9ffb8a2 100755
--- a/configure
+++ b/configure
@@ -6670,10 +6670,12 @@ else
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_STYLE_S60"
fi
-# Disable OpenGL on Symbian.
+# Just check if OpenGL is not set by command argumets for Symbian.
case "$XPLATFORM" in
symbian*)
- CFG_OPENGL="no"
+ if [ "$CFG_OPENGL" = "auto" ]; then
+ CFG_OPENGL="no"
+ fi
;;
esac
--
cgit v0.12
From 3f517783d4ce31f970e6e1f2d4ff5add9073da3d Mon Sep 17 00:00:00 2001
From: Oleh Vasyura
Date: Wed, 24 Nov 2010 12:29:59 +0100
Subject: Enable Phonon on Symbian by default.
Always enable Phonon on Symbian unless it was explicitly disabled.
Reviewed-by: ossi
---
configure | 3 +++
1 file changed, 3 insertions(+)
diff --git a/configure b/configure
index 9ffb8a2..86c14dd 100755
--- a/configure
+++ b/configure
@@ -4903,6 +4903,9 @@ case "$XPLATFORM" in *symbian*)
if [ "$CFG_LARGEFILE" = auto ]; then
CFG_LARGEFILE=no
fi
+ if [ "$CFG_PHONON" = auto ]; then
+ CFG_PHONON=yes
+ fi
if test -z "$EPOCROOT"; then
echo "Please export EPOCROOT. It should point to the sdk install dir"
--
cgit v0.12
From f424c3460f135aee2facc111869b678d65f125a6 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen
Date: Mon, 22 Nov 2010 12:08:39 +0100
Subject: fix misleading uppercasing deprecation warning
don't complain about uppercasing in the function's name if the real
problem is that it's not defined at all. this is also slighly more
efficient, as we try to lowercase only as a fallback now.
Reviewed-by: joerg
---
qmake/project.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 2586c57..d967a63 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -1813,11 +1813,10 @@ QMakeProject::doProjectExpand(QString func, QList args_list,
for(int i = 0; i < args_list.size(); ++i)
args += args_list[i].join(QString(Option::field_sep));
- QString lfunc = func.toLower();
- if (!lfunc.isSharedWith(func))
+ ExpandFunc func_t = qmake_expandFunctions().value(func);
+ if (!func_t && (func_t = qmake_expandFunctions().value(func.toLower())))
warn_msg(WarnDeprecated, "%s:%d: Using uppercased builtin functions is deprecated.",
parser.file.toLatin1().constData(), parser.line_no);
- ExpandFunc func_t = qmake_expandFunctions().value(lfunc);
debug_msg(1, "Running project expand: %s(%s) [%d]",
func.toLatin1().constData(), args.join("::").toLatin1().constData(), func_t);
--
cgit v0.12
From b552f7c8b5cdc455b87a2688ac0df47fcdf7ac35 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen
Date: Fri, 3 Dec 2010 13:54:22 +0100
Subject: rebuild configure
---
configure.exe | Bin 1325568 -> 1325568 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/configure.exe b/configure.exe
index f8d520a..068701f 100755
Binary files a/configure.exe and b/configure.exe differ
--
cgit v0.12
From 4fb210b9e225fffafdaac26e0acb3c0b71087137 Mon Sep 17 00:00:00 2001
From: Jukka Rissanen
Date: Thu, 25 Nov 2010 12:33:14 +0200
Subject: Fix proxy reading from gconf so that it is only done once / session.
Fixes: NB#194509 - Network access from a Qt app makes dbus daemon
consume tons of cpu
Task-number: QT-4220
---
src/plugins/bearer/icd/proxyconf.cpp | 18 ++++++++++++++----
src/plugins/bearer/icd/proxyconf.h | 1 +
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/plugins/bearer/icd/proxyconf.cpp b/src/plugins/bearer/icd/proxyconf.cpp
index e5c8f4e..37501fb 100644
--- a/src/plugins/bearer/icd/proxyconf.cpp
+++ b/src/plugins/bearer/icd/proxyconf.cpp
@@ -142,16 +142,23 @@ QHash GConfItemFast::getEntries() const
-class NetworkProxyFactory : QNetworkProxyFactory {
+class NetworkProxyFactory : QNetworkProxyFactory
+{
+ ProxyConf proxy_conf;
+ bool proxy_data_read;
+
public:
- NetworkProxyFactory() { }
+ NetworkProxyFactory() : proxy_data_read(false) { }
QList queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery());
};
QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query)
{
- ProxyConf proxy_conf;
+ if (proxy_data_read == false) {
+ proxy_data_read = true;
+ proxy_conf.readProxyData();
+ }
QList result = proxy_conf.flush(query);
if (result.isEmpty())
@@ -377,10 +384,13 @@ ProxyConf::~ProxyConf()
delete d_ptr;
}
+void ProxyConf::readProxyData()
+{
+ d_ptr->readProxyData();
+}
QList ProxyConf::flush(const QNetworkProxyQuery &query)
{
- d_ptr->readProxyData();
return d_ptr->flush(query);
}
diff --git a/src/plugins/bearer/icd/proxyconf.h b/src/plugins/bearer/icd/proxyconf.h
index 884cc5c..eedbbf2 100644
--- a/src/plugins/bearer/icd/proxyconf.h
+++ b/src/plugins/bearer/icd/proxyconf.h
@@ -58,6 +58,7 @@ public:
virtual ~ProxyConf();
QList flush(const QNetworkProxyQuery &query = QNetworkProxyQuery()); // read the proxies from db
+ void readProxyData();
/* Note that for each update() call there should be corresponding
* clear() call because the ProxyConf class implements a reference
--
cgit v0.12
From 6ae84f1183e91c910ca92a55e37f8254ace805c0 Mon Sep 17 00:00:00 2001
From: Jiang Jiang
Date: Mon, 6 Dec 2010 13:07:36 +0100
Subject: Fix QTextEdit::selectAll crash from textChanged()
Doing selectAll() after the entire block of text has been removed
will cause this crash, because we didn't check if the block we
found is valid or not.
Task-number: QTBUG-15857
Reviewed-by: Eskil
---
src/gui/text/qtextcursor.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp
index 769ab2f..f73cc4b 100644
--- a/src/gui/text/qtextcursor.cpp
+++ b/src/gui/text/qtextcursor.cpp
@@ -363,6 +363,9 @@ bool QTextCursorPrivate::movePosition(QTextCursor::MoveOperation op, QTextCursor
bool adjustX = true;
QTextBlock blockIt = block();
+ if (!blockIt.isValid())
+ return false;
+
if (op >= QTextCursor::Left && op <= QTextCursor::WordRight
&& blockIt.textDirection() == Qt::RightToLeft) {
if (op == QTextCursor::Left)
--
cgit v0.12
From 19b1ab1f2f4df72621b1bef43a4a24286ae12657 Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Mon, 6 Dec 2010 16:07:06 +0100
Subject: Fixed a bug by changing the id name to lower case.
---
doc/src/getting-started/gettingstartedqml.qdoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc
index b767587..e3977bb 100644
--- a/doc/src/getting-started/gettingstartedqml.qdoc
+++ b/doc/src/getting-started/gettingstartedqml.qdoc
@@ -148,7 +148,7 @@
\code
Rectangle {
- id:Button
+ id: button
...
property color buttonColor: "lightblue"
--
cgit v0.12
From 9679add86ec1562d24d587c6c2343c47ca4b61d7 Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Mon, 6 Dec 2010 16:09:26 +0100
Subject: Some whitespace fixes.
---
doc/src/declarative/modules.qdoc | 64 ++++++++++++++++++++--------------------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc
index 011eb63..2a2e4ff 100644
--- a/doc/src/declarative/modules.qdoc
+++ b/doc/src/declarative/modules.qdoc
@@ -31,14 +31,14 @@
\section1 QML Modules
-A module is a set of QML content files that can be imported as a unit into a QML
+A module is a set of QML content files that can be imported as a unit into a QML
application. Modules can be used to organize QML content into independent units,
-and they can use a versioning mechanism that allows for independent
+and they can use a versioning mechanism that allows for independent
upgradability of the modules.
While QML component files within the same directory are automatically accessible
-within the global namespace, components defined elsewhere must be imported
-explicitly using the \c import statement to import them as modules. For
+within the global namespace, components defined elsewhere must be imported
+explicitly using the \c import statement to import them as modules. For
example, an \c import statement is required to use:
\list
@@ -54,13 +54,13 @@ This can be seen in the snippet commonly found at the top of QML files:
\qml
import QtQuick 1.0
\endqml
-
-This imports version 4.7 of the "Qt" module into the global namespace. (The QML
+
+This imports version 1.0 of the "QtQuick" module into the global namespace. (The QML
library itself must be imported to use any of the \l {QML Elements}, as they
are not included in the global namespace by default.)
-The \c Qt module is an \e installed module; it is found in the
-\l{The QML import path}{import path}. There are two types of QML modules:
+The \c Qt module is an \e installed module; it is found in the
+\l{The QML import path}{import path}. There are two types of QML modules:
location modules (defined by a URL) and installed modules (defined by a URI).
@@ -87,8 +87,8 @@ directory using a relative or absolute path, like this:
MyQMLProject
|- MyComponents
|- Slider.qml
- |- CheckBox.qml
- |- Main
+ |- CheckBox.qml
+ |- Main
|- application.qml
\endcode
@@ -112,7 +112,7 @@ be imported like this:
Remote location modules must have a \l{Writing a qmldir file}{qmldir file} in the
same directory to specify which QML files should be made available. See the
-\l {#qmldirexample}{example} below. The qmldir file is optional for modules on
+\l {#qmldirexample}{example} below. The qmldir file is optional for modules on
the local filesystem.
@@ -121,8 +121,8 @@ the local filesystem.
Installed modules are modules that are installed on the
-local filesystem within the QML import path, or modules defined in C++
-application code. When importing an installed module, an un-quoted URI is
+local filesystem within the QML import path, or modules defined in C++
+application code. When importing an installed module, an un-quoted URI is
used, with a mandatory version number:
\code
@@ -131,7 +131,7 @@ used, with a mandatory version number:
\endcode
Installed modules that are installed into the import path or created
-as a \l{QDeclarativeExtensionPlugin}{QML C++ plugin} must define a
+as a \l{QDeclarativeExtensionPlugin}{QML C++ plugin} must define a
\l{Writing a qmldir file}{qmldir file}.
@@ -142,7 +142,7 @@ The default import path includes:
\list
\o The directory of the current file
-\o The location specified by QLibraryInfo::ImportsPath
+\o The location specified by QLibraryInfo::ImportsPath
\o Paths specified by the \c QML_IMPORT_PATH environment variable
\endlist
@@ -153,10 +153,10 @@ When running the \l {QML Viewer}, use the \c -I option to add paths to the impor
\section2 Creating installed modules in C++
-C++ applications can dynamically define installed modules using
-qmlRegisterType().
+C++ applications can dynamically define installed modules using
+qmlRegisterType().
-For \l{QDeclarativeExtensionPlugin}{QML C++ plugins}, the
+For \l{QDeclarativeExtensionPlugin}{QML C++ plugins}, the
module URI is automatically passed to QDeclarativeExtensionPlugin::registerTypes().
The QDeclarativeExtensionPlugin documentation shows how to use this URI
to call qmlRegisterType() to enable the plugin library to be built as
@@ -167,7 +167,7 @@ in QML, like this:
import com.nokia.TimeExample 1.0
\endcode
-A \l{QDeclarativeExtensionPlugin}{QML C++ plugin} also requires a
+A \l{QDeclarativeExtensionPlugin}{QML C++ plugin} also requires a
\l{Writing a qmldir file}{qmldir file} to make it available to the
QML engine.
@@ -190,9 +190,9 @@ Types from these modules can then only be used when qualified by the namespace:
\qml
QtLibrary.Rectangle { ... }
-
+
MyComponents.Slider { ... }
-
+
MyModule.SomeComponent { ... }
\endqml
@@ -209,7 +209,7 @@ JavaScript files must always be imported with a named import:
\qml
import "somescript.js" as MyScript
-
+
Item {
//...
Component.onCompleted: MyScript.doSomething()
@@ -220,8 +220,8 @@ JavaScript files must always be imported with a named import:
\section1 Writing a qmldir file
-A \c qmldir file is a metadata file for a module that maps all type names in
-the module to versioned QML files. It is required for installed modules, and
+A \c qmldir file is a metadata file for a module that maps all type names in
+the module to versioned QML files. It is required for installed modules, and
location modules that are loaded from a network source.
It is defined by a plain text file named "qmldir" that contains one or more lines of the form:
@@ -237,7 +237,7 @@ plugin []
\bold { [] } lines are used to add QML files as types.
is the type being made available, the optional is a version
-number, and is the (relative) file name of the QML file defining the type.
+number, and is the (relative) file name of the QML file defining the type.
Installed files do not need to import the module of which they are a part, as they can refer
to the other QML files in the module as relative (local) files, but
@@ -264,10 +264,10 @@ provide those identifiers.
\bold {plugin []} lines are used to add \l{QDeclarativeExtensionPlugin}{QML C++ plugins} to the module. is the name of the library. It is usually not the same as the file name
of the plugin binary, which is platform dependent; e.g. the library \c MyAppTypes would produce
-\c libMyAppTypes.so on Linux and \c MyAppTypes.dll on Windows.
+\c libMyAppTypes.so on Linux and \c MyAppTypes.dll on Windows.
is an optional argument specifying either an absolute path to the directory containing the
-plugin file, or a relative path from the directory containing the \c qmldir file to the directory
+plugin file, or a relative path from the directory containing the \c qmldir file to the directory
containing the plugin file. By default the engine searches for the plugin library in the directory that contains the \c qmldir
file. The plugin search path can be queried with QDeclarativeEngine::pluginPathList() and modified using QDeclarativeEngine::addPluginPath(). When running the \l {QML Viewer}, use the \c -P option to add paths to the plugin search path.
@@ -275,7 +275,7 @@ file. The plugin search path can be queried with QDeclarativeEngine::pluginPathL
\target qmldirexample
\section2 Example
-If the components in the \c MyComponents directory from the
+If the components in the \c MyComponents directory from the
\l{Location Modules}{earlier example} were to be made available as a network resource,
the directory would need to contain a \c qmldir file similar to this:
@@ -284,7 +284,7 @@ ComponentA 1.0 ComponentA.qml
ComponentB 1.0 ComponentB.qml
\endcode
-The \c MyComponents directory could then be imported as a module using:
+The \c MyComponents directory could then be imported as a module using:
\code
import "http://the-server-name.com/MyComponents"
@@ -298,15 +298,15 @@ a later version is used, as the \c qmldir file specifies that these elements
are only available in the 1.0 version.
-For examples of \c qmldir files for plugins, see the
-\l {declarative/cppextensions/plugins}{Plugins} example and
+For examples of \c qmldir files for plugins, see the
+\l {declarative/cppextensions/plugins}{Plugins} example and
\l {Tutorial: Writing QML extensions with C++}.
\section1 Debugging
The \c QML_IMPORT_TRACE environment variable can be useful for debugging
-when there are problems with finding and loading modules. See
+when there are problems with finding and loading modules. See
\l{Debugging module imports} for more information.
--
cgit v0.12
From 686dfda2146a84e6653faa56a1484e84571cc4fa Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Mon, 6 Dec 2010 17:39:21 +0100
Subject: Fixed link to qtestlib-tools by adding link to qt-webpages.qdoc.
Link is now linking to the gitorious project site.
Task-number: QTBUG-15714
Reviewed-by: David Boddie
---
doc/src/development/qtestlib.qdoc | 29 ++++++++++++++---------------
doc/src/qt-webpages.qdoc | 10 ++++++++++
2 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/doc/src/development/qtestlib.qdoc b/doc/src/development/qtestlib.qdoc
index e53957f..08fdfc6 100644
--- a/doc/src/development/qtestlib.qdoc
+++ b/doc/src/development/qtestlib.qdoc
@@ -245,10 +245,10 @@
\endtable
In short, walltime is always available but requires many repetitions to
- get a useful result.
- Tick counters are usually available and can provide
- results with fewer repetitions, but can be susceptible to CPU frequency
- scaling issues.
+ get a useful result.
+ Tick counters are usually available and can provide
+ results with fewer repetitions, but can be susceptible to CPU frequency
+ scaling issues.
Valgrind provides exact results, but does not take
I/O waits into account, and is only available on a limited number of
platforms.
@@ -264,7 +264,7 @@
See the chapter 5 in the \l{QTestLib Tutorial} for more benchmarking examples.
\section1 Using QTestLib remotely on Windows CE
- \c cetest is a convenience application which helps the user to launch an
+ \c cetest is a convenience application which helps the user to launch an
application remotely on a Windows CE device or emulator.
It needs to be executed after the unit test has been successfully compiled.
@@ -717,15 +717,15 @@
\section1 Writing a Benchmark
To create a benchmark we extend a test function with a QBENCHMARK macro.
- A benchmark test function will then typically consist of setup code and
+ A benchmark test function will then typically consist of setup code and
a QBENCHMARK macro that contains the code to be measured. This test
function benchmarks QString::localeAwareCompare().
\snippet examples/qtestlib/tutorial5/benchmarking.cpp 0
- Setup can be done at the beginning of the function, the clock is not
+ Setup can be done at the beginning of the function, the clock is not
running at this point. The code inside the QBENCHMARK macro will be
- measured, and possibly repeated several times in order to get an
+ measured, and possibly repeated several times in order to get an
accurate measurement.
Several \l {testlib-benchmarking-measurement}{back-ends} are available
@@ -733,7 +733,7 @@
\section1 Data Functions
- Data functions are useful for creating benchmarks that compare
+ Data functions are useful for creating benchmarks that compare
multiple data inputs, for example locale aware compare against standard
compare.
@@ -743,20 +743,19 @@
\snippet examples/qtestlib/tutorial5/benchmarking.cpp 2
- The "if(useLocaleCompare)" switch is placed outside the QBENCHMARK
+ The "if(useLocaleCompare)" switch is placed outside the QBENCHMARK
macro to avoid measuring its overhead. Each benchmark test function
- can have one active QBENCHMARK macro.
+ can have one active QBENCHMARK macro.
\section1 External Tools
Tools for handling and visualizing test data are available as part of
- the qtestlib-tools project on the
- \l{http://labs.qt.nokia.com/}{http://labs.qt.nokia.com/}Qt Labs Web site.
+ the \l {qtestlib-tools} project in the \l{Qt Labs} web site.
These include a tool for comparing performance data obtained from test
runs and a utility to generate Web-based graphs of performance data.
- See the \l{qtestlib-tools Announcement} for more information on these
- tools and a simple graphing example.
+ See the \l{qtestlib-tools Announcement}{qtestlib-tools announcement}
+ for more information on these tools and a simple graphing example.
*/
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index 05817df..b7b9fba 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -239,3 +239,13 @@
\externalpage http://get.qt.nokia.com/nokiasmartinstaller/
\title Smart Installer
*/
+
+/*!
+ \externalpage http://qt.gitorious.org/qt-labs/qtestlib-tools
+ \title qtestlib-tools
+*/
+
+/*!
+ \externalpage http://labs.qt.nokia.com
+ \title Qt Labs
+*/
--
cgit v0.12
From 1eb7dca7fe6a81bada556c1310905be08e1b1d10 Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Mon, 6 Dec 2010 17:43:31 +0100
Subject: Added QML coding convention for "private" properties.
Private properties start with two underscores. __property
Reviewed-by: David Boddie
---
doc/src/declarative/codingconventions.qdoc | 18 ++++++--
.../declarative/codingconventions/private.qml | 49 ++++++++++++++++++++++
2 files changed, 64 insertions(+), 3 deletions(-)
create mode 100644 doc/src/snippets/declarative/codingconventions/private.qml
diff --git a/doc/src/declarative/codingconventions.qdoc b/doc/src/declarative/codingconventions.qdoc
index ba789e0..3f92d46 100644
--- a/doc/src/declarative/codingconventions.qdoc
+++ b/doc/src/declarative/codingconventions.qdoc
@@ -35,7 +35,7 @@ This page assumes that you are already familiar with the QML language.
If you need an introduction to the language, please read \l {Introduction to the QML language}{the QML introduction} first.
-\section1 QML objects
+\section1 QML Objects
Through our documentation and examples, QML objects are always structured in the following order:
@@ -58,7 +58,7 @@ For example, a hypothetical \e photo QML object would look like this:
\snippet doc/src/snippets/declarative/codingconventions/photo.qml 0
-\section1 Grouped properties
+\section1 Grouped Properties
If using multiple properties from a group of properties,
we use the \e {group notation} rather than the \e {dot notation} to improve readability.
@@ -72,6 +72,18 @@ can be written like this:
\snippet doc/src/snippets/declarative/codingconventions/dotproperties.qml 1
+\section1 Private Properties
+
+QML and JavaScript do not enforce private properties like C++. There is a need
+to hide these private properties, for example, when the properties are part of
+the implementation. As a convention, private properties begin with two
+\e underscore characters. For example, \c __area, is a property that is
+accessible but is not meant for public use. Note that QML and JavaScript will
+grant the user access to these properties.
+
+\snippet doc/src/snippets/declarative/codingconventions/private.qml 0
+
+
\section1 Lists
If a list contains only one element, we generally omit the square brackets.
@@ -87,7 +99,7 @@ we will write this:
\snippet doc/src/snippets/declarative/codingconventions/lists.qml 1
-\section1 JavaScript code
+\section1 JavaScript Code
If the script is a single expression, we recommend writing it inline:
diff --git a/doc/src/snippets/declarative/codingconventions/private.qml b/doc/src/snippets/declarative/codingconventions/private.qml
new file mode 100644
index 0000000..1d3dda8
--- /dev/null
+++ b/doc/src/snippets/declarative/codingconventions/private.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 QtQuick 1.0
+
+//! [0]
+Item {
+ id: component
+ width: 40; height: 50
+ property real __area: width * height * 0.5 //not meant for outside use
+}
+//! [0]
--
cgit v0.12
From 608b66b5af75ae6982be428439eea735c00cc455 Mon Sep 17 00:00:00 2001
From: Jerome Pasion
Date: Mon, 6 Dec 2010 17:46:28 +0100
Subject: Fixed the QML Focus document. Fixed snippets, images, and formatting.
Reviewed-by: David Boddie
---
doc/src/declarative/focus.qdoc | 339 ++++++++-------------
doc/src/images/declarative-qmlfocus1.png | Bin 0 -> 1890 bytes
doc/src/images/declarative-qmlfocus2.png | Bin 0 -> 2756 bytes
doc/src/images/declarative-qmlfocus3.png | Bin 0 -> 2743 bytes
doc/src/images/declarative-qmlfocus4.png | Bin 0 -> 4137 bytes
doc/src/images/declarative-qmlfocus5.png | Bin 0 -> 1376 bytes
.../snippets/declarative/focus/advancedFocus.qml | 67 ++++
doc/src/snippets/declarative/focus/basicwidget.qml | 59 ++++
.../snippets/declarative/focus/clickablewidget.qml | 61 ++++
doc/src/snippets/declarative/focus/focusColumn.qml | 25 ++
.../declarative/focus/focusscopewidget.qml | 61 ++++
.../declarative/focus/myclickablewidget.qml | 69 +++++
.../declarative/focus/myfocusscopewidget.qml | 66 ++++
doc/src/snippets/declarative/focus/mywidget.qml | 58 ++++
doc/src/snippets/declarative/focus/qmldir | 4 +
doc/src/snippets/declarative/focus/rectangle.qml | 62 ++++
doc/src/snippets/declarative/focus/widget.qml | 61 ++++
17 files changed, 713 insertions(+), 219 deletions(-)
create mode 100644 doc/src/images/declarative-qmlfocus1.png
create mode 100644 doc/src/images/declarative-qmlfocus2.png
create mode 100644 doc/src/images/declarative-qmlfocus3.png
create mode 100644 doc/src/images/declarative-qmlfocus4.png
create mode 100644 doc/src/images/declarative-qmlfocus5.png
create mode 100644 doc/src/snippets/declarative/focus/advancedFocus.qml
create mode 100644 doc/src/snippets/declarative/focus/basicwidget.qml
create mode 100644 doc/src/snippets/declarative/focus/clickablewidget.qml
create mode 100644 doc/src/snippets/declarative/focus/focusColumn.qml
create mode 100644 doc/src/snippets/declarative/focus/focusscopewidget.qml
create mode 100644 doc/src/snippets/declarative/focus/myclickablewidget.qml
create mode 100644 doc/src/snippets/declarative/focus/myfocusscopewidget.qml
create mode 100644 doc/src/snippets/declarative/focus/mywidget.qml
create mode 100644 doc/src/snippets/declarative/focus/qmldir
create mode 100644 doc/src/snippets/declarative/focus/rectangle.qml
create mode 100644 doc/src/snippets/declarative/focus/widget.qml
diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc
index 2e74fe0..ae72c3c 100644
--- a/doc/src/declarative/focus.qdoc
+++ b/doc/src/declarative/focus.qdoc
@@ -31,7 +31,7 @@
\title Keyboard Focus in QML
When a key is pressed or released, a key event is generated and delivered to the
-focused QML \l Item. To facilitate the construction of reusable components
+focused QML \l Item. To facilitate the construction of reusable components
and to address some of the cases unique to fluid user interfaces, the QML items add a
\e scope based extension to Qt's traditional keyboard focus model.
@@ -42,27 +42,21 @@ and to address some of the cases unique to fluid user interfaces, the QML items
When the user presses or releases a key, the following occurs:
\list 1
\o Qt receives the key action and generates a key event.
-\o If the Qt widget containing the \l QDeclarativeView has focus, the key event is delivered to it. Otherwise, regular Qt key handling continues.
-\o The key event is delivered by the scene to the QML \l Item with \e {active focus}. If no \l Item has \e {active focus}, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues.
-\o If the QML \l Item with \e {active focus} accepts the key event, propagation stops. Otherwise the event is "bubbled up", by recursively passing it to each \l Item's parent until either the event is accepted, or the root \l Item is reached.
-
-If the \c {Rectangle} element in the following example has active focus and the \e A key is pressed,
-it will bubble up to its parent. However, pressing the \e B key will bubble up to the root
-item and thus subsequently be \l {QEvent::ignore()}{ignored}.
-
-\code
-Item {
- Item {
- Keys.onPressed: {
- if (event.key == Qt.Key_A) {
- console.log('Key A was pressed');
- event.accepted = true;
- }
- }
- Rectangle {}
- }
-}
-\endcode
+\o If the Qt widget containing the \l QDeclarativeView has focus, the key event
+is delivered to it. Otherwise, regular Qt key handling continues.
+\o The key event is delivered by the scene to the QML \l Item with
+\e {active focus}. If no Item has active focus, the key event is
+\l {QEvent::ignore()}{ignored} and regular Qt key handling continues.
+\o If the QML Item with active focus accepts the key event, propagation
+stops. Otherwise the event is "bubbled up", by recursively passing it to each
+Item's parent until either the event is accepted, or the root Item is reached.
+
+If the \c {Rectangle} element in the following example has active focus and the \c A key is pressed,
+it will bubble up to its parent. However, pressing the \c B key will bubble up to the root
+item and thus subsequently be ignored.
+
+\snippet doc/src/snippets/declarative/focus/rectangle.qml simple key event
+\snippet doc/src/snippets/declarative/focus/rectangle.qml simple key event end
\o If the root \l Item is reached, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues.
@@ -72,232 +66,139 @@ See also the \l {Keys}{Keys attached property} and \l {KeyNavigation}{KeyNavigat
\section1 Querying the Active Focus Item
-Whether or not an \l Item has \e {active focus} can be queried through the
-property \c {Item::activeFocus}. For example, here we have a \l Text
-element whose text is determined by whether or not it has \e {active focus}.
+Whether or not an \l Item has active focus can be queried through the
+property \c {Item::activeFocus} property. For example, here we have a \l Text
+element whose text is determined by whether or not it has active focus.
-\code
-Text {
- text: activeFocus ? "I have active focus!" : "I do not have active focus"
-}
-\endcode
+\snippet doc/src/snippets/declarative/focus/rectangle.qml active focus
\section1 Acquiring Focus and Focus Scopes
-An \l Item requests focus by setting the \c {Item::focus} property to true.
-
-For very simple cases simply setting the \c {Item::focus} property is sometimes
-sufficient. If we run the following example with the \l {QML Viewer}, we see that
-the \c {keyHandler} element has \e {active focus} and pressing the 'A', 'B'
-or 'C' keys modifies the text appropriately.
-
-\table
-\row
-\o \code
- Rectangle {
- color: "lightsteelblue"; width: 240; height: 25
- Text { id: myText }
- Item {
- id: keyHandler
- focus: true
- Keys.onPressed: {
- if (event.key == Qt.Key_A)
- myText.text = 'Key A was pressed'
- else if (event.key == Qt.Key_B)
- myText.text = 'Key B was pressed'
- else if (event.key == Qt.Key_C)
- myText.text = 'Key C was pressed'
- }
- }
- }
-\endcode
-\o \image declarative-qmlfocus1.png
-\endtable
-
-However, were the above example to be used as a self-contained component, this
-simple use of the \c {Item::focus} property is no longer sufficient. The left
-hand side of the following table shows what we would like to be able to write.
-Here we create two instances of our previously defined component, and set the
-second one to have focus. The intention is that when the \e A, \e B, or \e C
-keys are pressed, the second of the two components receives the event and
+An \l Item requests focus by setting the \c focus property to \c true.
+
+For very simple cases simply setting the \c focus property is sometimes
+sufficient. If we run the following example with the \l {QML Viewer}, we see that
+the \c {keyHandler} element has active focus and pressing the \c A, \c B,
+or \c C keys modifies the text appropriately.
+
+\snippet doc/src/snippets/declarative/focus/basicwidget.qml focus true
+
+\image declarative-qmlfocus1.png
+
+However, were the above example to be used as a reusable or imported component,
+this simple use of the \c focus property is no longer sufficient.
+
+To demonstrate, we create two instances of our previously defined component and
+set the first one to have focus. The intention is that when the \c A, \c B, or
+\c C keys are pressed, the first of the two components receives the event and
responds accordingly.
-\table
-\row
-\o \code
-Rectangle {
- color: "red"; width: 240; height: 55
- MyWidget {}
- MyWidget { y: 30; focus: true }
-}
-\endcode
-\o \code
-Rectangle {
- color: "red"; width: 240; height: 55
- Rectangle {
- color: "lightsteelblue"; width: 240; height: 25
- Text { id: myText }
- Item {
- id: keyHandler
- focus: true
- Keys.onPressed: {
- if (event.key == Qt.Key_A)
- myText.text = 'Key A was pressed'
- else if (event.key == Qt.Key_B)
- myText.text = 'Key B was pressed'
- else if (event.key == Qt.Key_C)
- myText.text = 'Key C was pressed'
- }
- }
- }
- Rectangle {
- y: 30; focus: true
- color: "lightsteelblue"; width: 240; height: 25
- Text { id: myText }
- Item {
- id: keyHandler
- focus: true
- Keys.onPressed: {
- if (event.key == Qt.Key_A)
- myText.text = 'Key A was pressed'
- else if (event.key == Qt.Key_B)
- myText.text = 'Key B was pressed'
- else if (event.key == Qt.Key_C)
- myText.text = 'Key C was pressed'
- }
- }
- }
-}
-\endcode
-\endtable
-
-The right hand side of the example shows the expanded code - the equivalent QML
-without the use of the component \c {MyWidget}. From this, the problem is
-evident - there are no less than three elements that have the \c {Item::focus}
-property set to true. Ultimately only one element can have keyboard focus, and the
-system has to decide which on. In this case the first appearance of the
-\c {Item::focus} property being set to true on line 4 is selected, and the value
-of \c {Item::focus} in the other two instances is reverted back to false. This
-is exactly the opposite of what was wanted!
-
-This problem is fundamentally one of visibility. The \c {MyWidget}
-components each set their \c {keyHandler} Items as focused as that is all they can
-do - they don't know how they are going to be used, but they do know that when
-they're in use their \c {keyHandler} element is what needs focus. Likewise
-the code that uses the two \c {MyWidgets} sets the second \c {MyWidget} as
-focused. While it doesn't know exactly how the \c {MyWidget} is
-implemented, it knows that it wants the second one to be focused. This allows us
-to achieve encapsulation, allowing each widget to focus on it's appropriate behaviour
-itself.
-
-To solve this problem - allowing components to care about what they know about
-and ignore everything else - the QML items introduce a concept known as a
-\e {focus scope}. For existing Qt users, a \e {focus scope} is like an
-automatic focus proxy. A \e {focus scope} is created using the \l FocusScope
-element.
-
-In the next example, a \l FocusScope is added to the component, and the visual
-result shown.
-
-\table
-\row
-\o \code
-FocusScope {
- width: 240; height: 25
- Rectangle {
- color: "lightsteelblue"; width: 240; height: 25
- Text { id: myText }
- Item {
- id: keyHandler
- focus: true
- Keys.onPressed: {
- if (event.key == Qt.Key_A)
- myText.text = 'Key A was pressed'
- else if (event.key == Qt.Key_B)
- myText.text = 'Key B was pressed'
- else if (event.key == Qt.Key_C)
- myText.text = 'Key C was pressed'
- }
- }
- }
-}
-\endcode
-\o \image declarative-qmlfocus2.png
-\endtable
+The code that imports and creates two MyWidget instances:
+\snippet doc/src/snippets/declarative/focus/widget.qml window
+
+The MyWidget code:
+\snippet doc/src/snippets/declarative/focus/mywidget.qml mywidget
+
+We would like to have the first MyWidget object to have the focus by setting its
+\c focus property to \c true. However, by running the code, we can confirm that
+the second widget receives the focus.
+
+\image declarative-qmlfocus2.png
+
+Looking at both \c MyWidget and \c window code, the problem is evident - there
+are three elements that set the \c focus property set to \c true. The two
+MyWidget sets the \c focus to \c true and the \c window component also sets the
+focus. Ultimately, only one element can have keyboard focus, and the system has
+to decide which element receives the focus. When the second MyWidget is created,
+it receives the focus because it is the last element to set its \c focus
+property to \c true.
+
+This problem is due to visibility. The \c MyWidget component would like to have
+the focus, but it cannot control the focus when it is imported or reused.
+Likewise, the \c window component does not have the ability to know if its
+imported components are requesting the focus.
+
+To solve this problem, the QML introduces a concept known as a \e {focus scope}.
+For existing Qt users, a focus scope is like an automatic focus proxy.
+A focus scope is created by declaring the \l FocusScope element.
+
+In the next example, a \l FocusScope element is added to the component, and the
+visual result shown.
+
+\snippet doc/src/snippets/declarative/focus/myfocusscopewidget.qml widget in focusscope
+
+\image declarative-qmlfocus3.png
+
Conceptually \e {focus scopes} are quite simple.
\list
-\o Within each \e {focus scope} one element may have \c {Item::focus} set to true.
-If more than one \l Item has the \c {Item::focus} property set, the first is selected
-and the others are unset, just like when there are no \e {focus scopes}.
-\o When a \e {focus scope} receives \e {active focus}, the contained element with
-\c {Item::focus} set (if any) also gets \e {active focus}. If this element is
-also a \l FocusScope, the proxying behaviour continues. Both the
-\e {focus scope} and the sub-focused item will have \c {Item::activeFocus} set.
+\o Within each focus scope one element may have \c {Item::focus} set to
+\c true. If more than one \l Item has the \c focus property set, the
+last element to set the \c focus will have the focus and the others are unset,
+similar to when there are no focus scopes.
+\o When a focus scope receives active focus, the contained element with
+\c focus set (if any) also gets the active focus. If this element is
+also a \l FocusScope, the proxying behavior continues. Both the
+focus scope and the sub-focused item will have \c activeFocus property set.
\endlist
-So far the example has the second component statically selected. It is trivial
+Note that, since the FocusScope element is not a visual element, the properties
+of its children need to be exposed to the parent item of the FocusScope. Layouts
+and positioning elements will use these visual and styling properties to create
+the layout. In our example, the \c Column element cannot display the two widgets
+properly because the FocusScope lacks visual properties of its own. The MyWidget
+component directly binds to the \c rectangle properties to allow the \c Column
+element to create the layout containing the children of the FocusScope.
+
+So far, the example has the second component statically selected. It is trivial
now to extend this component to make it clickable, and add it to the original
-application. We still set a one of the widgets as focused by default, but from
-then on clicking the either one gives it focus.
-
-\table
-\row
-\o \code
-Rectangle {
- color: "red"; width: 240; height: 55
- MyClickableWidget {}
- MyClickableWidget { y: 30; focus: true }
-}
-\endcode
-\o \code
-FocusScope {
- id: page; width: 240; height: 25
- MyWidget { focus: true }
- MouseArea { anchors.fill: parent; onClicked: { page.focus = true } }
-}
-\endcode
-\endtable
+application. We still set one of the widgets as focused by default.
+Now, clicking either MyClickableWidget gives it focus and the other widget
+loses the focus.
-\image declarative-qmlfocus3.png
+The code that imports and creates two MyClickableWidget instances:
+\snippet doc/src/snippets/declarative/focus/clickablewidget.qml clickable window
+
+The MyClickableWidget code:
+\snippet doc/src/snippets/declarative/focus/myclickablewidget.qml clickable in focusscope
-When a QML item explicitly relinquishes focus (by setting its
-\c {Item::focus} property to false while it has \e {active focus}), the system
-does not automatically select another element to receive focus. That is, it
-is possible for there to be no currently \e {active focus}.
+\image declarative-qmlfocus4.png
-See the \l{declarative/keyinteraction/focus}{Keyboard Focus example} for a
+When a QML \l Item explicitly relinquishes focus (by setting its
+\c focus property to \c false while it has active focus), the
+system does not automatically select another element to receive focus. That is,
+it is possible for there to be no currently active focus.
+
+See the \l{declarative/keyinteraction/focus}{Keyboard Focus example} for a
demonstration of moving keyboard focus between multiple areas using FocusScope
elements.
\section1 Advanced uses of Focus Scopes
-Focus scopes allow focus to allocation to be easily partitioned. Several
+Focus scopes allow focus to allocation to be easily partitioned. Several
QML items use it to this effect.
-\l ListView, for example, is itself a focus scope. Generally this isn't
+\l ListView, for example, is itself a focus scope. Generally this isn't
noticeable as \l ListView doesn't usually have manually added visual children.
By being a focus scope, \l ListView can focus the current list item without
-worrying about how that will effect the rest of the application. This allows
-the current item delegate to react to key presses.
+worrying about how that will effect the rest of the application. This allows the
+current item delegate to react to key presses.
-This contrived example shows how this works. Pressing the \c Return key will
+This contrived example shows how this works. Pressing the \c Return key will
print the name of the current list item.
-\table
-\row
-\o \snippet doc/src/snippets/declarative/focusscopes.qml 0
-\o \image declarative-qmlfocus4.png
-\endtable
+\snippet doc/src/snippets/declarative/focus/advancedFocus.qml FocusScope delegate
+
+\image declarative-qmlfocus5.png
-While the example is simple, there's a lot going on behind the scenes. Whenever
+While the example is simple, there are a lot going on behind the scenes. Whenever
the current item changes, the \l ListView sets the delegate's \c {Item::focus}
-property. As the \l ListView is a \e {focus scope}, this doesn't effect the
-rest of the application. However, if the \l ListView itself has
-\e {active focus} this causes the delegate itself to receive \e {active focus}.
-In this example, the root element of the delegate is also a \e {focus scope},
-which in turn gives \e {active focus} to the \c {Text} element that
-actually performs the work of handling the \e {Return} key.
+property. As the \l ListView is a focus scope, this doesn't affect the
+rest of the application. However, if the \l ListView itself has
+active focus this causes the delegate itself to receive active focus.
+In this example, the root element of the delegate is also a focus scope,
+which in turn gives active focus to the \c {Text} element that actually performs
+the work of handling the \c {Return} key.
All of the QML view classes, such as \l PathView and \l GridView, behave
in a similar manner to allow key handling in their respective delegates.
diff --git a/doc/src/images/declarative-qmlfocus1.png b/doc/src/images/declarative-qmlfocus1.png
new file mode 100644
index 0000000..317b34b
Binary files /dev/null and b/doc/src/images/declarative-qmlfocus1.png differ
diff --git a/doc/src/images/declarative-qmlfocus2.png b/doc/src/images/declarative-qmlfocus2.png
new file mode 100644
index 0000000..e3f9643
Binary files /dev/null and b/doc/src/images/declarative-qmlfocus2.png differ
diff --git a/doc/src/images/declarative-qmlfocus3.png b/doc/src/images/declarative-qmlfocus3.png
new file mode 100644
index 0000000..a5897ce
Binary files /dev/null and b/doc/src/images/declarative-qmlfocus3.png differ
diff --git a/doc/src/images/declarative-qmlfocus4.png b/doc/src/images/declarative-qmlfocus4.png
new file mode 100644
index 0000000..f2e64cd
Binary files /dev/null and b/doc/src/images/declarative-qmlfocus4.png differ
diff --git a/doc/src/images/declarative-qmlfocus5.png b/doc/src/images/declarative-qmlfocus5.png
new file mode 100644
index 0000000..ec7307b
Binary files /dev/null and b/doc/src/images/declarative-qmlfocus5.png differ
diff --git a/doc/src/snippets/declarative/focus/advancedFocus.qml b/doc/src/snippets/declarative/focus/advancedFocus.qml
new file mode 100644
index 0000000..274f54f
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/advancedFocus.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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 FOO module 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
+
+//! [FocusScope delegate]
+Rectangle {
+ color: "lightsteelblue"; width: 100; height: 50
+
+ ListView {
+ anchors.fill: parent
+ focus: true
+
+ model: ListModel {
+ ListElement { name: "Bob" }
+ ListElement { name: "John" }
+ ListElement { name: "Michael" }
+ }
+
+ delegate: FocusScope {
+ width: childrenRect.width; height: childrenRect.height
+ x:childrenRect.x; y: childrenRect.y
+ TextInput {
+ focus: true
+ text: name
+ Keys.onReturnPressed: console.log(name)
+ }
+ }
+ }
+}
+//! [FocusScope delegate]
diff --git a/doc/src/snippets/declarative/focus/basicwidget.qml b/doc/src/snippets/declarative/focus/basicwidget.qml
new file mode 100644
index 0000000..71e75ff
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/basicwidget.qml
@@ -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 FOO module 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
+
+//! [focus true]
+Rectangle {
+ color: "lightsteelblue"; width: 240; height: 25
+ Text { id: myText }
+ Item {
+ id: keyHandler
+ focus: true
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A)
+ myText.text = 'Key A was pressed'
+ else if (event.key == Qt.Key_B)
+ myText.text = 'Key B was pressed'
+ else if (event.key == Qt.Key_C)
+ myText.text = 'Key C was pressed'
+ }
+ }
+}
+//! [focus true]
diff --git a/doc/src/snippets/declarative/focus/clickablewidget.qml b/doc/src/snippets/declarative/focus/clickablewidget.qml
new file mode 100644
index 0000000..34b0d87
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/clickablewidget.qml
@@ -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 FOO module 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
+
+//! [clickable window]
+Rectangle {
+ id: window
+
+ color: "white"; width: 240; height: 150
+
+ Column {
+ anchors.centerIn: parent; spacing: 15
+
+ MyClickableWidget {
+ focus: true //set this MyWidget to receive the focus
+ color: "lightblue"
+ }
+ MyClickableWidget {
+ color: "palegreen"
+ }
+ }
+
+}
+//! [clickable window]
diff --git a/doc/src/snippets/declarative/focus/focusColumn.qml b/doc/src/snippets/declarative/focus/focusColumn.qml
new file mode 100644
index 0000000..eb59309
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/focusColumn.qml
@@ -0,0 +1,25 @@
+import QtQuick 1.0
+
+Rectangle {
+ width: 200; height: 200
+
+ // Column {
+ FocusScope {
+ x: rect1.x; y:rect1.y; width: rect1.width; height: rect1.height
+ Rectangle {id: rect1; width: 50; height: 50; focus:true
+ color: focus ? "red":"blue"
+ }
+ Rectangle {id: rect2; width: 50; height: 50; focus:true
+ color: focus ? "red":"blue"
+ y: 75
+ }
+// }
+/*
+ FocusScope {
+ x: rect2.x; y:rect2.y; width: rect2.width; height: rect2.height
+ Rectangle {id: rect2; width: 50; height: 50; color: "red"}
+ }
+*/
+ }
+
+}
diff --git a/doc/src/snippets/declarative/focus/focusscopewidget.qml b/doc/src/snippets/declarative/focus/focusscopewidget.qml
new file mode 100644
index 0000000..48e5750
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/focusscopewidget.qml
@@ -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 FOO module 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
+
+//! [focusscope window]
+Rectangle {
+ id: window
+
+ color: "white"; width: 240; height: 150
+
+ Column {
+ anchors.centerIn: parent; spacing: 15
+
+ MyFocusScopeWidget {
+ focus: true //set this MyWidget to receive the focus
+ color: "lightblue"
+ }
+ MyFocusScopeWidget {
+ color: "palegreen"
+ }
+ }
+
+}
+//! [focusscope window]
diff --git a/doc/src/snippets/declarative/focus/myclickablewidget.qml b/doc/src/snippets/declarative/focus/myclickablewidget.qml
new file mode 100644
index 0000000..3294662
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/myclickablewidget.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** 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 FOO module 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
+
+//! [clickable in focusscope]
+FocusScope {
+
+ id: scope
+
+ //FocusScope needs to bind to visual properties of the children
+ property alias color: rectangle.color
+ x: rectangle.x; y: rectangle.y
+ width: rectangle.width; height: rectangle.height
+
+ Rectangle {
+ id: rectangle
+ anchors.centerIn: parent
+ color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true
+ Text { id: label; anchors.centerIn: parent }
+ focus: true
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A)
+ label.text = 'Key A was pressed'
+ else if (event.key == Qt.Key_B)
+ label.text = 'Key B was pressed'
+ else if (event.key == Qt.Key_C)
+ label.text = 'Key C was pressed'
+ }
+ }
+ MouseArea { anchors.fill: parent; onClicked: { scope.focus = true } }
+}
+//! [clickable in focusscope]
diff --git a/doc/src/snippets/declarative/focus/myfocusscopewidget.qml b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml
new file mode 100644
index 0000000..231ae3a
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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 FOO module 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
+
+//! [widget in focusscope]
+FocusScope {
+
+ //FocusScope needs to bind to visual properties of the children
+ property alias color: rectangle.color
+ x: rectangle.x; y: rectangle.y
+ width: rectangle.width; height: rectangle.height
+
+ Rectangle {
+ id: rectangle
+ anchors.centerIn: parent
+ color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true
+ Text { id: label; anchors.centerIn: parent }
+ focus: true
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A)
+ label.text = 'Key A was pressed'
+ else if (event.key == Qt.Key_B)
+ label.text = 'Key B was pressed'
+ else if (event.key == Qt.Key_C)
+ label.text = 'Key C was pressed'
+ }
+ }
+}
+//! [widget in focusscope]
diff --git a/doc/src/snippets/declarative/focus/mywidget.qml b/doc/src/snippets/declarative/focus/mywidget.qml
new file mode 100644
index 0000000..bea723d
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/mywidget.qml
@@ -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 FOO module 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
+
+//! [mywidget]
+//MyWidget code
+Rectangle {
+ id: widget
+ color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true
+ Text { id: label; anchors.centerIn: parent}
+ focus: true
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A)
+ label.text = 'Key A was pressed'
+ else if (event.key == Qt.Key_B)
+ label.text = 'Key B was pressed'
+ else if (event.key == Qt.Key_C)
+ label.text = 'Key C was pressed'
+ }
+}
+//! [mywidget]
diff --git a/doc/src/snippets/declarative/focus/qmldir b/doc/src/snippets/declarative/focus/qmldir
new file mode 100644
index 0000000..d0683b2
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/qmldir
@@ -0,0 +1,4 @@
+MyWidget 1.0 mywidget.qml
+MyFocusScopeWidget 1.0 myfocusscopewidget.qml
+MyClickableWidget 1.0 myclickablewidget.qml
+
diff --git a/doc/src/snippets/declarative/focus/rectangle.qml b/doc/src/snippets/declarative/focus/rectangle.qml
new file mode 100644
index 0000000..01d1f0c
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/rectangle.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 FOO module 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
+
+//! [simple key event]
+Rectangle {
+ width: 100; height: 100
+ focus: true
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A) {
+ console.log('Key A was pressed');
+ event.accepted = true;
+ }
+ }
+//! [simple key event]
+
+//! [active focus]
+ Text {
+ text: activeFocus ? "I have active focus!" : "I do not have active focus"
+ }
+//! [active focus]
+
+//! [simple key event end]
+}
+//! [simple key event end]
diff --git a/doc/src/snippets/declarative/focus/widget.qml b/doc/src/snippets/declarative/focus/widget.qml
new file mode 100644
index 0000000..cef34c5
--- /dev/null
+++ b/doc/src/snippets/declarative/focus/widget.qml
@@ -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 FOO module 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
+
+//! [window]
+
+//Window code that imports MyWidget
+Rectangle {
+ id: window
+ color: "white"; width: 240; height: 150
+
+ Column {
+ anchors.centerIn: parent; spacing: 15
+
+ MyWidget {
+ focus: true //set this MyWidget to receive the focus
+ color: "lightblue"
+ }
+ MyWidget {
+ color: "palegreen"
+ }
+ }
+}
+//! [window]
--
cgit v0.12
From 146ea109f9980beda939088687b37549f4d7a125 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:04:29 +0100
Subject: Doc: Added a missing external page reference.
---
doc/src/external-resources.qdoc | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index 8eeaeb1..9bc3b1c 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -448,3 +448,8 @@
\externalpage https://developer.mozilla.org/en/JavaScript/About_JavaScript
\title About JavaScript
*/
+
+/*!
+ \externalpage http://www.libusb.org/
+ \title libusb
+*/
--
cgit v0.12
From 2c55c106839a4ba1a9d9c1d3f6f6cf7e835ccc1d Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:29:04 +0100
Subject: Doc: Added documentation about the use of null custom title bar
widgets.
Task-number: QTBUG-15516
---
src/gui/widgets/qdockwidget.cpp | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp
index df9b171..0a6269d 100644
--- a/src/gui/widgets/qdockwidget.cpp
+++ b/src/gui/widgets/qdockwidget.cpp
@@ -1531,8 +1531,11 @@ QAction * QDockWidget::toggleViewAction() const
/*!
\since 4.3
+
Sets an arbitrary \a widget as the dock widget's title bar. If \a widget
- is 0, the title bar widget is removed, but not deleted.
+ is 0, any custom title bar widget previously set on the dock widget is
+ removed, but not deleted, and the default title bar will be used
+ instead.
If a title bar widget is set, QDockWidget will not use native window
decorations when it is floated.
@@ -1540,23 +1543,27 @@ QAction * QDockWidget::toggleViewAction() const
Here are some tips for implementing custom title bars:
\list
- \i Mouse events that are not explicitly handled by the title bar widget
+ \o Mouse events that are not explicitly handled by the title bar widget
must be ignored by calling QMouseEvent::ignore(). These events then
propagate to the QDockWidget parent, which handles them in the usual
manner, moving when the title bar is dragged, docking and undocking
when it is double-clicked, etc.
- \i When DockWidgetVerticalTitleBar is set on QDockWidget, the title
+ \o When DockWidgetVerticalTitleBar is set on QDockWidget, the title
bar widget is repositioned accordingly. In resizeEvent(), the title
bar should check what orientation it should assume:
\snippet doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp 0
- \i The title bar widget must have a valid QWidget::sizeHint() and
+ \o The title bar widget must have a valid QWidget::sizeHint() and
QWidget::minimumSizeHint(). These functions should take into account
the current orientation of the title bar.
+
+ \o It is not possible to remove a title bar from a dock widget. However,
+ a similar effect can be achieved by setting a default constructed
+ QWidget as the title bar widget.
\endlist
- Using qobject_cast as shown above, the title bar widget has full access
+ Using qobject_cast() as shown above, the title bar widget has full access
to its parent QDockWidget. Hence it can perform such operations as docking
and hiding in response to user actions.
--
cgit v0.12
From aa4b28cbe52eedfe898da04958339509b1d173bc Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:36:01 +0100
Subject: Doc: Fixed a link to the correct searchPaths() function.
---
src/corelib/io/qresource.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index ce9c57e..b45710c 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -187,7 +187,7 @@ Q_GLOBAL_STATIC(QStringList, resourceSearchPaths)
A QResource can either be loaded with an absolute path, either treated
as a file system rooted with a \c{/} character, or in resource notation
rooted with a \c{:} character. A relative resource can also be opened
- which will be found through the searchPaths().
+ which will be found in the list of paths returned by QDir::searchPaths().
A QResource that is representing a file will have data backing it, this
data can possibly be compressed, in which case qUncompress() must be
--
cgit v0.12
From 4483325532f57157f9ce6953670f9ab175dbaf2a Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:36:40 +0100
Subject: Doc: Removed duplicate external page reference.
---
doc/src/qt-webpages.qdoc | 5 -----
1 file changed, 5 deletions(-)
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index b7b9fba..0a03157 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -201,11 +201,6 @@
*/
/*!
- \externalpage http://labs.qt.nokia.com/gitweb?p=qtestlib-tools;a=summary
- \title qtestlib-tools
-*/
-
-/*!
\externalpage http://qt.nokia.com/products/library/modular-class-library#info_scripting
\title Qt Script for Applications (QSA)
*/
--
cgit v0.12
From 68a21753acd3e4159025bc73b0a31e652340e039 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:37:12 +0100
Subject: Doc: Added a link to the QML Basic Types page.
---
doc/src/declarative/declarativeui.qdoc | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 5d9eaaf..3d963e2 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -136,6 +136,7 @@ Module.
\list
\o \l{QML Elements}
+\o \l{QML Basic Types}
\o \l{QML Global Object}
\o \l{QML Internationalization}
\o \l{QML Security}
--
cgit v0.12
From 30272ee4f7b37a75bd9b56aa5eb763073a6c965a Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:47:32 +0100
Subject: Doc: Fixed incorrect case in a page file name.
---
doc/src/getting-started/installation.qdoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index a68310c..aa10aaf 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -684,7 +684,7 @@ Binary Package} document.
We hope you will enjoy using Qt.
*/
-/*! \page install-Symbian-linux.html
+/*! \page install-symbian-linux.html
\title Installing Qt for the Symbian platform using Linux (experimental)
\ingroup installation
\ingroup qtsymbian
--
cgit v0.12
From 90928a986d8f37cf394d45cbcf12aaeeaa62d565 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Tue, 7 Dec 2010 17:48:11 +0100
Subject: Doc: Added missing What's New information for Qt 4.6 and 4.7.
Task-number: QTBUG-15670
---
doc/src/network-programming/bearermanagement.qdoc | 8 +--
doc/src/qt4-intro.qdoc | 62 ++++++++++++++++++++---
2 files changed, 58 insertions(+), 12 deletions(-)
diff --git a/doc/src/network-programming/bearermanagement.qdoc b/doc/src/network-programming/bearermanagement.qdoc
index 98de5bf..12da55b 100644
--- a/doc/src/network-programming/bearermanagement.qdoc
+++ b/doc/src/network-programming/bearermanagement.qdoc
@@ -26,11 +26,11 @@
****************************************************************************/
/*!
- \page bearer-management.html
+\page bearer-management.html
- \title Bearer Management
- \ingroup qt-network
- \brief An API to control the system's connectivity state.
+\title Bearer Management
+\ingroup qt-network
+\brief An API to control the system's connectivity state.
Bearer Management controls the connectivity state of the system so that
the user can start or stop interfaces or roam transparently between
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 62decbb..7325e27 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -60,7 +60,53 @@
\section1 Recent Additions to Qt 4
- The following features have been added to Qt since the first release of Qt 4:
+ The following features have been added to Qt since the first release of Qt 4.
+
+ In Qt 4.7:
+ \list
+ \o Declarative UI Development with \l{Qt Quick}, technologies for creating
+ fluid, dynamic user interfaces.
+ \o Support for \l{Bearer Management}{network bearer management}, enabling
+ features such as control over network interfaces and support for roaming
+ between networks.
+ \o Feature and performance improvements in QtWebKit, including a new tiled
+ backing store, control over scroll bars used in frames and framesets,
+ accelerated compositing and \l{The QtWebKit Bridge}{support for hybrid
+ development}.
+ \o General performance improvements, including the use of "alien widgets"
+ on Mac OS X, the QStaticText class for optimized text rendering, a new
+ \l{QPainter::drawPixmapFragments()}{API for rendering pixmap fragments}
+ and an updated version of the JavaScriptCore engine for the QtScript
+ module with improved performance.
+ \endlist
+
+ In Qt 4.6:
+ \list
+ \o Support for \l{The Symbian platform - Introduction to Qt}{the Symbian Platform}
+ as a mainstream Qt platform, with integration into the S60 framework.
+ \o The \l{The Animation Framework}{animation framework} allows animations to be
+ created using both widgets and graphics items.
+ \o The \l{The State Machine Framework}{state machine framework} provides a robust
+ state chart implementation based on Harel statecharts and SCXML.
+ \o Support for \l{QTouchEvent}{touch input} and \l{Gestures Programming}{gestures}
+ enable developers to create intuitive user interfaces for touch-based devices.
+ \o A \l{QWebElement}{DOM access API} for QtWebKit provides a cleaner and safer way
+ to access elements and structures of Web pages without the use of JavaScript.
+ \o A collection of performance improvements, covering QGraphicsView, QPixmapCache,
+ QNetworkAccessManager, QContiguousCache class, hardware-accelerated rendering
+ support through \l{OpenVG Rendering in Qt}{OpenVG}, and the removal of Win9x
+ support.
+ \o A collection of \l{QGraphicsEffect}{graphics effects} make it easy to apply
+ and simple effects to graphics items and combine them to produce more complex
+ effects.
+ \o Support for XML schema validation in the QtXmlPatterns module covering
+ large parts of version 1.0 of the specification.
+ \o Qt3D enablers, including math primitives for \l{QMatrix4x4}{matrix multiplication},
+ \l{QVector3D}{vectors}, \l{QQuaternion}{quaternions} (client-side), and an API
+ for \l{QGLShader}{vertex and fragment shaders}, GLSL/ES.
+ \o \l{QtMultimedia Module}{Multimedia services} providing low-level access to the
+ system's audio system.
+ \endlist
In Qt 4.5:
\list
@@ -209,7 +255,7 @@
\row \o \l{Qt3Support} \o Qt 3 support classes
\row \o \l{QAxContainer} \o ActiveQt client extension
\row \o \l{QAxServer} \o ActiveQt server extension
- \row \o \l{QtHelp} \o Classes for integrating online documentation
+ \row \o \l{QtHelp} \o Classes for integrating online documentation
\row \o \l{QtDesigner} \o Classes for extending and embedding Qt Designer
\row \o \l{QtUiTools} \o Classes for dynamic GUI generation
\row \o \l{QtTest} \o Tool classes for unit testing
@@ -451,7 +497,7 @@
A list of other Qt 4 features can be found on the \bold{\l{What's
New in Qt 4}} page.
- \section1 Declarative UI development with Qt Quick
+ \section1 Declarative UI Development with Qt Quick
\image quick_screens.png
@@ -508,7 +554,7 @@
For hybrid QtWebKit and C++ projects, Qt 4.7 has added support for
transporting \l{QPixmap}s between Qt C++ and WebKit. We have also
- improved the documentation hybrid development. Read more here:
+ improved the documentation for hybrid development. Read more here:
\l{The QtWebKit Bridge}.
\section1 QtWebKit Performance Benchmarks
@@ -680,7 +726,7 @@
See the QTouchEvent class documentation for more information on touch
input and QGestureEvent for gestures.
- \section1 DOM access API
+ \section1 DOM Access API
Web pages and XML both have very complex document object models.
The W3C selector API provides a very simple way to access and
@@ -699,7 +745,7 @@
\list
\o Rewritten the QGraphicsView rendering algorithm.
- \o Made QPixmapCache support efficient Key datastructure.
+ \o Made QPixmapCache support efficient Key data structure.
\o Reduced overhead in QNetworkAccessManager.
\o Added the QContiguousCache class, which provides efficient caching of
contiguous data.
@@ -740,7 +786,7 @@
See the \l{XML Processing} and QXmlSchema class documentation for more
information.
- \section1 Qt3D enablers
+ \section1 Qt3D Enablers
As more of Qt, and more of the applications built on Qt go 3D,
API's should be provided to simplify this. Mainly, the new API
@@ -750,7 +796,7 @@
The main features of the Qt3D enablers are currently: Math
primitives for matrix multiplication, vectors, quaternions
- (client-side), and API for vertex and fragment shaders, GLSL/ES.
+ (client-side), and an API for vertex and fragment shaders, GLSL/ES.
Future research will, among other things include stencils,
scissors, vertex buffers and arrays, texture manipulation, and
geometry shaders.
--
cgit v0.12
From 4db69b5c116412bbcdb032affe9fa2c73e61abb1 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Wed, 8 Dec 2010 17:50:59 +0100
Subject: Updated the build files to use config files not command line options.
---
doc/doc.pri | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/doc.pri b/doc/doc.pri
index a5db3c7..3cdac61 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -19,8 +19,8 @@ $$unixstyle {
QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && set QT_BUILD_TREE=$$QT_BUILD_TREE&& set QT_SOURCE_TREE=$$QT_SOURCE_TREE&& $$QT_BUILD_TREE/bin/qdoc3.exe $$DOCS_GENERATION_DEFINES
QDOC = $$replace(QDOC, "/", "\\")
}
-ADP_DOCS_QDOCCONF_FILE = -online qt-build-docs.qdocconf
-QT_DOCUMENTATION = ($$QDOC -creator qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \
+ADP_DOCS_QDOCCONF_FILE = qt-build-docs-online.qdocconf
+QT_DOCUMENTATION = ($$QDOC qt-api-only.qdocconf assistant.qdocconf designer.qdocconf \
linguist.qdocconf qmake.qdocconf qdeclarative.qdocconf) && \
(cd $$QT_BUILD_TREE && \
$$GENERATOR doc-build/html-qt/qt.qhp -o doc/qch/qt.qch && \
--
cgit v0.12
From 0ffdc7556920564fce899ccd4bb4e7ce68a5c4d2 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Wed, 8 Dec 2010 17:52:42 +0100
Subject: Use the same style of qmake variable referencing used elsewhere in
Qt.
---
tools/qdoc3/qdoc3.pro | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro
index 4bc6bca..2fedc0f 100644
--- a/tools/qdoc3/qdoc3.pro
+++ b/tools/qdoc3/qdoc3.pro
@@ -86,9 +86,9 @@ SOURCES += atom.cpp \
tree.cpp \
yyindent.cpp
-INCLUDEPATH += $$(QT_BUILD_TREE)/include/QtDeclarative
+INCLUDEPATH += $$QT_BUILD_TREE/include/QtDeclarative
-include($$(QT_SOURCE_TREE)/src/declarative/qml/parser/parser.pri)
+include($$QT_SOURCE_TREE/src/declarative/qml/parser/parser.pri)
### Documentation for qdoc3 ###
--
cgit v0.12
From 05f330b96deaec54c4cfd7c1a190e7d90d77a54d Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Thu, 9 Dec 2010 16:00:56 +0100
Subject: Used a different style class for areas containing QML markup.
---
tools/qdoc3/htmlgenerator.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 456654f..ba36d9c 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -489,7 +489,7 @@ int HtmlGenerator::generateAtom(const Atom *atom,
break;
#ifdef QDOC_QML
case Atom::Qml:
- out() << ""
+ out() << ""
<< trimmedTrailing(highlightedCode(indent(codeIndent,atom->string()),
marker,relative))
<< " \n";
--
cgit v0.12
From 32292ebabf620200708d40fa8bfa43fc6562d716 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Thu, 9 Dec 2010 16:02:22 +0100
Subject: Removed redundant style information and images.
---
tools/qdoc3/test/qt-html-default-styles.qdocconf | 26 ++++------------------
tools/qdoc3/test/qt-html-online-styles.qdocconf | 11 +++------
tools/qdoc3/test/qt-html-templates-online.qdocconf | 6 +----
tools/qdoc3/test/qt-html-templates.qdocconf | 20 ++---------------
4 files changed, 10 insertions(+), 53 deletions(-)
diff --git a/tools/qdoc3/test/qt-html-default-styles.qdocconf b/tools/qdoc3/test/qt-html-default-styles.qdocconf
index 30c28cb..c9c02ea 100644
--- a/tools/qdoc3/test/qt-html-default-styles.qdocconf
+++ b/tools/qdoc3/test/qt-html-default-styles.qdocconf
@@ -4,43 +4,25 @@
HTML.templatedir = $QT_SOURCE_TREE/doc/src/template
-HTML.stylesheets = style/style.css \
- style/narrow.css
+HTML.stylesheets = style/style.css
HTML.scripts =
# Files not referenced in any qdoc file (last four needed by qtdemo)
# See also qhp.Qt.extraFiles
-extraimages.HTML = qt-logo \
- trolltech-logo \
- bg_l.png \
- bg_l_blank.png \
- bg_ll_blank.png \
- bg_ul_blank.png \
- header_bg.png \
- bg_r.png \
- box_bg.png \
+extraimages.HTML = qt-logo.png \
+ arrow_down.png \
breadcrumb.png \
bullet_gt.png \
bullet_dn.png \
bullet_sq.png \
bullet_up.png \
- arrow_down.png \
- feedbackground.png \
horBar.png \
- page.png \
- page_bg.png \
- sprites-combined.png \
- spinner.gif \
- stylesheet-coffee-plastique.png \
- taskmenuextension-example.png \
- coloreditorfactoryimage.png \
- dynamiclayouts-example.png
+ sprites-combined.png
# Include the style sheets and scripts used.
HTML.headerstyles = \
- " \n" \
" \n"
HTML.headerscripts =
diff --git a/tools/qdoc3/test/qt-html-online-styles.qdocconf b/tools/qdoc3/test/qt-html-online-styles.qdocconf
index 06f8964..6db3491 100644
--- a/tools/qdoc3/test/qt-html-online-styles.qdocconf
+++ b/tools/qdoc3/test/qt-html-online-styles.qdocconf
@@ -18,10 +18,9 @@ HTML.scripts = scripts/functions.js \
scripts/jquery.js
-# Files not referenced in any qdoc file (last four needed by qtdemo)
+# Files not referenced in any qdoc file.
# See also qhp.Qt.extraFiles
-extraimages.HTML = qt-logo \
- trolltech-logo \
+extraimages.HTML = qt-logo.png \
bg_l.png \
bg_l_blank.png \
bg_ll_blank.png \
@@ -40,11 +39,7 @@ extraimages.HTML = qt-logo \
page.png \
page_bg.png \
sprites-combined.png \
- spinner.gif \
- stylesheet-coffee-plastique.png \
- taskmenuextension-example.png \
- coloreditorfactoryimage.png \
- dynamiclayouts-example.png
+ spinner.gif
# Include the style sheets and scripts used.
diff --git a/tools/qdoc3/test/qt-html-templates-online.qdocconf b/tools/qdoc3/test/qt-html-templates-online.qdocconf
index 1d55cee..bc7dbd2 100644
--- a/tools/qdoc3/test/qt-html-templates-online.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates-online.qdocconf
@@ -198,7 +198,7 @@ HTML.footer = \
" \n"
-# Files not referenced in any qdoc file (last four are needed by qtdemo)
+# Files not referenced in any qdoc file.
# See also extraimages.HTML
qhp.Qt.extraFiles = index.html \
images/bg_l.png \
@@ -220,10 +220,6 @@ qhp.Qt.extraFiles = index.html \
images/page_bg.png \
images/sprites-combined.png \
images/spinner.gif \
- images/stylesheet-coffee-plastique.png \
- images/taskmenuextension-example.png \
- images/coloreditorfactoryimage.png \
- images/dynamiclayouts-example.png \
scripts/functions.js \
scripts/jquery.js \
scripts/narrow.js \
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index 67ce95a..8241fa0 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -47,31 +47,15 @@ HTML.footer = \
" as published by the Free Software Foundation.
\n" \
"\n" \
-# Files not referenced in any qdoc file (last four are needed by qtdemo)
+# Files not referenced in any qdoc file.
# See also extraimages.HTML
qhp.Qt.extraFiles = index.html \
- images/bg_l.png \
- images/bg_l_blank.png \
- images/bg_ll_blank.png \
- images/bg_ul_blank.png \
- images/header_bg.png \
- images/bg_r.png \
- images/box_bg.png \
+ images/arrow_down.png \
images/breadcrumb.png \
images/bullet_gt.png \
images/bullet_dn.png \
images/bullet_sq.png \
images/bullet_up.png \
- images/arrow_down.png \
- images/feedbackground.png \
images/horBar.png \
- images/page.png \
- images/page_bg.png \
images/sprites-combined.png \
- images/spinner.gif \
- images/stylesheet-coffee-plastique.png \
- images/taskmenuextension-example.png \
- images/coloreditorfactoryimage.png \
- images/dynamiclayouts-example.png \
- style/narrow.css \
style/style.css
--
cgit v0.12
From 77f069df4dcfd40a3d009f40e074ce1a5ac132c1 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Thu, 9 Dec 2010 19:38:01 +0100
Subject: Added hack to remove markup for opened comments at the end of
snippets.
---
tools/qdoc3/quoter.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/qdoc3/quoter.cpp b/tools/qdoc3/quoter.cpp
index 6dc7894..84c6fb1 100644
--- a/tools/qdoc3/quoter.cpp
+++ b/tools/qdoc3/quoter.cpp
@@ -235,10 +235,14 @@ QString Quoter::quoteSnippet(const Location &docLocation, const QString &identif
QString lastLine = getLine();
int dIndex = lastLine.indexOf(delimiter);
if (dIndex > 0) {
+ // The delimiter might be preceded on the line by other
+ // delimeters, so look for the first comment on the line.
QString leading = lastLine.left(dIndex);
dIndex = leading.indexOf(comment);
if (dIndex != -1)
leading = leading.left(dIndex);
+ if (leading.endsWith(QLatin1String("<@comment>")))
+ leading.chop(10);
if (!leading.trimmed().isEmpty())
t += leading;
}
--
cgit v0.12
From 297da17b94df6cd4a3b0c4ade56baf55310939e8 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Thu, 9 Dec 2010 19:39:35 +0100
Subject: Ensured that object definition identifiers are marked up as links.
It may be worthwhile extending this to other UiQualifiedId nodes.
---
tools/qdoc3/qmlmarkupvisitor.cpp | 14 +++++++++++---
tools/qdoc3/qmlmarkupvisitor.h | 3 ++-
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/tools/qdoc3/qmlmarkupvisitor.cpp b/tools/qdoc3/qmlmarkupvisitor.cpp
index 6bede96..9916be2 100644
--- a/tools/qdoc3/qmlmarkupvisitor.cpp
+++ b/tools/qdoc3/qmlmarkupvisitor.cpp
@@ -183,7 +183,8 @@ void QmlMarkupVisitor::addExtra(quint32 start, quint32 finish)
}
void QmlMarkupVisitor::addMarkedUpToken(
- QDeclarativeJS::AST::SourceLocation &location, const QString &tagName)
+ QDeclarativeJS::AST::SourceLocation &location, const QString &tagName,
+ const QHash &attributes)
{
if (!location.isValid())
return;
@@ -193,7 +194,10 @@ void QmlMarkupVisitor::addMarkedUpToken(
else if (cursor > location.offset)
return;
- output += QString(QLatin1String("<@%1>%2@%3>")).arg(tagName, protect(sourceText(location)), tagName);
+ output += QString(QLatin1String("<@%1")).arg(tagName);
+ foreach (const QString &key, attributes)
+ output += QString(QLatin1String(" %1=\"%2\"")).arg(key).arg(attributes[key]);
+ output += QString(QLatin1String(">%2@%3>")).arg(protect(sourceText(location)), tagName);
cursor += location.length;
}
@@ -853,9 +857,13 @@ bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::DebuggerStatement *statement)
return true;
}
+// Elements and items are represented by UiObjectDefinition nodes.
+
bool QmlMarkupVisitor::visit(QDeclarativeJS::AST::UiObjectDefinition *definition)
{
- QDeclarativeJS::AST::Node::accept(definition->qualifiedTypeNameId, this);
+ QHash attributes;
+ attributes[QLatin1String("node")] = sourceText(definition->qualifiedTypeNameId->identifierToken);
+ addMarkedUpToken(definition->qualifiedTypeNameId->identifierToken, QLatin1String("link"), attributes);
QDeclarativeJS::AST::Node::accept(definition->initializer, this);
return false;
}
diff --git a/tools/qdoc3/qmlmarkupvisitor.h b/tools/qdoc3/qmlmarkupvisitor.h
index 7a9ff22..60bc336 100644
--- a/tools/qdoc3/qmlmarkupvisitor.h
+++ b/tools/qdoc3/qmlmarkupvisitor.h
@@ -161,7 +161,8 @@ protected:
private:
void addExtra(quint32 start, quint32 finish);
void addMarkedUpToken(QDeclarativeJS::AST::SourceLocation &location,
- const QString &text);
+ const QString &text,
+ const QHash &attributes = QHash());
void addVerbatim(QDeclarativeJS::AST::SourceLocation first,
QDeclarativeJS::AST::SourceLocation last = QDeclarativeJS::AST::SourceLocation());
QString sourceText(QDeclarativeJS::AST::SourceLocation &location);
--
cgit v0.12
From 4b8b0321828bd1175534ff3b883956c5b97f9399 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Thu, 9 Dec 2010 19:41:10 +0100
Subject: Doc: Temporarily used \qml...\endqml markup for the QML introduction.
---
doc/src/declarative/qdeclarativeintro.qdoc | 75 +++++++++++++-----------------
1 file changed, 32 insertions(+), 43 deletions(-)
diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc
index 4e41fda..299ec73 100644
--- a/doc/src/declarative/qdeclarativeintro.qdoc
+++ b/doc/src/declarative/qdeclarativeintro.qdoc
@@ -45,7 +45,7 @@ technologies like HTML and CSS, but it's not required.
QML looks like this:
-\code
+\qml
import QtQuick 1.0
Rectangle {
@@ -58,7 +58,7 @@ Rectangle {
anchors.centerIn: parent
}
}
-\endcode
+\endqml
Objects are specified by their type, followed by a pair of braces. Object
types always begin with a capital letter. In the above example, there are
@@ -71,18 +71,18 @@ value \c "pics/logo.png". The property and its value are separated by a colon.
Properties can be specified one-per-line:
-\code
+\qml
Rectangle {
width: 100
height: 100
}
-\endcode
+\endqml
or you can put multiple properties on a single line:
-\code
+\qml
Rectangle { width: 100; height: 100 }
-\endcode
+\endqml
When multiple property/value pairs are specified on a single line, they
must be separated by a semicolon.
@@ -96,17 +96,17 @@ and \l Image elements would not be available.
In addition to assigning values to properties, you can also assign
expressions written in JavaScript.
-\code
+\qml
Rotation {
angle: 360 * 3
}
-\endcode
+\endqml
These expressions can include references to other objects and properties, in which case
a \e binding is established: when the value of the expression changes, the property the
expression has been assigned to is automatically updated to that value.
-\code
+\qml
Item {
Text {
id: text1
@@ -117,7 +117,7 @@ Item {
text: text1.text
}
}
-\endcode
+\endqml
In the example above, the \c text2 object will display the same text as \c text1. If \c text1 is changed,
\c text2 is automatically changed to the same value.
@@ -142,12 +142,12 @@ your QML files.
Comments can also be used to prevent the execution of code, which is
sometimes useful for tracking down problems.
-\code
+\qml
Text {
text: "Hello world!"
//opacity: 0.5
}
-\endcode
+\endqml
In the above example, the Text object will have normal opacity, since the
line opacity: 0.5 has been turned into a comment.
@@ -164,14 +164,14 @@ Properties begin with a lowercase letter (with the exception of \l{Attached Prop
QML supports properties of many types (see \l{QML Basic Types}). The basic types include int,
real, bool, string, color, and lists.
-\code
+\qml
Item {
x: 10.5 // a 'real' property
- ...
+ // ...
state: "details" // a 'string' property
focus: true // a 'bool' property
}
-\endcode
+\endqml
QML properties are what is known as \e type-safe. That is, they only allow you to assign a value that
matches the property type. For example, the \c x property of item is a real, and if you try to assign
@@ -193,7 +193,7 @@ The first Rectangle element below has an \e id, "myRect". The second Rectangle e
own width by referring to \tt myRect.width, which means it will have the same \tt width
value as the first Rectangle element.
-\code
+\qml
Item {
Rectangle {
id: myRect
@@ -205,7 +205,7 @@ Item {
height: 200
}
}
-\endcode
+\endqml
Note that an \e id must begin with a lower-case letter or an underscore, and cannot contain characters other than letters, numbers and underscores.
@@ -214,24 +214,24 @@ Note that an \e id must begin with a lower-case letter or an underscore, and can
List properties look like this:
-\code
+\qml
Item {
children: [
Image {},
Text {}
]
}
-\endcode
+\endqml
The list is enclosed in square brackets, with a comma separating the
list elements. In cases where you are only assigning a single item to a
list, you can omit the square brackets:
-\code
+\qml
Image {
children: Rectangle {}
}
-\endcode
+\endqml
Items in the list can be accessed by index. See the \l{list}{list type} documentation
for more details about list properties and their available operations.
@@ -243,23 +243,23 @@ Each object type can specify one of its list or object properties as its default
If a property has been declared as the default property, the property tag can be omitted.
For example this code:
-\code
+\qml
State {
changes: [
PropertyChanges {},
PropertyChanges {}
]
}
-\endcode
+\endqml
can be simplified to:
-\code
+\qml
State {
PropertyChanges {}
PropertyChanges {}
}
-\endcode
+\endqml
because \c changes is the default property of the \c State type.
@@ -294,18 +294,7 @@ are of the form \e {Type.property} where \e Type is the type of the
element that attaches \e property.
For example:
-\code
-Component {
- id: myDelegate
- Text {
- text: "Hello"
- color: ListView.isCurrentItem ? "red" : "blue"
- }
-}
-ListView {
- delegate: myDelegate
-}
-\endcode
+\snippet doc/src/snippets/declarative/introduction-qml/attachedproperties1.qml component and list view
The \l ListView element attaches the \e ListView.isCurrentItem property
to each delegate it creates.
@@ -314,12 +303,12 @@ Another example of attached properties is the \l Keys element which
attaches properties for handling key presses to
any visual Item, for example:
-\code
+\qml
Item {
focus: true
Keys.onSelectPressed: console.log("Selected")
}
-\endcode
+\endqml
\section2 Signal Handlers
@@ -327,23 +316,23 @@ Signal handlers allow actions to be taken in response to an event. For instance
the \l MouseArea element has signal handlers to handle mouse press, release
and click:
-\code
+\qml
MouseArea {
onPressed: console.log("mouse button pressed")
}
-\endcode
+\endqml
All signal handlers begin with \e "on".
Some signal handlers include an optional parameter, for example
the MouseArea onPressed signal handler has a \e mouse parameter:
-\code
+\qml
MouseArea {
acceptedButtons: Qt.LeftButton | Qt.RightButton
onPressed: if (mouse.button == Qt.RightButton) console.log("Right mouse button pressed")
}
-\endcode
+\endqml
*/
--
cgit v0.12
From 485ac91fd7e1243fad8809c0664130b52c5fa0bb Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 14:07:05 +0100
Subject: Removed trailing whitespace.
---
tools/qdoc3/atom.h | 50 +++++++++++++++++++++++++-------------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/tools/qdoc3/atom.h b/tools/qdoc3/atom.h
index 70fbae9..5b7da31 100644
--- a/tools/qdoc3/atom.h
+++ b/tools/qdoc3/atom.h
@@ -56,20 +56,20 @@ class Atom
{
public:
enum Type {
- AbstractLeft,
- AbstractRight,
+ AbstractLeft,
+ AbstractRight,
AnnotatedList,
AutoLink,
- BaseName,
+ BaseName,
BriefLeft,
- BriefRight,
+ BriefRight,
C,
- CaptionLeft,
+ CaptionLeft,
CaptionRight,
- Code,
- CodeBad,
- CodeNew,
- CodeOld,
+ Code,
+ CodeBad,
+ CodeNew,
+ CodeOld,
CodeQuoteArgument,
CodeQuoteCommand,
#ifdef QDOC_QML
@@ -77,42 +77,42 @@ class Atom
#endif
FootnoteLeft,
FootnoteRight,
- FormatElse,
+ FormatElse,
FormatEndif,
FormatIf,
FormattingLeft,
FormattingRight,
GeneratedList,
- Image,
+ Image,
ImageText,
InlineImage,
LegaleseLeft,
LegaleseRight,
- LineBreak,
- Link,
+ LineBreak,
+ Link,
LinkNode,
- ListLeft,
+ ListLeft,
ListItemNumber,
ListTagLeft,
ListTagRight,
ListItemLeft,
- ListItemRight,
- ListRight,
- Nop,
+ ListItemRight,
+ ListRight,
+ Nop,
ParaLeft,
- ParaRight,
+ ParaRight,
#ifdef QDOC_QML
Qml,
QmlText,
#endif
- QuotationLeft,
+ QuotationLeft,
QuotationRight,
RawString,
SectionLeft,
SectionRight,
SectionHeadingLeft,
SectionHeadingRight,
- SidebarLeft,
+ SidebarLeft,
SidebarRight,
SinceList,
SnippetCommand,
@@ -120,18 +120,18 @@ class Atom
SnippetLocation,
String,
TableLeft,
- TableRight,
+ TableRight,
TableHeaderLeft,
TableHeaderRight,
TableRowLeft,
- TableRowRight,
- TableItemLeft,
+ TableRowRight,
+ TableItemLeft,
TableItemRight,
TableOfContents,
Target,
- UnhandledFormat,
+ UnhandledFormat,
UnknownCommand,
- Last = UnknownCommand
+ Last = UnknownCommand
};
Atom(Type type, const QString &string = "")
--
cgit v0.12
From c4e5d784609533e26ee9ea6459cd315bd9c3c0a4 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 19:47:23 +0100
Subject: Fixed macro argument handling.
Fixed macro definition parsing that confused someone into thinking
that single backslashes would appear in macro definitions instead
of control codes.
Fixed a bug that caused only arguments in general macros to be
handled.
Enabled arguments in HTML macros.
---
tools/qdoc3/doc.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 42 insertions(+), 5 deletions(-)
diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp
index f153dfb..a6e42c6 100644
--- a/tools/qdoc3/doc.cpp
+++ b/tools/qdoc3/doc.cpp
@@ -374,6 +374,7 @@ class DocParser
void leaveTableRow();
CodeMarker *quoteFromFile();
void expandMacro(const QString& name, const QString& def, int numParams);
+ QString expandMacroToString(const QString &name, const QString &def, int numParams);
Doc::SectioningUnit getSectioningUnit();
QString getArgument(bool verbatim = false);
QString getOptionalArgument();
@@ -1228,7 +1229,7 @@ void DocParser::parse(const QString& source,
}
else {
location().push(macro.defaultDefLocation.filePath());
- in.insert(pos, macro.defaultDef);
+ in.insert(pos, expandMacroToString(cmdStr, macro.defaultDef, macro.numParams));
len = in.length();
openedInputs.push(pos + macro.defaultDef.length());
}
@@ -1968,15 +1969,14 @@ void DocParser::expandMacro(const QString &name,
int j = 0;
while (j < def.size()) {
int paramNo;
- if ((def[j] == '\\') && (j < def.size() - 1) &&
- ((paramNo = def[j + 1].digitValue()) >= 1) &&
+ if (((paramNo = def[j].unicode()) >= 1) &&
(paramNo <= numParams)) {
if (!rawString.isEmpty()) {
append(Atom::RawString, rawString);
rawString = "";
}
append(Atom::String, args[paramNo - 1]);
- j += 2;
+ j += 1;
}
else {
rawString += def[j++];
@@ -1987,6 +1987,43 @@ void DocParser::expandMacro(const QString &name,
}
}
+QString DocParser::expandMacroToString(const QString &name, const QString &def, int numParams)
+{
+ if (numParams == 0) {
+ return def;
+ }
+ else {
+ QStringList args;
+ QString rawString;
+
+ 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 (((paramNo = def[j].unicode()) >= 1) &&
+ (paramNo <= numParams)) {
+ rawString += args[paramNo - 1];
+ j += 1;
+ }
+ else {
+ rawString += def[j++];
+ }
+ }
+ return rawString;
+ }
+}
+
Doc::SectioningUnit DocParser::getSectioningUnit()
{
QString name = getOptionalArgument();
@@ -2866,7 +2903,7 @@ void Doc::initialize(const Config& config)
QString def = config.getString(macroDotName + Config::dot + *f);
if (!def.isEmpty()) {
macro.otherDefs.insert(*f, def);
- int m = Config::numParams(macro.defaultDef);
+ int m = Config::numParams(def);
if (macro.numParams == -1) {
macro.numParams = m;
}
--
cgit v0.12
From b0ee435866b65c22338bfb6c878352ff69d868da Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 19:52:01 +0100
Subject: Added macros for floating images and floating images with alt text.
Ideally, these would be HTML-only macros, but the macro system doesn't
know whether macro arguments used in pure HTML are file names, so the
necessary files are not included. By using qdoc commands, we ensure
the files are copied into the generated documentation's images
directory.
---
tools/qdoc3/test/macros.qdocconf | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/tools/qdoc3/test/macros.qdocconf b/tools/qdoc3/test/macros.qdocconf
index 510a8b3..712d5e4 100644
--- a/tools/qdoc3/test/macros.qdocconf
+++ b/tools/qdoc3/test/macros.qdocconf
@@ -30,6 +30,38 @@ macro.endcomment = "\\c{*/}"
macro.uuml.HTML = "ü"
macro.mdash.HTML = "—"
+# Macros for floating images and floating images with alt text.
+# Ideally, these would be HTML-only macros.
+
+macro.floatleft = "\\raw HTML\n" \
+ "" \
+ "\\endraw\n" \
+ "\\inlineimage \1\n" \
+ "\\raw HTML\n" \
+ "
\n" \
+ "\\endraw\n"
+macro.figureleft = "\\raw HTML\n" \
+ "" \
+ "\\endraw\n" \
+ "\\inlineimage \1 \2\n" \
+ "\\raw HTML\n" \
+ "
\n" \
+ "\\endraw\n"
+macro.floatright = "\\raw HTML\n" \
+ "\n" \
+ "\\endraw\n" \
+ "\\inlineimage \1\n" \
+ "\\raw HTML\n" \
+ "
\n" \
+ "\\endraw\n"
+macro.figureright = "\\raw HTML\n" \
+ "" \
+ "\\endraw\n" \
+ "\\inlineimage \1 \2\n" \
+ "\\raw HTML\n" \
+ "
\n" \
+ "\\endraw\n"
+
macro.beginfloatleft.HTML = ""
macro.beginfloatright.HTML = "
"
macro.endfloat.HTML = "
"
--
cgit v0.12
From 95d30d54ca0771a31bf687dac885f02fc1244fc8 Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 19:54:33 +0100
Subject: Doc: Whitespace fix.
---
doc/src/template/style/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index 03bc9a9..04d8c05 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -281,7 +281,7 @@
color: #4c0033;
text-decoration: none;
}
- .content a:visited:hover
+ .content a:visited:hover
{
color: #4c0033;
text-decoration: underline;
--
cgit v0.12
From 38ac76c159044117c1faba7dbfa3e0ee65c487ed Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 19:55:08 +0100
Subject: Doc: Fixed non-well-formed XHTML.
---
doc/src/declarative/qmlinuse.qdoc | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/doc/src/declarative/qmlinuse.qdoc b/doc/src/declarative/qmlinuse.qdoc
index 1127b4c..a1be46c 100644
--- a/doc/src/declarative/qmlinuse.qdoc
+++ b/doc/src/declarative/qmlinuse.qdoc
@@ -72,7 +72,7 @@
-
+
@@ -100,7 +100,7 @@
-
+
@@ -140,7 +140,7 @@
-
+
@@ -185,7 +185,7 @@
-
+
@@ -198,7 +198,7 @@
-
+
These elements define basic interactions such as touch movements and focus management.
Elements:
@@ -216,7 +216,7 @@
-
+
@@ -243,7 +243,7 @@
-
+
@@ -276,7 +276,7 @@
-
+
@@ -307,7 +307,7 @@
-
+
@@ -334,7 +334,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
@@ -410,7 +410,7 @@
-
+
@@ -441,7 +441,7 @@
-
+
@@ -468,7 +468,7 @@
-
+
--
cgit v0.12
From 5cb2226ddf96555417f08c9bfe35addfc93f6acd Mon Sep 17 00:00:00 2001
From: David Boddie
Date: Mon, 13 Dec 2010 19:57:01 +0100
Subject: Doc: Changed floating images to use the new float qdoc macros.
---
doc/src/declarative/positioners.qdoc | 22 ++++++----------------
doc/src/declarative/qdeclarativemodels.qdoc | 4 +---
doc/src/getting-started/how-to-learn-qt.qdoc | 4 +---
doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc | 4 +---
.../graphicsitems/qdeclarativeflickable.cpp | 4 +---
.../graphicsitems/qdeclarativegridview.cpp | 8 ++------
.../graphicsitems/qdeclarativemousearea.cpp | 4 +---
.../graphicsitems/qdeclarativerectangle.cpp | 20 +++++---------------
src/declarative/util/qdeclarativelistmodel.cpp | 8 ++------
src/gui/graphicsview/qgraphicsanchorlayout.cpp | 4 +---
10 files changed, 21 insertions(+), 61 deletions(-)
diff --git a/doc/src/declarative/positioners.qdoc b/doc/src/declarative/positioners.qdoc
index 9265732..ed320a1 100644
--- a/doc/src/declarative/positioners.qdoc
+++ b/doc/src/declarative/positioners.qdoc
@@ -53,9 +53,7 @@ graphical elements:
\section2 Column
-\beginfloatright
-\image qml-column.png
-\endfloat
+\floatright qml-column.png
\l Column items are used to vertically arrange items. The following example
uses a Column item to arrange three \l Rectangle items in an area defined
@@ -70,9 +68,7 @@ must be added to a parent Rectangle, if desired.
\section2 Row
-\beginfloatright
-\image qml-row.png
-\endfloat
+\floatright qml-row.png
\l Row items are used to horizontally arrange items. The following example
uses a Row item to arrange three rounded \l Rectangle items in an area defined
@@ -87,9 +83,7 @@ left around the edges of the horizontally centered Row item.
\section2 Grid
-\beginfloatright
-\image qml-grid-spacing.png
-\endfloat
+\floatright qml-grid-spacing.png
\l Grid items are used to place items in a grid or table arrangement.
The following example uses a Grid item to place four \l Rectangle items
@@ -108,10 +102,8 @@ at the appropriate places in the Grid definition.
\section2 Flow
-\beginfloatright
-\image qml-flow-text1.png
-\image qml-flow-text2.png
-\endfloat
+\floatright qml-flow-text1.png
+\floatright qml-flow-text2.png
\l Flow items are used to place items like words on a page, with rows or
columns of non-overlapping items.
@@ -137,9 +129,7 @@ control of spacing between items and between lines of items.
\section1 Repeaters
-\beginfloatright
-\image qml-repeater-grid-index.png
-\endfloat
+\floatright qml-repeater-grid-index.png
Repeaters create items from a template for use with positioners, using data
from a model. Combining repeaters and positioners is an easy way to lay out
diff --git a/doc/src/declarative/qdeclarativemodels.qdoc b/doc/src/declarative/qdeclarativemodels.qdoc
index e11cd56..a61b115 100644
--- a/doc/src/declarative/qdeclarativemodels.qdoc
+++ b/doc/src/declarative/qdeclarativemodels.qdoc
@@ -504,9 +504,7 @@ a Web browser.
\l ListView shows a classic list of items with horizontal or vertical placing
of items.
-\beginfloatright
-\inlineimage qml-listview-snippet.png
-\endfloat
+\floatright qml-listview-snippet.png
The following example shows a minimal ListView displaying a sequence of
numbers (using an \l{QML Data Models#An Integer}{integer as a model}).
diff --git a/doc/src/getting-started/how-to-learn-qt.qdoc b/doc/src/getting-started/how-to-learn-qt.qdoc
index e9f462c..e5f1ff9 100644
--- a/doc/src/getting-started/how-to-learn-qt.qdoc
+++ b/doc/src/getting-started/how-to-learn-qt.qdoc
@@ -51,9 +51,7 @@
key overviews to deepen your understanding of Qt: The Qt \l{Object
Model} and \l{Signals and Slots}.
- \beginfloatleft
- \inlineimage qtdemo-small.png
- \endfloat
+ \floatleft qtdemo-small.png
\section1 Getting an Overview
diff --git a/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc b/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc
index d942ee6..598cbea 100644
--- a/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc
+++ b/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc
@@ -41,9 +41,7 @@
现在您已经编写了一些小型可用的应用程序,并对 Qt 编程有更加广泛的了解。您可以直接着手做自己的项目,但我们建议您阅读以下一些关键简介以加深您对 Qt 的了解:\l{Qt Object Model}Qt 对象模型}和\l{Signals and Slots}{信号和槽}。
- \beginfloatleft
- \inlineimage qtdemo-small.png
- \endfloat
+ \floatleft qtdemo-small.png
\section1 了解概况
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 377f3b5..1899a39 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -373,9 +373,7 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd()
\section1 Example Usage
- \beginfloatright
- \inlineimage flickable.gif
- \endfloat
+ \floatright flickable.gif
The following example shows a small view onto a large image in which the
user can drag or flick the image in order to view different parts of it.
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 1615b0f..c7517f4 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1095,9 +1095,7 @@ void QDeclarativeGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal m
\snippet doc/src/snippets/declarative/gridview/ContactModel.qml 0
- \beginfloatright
- \inlineimage gridview-simple.png
- \endfloat
+ \floatright gridview-simple.png
This model can be referenced as \c ContactModel in other QML files. See \l{QML Modules}
for more information about creating reusable components like this.
@@ -1111,9 +1109,7 @@ void QDeclarativeGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal m
\codeline
\snippet doc/src/snippets/declarative/gridview/gridview.qml classdocs simple
- \beginfloatright
- \inlineimage gridview-highlight.png
- \endfloat
+ \floatright gridview-highlight.png
The view will create a new delegate for each item in the model. Note that the delegate
is able to access the model's \c name and \c portrait data directly.
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index 0a043a7..56e5c6b 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -216,9 +216,7 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
\section1 Example Usage
- \beginfloatright
- \inlineimage qml-mousearea-snippet.png
- \endfloat
+ \floatright qml-mousearea-snippet.png
The following example uses a MouseArea in a \l Rectangle that changes
the \l Rectangle color to red when clicked:
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index 99b36a8..969027e 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -131,9 +131,7 @@ void QDeclarativeGradientStop::updateGradient()
\section1 Example Usage
- \beginfloatright
- \inlineimage qml-gradient.png
- \endfloat
+ \floatright qml-gradient.png
The following example declares a \l Rectangle item with a gradient starting
with red, blending to yellow at one third of the height of the rectangle,
@@ -217,9 +215,7 @@ void QDeclarativeGradient::doUpdate()
\section1 Example Usage
- \beginfloatright
- \inlineimage declarative-rect.png
- \endfloat
+ \floatright declarative-rect.png
The following example shows the effects of some of the common properties on a
Rectangle item, which in this case is used to create a square:
@@ -269,9 +265,7 @@ void QDeclarativeRectangle::doUpdate()
rectangle (as documented for QRect rendering). This can cause unintended effects if
\c border.width is 1 and the rectangle is \l{Item::clip}{clipped} by a parent item:
- \beginfloatright
- \inlineimage rect-border-width.png
- \endfloat
+ \floatright rect-border-width.png
\snippet doc/src/snippets/declarative/rectangle/rect-border-width.qml 0
@@ -293,9 +287,7 @@ QDeclarativePen *QDeclarativeRectangle::border()
This property allows for the construction of simple vertical gradients.
Other gradients may by formed by adding rotation to the rectangle.
- \beginfloatleft
- \inlineimage declarative-rect_gradient.png
- \endfloat
+ \floatleft declarative-rect_gradient.png
\snippet doc/src/snippets/declarative/rectangle/rectangle-gradient.qml rectangles
\clearfloat
@@ -361,9 +353,7 @@ void QDeclarativeRectangle::setRadius(qreal radius)
The default color is white.
- \beginfloatright
- \inlineimage rect-color.png
- \endfloat
+ \floatright rect-color.png
The following example shows rectangles with colors specified
using hexadecimal and named color notation:
diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp
index 398480e..52e563b 100644
--- a/src/declarative/util/qdeclarativelistmodel.cpp
+++ b/src/declarative/util/qdeclarativelistmodel.cpp
@@ -108,9 +108,7 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM
The following example shows a ListModel containing three elements, with the roles
"name" and "cost".
- \beginfloatright
- \inlineimage listmodel.png
- \endfloat
+ \floatright listmodel.png
\snippet doc/src/snippets/declarative/listmodel.qml 0
@@ -133,9 +131,7 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM
The delegate displays all the fruit attributes:
- \beginfloatright
- \inlineimage listmodel-nested.png
- \endfloat
+ \floatright listmodel-nested.png
\snippet doc/src/snippets/declarative/listmodel-nested.qml delegate
diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
index 539826b..1d1d257 100644
--- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp
@@ -56,9 +56,7 @@
Items that are anchored are automatically added to the layout, and if items
are removed, all their anchors will be automatically removed.
- \beginfloatleft
- \inlineimage simpleanchorlayout-example.png Using an anchor layout to align simple colored widgets.
- \endfloat
+ \figureleft{simpleanchorlayout-example.png}{Using an anchor layout to align simple colored widgets.}
Anchors are always set up between edges of an item, where the "center" is also considered to
be an edge. Consider the following example:
--
cgit v0.12