summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-10-26 04:42:45 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-10-26 04:42:45 (GMT)
commit5b44f14b564bb6a4ba94d49593a0557995acc79b (patch)
treebedd4f8c5721da208e3f5556441690d6799c4bc4 /src
parent0478559cd1ec393c1a2e098822858a2b989ed81f (diff)
downloadQt-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.cpp14
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp3
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);