diff options
-rw-r--r-- | src/quick/items/qquicktext.cpp | 11 | ||||
-rw-r--r-- | src/quick/items/qquicktext_p_p.h | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index f64b0cdb19..4cd055594c 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -2070,18 +2070,21 @@ void QQuickText::setElideMode(QQuickText::TextElideMode mode) QUrl QQuickText::baseUrl() const { Q_D(const QQuickText); - if (d->baseUrl.isEmpty()) { + if (!d->extra.isAllocated() || d->extra->baseUrl.isEmpty()) { if (QQmlContext *context = qmlContext(this)) - const_cast<QQuickTextPrivate *>(d)->baseUrl = context->baseUrl(); + return context->baseUrl(); + else + return QUrl(); + } else { + return d->extra->baseUrl; } - return d->baseUrl; } void QQuickText::setBaseUrl(const QUrl &url) { Q_D(QQuickText); if (baseUrl() != url) { - d->baseUrl = url; + d->extra.value().baseUrl = url; if (d->richText) { d->ensureDoc(); diff --git a/src/quick/items/qquicktext_p_p.h b/src/quick/items/qquicktext_p_p.h index ff128389e5..9a6da3736e 100644 --- a/src/quick/items/qquicktext_p_p.h +++ b/src/quick/items/qquicktext_p_p.h @@ -99,11 +99,11 @@ public: QQuickText::FontSizeMode fontSizeMode; QList<QQuickStyledTextImgTag*> imgTags; QList<QQuickStyledTextImgTag*> visibleImgTags; + QUrl baseUrl; }; QLazilyAllocated<ExtraData> extra; QString text; - QUrl baseUrl; QFont font; QFont sourceFont; |