summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml
diff options
context:
space:
mode:
authormae <qt-info@nokia.com>2009-04-21 11:16:59 (GMT)
committerRoberto Raggi <roberto.raggi@nokia.com>2009-04-24 08:05:49 (GMT)
commit2fa9049ddf75a3c057fc5c881f9d9faad5ce6c29 (patch)
treeb891f0de7b9a4d1769d748ab69117f538773880a /src/declarative/qml
parenta44ae02e0e5b7949ad4643caf52fd04f56166b13 (diff)
downloadQt-2fa9049ddf75a3c057fc5c881f9d9faad5ce6c29.zip
Qt-2fa9049ddf75a3c057fc5c881f9d9faad5ce6c29.tar.gz
Qt-2fa9049ddf75a3c057fc5c881f9d9faad5ce6c29.tar.bz2
load foo.js for a foo.dui if it exists. This lets us use the import keyword for real modules. Fix qmlconv, also get rid of the function() for signal properties.
Diffstat (limited to 'src/declarative/qml')
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp10
-rw-r--r--src/declarative/qml/qmlscriptparser_p.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index 950b357..6d49d3f 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -193,6 +193,16 @@ Object *ProcessAST::defineObjectBinding(int line,
if (! _parser->tree()) {
_parser->setTree(obj);
+
+ if (!_parser->scriptFile().isEmpty()) {
+ _stateStack.pushObject(obj);
+ Object *scriptObject= defineObjectBinding(line, 0, QLatin1String("Script"));
+ _stateStack.pushObject(scriptObject);
+ defineProperty(QLatin1String("src"), line, _parser->scriptFile());
+ _stateStack.pop(); // scriptObject
+ _stateStack.pop(); // object
+ }
+
} else {
const State state = _stateStack.top();
Value *v = new Value;
diff --git a/src/declarative/qml/qmlscriptparser_p.h b/src/declarative/qml/qmlscriptparser_p.h
index b24662e..6c7c0f1 100644
--- a/src/declarative/qml/qmlscriptparser_p.h
+++ b/src/declarative/qml/qmlscriptparser_p.h
@@ -31,12 +31,16 @@ public:
int findOrCreateTypeId(const QString &name);
void setTree(QmlParser::Object *tree);
+ void setScriptFile(const QString &filename) {_scriptFile = filename; }
+ QString scriptFile() const { return _scriptFile; }
+
private:
QMap<QString,QString> _nameSpacePaths;
QmlParser::Object *root;
QStringList _typeNames;
QString _error;
int _errorLine;
+ QString _scriptFile;
};
QT_END_NAMESPACE