From 6366969eaac962338424c49619a8664b03428985 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 19 Nov 2009 12:29:00 +1000 Subject: Fix doc typo. --- doc/src/declarative/scope.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/declarative/scope.qdoc b/doc/src/declarative/scope.qdoc index 14efa59..fc678d1 100644 --- a/doc/src/declarative/scope.qdoc +++ b/doc/src/declarative/scope.qdoc @@ -215,7 +215,7 @@ Item { // Scope object for Script block 1 \endcode One notable characteristic of the scope object is its interaction with \l {Attached Properties}. -As attached properties exist on all object, an attached property reference that is not +As attached properties exist on all objects, an attached property reference that is not explicitly prefixed by an id will \e always resolve to the attached property on the scope object. -- cgit v0.12 From 8ca9ca77884229b04f3b48bb7fe085e56e3a9023 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 19 Nov 2009 12:41:19 +1000 Subject: Make sure we restore the base state correctly after the base state changes. This worked correctly as long as there was a transition between the states. Now it works correctly with no transition as well. --- src/declarative/util/qmltransitionmanager.cpp | 6 ++++-- tests/auto/declarative/states/tst_states.cpp | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp index d1db9ec..ba726db 100644 --- a/src/declarative/util/qmltransitionmanager.cpp +++ b/src/declarative/util/qmltransitionmanager.cpp @@ -236,8 +236,11 @@ void QmlTransitionManager::transition(const QList &list, action.property.write(action.toValue); } } - if (!transition) + if (!transition) { d->applyBindings(); + if (d->state) + static_cast(QObjectPrivate::get(d->state))->complete(); + } } void QmlTransitionManager::cancel() @@ -262,7 +265,6 @@ void QmlTransitionManager::cancel() } d->bindingsList.clear(); d->completeList.clear(); - } QT_END_NAMESPACE diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp index 92d278a..a4da1f1 100644 --- a/tests/auto/declarative/states/tst_states.cpp +++ b/tests/auto/declarative/states/tst_states.cpp @@ -68,6 +68,7 @@ private slots: void restoreEntryValues(); void explicitChanges(); void propertyErrors(); + void incorrectRestoreBug(); }; void tst_states::basicChanges() @@ -711,6 +712,32 @@ void tst_states::propertyErrors() rect->setState("blue"); } +void tst_states::incorrectRestoreBug() +{ + QmlEngine engine; + + QmlComponent rectComponent(&engine, SRCDIR "/data/basicChanges.qml"); + QmlGraphicsRectangle *rect = qobject_cast(rectComponent.create()); + QVERIFY(rect != 0); + + QCOMPARE(rect->color(),QColor("red")); + + rect->setState("blue"); + QCOMPARE(rect->color(),QColor("blue")); + + rect->setState(""); + QCOMPARE(rect->color(),QColor("red")); + + // make sure if we change the base state value, we then restore to it correctly + rect->setColor(QColor("green")); + + rect->setState("blue"); + QCOMPARE(rect->color(),QColor("blue")); + + rect->setState(""); + QCOMPARE(rect->color(),QColor("green")); +} + QTEST_MAIN(tst_states) #include "tst_states.moc" -- cgit v0.12