summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp14
-rw-r--r--src/declarative/qml/qmlscriptparser_p.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index 6d49d3f..ffdfdf4 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -72,6 +72,7 @@ protected:
using AST::Visitor::endVisit;
virtual bool visit(AST::UiProgram *node);
+ virtual bool visit(AST::UiImport *node);
virtual bool visit(AST::UiObjectDefinition *node);
virtual bool visit(AST::UiPublicMember *node);
virtual bool visit(AST::UiObjectBinding *node);
@@ -240,6 +241,14 @@ bool ProcessAST::visit(AST::UiProgram *node)
return false;
}
+// UiImport: T_IMPORT T_STRING_LITERAL ;
+bool ProcessAST::visit(AST::UiImport *node)
+{
+ QString fileName = node->fileName->asString();
+ _parser->addNamespacePath(fileName);
+ return false;
+}
+
// UiObjectMember: T_PUBLIC T_IDENTIFIER T_IDENTIFIER T_COLON Expression UiObjectInitializer ;
bool ProcessAST::visit(AST::UiPublicMember *node)
{
@@ -616,5 +625,10 @@ void QmlScriptParser::setTree(Object *tree)
root = tree;
}
+void QmlScriptParser::addNamespacePath(const QString &path)
+{
+ _nameSpacePaths.insertMulti(QString(), path);
+}
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlscriptparser_p.h b/src/declarative/qml/qmlscriptparser_p.h
index 6c7c0f1..49128d7 100644
--- a/src/declarative/qml/qmlscriptparser_p.h
+++ b/src/declarative/qml/qmlscriptparser_p.h
@@ -34,6 +34,8 @@ public:
void setScriptFile(const QString &filename) {_scriptFile = filename; }
QString scriptFile() const { return _scriptFile; }
+ void addNamespacePath(const QString &path);
+
private:
QMap<QString,QString> _nameSpacePaths;
QmlParser::Object *root;