summaryrefslogtreecommitdiffstats
path: root/src/gui/image
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2021-01-25 17:12:11 +0100
committerSona Kurazyan <sona.kurazyan@qt.io>2021-01-27 15:16:20 +0100
commit3a5a404a5379cd9595d1cc61486aff11148f4302 (patch)
tree125c0b9206f8d1cc03931f06f7f6cccd6805f0e5 /src/gui/image
parent67ced4da5ab6f9bb63303a0850457d7a526866d3 (diff)
Port QMovie to the new property system
Task-number: QTBUG-85520 Task-number: QTBUG-85521 Change-Id: Ib936020260cf01a5221b63fb1eb0ccb23f5553a3 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/gui/image')
-rw-r--r--src/gui/image/qmovie.cpp21
-rw-r--r--src/gui/image/qmovie.h6
2 files changed, 23 insertions, 4 deletions
diff --git a/src/gui/image/qmovie.cpp b/src/gui/image/qmovie.cpp
index 26ab96d0a3..0e1cf4481e 100644
--- a/src/gui/image/qmovie.cpp
+++ b/src/gui/image/qmovie.cpp
@@ -186,6 +186,7 @@
#include "qbuffer.h"
#include "qdir.h"
#include "private/qobject_p.h"
+#include "private/qproperty_p.h"
#define QMOVIE_INVALID_DELAY -1
@@ -248,7 +249,10 @@ public:
void _q_loadNextFrame(bool starting);
QImageReader *reader = nullptr;
- int speed = 100;
+
+ void setSpeed(int percentSpeed) { q_func()->setSpeed(percentSpeed); }
+ Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QMoviePrivate, int, speed, &QMoviePrivate::setSpeed, 100)
+
QMovie::MovieState movieState = QMovie::NotRunning;
QRect frameRect;
QPixmap currentPixmap;
@@ -258,7 +262,8 @@ public:
int nextDelay = 0;
int playCounter = -1;
qint64 initialDevicePos = 0;
- QMovie::CacheMode cacheMode = QMovie::CacheNone;
+ Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(QMoviePrivate, QMovie::CacheMode, cacheMode,
+ QMovie::CacheNone)
bool haveReadAll = false;
bool isFirstIteration = true;
QMap<int, QFrameInfo> frameMap;
@@ -933,6 +938,12 @@ int QMovie::speed() const
return d->speed;
}
+QBindable<int> QMovie::bindableSpeed()
+{
+ Q_D(QMovie);
+ return &d->speed;
+}
+
/*!
Starts the movie. QMovie will enter \l Running state, and start emitting
updated() and resized() as the movie progresses.
@@ -1055,6 +1066,12 @@ void QMovie::setCacheMode(CacheMode cacheMode)
d->cacheMode = cacheMode;
}
+QBindable<QMovie::CacheMode> QMovie::bindableCacheMode()
+{
+ Q_D(QMovie);
+ return &d->cacheMode;
+}
+
QT_END_NAMESPACE
#include "moc_qmovie.cpp"
diff --git a/src/gui/image/qmovie.h b/src/gui/image/qmovie.h
index e13c528894..e1452ed760 100644
--- a/src/gui/image/qmovie.h
+++ b/src/gui/image/qmovie.h
@@ -64,8 +64,8 @@ class Q_GUI_EXPORT QMovie : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(QMovie)
- Q_PROPERTY(int speed READ speed WRITE setSpeed)
- Q_PROPERTY(CacheMode cacheMode READ cacheMode WRITE setCacheMode)
+ Q_PROPERTY(int speed READ speed WRITE setSpeed BINDABLE bindableSpeed)
+ Q_PROPERTY(CacheMode cacheMode READ cacheMode WRITE setCacheMode BINDABLE bindableCacheMode)
public:
enum MovieState {
NotRunning,
@@ -115,12 +115,14 @@ public:
int currentFrameNumber() const;
int speed() const;
+ QBindable<int> bindableSpeed();
QSize scaledSize();
void setScaledSize(const QSize &size);
CacheMode cacheMode() const;
void setCacheMode(CacheMode mode);
+ QBindable<CacheMode> bindableCacheMode();
Q_SIGNALS:
void started();