Qt 4.8
Public Functions | Public Variables | Protected Functions | Private Functions | Properties | List of all members
QSmoothedAnimation Class Reference

#include <qdeclarativesmoothedanimation_p_p.h>

Inheritance diagram for QSmoothedAnimation:
QAbstractAnimation QObject

Public Functions

int duration () const
 
void init ()
 
 QSmoothedAnimation (QObject *parent=0)
 
void restart ()
 
- 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...
 

Public Variables

qreal initialVelocity
 
int maximumEasingTime
 
QDeclarativeSmoothedAnimation::ReversingMode reversingMode
 
QDeclarativeProperty target
 
qreal to
 
qreal trackVelocity
 
int userDuration
 
qreal velocity
 

Protected Functions

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

Private Functions

void delayedStop ()
 
qreal easeFollow (qreal)
 
bool recalc ()
 

Properties

qreal a
 
qreal d
 
QTimer delayedStopTimer
 
int finalDuration
 
qreal initialValue
 
bool invert
 
int lastTime
 
qreal s
 
qreal sd
 
qreal sp
 
qreal td
 
qreal tf
 
qreal tp
 
qreal vi
 
qreal vp
 

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

Definition at line 68 of file qdeclarativesmoothedanimation_p_p.h.

Constructors and Destructors

◆ QSmoothedAnimation()

QSmoothedAnimation::QSmoothedAnimation ( QObject parent = 0)

Definition at line 60 of file qdeclarativesmoothedanimation.cpp.

61  : QAbstractAnimation(parent), to(0), velocity(200), userDuration(-1), maximumEasingTime(-1),
64 {
67  connect(&delayedStopTimer, SIGNAL(timeout()), this, SLOT(stop()));
68 }
void setSingleShot(bool singleShot)
Definition: qtimer.h:108
#define SLOT(a)
Definition: qobjectdefs.h:226
void stop()
Stops the animation.
#define SIGNAL(a)
Definition: qobjectdefs.h:227
QDeclarativeSmoothedAnimation::ReversingMode reversingMode
QAbstractAnimation(QObject *parent=0)
Constructs the QAbstractAnimation base class, and passes parent to QObject&#39;s constructor.
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 rece...
Definition: qobject.cpp:2580
void setInterval(int msec)
Definition: qtimer.cpp:419
#define DELAY_STOP_TIMER_INTERVAL

Functions

◆ delayedStop()

void QSmoothedAnimation::delayedStop ( )
private

Definition at line 85 of file qdeclarativesmoothedanimation.cpp.

Referenced by easeFollow().

86 {
89 }
bool isActive() const
Returns true if the timer is running (pending); otherwise returns false.
Definition: qtimer.h:69
void start(int msec)
Starts or restarts the timer with a timeout interval of msec milliseconds.
Definition: qtimer.cpp:249

◆ duration()

int QSmoothedAnimation::duration ( ) const
virtual

Implements QAbstractAnimation.

Definition at line 91 of file qdeclarativesmoothedanimation.cpp.

92 {
93  return -1;
94 }

◆ easeFollow()

qreal QSmoothedAnimation::easeFollow ( qreal  time_seconds)
private

Definition at line 163 of file qdeclarativesmoothedanimation.cpp.

Referenced by updateCurrentTime().

164 {
165  qreal value;
166  if (time_seconds < tp) {
167  trackVelocity = vi + time_seconds * a;
168  value = qreal(0.5) * a * time_seconds * time_seconds + vi * time_seconds;
169  } else if (time_seconds < td) {
170  time_seconds -= tp;
171  trackVelocity = vp;
172  value = sp + time_seconds * vp;
173  } else if (time_seconds < tf) {
174  time_seconds -= td;
175  trackVelocity = vp - time_seconds * a;
176  value = sd - qreal(0.5) * d * time_seconds * time_seconds + vp * time_seconds;
177  } else {
178  trackVelocity = 0;
179  value = s;
180  delayedStop();
181  }
182 
183  // to normalize 's' between [0..1], divide 'value' by 's'
184  return value;
185 }
double qreal
Definition: qglobal.h:1193

◆ init()

void QSmoothedAnimation::init ( )

Definition at line 198 of file qdeclarativesmoothedanimation.cpp.

Referenced by restart(), QDeclarativeSmoothedAnimation::transition(), QDeclarativeSmoothedAnimationPrivate::updateRunningAnimations(), and updateState().

199 {
200  if (velocity == 0) {
201  stop();
202  return;
203  }
204 
207 
209  lastTime = this->currentTime();
210 
211  if (to == initialValue) {
212  stop();
213  return;
214  }
215 
216  bool hasReversed = trackVelocity != qreal(0.) &&
217  ((!invert) == ((initialValue - to) > 0));
218 
219  if (hasReversed) {
220  switch (reversingMode) {
221  default:
224  break;
229  trackVelocity = 0;
230  stop();
231  return;
233  initialVelocity = 0;
234  break;
235  }
236  }
237 
239 
240  invert = (to < initialValue);
241 
242  if (!recalc()) {
246  stop();
247  return;
248  }
249 }
double qreal
Definition: qglobal.h:1193
void stop()
Stops the animation.
int currentTime() const
QDeclarativeSmoothedAnimation::ReversingMode reversingMode
bool isActive() const
Returns true if the timer is running (pending); otherwise returns false.
Definition: qtimer.h:69
void stop()
Stops the timer.
Definition: qtimer.cpp:284
qreal toReal(bool *ok=0) const
Returns the variant as a qreal if the variant has type() Double , QMetaType::Float ...
Definition: qvariant.cpp:2740
QVariant read() const
Returns the property value.
static bool write(QObject *, const QDeclarativePropertyCache::Data &, const QVariant &, QDeclarativeContextData *, WriteFlags flags=0)

◆ recalc()

bool QSmoothedAnimation::recalc ( )
private

Definition at line 96 of file qdeclarativesmoothedanimation.cpp.

Referenced by init().

97 {
98  s = to - initialValue;
100 
101  s = (invert? qreal(-1.0): qreal(1.0)) * s;
102 
103  if (userDuration > 0 && velocity > 0) {
104  tf = s / velocity;
105  if (tf > (userDuration / qreal(1000.))) tf = (userDuration / qreal(1000.));
106  } else if (userDuration > 0) {
107  tf = userDuration / qreal(1000.);
108  } else if (velocity > 0) {
109  tf = s / velocity;
110  } else {
111  return false;
112  }
113 
114  finalDuration = ceil(tf * qreal(1000.0));
115 
116  if (maximumEasingTime == 0) {
117  a = 0;
118  d = 0;
119  tp = 0;
120  td = tf;
121  vp = velocity;
122  sp = 0;
123  sd = s;
124  } else if (maximumEasingTime != -1 && tf > (maximumEasingTime / qreal(1000.))) {
125  qreal met = maximumEasingTime / qreal(1000.);
126  td = tf - met;
127 
128  qreal c1 = td;
129  qreal c2 = (tf - td) * vi - tf * velocity;
130  qreal c3 = qreal(-0.5) * (tf - td) * vi * vi;
131 
132  qreal vp1 = (-c2 + qSqrt(c2 * c2 - 4 * c1 * c3)) / (qreal(2.) * c1);
133 
134  vp = vp1;
135  a = vp / met;
136  d = a;
137  tp = (vp - vi) / a;
138  sp = vi * tp + qreal(0.5) * a * tp * tp;
139  sd = sp + (td - tp) * vp;
140  } else {
141  qreal c1 = qreal(0.25) * tf * tf;
142  qreal c2 = qreal(0.5) * vi * tf - s;
143  qreal c3 = qreal(-0.25) * vi * vi;
144 
145  qreal a1 = (-c2 + qSqrt(c2 * c2 - 4 * c1 * c3)) / (qreal(2.) * c1);
146 
147  qreal tp1 = qreal(0.5) * tf - qreal(0.5) * vi / a1;
148  qreal vp1 = a1 * tp1 + vi;
149 
150  qreal sp1 = qreal(0.5) * a1 * tp1 * tp1 + vi * tp1;
151 
152  a = a1;
153  d = a1;
154  tp = tp1;
155  td = tp1;
156  vp = vp1;
157  sp = sp1;
158  sd = sp1;
159  }
160  return true;
161 }
double qreal
Definition: qglobal.h:1193
#define ceil(x)
qreal qSqrt(qreal v)
Definition: qmath.h:205

◆ restart()

void QSmoothedAnimation::restart ( )

Definition at line 70 of file qdeclarativesmoothedanimation.cpp.

71 {
74  start();
75  else
76  init();
77 }
State state() const
void start(QAbstractAnimation::DeletionPolicy policy=KeepWhenStopped)
Starts the animation.

◆ updateCurrentTime()

void QSmoothedAnimation::updateCurrentTime ( int  currentTime)
protectedvirtual

This pure virtual function is called every time the animation's currentTime changes.

See also
updateState()

Implements QAbstractAnimation.

Definition at line 187 of file qdeclarativesmoothedanimation.cpp.

188 {
189  qreal time_seconds = qreal(t - lastTime) / qreal(1000.);
190 
191  qreal value = easeFollow(time_seconds);
192  value *= (invert? qreal(-1.0): qreal(1.0));
196 }
double qreal
Definition: qglobal.h:1193
static bool write(QObject *, const QDeclarativePropertyCache::Data &, const QVariant &, QDeclarativeContextData *, WriteFlags flags=0)

◆ updateState()

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

This virtual function is called by QAbstractAnimation when the state of the animation is changed from oldState to newState.

See also
start(), stop(), pause(), resume()

Reimplemented from QAbstractAnimation.

Definition at line 79 of file qdeclarativesmoothedanimation.cpp.

Properties

◆ a

qreal QSmoothedAnimation::a
private

Definition at line 102 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ d

qreal QSmoothedAnimation::d
private

Definition at line 103 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ delayedStopTimer

QTimer QSmoothedAnimation::delayedStopTimer
private

Definition at line 118 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by delayedStop(), init(), and QSmoothedAnimation().

◆ finalDuration

int QSmoothedAnimation::finalDuration
private

Definition at line 99 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by recalc().

◆ initialValue

qreal QSmoothedAnimation::initialValue
private

Definition at line 95 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by init(), recalc(), and updateCurrentTime().

◆ initialVelocity

qreal QSmoothedAnimation::initialVelocity

◆ invert

bool QSmoothedAnimation::invert
private

Definition at line 97 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by init(), recalc(), and updateCurrentTime().

◆ lastTime

int QSmoothedAnimation::lastTime
private

Definition at line 113 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by init(), and updateCurrentTime().

◆ maximumEasingTime

int QSmoothedAnimation::maximumEasingTime

◆ reversingMode

QDeclarativeSmoothedAnimation::ReversingMode QSmoothedAnimation::reversingMode

◆ s

qreal QSmoothedAnimation::s
private

Definition at line 111 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ sd

qreal QSmoothedAnimation::sd
private

Definition at line 109 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ sp

qreal QSmoothedAnimation::sp
private

Definition at line 108 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ target

QDeclarativeProperty QSmoothedAnimation::target

◆ td

qreal QSmoothedAnimation::td
private

Definition at line 106 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ tf

qreal QSmoothedAnimation::tf
private

Definition at line 104 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ to

qreal QSmoothedAnimation::to

◆ tp

qreal QSmoothedAnimation::tp
private

Definition at line 105 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ trackVelocity

qreal QSmoothedAnimation::trackVelocity

◆ userDuration

int QSmoothedAnimation::userDuration

◆ velocity

qreal QSmoothedAnimation::velocity

◆ vi

qreal QSmoothedAnimation::vi
private

Definition at line 110 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().

◆ vp

qreal QSmoothedAnimation::vp
private

Definition at line 107 of file qdeclarativesmoothedanimation_p_p.h.

Referenced by easeFollow(), and recalc().


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