8#include <private/qquickitem_p.h>
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
50QQuickAnimator::QQuickAnimator(QQuickAnimatorPrivate &dd, QObject *parent)
51 : QQuickAbstractAnimation(dd, parent)
55QQuickAnimator::QQuickAnimator(QObject *parent)
56 : QQuickAbstractAnimation(*
new QQuickAnimatorPrivate, parent)
61
62
63
64
65
66
68void QQuickAnimator::setTargetItem(QQuickItem *target)
71 if (target == d->target)
74 Q_EMIT targetItemChanged(d->target);
77QQuickItem *QQuickAnimator::targetItem()
const
79 Q_D(
const QQuickAnimator);
84
85
86
87
88
89void QQuickAnimator::setDuration(
int duration)
92 if (duration == d->duration)
94 d->duration = duration;
95 Q_EMIT durationChanged(duration);
98int QQuickAnimator::duration()
const
100 Q_D(
const QQuickAnimator);
105
106
107
108
109
110
111
112
114void QQuickAnimator::setEasing(
const QEasingCurve &easing)
117 if (easing == d->easing)
120 Q_EMIT easingChanged(d->easing);
123QEasingCurve QQuickAnimator::easing()
const
125 Q_D(
const QQuickAnimator);
130
131
132
133
134
135
136
137
139void QQuickAnimator::setTo(qreal to)
144 d->toIsDefined =
true;
146 Q_EMIT toChanged(d->to);
149qreal QQuickAnimator::to()
const
151 Q_D(
const QQuickAnimator);
156
157
158
159
160
161
162
163
164
165
167void QQuickAnimator::setFrom(qreal from)
170 d->fromIsDefined =
true;
174 Q_EMIT fromChanged(d->from);
177qreal QQuickAnimator::from()
const
179 Q_D(
const QQuickAnimator);
184 const QString &propertyName,
187 QObject *defaultTarget)
190 if (actions.size()) {
191 for (
int i=0; i<actions.size(); ++i) {
192 QQuickStateAction &action = actions[i];
193 if (action.property.name() != propertyName)
195 modified << action.property;
197 job->setTarget(qobject_cast<QQuickItem *>(action.property.object()));
201 else if (action.fromValue.isValid())
202 job->setFrom(action.fromValue.toReal());
204 job->setFrom(action.property.read().toReal());
208 else if (action.toValue.isValid())
209 job->setTo(action.toValue.toReal());
211 job->setTo(action.property.read().toReal());
217 action.fromValue = action.toValue;
221 if (modified.isEmpty()) {
222 job->setTarget(target);
228 if (!job->target()) {
229 if (defaultProperty.object())
230 job->setTarget(qobject_cast<QQuickItem *>(defaultProperty.object()));
232 job->setTarget(qobject_cast<QQuickItem *>(defaultTarget));
235 if (modified.isEmpty() && !fromIsDefined && job->target())
236 job->setFrom(job->target()->property(propertyName.toLatin1()).toReal());
239 job->setLoopCount(loopCount);
240 job->setEasingCurve(easing);
243QAbstractAnimationJob *QQuickAnimator::transition(QQuickStateActions &actions,
244 QQmlProperties &modified,
245 TransitionDirection direction,
246 QObject *defaultTarget)
250 if (d->defaultProperty.isValid() && propertyName() != d->defaultProperty.name()) {
251 qmlWarning(
this) <<
"property name conflict: \""
252 << propertyName() <<
"\" != \"" << d->defaultProperty.name() <<
"\"";
257 if (direction == Backward)
260 QQuickAnimatorJob *job = createJob();
264 d->apply(job, propertyName(), actions, modified, defaultTarget);
266 if (!job->target()) {
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
303QQuickXAnimator::QQuickXAnimator(QObject *parent) : QQuickAnimator(parent) {}
305QQuickAnimatorJob *QQuickXAnimator::createJob()
const {
return new QQuickXAnimatorJob(); }
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
336QQuickYAnimator::QQuickYAnimator(QObject *parent) : QQuickAnimator(parent) {}
338QQuickAnimatorJob *QQuickYAnimator::createJob()
const {
return new QQuickYAnimatorJob(); }
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
369QQuickScaleAnimator::QQuickScaleAnimator(QObject *parent) : QQuickAnimator(parent) {}
371QQuickAnimatorJob *QQuickScaleAnimator::createJob()
const {
return new QQuickScaleAnimatorJob(); }
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
401QQuickOpacityAnimator::QQuickOpacityAnimator(QObject *parent) : QQuickAnimator(parent) {}
403QQuickAnimatorJob *QQuickOpacityAnimator::createJob()
const {
return new QQuickOpacityAnimatorJob(); }
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
435QQuickRotationAnimator::QQuickRotationAnimator(QObject *parent)
436 : QQuickAnimator(*
new QQuickRotationAnimatorPrivate, parent)
440QQuickAnimatorJob *QQuickRotationAnimator::createJob()
const {
441 Q_D(
const QQuickRotationAnimator);
442 QQuickRotationAnimatorJob *job =
new QQuickRotationAnimatorJob();
443 job->setDirection(d->direction);
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464void QQuickRotationAnimator::setDirection(RotationDirection dir)
466 Q_D(QQuickRotationAnimator);
467 if (d->direction == dir)
470 Q_EMIT directionChanged(d->direction);
473QQuickRotationAnimator::RotationDirection QQuickRotationAnimator::direction()
const
475 Q_D(
const QQuickRotationAnimator);
479#if QT_CONFIG(quick_shadereffect)
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
511QQuickUniformAnimator::QQuickUniformAnimator(QObject *parent)
512 : QQuickAnimator(*
new QQuickUniformAnimatorPrivate, parent)
517
518
519
520
521
522
523
524void QQuickUniformAnimator::setUniform(
const QString &uniform)
526 Q_D(QQuickUniformAnimator);
527 if (d->uniform == uniform)
529 d->uniform = uniform;
530 Q_EMIT uniformChanged(d->uniform);
533QString QQuickUniformAnimator::uniform()
const
535 Q_D(
const QQuickUniformAnimator);
539QString QQuickUniformAnimator::propertyName()
const
541 Q_D(
const QQuickUniformAnimator);
542 if (!d->uniform.isEmpty())
544 return d->defaultProperty.name();
547QQuickAnimatorJob *QQuickUniformAnimator::createJob()
const
549 QString u = propertyName();
553 QQuickUniformAnimatorJob *job =
new QQuickUniformAnimatorJob();
554 job->setUniform(u.toLatin1());
561#include "moc_qquickanimator_p.cpp"
void apply(QQuickAnimatorJob *job, const QString &propertyName, QQuickStateActions &actions, QQmlProperties &modified, QObject *defaultTarget)
QList< QQmlProperty > QQmlProperties
QQuickStateOperation::ActionList QQuickStateActions