From fe1c4926dec9ac729979212b4419989d56a1af48 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Wed, 24 Mar 2010 14:48:40 +0100 Subject: [PATCH] Fixes for signals and complex script bindings. --- .../qmldesigner/core/model/texttomodelmerger.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp index c1d6e277b0f..99638dcfcd9 100644 --- a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp @@ -153,7 +153,11 @@ static inline bool isLiteralValue(UiScriptBinding *script) if (!script || !script->statement) return false; - return isLiteralValue((cast<ExpressionStatement *>(script->statement))->expression); + ExpressionStatement *exprStmt = cast<ExpressionStatement *>(script->statement); + if (exprStmt) + return isLiteralValue(exprStmt->expression); + else + return false; } static inline bool isValidPropertyForNode(const ModelNode &modelNode, @@ -434,6 +438,12 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, } } } else if (UiPublicMember *property = cast<UiPublicMember *>(member)) { + if (property->type == UiPublicMember::Signal) + continue; // QML designer doesn't support this yet. + + if (!property->name || !property->memberType) + continue; // better safe than sorry. + const QString astName = property->name->asString(); QString astValue; if (property->expression) -- GitLab