39 QAbstractAnimationPrivate();
40 virtual ~QAbstractAnimationPrivate();
42 static QAbstractAnimationPrivate *get(QAbstractAnimation *q)
47 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(QAbstractAnimationPrivate, QAbstractAnimation::State,
48 state, QAbstractAnimation::Stopped)
49 void setState(QAbstractAnimation::State state);
51 void setDirection(QAbstractAnimation::Direction direction)
53 q_func()->setDirection(direction);
55 void emitDirectionChanged() { Q_EMIT q_func()->directionChanged(direction); }
56 Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QAbstractAnimationPrivate, QAbstractAnimation::Direction,
57 direction, &QAbstractAnimationPrivate::setDirection,
58 &QAbstractAnimationPrivate::emitDirectionChanged,
59 QAbstractAnimation::Forward)
61 void setCurrentTime(
int msecs) { q_func()->setCurrentTime(msecs); }
62 Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QAbstractAnimationPrivate,
int, totalCurrentTime,
63 &QAbstractAnimationPrivate::setCurrentTime, 0)
66 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(QAbstractAnimationPrivate,
int, loopCount, 1)
68 void emitCurrentLoopChanged() { Q_EMIT q_func()->currentLoopChanged(currentLoop); }
69 Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QAbstractAnimationPrivate,
int, currentLoop,
nullptr,
70 &QAbstractAnimationPrivate::emitCurrentLoopChanged, 0)
72 bool deleteWhenStopped =
false;
73 bool hasRegisteredTimer =
false;
77 QAnimationGroup *group =
nullptr;
80 Q_DECLARE_PUBLIC(QAbstractAnimation)
138 ~QUnifiedTimer() override;
140 static QUnifiedTimer *instance();
141 static QUnifiedTimer *instance(
bool create);
143 static void startAnimationTimer(QAbstractAnimationTimer *timer);
144 static void stopAnimationTimer(QAbstractAnimationTimer *timer);
146 static void pauseAnimationTimer(QAbstractAnimationTimer *timer,
int duration);
147 static void resumeAnimationTimer(QAbstractAnimationTimer *timer);
150 void setTimingInterval(
int interval);
153
154
155
156 void setConsistentTiming(
bool consistent) { consistentTiming = consistent; }
160 qreal getSpeedModifier()
const {
return speedModifier; }
161 void setSpeedModifier(qreal speed) { speedModifier = speed; }
163 void installAnimationDriver(QAnimationDriver *driver);
164 void uninstallAnimationDriver(QAnimationDriver *driver);
165 bool canUninstallAnimationDriver(QAnimationDriver *driver);
168 void maybeUpdateAnimationsToCurrentTime();
169 void updateAnimationTimers();
172 qsizetype runningAnimationCount()
const;
173 void registerProfilerCallback(
void (*cb)(qint64));
175 void startAnimationDriver();
176 void stopAnimationDriver();
177 qint64 elapsed()
const;
180 void timerEvent(QTimerEvent *) override;
187 friend class QDefaultAnimationDriver;
188 friend class QAnimationDriver;
190 QAnimationDriver *driver;
191#if defined(Q_OS_WASM)
192 QWasmAnimationDriver defaultDriver;
194 QDefaultAnimationDriver defaultDriver;
197 QBasicTimer pauseTimer;
203 int currentAnimationIdx;
206 bool consistentTiming;
207 bool startTimersPending;
208 bool stopTimerPending;
209 bool allowNegativeDelta;
215 QList<QAbstractAnimationTimer*> animationTimers, animationTimersToStart;
216 QList<QAbstractAnimationTimer*> pausedAnimationTimers;
219 int closestPausedAnimationTimerTimeToFinish();
221 void (*profilerCallback)(qint64);
223 qint64 driverStartTime;
224 qint64 temporalDrift;
243
244
245
249
250
251
266 int currentAnimationIdx;
268 bool startAnimationPending;
269 bool stopTimerPending;
271 QList<QAbstractAnimation*> animations, animationsToStart;
274 int runningLeafAnimations;
275 QList<QAbstractAnimation*> runningPauseAnimations;
277 void registerRunningAnimation(QAbstractAnimation *animation);
278 void unregisterRunningAnimation(QAbstractAnimation *animation);
280 int closestPauseAnimationTimeToFinish();