From e7104992c731749335466b6ff771ee886af79f1d Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 15 May 2009 10:35:53 +1000 Subject: Fix finishPlaying behavior for repeating animations. Make sure we stop at the end of the current loop. --- src/declarative/util/qmlanimation.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index dd4e1eb..24bcac98 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -243,8 +243,12 @@ void QmlAbstractAnimation::setRunning(bool r) d->startOnCompletion = true; emit started(); } else { - if (!d->finishPlaying) + if (d->finishPlaying) { + if (d->repeat) + qtAnimation()->setLoopCount(qtAnimation()->currentLoop()+1); + } else qtAnimation()->stop(); + emit completed(); } @@ -512,7 +516,11 @@ void QmlAbstractAnimation::transition(QmlStateActions &actions, void QmlAbstractAnimation::timelineComplete() { + Q_D(QmlAbstractAnimation); setRunning(false); + if (d->finishPlaying && d->repeat) { + qtAnimation()->setLoopCount(-1); + } } /*! -- cgit v0.12