aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@nokia.com>2011-12-02 13:35:07 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-05 10:13:00 +0100
commit18d1e8c0482f70cd7b978169e7b8f7ab137bfc03 (patch)
tree70e37879cc5a4e7b93caee064be2b4bbdc49f2cf /src/declarative
parent0218e13ea98cb54629ce932fdb9adf2867838d26 (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.cpp17
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;