diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2009-10-26 04:42:45 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2009-10-26 04:42:45 (GMT) |
commit | 5b44f14b564bb6a4ba94d49593a0557995acc79b (patch) | |
tree | bedd4f8c5721da208e3f5556441690d6799c4bc4 /src | |
parent | 0478559cd1ec393c1a2e098822858a2b989ed81f (diff) | |
download | Qt-5b44f14b564bb6a4ba94d49593a0557995acc79b.zip Qt-5b44f14b564bb6a4ba94d49593a0557995acc79b.tar.gz Qt-5b44f14b564bb6a4ba94d49593a0557995acc79b.tar.bz2 |
Move knowledge of qmldir out of QmlScriptParser.
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/qml/qmlcompositetypemanager.cpp | 14 | ||||
-rw-r--r-- | src/declarative/qml/qmlscriptparser.cpp | 3 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/declarative/qml/qmlcompositetypemanager.cpp b/src/declarative/qml/qmlcompositetypemanager.cpp index 9444a22..b956c1e 100644 --- a/src/declarative/qml/qmlcompositetypemanager.cpp +++ b/src/declarative/qml/qmlcompositetypemanager.cpp @@ -575,6 +575,17 @@ void QmlCompositeTypeManager::compile(QmlCompositeTypeData *unit) int waiting = 0; QList<QUrl> resourceList = unit->data.referencedResources(); + + foreach (QmlScriptParser::Import imp, unit->data.imports()) { + if (imp.type == QmlScriptParser::Import::File) { + QUrl importUrl = unit->imports.baseUrl().resolved(QUrl(imp.uri + QLatin1String("/qmldir"))); + if (toLocalFileOrQrc(importUrl).isEmpty()) { + // Import requires remote qmldir + resourceList.prepend(importUrl); + } + } + } + for (int ii = 0; ii < resourceList.count(); ++ii) { QUrl url = unit->imports.baseUrl().resolved(resourceList.at(ii)); @@ -589,9 +600,6 @@ void QmlCompositeTypeManager::compile(QmlCompositeTypeData *unit) loadResource(resource); } - if (!url.toLocalFile().isEmpty() && url.path().endsWith("/qmldir") && resource->status==QmlCompositeTypeResource::Error) - continue; // ignore - can use filesystem dir instead - switch(resource->status) { case QmlCompositeTypeResource::Invalid: case QmlCompositeTypeResource::Error: diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index b61ffaa..fb84651 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -424,9 +424,6 @@ bool ProcessAST::visit(AST::UiImport *node) if (node->fileName) { import.type = QmlScriptParser::Import::File; uri = node->fileName->asString(); - QUrl ref(uri); - ref.setPath(ref.path()+QLatin1String("/qmldir")); - _parser->_refUrls << ref; } else { import.type = QmlScriptParser::Import::Library; uri = asString(node->importUri); |