Resolvement strategy for bed adhesion and prime tower enable.

Contributes to CURA-2232 No resolvement strategy for prime_tower_enable and platform adhesion
This commit is contained in:
Simon Edwards 2016-09-13 14:04:49 +02:00
parent bab9e8a28a
commit 0fdd9279bb
3 changed files with 41 additions and 6 deletions

View File

@ -2705,6 +2705,7 @@
"raft": "Raft" "raft": "Raft"
}, },
"default_value": "brim", "default_value": "brim",
"resolve": "'raft' if 'raft' in extruderValues('adhesion_type') else ('brim' if 'brim' in extruderValues('adhesion_type') else 'skirt')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
@ -3296,6 +3297,7 @@
"type": "bool", "type": "bool",
"enabled": "machine_extruder_count > 1", "enabled": "machine_extruder_count > 1",
"default_value": false, "default_value": false,
"resolve": "max(extruderValues('prime_tower_enable'))",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },

View File

@ -20,18 +20,40 @@ SettingItem
property bool checked: property bool checked:
{ {
switch(propertyProvider.properties.value) // FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
// Stacklevels
// 0: user -> unsaved change
// 1: quality changes -> saved change
// 2: quality
// 3: material -> user changed material in materials page
// 4: variant
// 5: machine
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;
}
switch(value)
{ {
case "True": case "True":
return true return true;
case "False": case "False":
return false return false;
default: default:
return propertyProvider.properties.value return value;
} }
} }
onClicked: { forceActiveFocus(); propertyProvider.setPropertyValue("value", !checked) } onClicked:
{
forceActiveFocus();
propertyProvider.setPropertyValue("value", !checked);
}
Rectangle Rectangle
{ {

View File

@ -96,8 +96,19 @@ SettingItem
} }
function 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) { for(var i = 0; i < definition.options.length; ++i) {
if(definition.options[i].key == propertyProvider.properties.value) { if(definition.options[i].key == value) {
currentIndex = i; currentIndex = i;
return; return;
} }