Qt 4.8
Signals | Public Functions | Protected Functions | Properties | List of all members
QSequentialAnimationGroup Class Reference

The QSequentialAnimationGroup class provides a sequential group of animations. More...

#include <qsequentialanimationgroup.h>

Inheritance diagram for QSequentialAnimationGroup:
QAnimationGroup QAbstractAnimation QObject

Signals

void currentAnimationChanged (QAbstractAnimation *current)
 QSequentialAnimationGroup emits this signal when currentAnimation has been changed. More...
 
- Signals inherited from QAbstractAnimation
void currentLoopChanged (int currentLoop)
 QAbstractAnimation emits this signal whenever the current loop changes. More...
 
void directionChanged (QAbstractAnimation::Direction)
 QAbstractAnimation emits this signal whenever the direction has been changed. More...
 
void finished ()
 QAbstractAnimation emits this signal after the animation has stopped and has reached the end. More...
 
void stateChanged (QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
 QAbstractAnimation emits this signal whenever the state of the animation has changed from oldState to newState. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

QPauseAnimationaddPause (int msecs)
 Adds a pause of msecs to this animation group. More...
 
QAbstractAnimationcurrentAnimation () const
 
int duration () const
 Reimplemented Function More...
 
QPauseAnimationinsertPause (int index, int msecs)
 Inserts a pause of msecs milliseconds at index in this animation group. More...
 
 QSequentialAnimationGroup (QObject *parent=0)
 Constructs a QSequentialAnimationGroup. More...
 
 ~QSequentialAnimationGroup ()
 Destroys the animation group. More...
 
- Public Functions inherited from QAnimationGroup
void addAnimation (QAbstractAnimation *animation)
 Adds animation to this group. More...
 
QAbstractAnimationanimationAt (int index) const
 Returns a pointer to the animation at index in this group. More...
 
int animationCount () const
 Returns the number of animations managed by this group. More...
 
void clear ()
 Removes and deletes all animations in this animation group, and resets the current time to 0. More...
 
int indexOfAnimation (QAbstractAnimation *animation) const
 Returns the index of animation. More...
 
void insertAnimation (int index, QAbstractAnimation *animation)
 Inserts animation into this animation group at index. More...
 
 QAnimationGroup (QObject *parent=0)
 Constructs a QAnimationGroup. More...
 
void removeAnimation (QAbstractAnimation *animation)
 Removes animation from this group. More...
 
QAbstractAnimationtakeAnimation (int index)
 Returns the animation at index and removes it from the animation group. More...
 
 ~QAnimationGroup ()
 Destroys the animation group. More...
 
- Public Functions inherited from QAbstractAnimation
int currentLoop () const
 
int currentLoopTime () const
 Returns the current time inside the current loop. More...
 
int currentTime () const
 
Direction direction () const
 
QAnimationGroupgroup () const
 If this animation is part of a QAnimationGroup, this function returns a pointer to the group; otherwise, it returns 0. More...
 
int loopCount () const
 
 QAbstractAnimation (QObject *parent=0)
 Constructs the QAbstractAnimation base class, and passes parent to QObject's constructor. More...
 
void setDirection (Direction direction)
 
void setLoopCount (int loopCount)
 
State state () const
 
int totalDuration () const
 Returns the total and effective duration of the animation, including the loop count. More...
 
virtual ~QAbstractAnimation ()
 Stops the animation if it's running, then destroys the QAbstractAnimation. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Functions

bool event (QEvent *event)
 Reimplemented Function More...
 
 QSequentialAnimationGroup (QSequentialAnimationGroupPrivate &dd, QObject *parent)
 
void updateCurrentTime (int)
 Reimplemented Function More...
 
void updateDirection (QAbstractAnimation::Direction direction)
 Reimplemented Function More...
 
void updateState (QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
 Reimplemented Function More...
 
- Protected Functions inherited from QAnimationGroup
 QAnimationGroup (QAnimationGroupPrivate &dd, QObject *parent)
 
- Protected Functions inherited from QAbstractAnimation
 QAbstractAnimation (QAbstractAnimationPrivate &dd, QObject *parent=0)
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Properties

QAbstractAnimationcurrentAnimation
 Returns the animation in the current time. More...
 

Additional Inherited Members

- Public Types inherited from QAbstractAnimation
enum  DeletionPolicy { KeepWhenStopped = 0, DeleteWhenStopped }
 
enum  Direction { Forward, Backward }
 This enum describes the direction of the animation when in Running state. More...
 
enum  State { Stopped, Paused, Running }
 This enum describes the state of the animation. More...
 
- Public Slots inherited from QAbstractAnimation
void pause ()
 Pauses the animation. More...
 
void resume ()
 Resumes the animation after it was paused. More...
 
void setCurrentTime (int msecs)
 
void setPaused (bool)
 If paused is true, the animation is paused. More...
 
void start (QAbstractAnimation::DeletionPolicy policy=KeepWhenStopped)
 Starts the animation. More...
 
void stop ()
 Stops the animation. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QSequentialAnimationGroup class provides a sequential group of animations.

Since
4.6

QSequentialAnimationGroup is a QAnimationGroup that runs its animations in sequence, i.e., it starts one animation after another has finished playing. The animations are played in the order they are added to the group (using QAnimationGroup::addAnimation() or QAnimationGroup::insertAnimation()). The animation group finishes when its last animation has finished.

At each moment there is at most one animation that is active in the group; it is returned by currentAnimation(). An empty group has no current animation.

A sequential animation group can be treated as any other animation, i.e., it can be started, stopped, and added to other groups. You can also call addPause() or insertPause() to add a pause to a sequential animation group.

In this example, anim1 and anim2 are two already set up QPropertyAnimation.

See also
QAnimationGroup, QAbstractAnimation, {The Animation Framework}

Definition at line 58 of file qsequentialanimationgroup.h.

Constructors and Destructors

◆ QSequentialAnimationGroup() [1/2]

QSequentialAnimationGroup::QSequentialAnimationGroup ( QObject parent = 0)

Constructs a QSequentialAnimationGroup.

parent is passed to QObject's constructor.

Definition at line 254 of file qsequentialanimationgroup.cpp.

256 {
257 }
QAnimationGroup(QObject *parent=0)
Constructs a QAnimationGroup.

◆ ~QSequentialAnimationGroup()

QSequentialAnimationGroup::~QSequentialAnimationGroup ( )

Destroys the animation group.

It will also destroy all its animations.

Definition at line 271 of file qsequentialanimationgroup.cpp.

272 {
273 }

◆ QSequentialAnimationGroup() [2/2]

QSequentialAnimationGroup::QSequentialAnimationGroup ( QSequentialAnimationGroupPrivate dd,
QObject parent 
)
protected
Warning
This function is not part of the public interface.

Definition at line 262 of file qsequentialanimationgroup.cpp.

264  : QAnimationGroup(dd, parent)
265 {
266 }
QAnimationGroup(QObject *parent=0)
Constructs a QAnimationGroup.

Functions

◆ addPause()

QPauseAnimation * QSequentialAnimationGroup::addPause ( int  msecs)

Adds a pause of msecs to this animation group.

The pause is considered as a special type of animation, thus animationCount will be increased by one.

See also
insertPause(), QAnimationGroup::addAnimation()

Definition at line 283 of file qsequentialanimationgroup.cpp.

284 {
285  QPauseAnimation *pause = new QPauseAnimation(msecs);
286  addAnimation(pause);
287  return pause;
288 }
The QPauseAnimation class provides a pause for QSequentialAnimationGroup.
void addAnimation(QAbstractAnimation *animation)
Adds animation to this group.
void pause()
Pauses the animation.

◆ currentAnimation()

QAbstractAnimation* QSequentialAnimationGroup::currentAnimation ( ) const

◆ currentAnimationChanged

QSequentialAnimationGroup::currentAnimationChanged ( QAbstractAnimation current)
signal

QSequentialAnimationGroup emits this signal when currentAnimation has been changed.

current is the current animation.

See also
currentAnimation()

◆ duration()

int QSequentialAnimationGroup::duration ( ) const
virtual

Reimplemented Function

Implements QAbstractAnimation.

Definition at line 329 of file qsequentialanimationgroup.cpp.

330 {
332  int ret = 0;
333 
334  for (int i = 0; i < d->animations.size(); ++i) {
335  QAbstractAnimation *animation = d->animations.at(i);
336  const int currentDuration = animation->totalDuration();
337  if (currentDuration == -1)
338  return -1; // Undetermined length
339 
340  ret += currentDuration;
341  }
342 
343  return ret;
344 }
double d
Definition: qnumeric_p.h:62
int totalDuration() const
Returns the total and effective duration of the animation, including the loop count.
The QSequentialAnimationGroup class provides a sequential group of animations.
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractAnimation class is the base of all animations.

◆ event()

bool QSequentialAnimationGroup::event ( QEvent event)
protectedvirtual

Reimplemented Function

Reimplemented from QAnimationGroup.

Definition at line 442 of file qsequentialanimationgroup.cpp.

443 {
444  return QAnimationGroup::event(event);
445 }
bool event(QEvent *event)
Reimplemented Function

◆ insertPause()

QPauseAnimation * QSequentialAnimationGroup::insertPause ( int  index,
int  msecs 
)

Inserts a pause of msecs milliseconds at index in this animation group.

See also
addPause(), QAnimationGroup::insertAnimation()

Definition at line 296 of file qsequentialanimationgroup.cpp.

297 {
299 
300  if (index < 0 || index > d->animations.size()) {
301  qWarning("QSequentialAnimationGroup::insertPause: index is out of bounds");
302  return 0;
303  }
304 
305  QPauseAnimation *pause = new QPauseAnimation(msecs);
306  insertAnimation(index, pause);
307  return pause;
308 }
double d
Definition: qnumeric_p.h:62
void insertAnimation(int index, QAbstractAnimation *animation)
Inserts animation into this animation group at index.
The QSequentialAnimationGroup class provides a sequential group of animations.
The QPauseAnimation class provides a pause for QSequentialAnimationGroup.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qWarning(const char *,...)
void pause()
Pauses the animation.
quint16 index

◆ updateCurrentTime()

void QSequentialAnimationGroup::updateCurrentTime ( int  currentTime)
protectedvirtual

Reimplemented Function

Implements QAbstractAnimation.

Definition at line 349 of file qsequentialanimationgroup.cpp.

350 {
352  if (!d->currentAnimation)
353  return;
354 
355  const QSequentialAnimationGroupPrivate::AnimationIndex newAnimationIndex = d->indexForCurrentTime();
356 
357  // remove unneeded animations from actualDuration list
358  while (newAnimationIndex.index < d->actualDuration.size())
359  d->actualDuration.removeLast();
360 
361  // newAnimationIndex.index is the new current animation
362  if (d->lastLoop < d->currentLoop
363  || (d->lastLoop == d->currentLoop && d->currentAnimationIndex < newAnimationIndex.index)) {
364  // advancing with forward direction is the same as rewinding with backwards direction
365  d->advanceForwards(newAnimationIndex);
366  } else if (d->lastLoop > d->currentLoop
367  || (d->lastLoop == d->currentLoop && d->currentAnimationIndex > newAnimationIndex.index)) {
368  // rewinding with forward direction is the same as advancing with backwards direction
369  d->rewindForwards(newAnimationIndex);
370  }
371 
372  d->setCurrentAnimation(newAnimationIndex.index);
373 
374  const int newCurrentTime = currentTime - newAnimationIndex.timeOffset;
375 
376  if (d->currentAnimation) {
377  d->currentAnimation->setCurrentTime(newCurrentTime);
378  if (d->atEnd()) {
379  //we make sure that we don't exceed the duration here
380  d->currentTime += QAbstractAnimationPrivate::get(d->currentAnimation)->totalCurrentTime - newCurrentTime;
381  stop();
382  }
383  } else {
384  //the only case where currentAnimation could be null
385  //is when all animations have been removed
386  Q_ASSERT(d->animations.isEmpty());
387  d->currentTime = 0;
388  stop();
389  }
390 
391  d->lastLoop = d->currentLoop;
392 }
double d
Definition: qnumeric_p.h:62
The QSequentialAnimationGroup class provides a sequential group of animations.
static QAbstractAnimationPrivate * get(QAbstractAnimation *q)
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define Q_D(Class)
Definition: qglobal.h:2482
void stop()
Stops the animation.
int currentTime() const

◆ updateDirection()

void QSequentialAnimationGroup::updateDirection ( QAbstractAnimation::Direction  direction)
protectedvirtual

Reimplemented Function

Reimplemented from QAbstractAnimation.

Definition at line 431 of file qsequentialanimationgroup.cpp.

432 {
434  // we need to update the direction of the current animation
435  if (state() != Stopped && d->currentAnimation)
436  d->currentAnimation->setDirection(direction);
437 }
double d
Definition: qnumeric_p.h:62
The QSequentialAnimationGroup class provides a sequential group of animations.
State state() const
#define Q_D(Class)
Definition: qglobal.h:2482
Direction direction() const

◆ updateState()

void QSequentialAnimationGroup::updateState ( QAbstractAnimation::State  newState,
QAbstractAnimation::State  oldState 
)
protectedvirtual

Reimplemented Function

Reimplemented from QAbstractAnimation.

Definition at line 397 of file qsequentialanimationgroup.cpp.

399 {
401  QAnimationGroup::updateState(newState, oldState);
402 
403  if (!d->currentAnimation)
404  return;
405 
406  switch (newState) {
407  case Stopped:
408  d->currentAnimation->stop();
409  break;
410  case Paused:
411  if (oldState == d->currentAnimation->state()
412  && oldState == QSequentialAnimationGroup::Running) {
413  d->currentAnimation->pause();
414  }
415  else
416  d->restart();
417  break;
418  case Running:
419  if (oldState == d->currentAnimation->state()
420  && oldState == QSequentialAnimationGroup::Paused)
421  d->currentAnimation->start();
422  else
423  d->restart();
424  break;
425  }
426 }
double d
Definition: qnumeric_p.h:62
The QSequentialAnimationGroup class provides a sequential group of animations.
#define Q_D(Class)
Definition: qglobal.h:2482
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
This virtual function is called by QAbstractAnimation when the state of the animation is changed from...

Properties

◆ currentAnimation

QAbstractAnimation * QSequentialAnimationGroup::currentAnimation
private

Returns the animation in the current time.

See also
currentAnimationChanged()

Definition at line 61 of file qsequentialanimationgroup.h.


The documentation for this class was generated from the following files: