diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-26 13:42:08 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-26 13:42:08 +0100 |
commit | 3832b1e05b80a0f509be17dd3619a2f8bb70074f (patch) | |
tree | 3763c243b13c8228b1508ce5902dc2f587cabfdd /src/quick/items/qquicktext.cpp | |
parent | f9fae251ca07401ee1b0039edc6ea6b7a522b5a7 (diff) | |
parent | 5c53861cced2d40490e4c7bfc202aadc532df4c2 (diff) |
Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
tests/auto/qml/qml.pro
tools/qmlprofiler/qmlprofilerclient.cpp
Change-Id: Id47f15a5ab38f8ec79f0a26c92805acba62caac4
Diffstat (limited to 'src/quick/items/qquicktext.cpp')
-rw-r--r-- | src/quick/items/qquicktext.cpp | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index 895a616cb7..3b5982c3d0 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -129,14 +129,15 @@ QQuickTextDocumentWithImageResources::~QQuickTextDocumentWithImageResources() QVariant QQuickTextDocumentWithImageResources::loadResource(int type, const QUrl &name) { - QQmlContext *context = qmlContext(parent()); - - if (type == QTextDocument::ImageResource) { - QQuickPixmap *p = loadPixmap(context, name); - return p->image(); + QVariant resource = QTextDocument::loadResource(type, name); + if (resource.isNull() && type == QTextDocument::ImageResource) { + QQmlContext *context = qmlContext(parent()); + QUrl url = baseUrl().resolved(name); + QQuickPixmap *p = loadPixmap(context, url); + resource = p->image(); } - return QTextDocument::loadResource(type, name); + return resource; } void QQuickTextDocumentWithImageResources::requestFinished() @@ -161,30 +162,28 @@ QSizeF QQuickTextDocumentWithImageResources::intrinsicSize( QSizeF size(width, height); if (!hasWidth || !hasHeight) { - QQmlContext *context = qmlContext(parent()); - QUrl url = baseUrl().resolved(QUrl(imageFormat.name())); - - QQuickPixmap *p = loadPixmap(context, url); - if (!p->isReady()) { + QVariant res = resource(QTextDocument::ImageResource, QUrl(imageFormat.name())); + QImage image = res.value<QImage>(); + if (image.isNull()) { if (!hasWidth) size.setWidth(16); if (!hasHeight) size.setHeight(16); return size; } - QSize implicitSize = p->implicitSize(); + QSize imgSize = image.size(); if (!hasWidth) { if (!hasHeight) - size.setWidth(implicitSize.width()); + size.setWidth(imgSize.width()); else - size.setWidth(qRound(height * (implicitSize.width() / (qreal) implicitSize.height()))); + size.setWidth(qRound(height * (imgSize.width() / (qreal) imgSize.height()))); } if (!hasHeight) { if (!hasWidth) - size.setHeight(implicitSize.height()); + size.setHeight(imgSize.height()); else - size.setHeight(qRound(width * (implicitSize.height() / (qreal) implicitSize.width()))); + size.setHeight(qRound(width * (imgSize.height() / (qreal) imgSize.width()))); } } return size; @@ -199,11 +198,8 @@ void QQuickTextDocumentWithImageResources::drawObject( QImage QQuickTextDocumentWithImageResources::image(const QTextImageFormat &format) { - QQmlContext *context = qmlContext(parent()); - QUrl url = baseUrl().resolved(QUrl(format.name())); - - QQuickPixmap *p = loadPixmap(context, url); - return p->image(); + QVariant res = resource(QTextDocument::ImageResource, QUrl(format.name())); + return res.value<QImage>(); } void QQuickTextDocumentWithImageResources::reset() |