QmlJS: Add quick fix to wrap element in Loader.

Change-Id: Ie8b1624abfd9faa8c6153ad99e48964d597d543c
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
Christian Kamm
2011-10-19 13:48:10 +02:00
parent 85d78c6082
commit cf156cd2ea
9 changed files with 231 additions and 15 deletions

View File

@@ -96,20 +96,29 @@ SourceLocation QmlJS::fullLocationForQualifiedId(AST::UiQualifiedId *qualifiedId
return locationFromRange(start, end);
}
QString QmlJS::idOfObject(UiObjectDefinition *object)
QString QmlJS::idOfObject(UiObjectDefinition *object, UiScriptBinding **idBinding)
{
if (!object)
if (!object) {
if (idBinding)
*idBinding = 0;
return QString();
return idOfObject(object->initializer);
}
return idOfObject(object->initializer, idBinding);
}
QString QmlJS::idOfObject(UiObjectBinding *object)
QString QmlJS::idOfObject(UiObjectBinding *object, UiScriptBinding **idBinding)
{
if (!object)
if (!object) {
if (idBinding)
*idBinding = 0;
return QString();
return idOfObject(object->initializer);
}
return idOfObject(object->initializer, idBinding);
}
QString QmlJS::idOfObject(UiObjectInitializer *initializer)
QString QmlJS::idOfObject(UiObjectInitializer *initializer, UiScriptBinding **idBinding)
{
if (idBinding)
*idBinding = 0;
if (!initializer)
return QString();
@@ -123,6 +132,8 @@ QString QmlJS::idOfObject(UiObjectInitializer *initializer)
continue;
if (ExpressionStatement *expstmt = cast<ExpressionStatement *>(script->statement)) {
if (IdentifierExpression *idexp = cast<IdentifierExpression *>(expstmt->expression)) {
if (idBinding)
*idBinding = script;
return idexp->name.toString();
}
}

View File

@@ -18,9 +18,9 @@ QMLJS_EXPORT AST::SourceLocation locationFromRange(const AST::SourceLocation &st
QMLJS_EXPORT AST::SourceLocation fullLocationForQualifiedId(AST::UiQualifiedId *);
QMLJS_EXPORT QString idOfObject(AST::UiObjectDefinition *object);
QMLJS_EXPORT QString idOfObject(AST::UiObjectBinding *object);
QMLJS_EXPORT QString idOfObject(AST::UiObjectInitializer *initializer);
QMLJS_EXPORT QString idOfObject(AST::UiObjectDefinition *object, AST::UiScriptBinding **idBinding = 0);
QMLJS_EXPORT QString idOfObject(AST::UiObjectBinding *object, AST::UiScriptBinding **idBinding = 0);
QMLJS_EXPORT QString idOfObject(AST::UiObjectInitializer *initializer, AST::UiScriptBinding **idBinding = 0);
QMLJS_EXPORT AST::UiObjectInitializer *initializerOfObject(AST::Node *node);
QMLJS_EXPORT AST::UiQualifiedId *qualifiedTypeNameId(AST::Node *node);