From 10e2a046dad1a57ffeb8f1453cce67de108b82c4 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@digia.com>
Date: Wed, 21 May 2014 18:06:15 +0200
Subject: [PATCH] QmlDesigner.PropertyEditor: Adding dirty flag to LineEdit

This patch ensures that we only commit data to the backend
if the text actually changed. The signal onEditingFinished is triggered
even if the user did not edit the string.

Change-Id: I2d54f3d79a1c60525e4c9744b364cc014bd407ce
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
---
 .../HelperWidgets/LineEdit.qml                         | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml
index ee88008ed31..cbec8ac0715 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/LineEdit.qml
@@ -49,6 +49,8 @@ Controls.TextField {
 
     property bool hasToConvertColor: false
 
+    property bool __dirty: false
+
     ExtendedFunctionButton {
         x: 2
         y: 4
@@ -65,20 +67,28 @@ Controls.TextField {
             } else {
                 lineEdit.text = valueFromBackend
             }
+            __dirty = false
         }
     }
 
+    onTextChanged: {
+        __dirty = true
+    }
     onEditingFinished: {
 
         if (hasToConvertColor)
             return
 
+        if (!__dirty)
+            return
+
         if (backendValue.isTranslated) {
             backendValue.expression = "qsTr(\"" + trCheckbox.escapeString(text) + "\")"
         } else {
             if (lineEdit.backendValue.value !== text)
                 lineEdit.backendValue.value = text;
         }
+        __dirty = false
     }
 
     style: TextFieldStyle {
-- 
GitLab