From 4833e5080c75a1f52a3040db5118fea5701d930e Mon Sep 17 00:00:00 2001 From: Timur Artikov Date: Thu, 17 Apr 2014 10:31:39 +0700 Subject: Allow to control animations frame rate from a custom QAnimationDriver Don't use time from the global timer (QUnifiedTimer::time.elapsed()) for animations updating when an user overrides QAnimationDriver::elapsed() Task-number: QTBUG-38390 Change-Id: Ic1470b43d8bbc0ee0a2bbb87f7173f97ba03f852 Reviewed-by: Michael Brasser Reviewed-by: Gunnar Sletta --- src/corelib/animation/qabstractanimation.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/corelib/animation') diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index f7bb1e91bd..95d7713cfe 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -253,8 +253,9 @@ QUnifiedTimer *QUnifiedTimer::instance() void QUnifiedTimer::maybeUpdateAnimationsToCurrentTime() { - if (time.elapsed() - lastTick > 50) - updateAnimationTimers(driver->elapsed()); + qint64 elapsed = driver->elapsed(); + if (elapsed - lastTick > 50) + updateAnimationTimers(elapsed); } void QUnifiedTimer::updateAnimationTimers(qint64 currentTick) @@ -263,7 +264,7 @@ void QUnifiedTimer::updateAnimationTimers(qint64 currentTick) if(insideTick) return; - qint64 totalElapsed = currentTick >= 0 ? currentTick : time.elapsed(); + qint64 totalElapsed = currentTick >= 0 ? currentTick : driver->elapsed(); // ignore consistentTiming in case the pause timer is active qint64 delta = (consistentTiming && !pauseTimer.isActive()) ? -- cgit v1.2.3