diff options
Diffstat (limited to 'src/gui/text/qtextimagehandler.cpp')
-rw-r--r-- | src/gui/text/qtextimagehandler.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gui/text/qtextimagehandler.cpp b/src/gui/text/qtextimagehandler.cpp index b663a4137d..3e37ea5c84 100644 --- a/src/gui/text/qtextimagehandler.cpp +++ b/src/gui/text/qtextimagehandler.cpp @@ -51,8 +51,22 @@ QT_BEGIN_NAMESPACE -extern QString qt_findAtNxFile(const QString &baseFileName, qreal targetDevicePixelRatio, - qreal *sourceDevicePixelRatio); +static inline QString findAtNxFileOrResource(const QString &baseFileName, + qreal targetDevicePixelRatio, + qreal *sourceDevicePixelRatio) +{ + // qt_findAtNxFile expects a file name that can be tested with QFile::exists. + // so if the format.name() is a file:/ or qrc:/ URL, then we need to strip away the schema. + QString localFile = baseFileName; + if (localFile.startsWith(QLatin1String("file:/"))) + localFile = localFile.sliced(6); + else if (localFile.startsWith(QLatin1String("qrc:/"))) + localFile = localFile.sliced(3); + + extern QString qt_findAtNxFile(const QString &baseFileName, qreal targetDevicePixelRatio, + qreal *sourceDevicePixelRatio); + return qt_findAtNxFile(localFile, targetDevicePixelRatio, sourceDevicePixelRatio); +} static inline QUrl fromLocalfileOrResources(QString path) { @@ -64,7 +78,7 @@ static inline QUrl fromLocalfileOrResources(QString path) static QPixmap getPixmap(QTextDocument *doc, const QTextImageFormat &format, const qreal devicePixelRatio = 1.0) { qreal sourcePixelRatio = 1.0; - const QString name = qt_findAtNxFile(format.name(), devicePixelRatio, &sourcePixelRatio); + const QString name = findAtNxFileOrResource(format.name(), devicePixelRatio, &sourcePixelRatio); const QUrl url = fromLocalfileOrResources(name); QPixmap pm; @@ -135,7 +149,7 @@ static QSize getPixmapSize(QTextDocument *doc, const QTextImageFormat &format) static QImage getImage(QTextDocument *doc, const QTextImageFormat &format, const qreal devicePixelRatio = 1.0) { qreal sourcePixelRatio = 1.0; - const QString name = qt_findAtNxFile(format.name(), devicePixelRatio, &sourcePixelRatio); + const QString name = findAtNxFileOrResource(format.name(), devicePixelRatio, &sourcePixelRatio); const QUrl url = fromLocalfileOrResources(name); QImage image; |