diff options
| author | Thomas Hartmann <thomas.hartmann@qt.io> | 2018-07-03 09:18:37 +0200 |
|---|---|---|
| committer | Tim Jenssen <tim.jenssen@qt.io> | 2018-07-03 07:36:26 +0000 |
| commit | 29e6659e90c98414150253ddeadbf4fa46c9b86a (patch) | |
| tree | 875867502dca84723a4f166a23af7aa8e59609b5 | |
| parent | b9328012b16f6e878782b7e309ae8327616b919e (diff) | |
| download | qt-creator-29e6659e90c98414150253ddeadbf4fa46c9b86a.tar.gz | |
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 <tim.jenssen@qt.io>
| -rw-r--r-- | src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp index bd22558a4e..0728c8128b 100644 --- a/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp +++ b/src/plugins/qmldesigner/qmldesignerextension/texttool/textedititem.cpp @@ -27,6 +27,7 @@ #include <formeditorscene.h> #include <nodemetainfo.h> +#include <rewritingexception.h> #include <QLineEdit> #include <QTextEdit> @@ -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(); + } } } |
