aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquickimageprovider.h
diff options
context:
space:
mode:
authorAlbert Astals Cid <[email protected]>2015-03-13 17:29:57 +0100
committerSimon Hausmann <[email protected]>2015-03-26 12:45:21 +0000
commitf9c1b6e9c7ad3fbceef32590c5b7b6a9719fd453 (patch)
tree41cbacb3106d3481cd343e231063c7f77d67897b /src/quick/util/qquickimageprovider.h
parent6c66b0e91961d35a209c97b8424af746f6378077 (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.h32
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