diff options
author | Matthew Vogt <matthew.vogt@nokia.com> | 2012-03-21 17:55:07 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-21 09:41:49 +0100 |
commit | 392b078c78b265ee636e57fca01eebd69f262985 (patch) | |
tree | 2000ae954837f15dd8fabbd669577417e7551898 /src | |
parent | ab1e510121c8a679fdaca12ccd30e0f7ac12a26b (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.cpp | 34 | ||||
-rw-r--r-- | src/qml/qml/qqmlengine.h | 13 | ||||
-rw-r--r-- | src/quick/util/qquickimageprovider.cpp | 13 | ||||
-rw-r--r-- | src/quick/util/qquickimageprovider.h | 7 |
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(); |