summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlscriptparser.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-04-24 16:17:27 (GMT)
committerRoberto Raggi <roberto.raggi@nokia.com>2009-04-24 16:17:27 (GMT)
commit5d8ce4c43c3c2816cd5dca03ddd429f26b96d34d (patch)
tree0f7f9076d6254b0f4b75c971a168e45dded635ea /src/declarative/qml/qmlscriptparser.cpp
parent3ee74e1f66eb8c00857aafcbd05b6130af11507a (diff)
downloadQt-5d8ce4c43c3c2816cd5dca03ddd429f26b96d34d.zip
Qt-5d8ce4c43c3c2816cd5dca03ddd429f26b96d34d.tar.gz
Qt-5d8ce4c43c3c2816cd5dca03ddd429f26b96d34d.tar.bz2
No more sugar :-)
Diffstat (limited to 'src/declarative/qml/qmlscriptparser.cpp')
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index 3d406e7..099985e 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -240,7 +240,7 @@ Object *ProcessAST::defineObjectBinding(int line,
const QString &objectType,
AST::UiObjectInitializer *initializer)
{
-
+#if 0
if (objectType == QLatin1String("Connection")) {
AST::UiObjectMemberList *it = initializer->members;
@@ -410,6 +410,7 @@ Object *ProcessAST::defineObjectBinding(int line,
_stateStack.pop();
return obj;
}
+#endif
return defineObjectBinding_helper(line, qualifiedId, objectType, initializer);
}
@@ -599,19 +600,28 @@ bool ProcessAST::visit(AST::UiArrayBinding *node)
bool ProcessAST::visit(AST::UiSourceElement *node)
{
+ QmlParser::Object *obj = currentObject();
+ if (! (obj && obj->typeName == "Script")) {
+ // ### warning
+ return false;
+ }
+
QString source;
QTextStream out(&source);
PrettyPretty pp(out);
pp(node->sourceElement);
- Object *obj = defineObjectBinding(-1, // ### line
- 0,
- QLatin1String("Script"));
+ int line = 0;
+ if (AST::FunctionDeclaration *funDecl = AST::cast<AST::FunctionDeclaration *>(node->sourceElement))
+ line = funDecl->functionToken.startLine;
+ else if (AST::VariableStatement *varStmt = AST::cast<AST::VariableStatement *>(node->sourceElement))
+ line = varStmt->declarationKindToken.startLine;
Value *value = new Value;
value->primitive = source;
- value->line = -1; // ### fix me
+ value->line = line;
+
obj->getDefaultProperty()->addValue(value);
return false;