aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-03-21 17:55:07 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-21 09:41:49 +0100
commit392b078c78b265ee636e57fca01eebd69f262985 (patch)
tree2000ae954837f15dd8fabbd669577417e7551898 /src
parentab1e510121c8a679fdaca12ccd30e0f7ac12a26b (diff)
Provide imageType() from QQmlImageProviderBase
Clients who are only interested in the type of image data provided by an image provider should not need to cast the base pointer to a QQuickImageProvider to access this information. Also make the QQmlImageProviderBase constructor private to prevent unwanted inheritance; all implementors should use the QQuickImageProvider class. Change-Id: Ia2dd2595c2711fa7df47265c9857f45ef0f4cc41 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/qml/qml/qqmlengine.cpp34
-rw-r--r--src/qml/qml/qqmlengine.h13
-rw-r--r--src/quick/util/qquickimageprovider.cpp13
-rw-r--r--src/quick/util/qquickimageprovider.h7
4 files changed, 46 insertions, 21 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index b1fcadd9b2..672996085f 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -177,6 +177,38 @@ void QQmlEnginePrivate::defineModule()
}
+/*!
+ \class QQmlImageProviderBase
+ \brief The QQmlImageProviderBase class is used to register image providers in the QML engine.
+ \mainclass
+
+ Image providers must be registered with the QML engine. The only information the QML
+ engine knows about image providers is the type of image data they provide. To use an
+ image provider to acquire image data, you must cast the QQmlImageProviderBase pointer
+ to a QQuickImageProvider pointer.
+
+ \sa QQuickImageProvider, QQuickTextureFactory
+*/
+
+/*!
+ \enum QQmlImageProviderBase::ImageType
+
+ Defines the type of image supported by this image provider.
+
+ \value Image The Image Provider provides QImage images.
+ The QQuickImageProvider::requestImage() method will be called for all image requests.
+ \value Pixmap The Image Provider provides QPixmap images.
+ The QQuickImageProvider::requestPixmap() method will be called for all image requests.
+ \value Texture The Image Provider provides QSGTextureProvider based images.
+ The QQuickImageProvider::requestTexture() method will be called for all image requests. \omitvalue
+*/
+
+/*! \internal */
+QQmlImageProviderBase::QQmlImageProviderBase()
+{
+}
+
+/*! \internal */
QQmlImageProviderBase::~QQmlImageProviderBase()
{
}
@@ -679,7 +711,7 @@ QNetworkAccessManager *QQmlEngine::networkAccessManager() const
All required image providers should be added to the engine before any
QML sources files are loaded.
- \sa removeImageProvider(), QQuickImageProvider
+ \sa removeImageProvider(), QQuickImageProvider, QQmlImageProviderBase
*/
void QQmlEngine::addImageProvider(const QString &providerId, QQmlImageProviderBase *provider)
{
diff --git a/src/qml/qml/qqmlengine.h b/src/qml/qml/qqmlengine.h
index 41696923c5..21a03d63ce 100644
--- a/src/qml/qml/qqmlengine.h
+++ b/src/qml/qml/qqmlengine.h
@@ -57,7 +57,20 @@ QT_BEGIN_NAMESPACE
class Q_QML_EXPORT QQmlImageProviderBase
{
public:
+ enum ImageType {
+ Image,
+ Pixmap,
+ Texture,
+ Invalid
+ };
+
virtual ~QQmlImageProviderBase();
+
+ virtual ImageType imageType() const = 0;
+
+private:
+ friend class QQuickImageProvider;
+ QQmlImageProviderBase();
};
class QQmlComponent;
diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp
index a5d2720cea..1d838cac32 100644
--- a/src/quick/util/qquickimageprovider.cpp
+++ b/src/quick/util/qquickimageprovider.cpp
@@ -222,19 +222,6 @@ QImage QQuickTextureFactory::image() const
*/
/*!
- \enum QQuickImageProvider::ImageType
-
- Defines the type of image supported by this image provider.
-
- \value Image The Image Provider provides QImage images. The
- requestImage() method will be called for all image requests.
- \value Pixmap The Image Provider provides QPixmap images. The
- requestPixmap() method will be called for all image requests.
- \value Texture The Image Provider provides QSGTextureProvider based images.
- The requestTexture() method will be called for all image requests. \omitvalue
-*/
-
-/*!
Creates an image provider that will provide images of the given \a type.
*/
QQuickImageProvider::QQuickImageProvider(ImageType type)
diff --git a/src/quick/util/qquickimageprovider.h b/src/quick/util/qquickimageprovider.h
index 2a5d146124..252d57b1d6 100644
--- a/src/quick/util/qquickimageprovider.h
+++ b/src/quick/util/qquickimageprovider.h
@@ -71,13 +71,6 @@ public:
class Q_QUICK_EXPORT QQuickImageProvider : public QQmlImageProviderBase
{
public:
- enum ImageType {
- Image,
- Pixmap,
- Texture,
- Invalid
- };
-
QQuickImageProvider(ImageType type);
virtual ~QQuickImageProvider();