Get gcode flavor options from propertyprovider instead of hardcoding

This commit is contained in:
fieldOfView 2016-11-09 15:29:23 +01:00
parent edf4589150
commit 9e048aa6ad

View File

@ -147,19 +147,40 @@ Cura.MachineAction
ComboBox ComboBox
{ {
model: ["RepRap (Marlin/Sprinter)", "UltiGCode", "Repetier"] model: ListModel
{
id: flavorModel
Component.onCompleted:
{
// Options come in as a string-representation of an OrderedDict
var options = machineGCodeFlavorProvider.properties.options.match(/^OrderedDict\(\[\((.*)\)\]\)$/);
if(options)
{
options = options[1].split("), (")
for(var i = 0; i < options.length; i++)
{
var option = options[i].substring(1, options[i].length - 1).split("', '")
flavorModel.append({text: option[1], value: option[0]});
}
}
}
}
currentIndex: currentIndex:
{ {
var index = model.indexOf(machineGCodeFlavorProvider.properties.value); var currentValue = machineGCodeFlavorProvider.properties.value;
if(index == -1) var index = 0;
for(var i = 0; i < flavorModel.count; i++)
{ {
index = 0; if(flavorModel.get(i).value == currentValue) {
index = i;
break;
}
} }
return index return index
} }
onActivated: onActivated:
{ {
machineGCodeFlavorProvider.setPropertyValue("value", model[index]); machineGCodeFlavorProvider.setPropertyValue("value", flavorModel.get(index).value);
manager.updateHasMaterialsMetadata(); manager.updateHasMaterialsMetadata();
} }
} }
@ -433,7 +454,7 @@ Cura.MachineAction
containerStackId: Cura.MachineManager.activeMachineId containerStackId: Cura.MachineManager.activeMachineId
key: "machine_gcode_flavor" key: "machine_gcode_flavor"
watchedProperties: [ "value" ] watchedProperties: [ "value", "options" ]
storeIndex: manager.containerIndex storeIndex: manager.containerIndex
} }