From 29e6659e90c98414150253ddeadbf4fa46c9b86a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 3 Jul 2018 09:18:37 +0200 Subject: [PATCH] QmlDesigner: Fix crash This does not fix the bug altogether, but if escaped quotes inside translatable strings are required, then those can be done in the text editor. The crash is turned into an error message. Task-number: QTCREATORBUG-20684 Change-Id: I702628fbe888450a27c07166d5adacde37b5d1e1 Reviewed-by: Tim Jenssen --- .../texttool/textedititem.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp index bd22558a4ea..0728c8128b4 100644 --- a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp +++ b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -48,12 +49,17 @@ TextEditItem::~TextEditItem() void TextEditItem::writeTextToProperty() { if (m_formEditorItem) { - if (text().isEmpty()) - m_formEditorItem->qmlItemNode().removeProperty("text"); - else if (m_formEditorItem->qmlItemNode().isTranslatableText("text")) - m_formEditorItem->qmlItemNode().setBindingProperty("text", QmlObjectNode::generateTranslatableText(text())); - else - m_formEditorItem->qmlItemNode().setVariantProperty("text", text()); + try { + if (text().isEmpty()) + m_formEditorItem->qmlItemNode().removeProperty("text"); + else if (m_formEditorItem->qmlItemNode().isTranslatableText("text")) + m_formEditorItem->qmlItemNode().setBindingProperty("text", QmlObjectNode::generateTranslatableText(text())); + else + m_formEditorItem->qmlItemNode().setVariantProperty("text", text()); + } + catch (const RewritingException &e) { + e.showException(); + } } }