18void QContinuingAnimationGroupJob::updateCurrentTime(
int )
20 Q_ASSERT(!m_children.isEmpty());
21 for (QAbstractAnimationJob *animation : m_children) {
22 if (animation->state() == state()) {
23 RETURN_IF_DELETED(animation->setCurrentTime(m_currentTime));
28void QContinuingAnimationGroupJob::updateState(QAbstractAnimationJob::State newState,
29 QAbstractAnimationJob::State oldState)
31 QAnimationGroupJob::updateState(newState, oldState);
35 for (QAbstractAnimationJob *animation : m_children)
39 for (QAbstractAnimationJob *animation : m_children)
40 if (animation->isRunning())
44 if (m_children.isEmpty()) {
48 for (QAbstractAnimationJob *animation : m_children) {
49 RETURN_IF_DELETED(resetUncontrolledAnimationFinishTime(animation));
50 animation->setDirection(m_direction);
51 RETURN_IF_DELETED(animation->start());
65void QContinuingAnimationGroupJob::uncontrolledAnimationFinished(QAbstractAnimationJob *animation)
67 Q_ASSERT(animation && (animation->duration() == -1));
68 int uncontrolledRunningCount = 0;
70 for (QAbstractAnimationJob *child : m_children) {
71 if (child == animation)
72 setUncontrolledAnimationFinishTime(animation, animation->currentTime());
73 else if (uncontrolledAnimationFinishTime(child) == -1)
74 ++uncontrolledRunningCount;
77 if (uncontrolledRunningCount > 0)
80 setUncontrolledAnimationFinishTime(
this, currentTime());