diff options
author | Charles Yin <charles.yin@nokia.com> | 2012-05-09 10:24:06 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-09 03:26:54 +0200 |
commit | a1994d440b32e14535eed2450db379dc55e869d5 (patch) | |
tree | e6e9d51455824abc6c15698241ee3bd2b1a46b79 | |
parent | f010ac1da4ebdaf7317a6ee718a2eea9eca44c35 (diff) |
Emit runningChanged() signal after running count updated
Otherwise, in onRunningChanged handler, the running property won't
be updated.
Change-Id: I3dccfb346a66c67d455f66f4af3ee8d2b9d8e33a
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
-rw-r--r-- | src/quick/util/qquicktransition.cpp | 6 | ||||
-rw-r--r-- | tests/auto/quick/qquickanimations/tst_qquickanimations.cpp | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/quick/util/qquicktransition.cpp b/src/quick/util/qquicktransition.cpp index 300dda1479..b88584900c 100644 --- a/src/quick/util/qquicktransition.cpp +++ b/src/quick/util/qquicktransition.cpp @@ -175,12 +175,12 @@ void QQuickTransitionPrivate::animationStateChanged(QAbstractAnimationJob *, QAb Q_Q(QQuickTransition); if (newState == QAbstractAnimationJob::Running) { - if (!runningInstanceCount) - emit q->runningChanged(); runningInstanceCount++; + if (runningInstanceCount == 1) + emit q->runningChanged(); } else if (newState == QAbstractAnimationJob::Stopped) { runningInstanceCount--; - if (!runningInstanceCount) + if (runningInstanceCount == 0) emit q->runningChanged(); } } diff --git a/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp b/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp index 7460263d71..60b0465637 100644 --- a/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp +++ b/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp @@ -990,9 +990,12 @@ void tst_qquickanimations::disabledTransition() QSignalSpy runningSpy(trans, SIGNAL(runningChanged())); QQuickItemPrivate::get(rect)->setState(""); QCOMPARE(myRect->x(),qreal(200)); + QCOMPARE(runningSpy.count(), 1); //stopped -> running + QVERIFY(trans->running()); QTest::qWait(300); QTIMED_COMPARE(myRect->x(),qreal(100)); - QCOMPARE(runningSpy.count(), 2); //stopped, running, stopped + QVERIFY(!trans->running()); + QCOMPARE(runningSpy.count(), 2); //running -> stopped } void tst_qquickanimations::invalidDuration() |