summaryrefslogtreecommitdiff
path: root/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml
diff options
context:
space:
mode:
Diffstat (limited to 'share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml')
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml62
1 files changed, 36 insertions, 26 deletions
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml
index b3e8fda368..2d70e40b1d 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ComboBox.qml
@@ -38,6 +38,10 @@ StudioControls.ComboBox {
enum ValueType { String, Integer, Enum }
property int valueType: ComboBox.ValueType.Enum
+ onModelChanged: colorLogic.invalidate()
+
+ // This is available in all editors.
+
onValueTypeChanged: {
if (comboBox.valueType === ComboBox.ValueType.Integer)
comboBox.useInteger = true
@@ -97,28 +101,34 @@ StudioControls.ComboBox {
comboBox.valueFromBackendChanged()
} else {
switch (comboBox.valueType) {
- case ComboBox.ValueType.String:
- if (comboBox.currentText !== comboBox.backendValue.value)
- comboBox.currentText = comboBox.backendValue.value
- break
- case ComboBox.ValueType.Integer:
- if (comboBox.currentIndex !== comboBox.backendValue.value)
- comboBox.currentIndex = comboBox.backendValue.value
- break
- case ComboBox.ValueType.Enum:
- default:
- var enumString = comboBox.backendValue.enumeration
-
- if (enumString === "")
- enumString = comboBox.backendValue.value
-
- var index = comboBox.find(enumString)
-
+ case ComboBox.ValueType.String:
+ if (comboBox.currentText !== comboBox.backendValue.value) {
+ var index = comboBox.find(comboBox.backendValue.value)
if (index < 0)
index = 0
if (index !== comboBox.currentIndex)
comboBox.currentIndex = index
+ }
+ break
+ case ComboBox.ValueType.Integer:
+ if (comboBox.currentIndex !== comboBox.backendValue.value)
+ comboBox.currentIndex = comboBox.backendValue.value
+ break
+ case ComboBox.ValueType.Enum:
+ default:
+ var enumString = comboBox.backendValue.enumeration
+
+ if (enumString === "")
+ enumString = comboBox.backendValue.value
+
+ index = comboBox.find(enumString)
+
+ if (index < 0)
+ index = 0
+
+ if (index !== comboBox.currentIndex)
+ comboBox.currentIndex = index
}
}
@@ -137,15 +147,15 @@ StudioControls.ComboBox {
return
switch (comboBox.valueType) {
- case ComboBox.ValueType.String:
- comboBox.backendValue.value = comboBox.currentText
- break
- case ComboBox.ValueType.Integer:
- comboBox.backendValue.value = comboBox.currentIndex
- break
- case ComboBox.ValueType.Enum:
- default:
- comboBox.backendValue.setEnumeration(comboBox.scope, comboBox.currentText)
+ case ComboBox.ValueType.String:
+ comboBox.backendValue.value = comboBox.currentText
+ break
+ case ComboBox.ValueType.Integer:
+ comboBox.backendValue.value = comboBox.currentIndex
+ break
+ case ComboBox.ValueType.Enum:
+ default:
+ comboBox.backendValue.setEnumeration(comboBox.scope, comboBox.currentText)
}
}