Qt 4.8
Public Functions | Protected Functions | List of all members
QAnimationGroup Class Reference

The QAnimationGroup class is an abstract base class for groups of animations. More...

#include <qanimationgroup.h>

Inheritance diagram for QAnimationGroup:
QAbstractAnimation QObject QParallelAnimationGroup QSequentialAnimationGroup ParallelAnimationWrapper

Public Functions

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
 
virtual int duration () const =0
 
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...
 
 QAnimationGroup (QAnimationGroupPrivate &dd, QObject *parent)
 
- Protected Functions inherited from QAbstractAnimation
 QAbstractAnimation (QAbstractAnimationPrivate &dd, QObject *parent=0)
 
virtual void updateCurrentTime (int currentTime)=0
 This pure virtual function is called every time the animation's currentTime changes. More...
 
virtual void updateDirection (QAbstractAnimation::Direction direction)
 This virtual function is called by QAbstractAnimation when the direction of the animation is changed. More...
 
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 oldState to newState. More...
 
- 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...
 

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...
 
- 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...
 
- 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 QAnimationGroup class is an abstract base class for groups of animations.

Since
4.6

An animation group is a container for animations (subclasses of QAbstractAnimation). A group is usually responsible for managing the state of its animations, i.e., it decides when to start, stop, resume, and pause them. Currently, Qt provides two such groups: QParallelAnimationGroup and QSequentialAnimationGroup. Look up their class descriptions for details.

Since QAnimationGroup inherits from QAbstractAnimation, you can combine groups, and easily construct complex animation graphs. You can query QAbstractAnimation for the group it belongs to (using the QAbstractAnimation::group() function).

To start a top-level animation group, you simply use the QAbstractAnimation::start() function from QAbstractAnimation. By a top-level animation group, we think of a group that itself is not contained within another group. Starting sub groups directly is not supported, and may lead to unexpected behavior.

Warning
This function is not part of the public interface. OK, we'll put in a snippet on this here

QAnimationGroup provides methods for adding and retrieving animations. Besides that, you can remove animations by calling remove(), and clear the animation group by calling clear(). You may keep track of changes in the group's animations by listening to QEvent::ChildAdded and QEvent::ChildRemoved events.

Warning
This function is not part of the public interface. OK, let's find a snippet here as well.

QAnimationGroup takes ownership of the animations it manages, and ensures that they are deleted when the animation group is deleted.

See also
QAbstractAnimation, QVariantAnimation, {The Animation Framework}

Definition at line 56 of file qanimationgroup.h.

Constructors and Destructors

◆ QAnimationGroup() [1/2]

QAnimationGroup::QAnimationGroup ( QObject parent = 0)

Constructs a QAnimationGroup.

parent is passed to QObject's constructor.

Definition at line 102 of file qanimationgroup.cpp.

104 {
105 }
QAbstractAnimation(QObject *parent=0)
Constructs the QAbstractAnimation base class, and passes parent to QObject&#39;s constructor.

◆ ~QAnimationGroup()

QAnimationGroup::~QAnimationGroup ( )

Destroys the animation group.

It will also destroy all its animations.

Definition at line 118 of file qanimationgroup.cpp.

119 {
120 }

◆ QAnimationGroup() [2/2]

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

Definition at line 110 of file qanimationgroup.cpp.

111  : QAbstractAnimation(dd, parent)
112 {
113 }
QAbstractAnimation(QObject *parent=0)
Constructs the QAbstractAnimation base class, and passes parent to QObject&#39;s constructor.

Functions

◆ addAnimation()

void QAnimationGroup::addAnimation ( QAbstractAnimation animation)

Adds animation to this group.

This will call insertAnimation with index equals to animationCount().

Note
The group takes ownership of the animation.
See also
removeAnimation()

Definition at line 173 of file qanimationgroup.cpp.

Referenced by QSequentialAnimationGroup::addPause(), and event().

174 {
176  insertAnimation(d->animations.count(), animation);
177 }
double d
Definition: qnumeric_p.h:62
void insertAnimation(int index, QAbstractAnimation *animation)
Inserts animation into this animation group at index.
#define Q_D(Class)
Definition: qglobal.h:2482
The QAnimationGroup class is an abstract base class for groups of animations.

◆ animationAt()

QAbstractAnimation * QAnimationGroup::animationAt ( int  index) const

Returns a pointer to the animation at index in this group.

This function is useful when you need access to a particular animation. index is between 0 and animationCount() - 1.

See also
animationCount(), indexOfAnimation()

Definition at line 129 of file qanimationgroup.cpp.

Referenced by QStateMachinePrivate::initializeAnimation().

130 {
131  Q_D(const QAnimationGroup);
132 
133  if (index < 0 || index >= d->animations.size()) {
134  qWarning("QAnimationGroup::animationAt: index is out of bounds");
135  return 0;
136  }
137 
138  return d->animations.at(index);
139 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qWarning(const char *,...)
quint16 index
The QAnimationGroup class is an abstract base class for groups of animations.

◆ animationCount()

int QAnimationGroup::animationCount ( ) const

Returns the number of animations managed by this group.

See also
indexOfAnimation(), addAnimation(), animationAt()

Definition at line 147 of file qanimationgroup.cpp.

Referenced by QStateMachinePrivate::initializeAnimation().

148 {
149  Q_D(const QAnimationGroup);
150  return d->animations.size();
151 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAnimationGroup class is an abstract base class for groups of animations.

◆ clear()

void QAnimationGroup::clear ( )

Removes and deletes all animations in this animation group, and resets the current time to 0.

See also
addAnimation(), removeAnimation()

Definition at line 260 of file qanimationgroup.cpp.

261 {
263  qDeleteAll(d->animations);
264 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAnimationGroup class is an abstract base class for groups of animations.
Q_OUTOFLINE_TEMPLATE void qDeleteAll(ForwardIterator begin, ForwardIterator end)
Definition: qalgorithms.h:319

◆ event()

bool QAnimationGroup::event ( QEvent event)
protectedvirtual

Reimplemented Function

Reimplemented from QAbstractAnimation.

Reimplemented in QSequentialAnimationGroup, and QParallelAnimationGroup.

Definition at line 269 of file qanimationgroup.cpp.

Referenced by QParallelAnimationGroup::event(), and QSequentialAnimationGroup::event().

270 {
272  if (event->type() == QEvent::ChildAdded) {
273  QChildEvent *childEvent = static_cast<QChildEvent *>(event);
274  if (QAbstractAnimation *a = qobject_cast<QAbstractAnimation *>(childEvent->child())) {
275  if (a->group() != this)
276  addAnimation(a);
277  }
278  } else if (event->type() == QEvent::ChildRemoved) {
279  QChildEvent *childEvent = static_cast<QChildEvent *>(event);
280  QAbstractAnimation *a = static_cast<QAbstractAnimation *>(childEvent->child());
281  // You can only rely on the child being a QObject because in the QEvent::ChildRemoved
282  // case it might be called from the destructor.
283  int index = d->animations.indexOf(a);
284  if (index != -1)
285  takeAnimation(index);
286  }
287  return QAbstractAnimation::event(event);
288 }
double d
Definition: qnumeric_p.h:62
QAbstractAnimation * takeAnimation(int index)
Returns the animation at index and removes it from the animation group.
long ASN1_INTEGER_get ASN1_INTEGER * a
#define Q_D(Class)
Definition: qglobal.h:2482
void addAnimation(QAbstractAnimation *animation)
Adds animation to this group.
virtual void childEvent(QChildEvent *)
This event handler can be reimplemented in a subclass to receive child events.
Definition: qobject.cpp:1332
The QAbstractAnimation class is the base of all animations.
bool event(QEvent *event)
Reimplemented Function
The QChildEvent class contains event parameters for child object events.
Definition: qcoreevent.h:353
bool event(QEvent *event)
Reimplemented Function
quint16 index
The QAnimationGroup class is an abstract base class for groups of animations.
Type type() const
Returns the event type.
Definition: qcoreevent.h:303
QObject * child() const
Returns the child object that was added or removed.
Definition: qcoreevent.h:358

◆ indexOfAnimation()

int QAnimationGroup::indexOfAnimation ( QAbstractAnimation animation) const

Returns the index of animation.

The returned index can be passed to the other functions that take an index as an argument.

See also
insertAnimation(), animationAt(), takeAnimation()

Definition at line 159 of file qanimationgroup.cpp.

160 {
161  Q_D(const QAnimationGroup);
162  return d->animations.indexOf(animation);
163 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAnimationGroup class is an abstract base class for groups of animations.

◆ insertAnimation()

void QAnimationGroup::insertAnimation ( int  index,
QAbstractAnimation animation 
)

Inserts animation into this animation group at index.

If index is 0 the animation is inserted at the beginning. If index is animationCount(), the animation is inserted at the end.

Note
The group takes ownership of the animation.
See also
takeAnimation(), addAnimation(), indexOfAnimation(), removeAnimation()

Definition at line 188 of file qanimationgroup.cpp.

Referenced by addAnimation(), and QSequentialAnimationGroup::insertPause().

189 {
191 
192  if (index < 0 || index > d->animations.size()) {
193  qWarning("QAnimationGroup::insertAnimation: index is out of bounds");
194  return;
195  }
196 
197  if (QAnimationGroup *oldGroup = animation->group())
198  oldGroup->removeAnimation(animation);
199 
200  d->animations.insert(index, animation);
201  QAbstractAnimationPrivate::get(animation)->group = this;
202  // this will make sure that ChildAdded event is sent to 'this'
203  animation->setParent(this);
204  d->animationInsertedAt(index);
205 }
double d
Definition: qnumeric_p.h:62
static QAbstractAnimationPrivate * get(QAbstractAnimation *q)
#define Q_D(Class)
Definition: qglobal.h:2482
void setParent(QObject *)
Makes the object a child of parent.
Definition: qobject.cpp:1950
QAnimationGroup * group() const
If this animation is part of a QAnimationGroup, this function returns a pointer to the group; otherwi...
Q_CORE_EXPORT void qWarning(const char *,...)
quint16 index
The QAnimationGroup class is an abstract base class for groups of animations.

◆ removeAnimation()

void QAnimationGroup::removeAnimation ( QAbstractAnimation animation)

Removes animation from this group.

The ownership of animation is transferred to the caller.

See also
takeAnimation(), insertAnimation(), addAnimation()

Definition at line 213 of file qanimationgroup.cpp.

214 {
216 
217  if (!animation) {
218  qWarning("QAnimationGroup::remove: cannot remove null animation");
219  return;
220  }
221  int index = d->animations.indexOf(animation);
222  if (index == -1) {
223  qWarning("QAnimationGroup::remove: animation is not part of this group");
224  return;
225  }
226 
227  takeAnimation(index);
228 }
double d
Definition: qnumeric_p.h:62
QAbstractAnimation * takeAnimation(int index)
Returns the animation at index and removes it from the animation group.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qWarning(const char *,...)
quint16 index
The QAnimationGroup class is an abstract base class for groups of animations.

◆ takeAnimation()

QAbstractAnimation * QAnimationGroup::takeAnimation ( int  index)

Returns the animation at index and removes it from the animation group.

Note
The ownership of the animation is transferred to the caller.
See also
removeAnimation(), addAnimation(), insertAnimation(), indexOfAnimation()

Definition at line 237 of file qanimationgroup.cpp.

Referenced by event(), and removeAnimation().

238 {
240  if (index < 0 || index >= d->animations.size()) {
241  qWarning("QAnimationGroup::takeAnimation: no animation at index %d", index);
242  return 0;
243  }
244  QAbstractAnimation *animation = d->animations.at(index);
245  QAbstractAnimationPrivate::get(animation)->group = 0;
246  // ### removing from list before doing setParent to avoid inifinite recursion
247  // in ChildRemoved event
248  d->animations.removeAt(index);
249  animation->setParent(0);
250  d->animationRemoved(index, animation);
251  return animation;
252 }
double d
Definition: qnumeric_p.h:62
static QAbstractAnimationPrivate * get(QAbstractAnimation *q)
#define Q_D(Class)
Definition: qglobal.h:2482
void setParent(QObject *)
Makes the object a child of parent.
Definition: qobject.cpp:1950
Q_CORE_EXPORT void qWarning(const char *,...)
The QAbstractAnimation class is the base of all animations.
quint16 index
The QAnimationGroup class is an abstract base class for groups of animations.

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