Replace manual function calls to updateCurrentIndex with an explicit binding

This is mostly in support of Uranium PR #165 . That changes
SettingPropertyProvider so that the "properties" property does not
always change. However, in general this is the more correct approach.

Relates to CURA-2232
This commit is contained in:
Arjen Hiemstra 2016-10-04 12:54:52 +02:00
parent fc310f2732
commit 5a14c5e5ba

View file

@ -87,34 +87,32 @@ SettingItem
}
onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) }
onModelChanged: updateCurrentIndex();
Connections
Binding
{
target: propertyProvider
onPropertiesChanged: control.updateCurrentIndex()
}
function updateCurrentIndex() {
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
var value;
if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) {
// We have a resolve function. Indicates that the setting is not settable per extruder and that
// we have to choose between the resolved value (default) and the global value
// (if user has explicitly set this).
value = propertyProvider.properties.resolve;
} else {
value = propertyProvider.properties.value;
}
for(var i = 0; i < definition.options.length; ++i) {
if(definition.options[i].key == value) {
currentIndex = i;
return;
target: control
property: "currentIndex"
value:
{
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
var value;
if ((propertyProvider.properties.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) {
// We have a resolve function. Indicates that the setting is not settable per extruder and that
// we have to choose between the resolved value (default) and the global value
// (if user has explicitly set this).
value = propertyProvider.properties.resolve;
} else {
value = propertyProvider.properties.value;
}
}
currentIndex = -1;
for(var i = 0; i < control.model.length; ++i) {
if(control.model[i].key == value) {
return i;
}
}
return -1;
}
}
}
}