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) } onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) }
onModelChanged: updateCurrentIndex();
Connections Binding
{ {
target: propertyProvider target: control
onPropertiesChanged: control.updateCurrentIndex() property: "currentIndex"
} value:
{
function updateCurrentIndex() { // FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model. var value;
var value; if ((propertyProvider.properties.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) {
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 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
// we have to choose between the resolved value (default) and the global value // (if user has explicitly set this).
// (if user has explicitly set this). value = propertyProvider.properties.resolve;
value = propertyProvider.properties.resolve; } else {
} else { value = propertyProvider.properties.value;
value = propertyProvider.properties.value;
}
for(var i = 0; i < definition.options.length; ++i) {
if(definition.options[i].key == value) {
currentIndex = i;
return;
} }
}
currentIndex = -1; for(var i = 0; i < control.model.length; ++i) {
if(control.model[i].key == value) {
return i;
}
}
return -1;
}
} }
} }
} }