diff options
author | Leonardo Sobral Cunha <leo.cunha@nokia.com> | 2009-10-02 15:13:11 (GMT) |
---|---|---|
committer | Leonardo Sobral Cunha <leo.cunha@nokia.com> | 2009-10-07 15:37:46 (GMT) |
commit | 3dbc4ad00f809b110f143f2473c230bc5c481391 (patch) | |
tree | 065245053d9fe95d6ea238ed1a78350f45244623 /src/corelib | |
parent | 6480937b52c4d18dce0288c69586467f36584590 (diff) | |
download | Qt-3dbc4ad00f809b110f143f2473c230bc5c481391.zip Qt-3dbc4ad00f809b110f143f2473c230bc5c481391.tar.gz Qt-3dbc4ad00f809b110f143f2473c230bc5c481391.tar.bz2 |
In QAbstractAnimation::setState setCurrentTime when animation pauses
If we want to avoid timer ticks in QPauseAnimation, We need to update the
current time when an animation pauses, for being able to resume correctly.
Reviewed-by: thierry
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/animation/qabstractanimation.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index 2769040..a4a8853 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -292,22 +292,23 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) switch (state) { case QAbstractAnimation::Paused: + q->setCurrentTime(currentTime); + if (!guard) + return; + QUnifiedTimer::instance()->unregisterAnimation(q); + break; case QAbstractAnimation::Running: - //this ensures that the value is updated now that the animation is running - if(oldState == QAbstractAnimation::Stopped) { + // this ensures that the value is updated now that the animation is running + if (oldState == QAbstractAnimation::Stopped) { q->setCurrentTime(currentTime); if (!guard) return; } - // Register timer if our parent is not running. if (state == QAbstractAnimation::Running) { - if (!group || group->state() == QAbstractAnimation::Stopped) { + // Register timer if our parent is not running + if (!group || group->state() == QAbstractAnimation::Stopped) QUnifiedTimer::instance()->registerAnimation(q); - } - } else { - //new state is paused - QUnifiedTimer::instance()->unregisterAnimation(q); } break; case QAbstractAnimation::Stopped: |