diff options
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 2f76671b1a..5c9f893b63 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); @@ -389,6 +415,7 @@ void QQuickAnimatedImage::movieRequestFinished() connect(d->movie, &QMovie::frameChanged, this, &QQuickAnimatedImage::movieUpdate); if (d->cache) d->movie->setCacheMode(QMovie::CacheAll); + d->movie->setSpeed(qRound(d->speed * 100.0)); d->status = Ready; emit statusChanged(d->status); |