Where normal animations would derive the current loop from the current
time, uncontrolled animations use an iterative approach and which was
not reset when an animation was restarted or a parent had a loop
around it.
Change-Id: Ia7a1880c8b7578463dff4c5ddeab48324bcb32ee
Reviewed-by: Michael Brasser <michael.brasser@live.com>
{
// this ensures that the value is updated now that the animation is running
if (oldState == Stopped) {
+ m_currentLoop = 0;
if (isTopLevel) {
// currentTime needs to be updated if pauseTimer is active
RETURN_IF_DELETED(QQmlAnimationTimer::ensureTimerUpdate());
break;
case Running:
for (QAbstractAnimationJob *animation = firstChild(); animation; animation = animation->nextSibling()) {
- if (oldState == Stopped)
+ if (oldState == Stopped) {
animation->stop();
+ m_previousLoop = m_direction == Forward ? 0 : m_loopCount - 1;
+ }
resetUncontrolledAnimationFinishTime(animation);
animation->setDirection(m_direction);
if (shouldAnimationStart(animation, oldState == Stopped))