diff options
author | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2011-12-02 13:35:07 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-05 10:13:00 +0100 |
commit | 18d1e8c0482f70cd7b978169e7b8f7ab137bfc03 (patch) | |
tree | 70e37879cc5a4e7b93caee064be2b4bbdc49f2cf /src/declarative | |
parent | 0218e13ea98cb54629ce932fdb9adf2867838d26 (diff) |
Fix loading imports from Qt resource.
Loading an import from a Qt resource fails because the url of the module
was erroneously being converted to a file:// url. This results in a url
that looks like "file://:/MyModule". Fixed by adding a check to see if
the module path is a resource path (starts with :) and if so constructs
a qrc:// url instead.
Change-Id: I41a24a93d085baaf68d58c4e991d6ba2aff5e7ff
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/qdeclarativeimport.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp index 0a03443acc..cddebcd06d 100644 --- a/src/declarative/qml/qdeclarativeimport.cpp +++ b/src/declarative/qml/qdeclarativeimport.cpp @@ -480,7 +480,11 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp if (fi.isFile()) { found = true; - url = QUrl::fromLocalFile(fi.absolutePath()).toString(); + const QString absolutePath = fi.absolutePath(); + if (absolutePath.at(0) == QLatin1Char(':')) + url = QLatin1String("qrc://") + absolutePath.mid(1); + else + url = QUrl::fromLocalFile(fi.absolutePath()).toString(); uri = resolvedUri(dir, database); if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errors)) return false; @@ -498,7 +502,11 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp if (fi.isFile()) { found = true; - url = QUrl::fromLocalFile(fi.absolutePath()).toString(); + const QString absolutePath = fi.absolutePath(); + if (absolutePath.at(0) == QLatin1Char(':')) + url = QLatin1String("qrc://") + absolutePath.mid(1); + else + url = QUrl::fromLocalFile(fi.absolutePath()).toString(); uri = resolvedUri(dir, database); if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errors)) return false; @@ -517,7 +525,10 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp if (!absoluteFilePath.isEmpty()) { found = true; QString absolutePath = absoluteFilePath.left(absoluteFilePath.lastIndexOf(Slash)+1); - url = QLatin1String("file://") + absolutePath; + if (absolutePath.at(0) == QLatin1Char(':')) + url = QLatin1String("qrc://") + absolutePath.mid(1); + else + url = QLatin1String("file://") + absolutePath; uri = resolvedUri(dir, database); if (!importExtension(absoluteFilePath, uri, database, &qmldircomponents, errors)) return false; |