summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2018-07-03 09:18:37 +0200
committerTim Jenssen <tim.jenssen@qt.io>2018-07-03 07:36:26 +0000
commit29e6659e90c98414150253ddeadbf4fa46c9b86a (patch)
tree875867502dca84723a4f166a23af7aa8e59609b5
parentb9328012b16f6e878782b7e309ae8327616b919e (diff)
downloadqt-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.cpp18
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();
+ }
}
}