diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2023-12-11 18:05:30 -0700 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2023-12-12 16:44:45 -0700 |
commit | 4077b05949442eeb2fa4d16a435d476eb00b55a7 (patch) | |
tree | d997d850470742edf69641304151b12e7ed19bee /src/quick/items/qquicktextdocument.cpp | |
parent | 295a1ce389cda8f360835c89d9a3b32cbcba7eb6 (diff) |
Resolve source URL just-in-time in QQuickTextDocument
Follow the pattern that we have been using with all source(QUrl)
properties, as in 0a1e4cc7ec7548f6273befff9cdddb0bc7a58961: resolve
the URL at the time of loading.
Pick-to: 6.7
Task-number: QTBUG-76879
Change-Id: I02f71cd026f2315e41ad235f38650a040cdc1866
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/quick/items/qquicktextdocument.cpp')
-rw-r--r-- | src/quick/items/qquicktextdocument.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquicktextdocument.cpp b/src/quick/items/qquicktextdocument.cpp index 96f4daaaec..cde6ad0d10 100644 --- a/src/quick/items/qquicktextdocument.cpp +++ b/src/quick/items/qquicktextdocument.cpp @@ -137,14 +137,16 @@ void QQuickTextDocument::setModified(bool modified) void QQuickTextDocumentPrivate::load() { Q_Q(QQuickTextDocument); - const QString fileName = QQmlFile::urlToLocalFileOrQrc(url); + const QQmlContext *context = qmlContext(editor); + const QUrl &resolvedUrl = context ? context->resolvedUrl(url) : url; + const QString fileName = QQmlFile::urlToLocalFileOrQrc(resolvedUrl); if (QFile::exists(fileName)) { mimeType = QMimeDatabase().mimeTypeForFile(fileName); QFile file(fileName); if (file.open(QFile::ReadOnly)) { QByteArray data = file.readAll(); if (auto *doc = editor->document()) { - doc->setBaseUrl(url.adjusted(QUrl::RemoveFilename)); + doc->setBaseUrl(resolvedUrl.adjusted(QUrl::RemoveFilename)); if (mimeType.inherits("text/markdown"_L1)) { doc->setMarkdown(QString::fromUtf8(data)); } else if (mimeType.inherits("text/html"_L1)) { |