diff options
author | Albert Astals Cid <[email protected]> | 2015-03-13 17:29:57 +0100 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2015-03-26 12:45:21 +0000 |
commit | f9c1b6e9c7ad3fbceef32590c5b7b6a9719fd453 (patch) | |
tree | 41cbacb3106d3481cd343e231063c7f77d67897b /src/quick/util/qquickimageprovider.h | |
parent | 6c66b0e91961d35a209c97b8424af746f6378077 (diff) |
Add QQuickAsyncImageProvider
It allows for providers to implement threading on their side
Change-Id: I34042b213ce7697a3e39470387357d733e15723c
Reviewed-by: Gunnar Sletta <[email protected]>
Diffstat (limited to 'src/quick/util/qquickimageprovider.h')
-rw-r--r-- | src/quick/util/qquickimageprovider.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/quick/util/qquickimageprovider.h b/src/quick/util/qquickimageprovider.h index 095dd09a01..ea3f37c478 100644 --- a/src/quick/util/qquickimageprovider.h +++ b/src/quick/util/qquickimageprovider.h @@ -43,6 +43,7 @@ QT_BEGIN_NAMESPACE class QQuickImageProviderPrivate; +class QQuickAsyncImageProviderPrivate; class QSGTexture; class QQuickWindow; @@ -56,6 +57,25 @@ public: virtual QSize textureSize() const = 0; virtual int textureByteCount() const = 0; virtual QImage image() const; + + static QQuickTextureFactory *textureFactoryForImage(const QImage &image); +}; + +class Q_QUICK_EXPORT QQuickImageResponse : public QObject +{ +Q_OBJECT +public: + QQuickImageResponse(); + virtual ~QQuickImageResponse(); + + virtual QQuickTextureFactory *textureFactory() const = 0; + virtual QString errorString() const; + +public Q_SLOTS: + virtual void cancel(); + +Q_SIGNALS: + void finished(); }; class Q_QUICK_EXPORT QQuickImageProvider : public QQmlImageProviderBase @@ -75,6 +95,18 @@ private: QQuickImageProviderPrivate *d; }; +class Q_QUICK_EXPORT QQuickAsyncImageProvider : public QQuickImageProvider +{ +public: + QQuickAsyncImageProvider(); + virtual ~QQuickAsyncImageProvider(); + + virtual QQuickImageResponse *requestImageResponse(const QString &id, const QSize &requestedSize) = 0; + +private: + QQuickAsyncImageProviderPrivate *d; +}; + QT_END_NAMESPACE #endif // QQUICKIMAGEPROVIDER_H |