6#ifndef QQUICKANIMATORJOB_P_H
7#define QQUICKANIMATORJOB_P_H
20#include <private/qabstractanimationjob_p.h>
21#include <private/qquickanimator_p.h>
22#include <private/qtquickglobal_p.h>
24#include <QtQuick/qquickitem.h>
26#include <QtCore/qeasingcurve.h>
27#include <QtCore/qpointer.h>
34class QQuickAbstractAnimation;
36class QQuickAnimatorController;
45 QQuickAnimatorProxyJob(QAbstractAnimationJob *job, QQuickAbstractAnimation *animation);
46 ~QQuickAnimatorProxyJob();
48 int duration()
const override {
return m_duration; }
50 const QSharedPointer<QAbstractAnimationJob> &job()
const {
return m_job; }
53 void updateCurrentTime(
int) override;
54 void updateLoopCount(
int) override;
55 void updateState(QAbstractAnimationJob::State newState, QAbstractAnimationJob::State oldState) override;
56 void debugAnimation(QDebug d)
const override;
59 void windowChanged(QQuickWindow *window);
60 void sceneGraphInitialized();
63 friend class tst_Animators;
65 void syncBackCurrentValues();
66 void readyToAnimate();
67 void setWindow(QQuickWindow *window);
68 static QObject *findAnimationContext(QQuickAbstractAnimation *);
70 QPointer<QQuickAnimatorController> m_controller;
71 QSharedPointer<QAbstractAnimationJob> m_job;
81 InternalState m_internalState;
87 virtual void setTarget(QQuickItem *target);
88 QQuickItem *target()
const {
return m_target; }
90 void setFrom(qreal from) {
94 qreal from()
const {
return m_from; }
96 void setTo(qreal to) {
100 qreal to()
const {
return m_to; }
102 void setDuration(
int duration) { m_duration = duration; }
103 int duration()
const override {
return m_duration; }
105 QEasingCurve easingCurve()
const {
return m_easing; }
106 void setEasingCurve(
const QEasingCurve &curve) { m_easing = curve; }
110 virtual void initialize(QQuickAnimatorController *controller);
113 virtual void invalidate() = 0;
118 virtual void writeBack() = 0;
122 virtual void preSync() { }
126 virtual void postSync() { }
131 virtual void commit() { }
133 bool isTransform()
const {
return m_isTransform; }
134 bool isUniform()
const {
return m_isUniform; }
138 QQuickAnimatorController *controller()
const {
return m_controller; }
142 void debugAnimation(QDebug d)
const override;
144 qreal progress(
int time)
const;
147 QPointer<QQuickItem> m_target;
148 QQuickAnimatorController *m_controller;
154 QEasingCurve m_easing;
158 uint m_isTransform : 1;
159 uint m_isUniform : 1;
219 void updateCurrentTime(
int time) override;
220 void writeBack() override;
226 void updateCurrentTime(
int time) override;
227 void writeBack() override;
233 void updateCurrentTime(
int time) override;
234 void writeBack() override;
240 QQuickRotationAnimatorJob();
242 void updateCurrentTime(
int time) override;
243 void writeBack() override;
245 void setDirection(QQuickRotationAnimator::RotationDirection direction) { m_direction = direction; }
246 QQuickRotationAnimator::RotationDirection direction()
const {
return m_direction; }
249 QQuickRotationAnimator::RotationDirection m_direction;
255 QQuickOpacityAnimatorJob();
257 void invalidate() override;
258 void updateCurrentTime(
int time) override;
259 void writeBack() override;
260 void postSync() override;
263 QSGOpacityNode *m_opacityNode;
266#if QT_CONFIG(quick_shadereffect)
267class QQuickShaderEffect;
269class Q_QUICK_EXPORT QQuickUniformAnimatorJob :
public QQuickAnimatorJob
272 QQuickUniformAnimatorJob();
274 void setTarget(QQuickItem *target) override;
276 void setUniform(
const QByteArray &uniform) { m_uniform = uniform; }
277 QByteArray uniform()
const {
return m_uniform; }
279 void updateCurrentTime(
int time) override;
280 void writeBack() override;
281 void postSync() override;
283 void invalidate() override;
286 QByteArray m_uniform;
287 QPointer<QQuickShaderEffect> m_effect;
virtual void debugAction(QDebug, int) const
virtual void doAction()=0
virtual ~QAbstractAnimationAction()
QAnimationActionProxy(T *instance)
void debugAction(QDebug d, int indentLevel) const override
The QQmlScriptString class encapsulates a script and its context.
static qsizetype count_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
QList< QQuickAbstractAnimation * > animations
void animationCurrentLoopChanged(QAbstractAnimationJob *job) override
static void replace_animation(QQmlListProperty< QQuickAbstractAnimation > *list, qsizetype index, QQuickAbstractAnimation *role)
static void removeLast_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
static QQuickAbstractAnimation * at_animation(QQmlListProperty< QQuickAbstractAnimation > *list, qsizetype index)
static void clear_animation(QQmlListProperty< QQuickAbstractAnimation > *list)
void restartFromCurrentLoop()
virtual void debugUpdater(QDebug, int) const
virtual ~QQuickBulkValueUpdater()
virtual void setValue(qreal value)=0
QQmlNullableValue< QVariant > value
QList< QObject * > exclude
QList< QObject * > targets
QQmlScriptString runScriptScript
QAbstractAnimationAction * createAction()
QAnimationActionProxy< QQuickScriptActionPrivate, &QQuickScriptActionPrivate::execute, &QQuickScriptActionPrivate::debugAction > Proxy
void debugAction(QDebug d, int indentLevel) const
Combined button and popup list for selecting options.
QVariant _q_interpolateClockwiseRotation(qreal &f, qreal &t, qreal progress)
QVariant _q_interpolateShortestRotation(qreal &f, qreal &t, qreal progress)
\qmltype RotationAnimation \nativetype QQuickRotationAnimation \inqmlmodule QtQuick\inherits Property...
QVariant _q_interpolateCounterclockwiseRotation(qreal &f, qreal &t, qreal progress)
QQuickStateOperation::ActionList QQuickStateActions