void QUnifiedTimer::timerEvent(QTimerEvent *event) { if (event->timerId() == startStopAnimationTimer.timerId()) { startStopAnimationTimer.stop(); //we transfer the waiting animations into the "really running" state animations += animationsToStart; animationsToStart.clear(); if (animations.isEmpty()) { animationTimer.stop(); isPauseTimerActive = false; // invalidate the start reference time time = QTime(); } else { restartAnimationTimer(); if (!time.isValid()) { lastTick = 0; time.start(); } } } else if (event->timerId() == animationTimer.timerId()) { // update current time on all top level animations updateAnimationsTime(); restartAnimationTimer(); } }
void QUnifiedTimer::timerEvent(QTimerEvent *event) { //in the case of consistent timing we make sure the orders in which events come is always the same //for that purpose we do as if the startstoptimer would always fire before the animation timer if ((consistentTiming && startStopAnimationTimer.isActive()) || event->timerId() == startStopAnimationTimer.timerId()) { startStopAnimationTimer.stop(); //we transfer the waiting animations into the "really running" state animations += animationsToStart; animationsToStart.clear(); if (animations.isEmpty()) { animationTimer.stop(); isPauseTimerActive = false; // invalidate the start reference time time.invalidate(); } else { restartAnimationTimer(); if (!time.isValid()) { lastTick = 0; time.start(); } } } if (event->timerId() == animationTimer.timerId()) { // update current time on all top level animations updateAnimationsTime(); restartAnimationTimer(); } }
void QUnifiedTimer::ensureTimerUpdate() { if (isPauseTimerActive) updateAnimationsTime(); }