diff options
author | Louis du Verdier <louis.du.verdier@free.fr> | 2017-07-29 22:57:43 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2018-01-16 11:45:34 +0000 |
commit | e26e1c61c7acb1538a50c9ab570c6811c652581d (patch) | |
tree | 7ac82daa87b15be4cec32ab00e41689e96bf3925 /src/quick/items/qquickanimatedimage.cpp | |
parent | 196c691ebce3a48c6479162f3084790b6d0af8b8 (diff) |
Add a speed property to AnimatedImage
QMovie handles most of AnimatedImage's behaviors and already provides a
speed property (that is a percentage, 100% by default). This commit only
offers the possibility to change its value from the QML.
Task-number: QTBUG-62203
Change-Id: I8b7b79053181c1544aee1e95054b3b48229381fb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickanimatedimage.cpp')
-rw-r--r-- | src/quick/items/qquickanimatedimage.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/quick/items/qquickanimatedimage.cpp b/src/quick/items/qquickanimatedimage.cpp index 5bc5b0faff..4180714f86 100644 --- a/src/quick/items/qquickanimatedimage.cpp +++ b/src/quick/items/qquickanimatedimage.cpp @@ -260,6 +260,32 @@ int QQuickAnimatedImage::frameCount() const return d->_movie->frameCount(); } +/*! + \qmlproperty real QtQuick::AnimatedImage::speed + \since QtQuick 2.11 + + This property holds the speed of the animation. + + The speed is measured in percentage of the original animated image speed. + The default speed is 1.0 (original speed). +*/ +qreal QQuickAnimatedImage::speed() const +{ + Q_D(const QQuickAnimatedImage); + return d->speed; +} + +void QQuickAnimatedImage::setSpeed(qreal speed) +{ + Q_D(QQuickAnimatedImage); + if (d->speed != speed) { + d->speed = speed; + if (d->_movie) + d->_movie->setSpeed(qRound(speed * 100.0)); + emit speedChanged(); + } +} + void QQuickAnimatedImage::setSource(const QUrl &url) { Q_D(QQuickAnimatedImage); @@ -396,6 +422,7 @@ void QQuickAnimatedImage::movieRequestFinished() this, SLOT(movieUpdate())); if (d->cache) d->_movie->setCacheMode(QMovie::CacheAll); + d->_movie->setSpeed(qRound(d->speed * 100.0)); d->status = Ready; emit statusChanged(d->status); |