From 6fba34f5a73c3df2c8b23ddc1fff8b41bd4e07ee Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Wed, 11 Jan 2023 11:12:50 +0100 Subject: [PATCH] QmlDesigner: Fix reflection in ColorEditor Change-Id: I0d4cced42dd2b1d98f46c9870ca206e83b3aa4db Reviewed-by: Thomas Hartmann --- .../imports/HelperWidgets/ColorEditor.qml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ColorEditor.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ColorEditor.qml index 32e33744330..4742f1c0277 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ColorEditor.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ColorEditor.qml @@ -38,12 +38,21 @@ SecondColumnLayout { property alias spacer: spacer + property bool __block: false + function resetShapeColor() { colorEditor.backendValue.resetValue() } function initEditor() { + colorEditor.syncColor() + } + + // Syncing color from backend to frontend and block reflection + function syncColor() { + colorEditor.__block = true colorEditor.color = colorEditor.value + colorEditor.__block = false } Connections { @@ -52,12 +61,12 @@ SecondColumnLayout { function onValueChanged() { if (popupLoader.isNotInGradientMode()) - colorEditor.color = colorEditor.value + colorEditor.syncColor() } function onBackendValueChanged() { if (popupLoader.isNotInGradientMode()) - colorEditor.color = colorEditor.value + colorEditor.syncColor() } } @@ -83,6 +92,9 @@ SecondColumnLayout { } onColorChanged: { + if (colorEditor.__block) + return + if (!popupLoader.isInValidState) return @@ -211,7 +223,7 @@ SecondColumnLayout { if (popupLoader.active && popupLoader.dialog) popupLoader.dialog.determineActiveColorMode() else - colorEditor.color = colorEditor.value + colorEditor.syncColor() } property alias active: popupLoader.loader.active