4#include "private/qsequentialanimationgroupjob_p.h"
5#include "private/qpauseanimationjob_p.h"
6#include "private/qanimationjobutil_p.h"
21bool QSequentialAnimationGroupJob::atEnd()
const
30 const int animTotalCurrentTime = m_currentAnimation->
currentTime();
34 && animTotalCurrentTime == animationActualTotalDuration(m_currentAnimation));
37int QSequentialAnimationGroupJob::animationActualTotalDuration(
50QSequentialAnimationGroupJob::AnimationIndex QSequentialAnimationGroupJob::indexForCurrentTime()
const
58 duration = animationActualTotalDuration(anim);
71 if (anim == m_currentAnimation) {
72 ret.afterCurrent =
true;
87void QSequentialAnimationGroupJob::restart()
93 activateCurrentAnimation();
100 activateCurrentAnimation();
106void QSequentialAnimationGroupJob::advanceForwards(
const AnimationIndex &newAnimationIndex)
125 anim && anim != newAnimationIndex.animation; anim =
m_children.
next(anim)) {
132void QSequentialAnimationGroupJob::rewindForwards(
const AnimationIndex &newAnimationIndex)
152 anim && anim != newAnimationIndex.animation; anim =
m_children.
prev(anim)) {
165 if (currentDuration == -1)
168 ret += currentDuration;
180 Q_ASSERT(m_currentAnimation ==
nullptr);
185 if (!m_currentAnimation)
188 const QSequentialAnimationGroupJob::AnimationIndex newAnimationIndex = indexForCurrentTime();
192 || (m_previousLoop ==
m_currentLoop && m_currentAnimation != newAnimationIndex.animation && newAnimationIndex.afterCurrent)) {
197 || (m_previousLoop ==
m_currentLoop && m_currentAnimation != newAnimationIndex.animation && !newAnimationIndex.afterCurrent)) {
204 const int newCurrentTime =
currentTime - newAnimationIndex.timeOffset;
206 if (m_currentAnimation) {
229 if (!m_currentAnimation)
234 m_currentAnimation->
stop();
237 if (oldState == m_currentAnimation->
state() && oldState ==
Running)
238 m_currentAnimation->
pause();
243 if (oldState == m_currentAnimation->
state() && oldState ==
Paused)
244 m_currentAnimation->
start();
258void QSequentialAnimationGroupJob::setCurrentAnimation(
263 m_currentAnimation =
nullptr;
267 if (anim == m_currentAnimation)
271 if (m_currentAnimation)
272 m_currentAnimation->
stop();
281 activateCurrentAnimation(intermediate);
284void QSequentialAnimationGroupJob::activateCurrentAnimation(
bool intermediate)
289 m_currentAnimation->
stop();
300 m_currentAnimation->
pause();
317 int dur =
a->duration();
332 int dur =
a->duration();
349 if (m_currentAnimation ==
nullptr)
371 bool removingCurrent = anim == m_currentAnimation;
372 if (removingCurrent) {
384 if (job == m_currentAnimation)
390 if (!removingCurrent) {
402 d <<
"SequentialAnimationGroupJob(" <<
Qt::hex << (
const void *)
this <<
Qt::dec <<
")" <<
"currentAnimation:" << (
void *)m_currentAnimation;
void setDirection(QAbstractAnimationJob::Direction direction)
int totalDuration() const
virtual void updateState(QAbstractAnimationJob::State newState, QAbstractAnimationJob::State oldState)
void setCurrentTime(int msecs)
QAbstractAnimationJob::State state() const
QAbstractAnimationJob::Direction m_direction
QAbstractAnimationJob::Direction direction() const
virtual void animationRemoved(QAbstractAnimationJob *, QAbstractAnimationJob *, QAbstractAnimationJob *)
void resetUncontrolledAnimationFinishTime(QAbstractAnimationJob *anim)
int uncontrolledAnimationFinishTime(const QAbstractAnimationJob *anim) const
void debugChildren(QDebug d) const
void setUncontrolledAnimationFinishTime(QAbstractAnimationJob *anim, int time)
const N * next(const N *current) const
bool contains(const N *n) const
const N * prev(const N *current) const
void updateCurrentTime(int) override
int duration() const override
void animationInserted(QAbstractAnimationJob *anim) override
void animationRemoved(QAbstractAnimationJob *anim, QAbstractAnimationJob *, QAbstractAnimationJob *) override
QSequentialAnimationGroupJob()
void uncontrolledAnimationFinished(QAbstractAnimationJob *animation) override
void debugAnimation(QDebug d) const override
void updateDirection(QAbstractAnimationJob::Direction direction) override
~QSequentialAnimationGroupJob()
void updateState(QAbstractAnimationJob::State newState, QAbstractAnimationJob::State oldState) override
void newState(QList< State > &states, const char *token, const char *lexem, bool pre)
Combined button and popup list for selecting options.
QTextStream & hex(QTextStream &stream)
Calls QTextStream::setIntegerBase(16) on stream and returns stream.
QTextStream & dec(QTextStream &stream)
Calls QTextStream::setIntegerBase(10) on stream and returns stream.
#define RETURN_IF_DELETED(func)
GLboolean GLboolean GLboolean GLboolean a
[7]
static double currentTime()