This commit is contained in:
fieldOfView 2016-06-09 13:16:38 +02:00
commit f498f0237c
6 changed files with 590 additions and 267 deletions

View file

@ -93,7 +93,10 @@ class CuraApplication(QtApplication):
self._open_file_queue = [] # Files to open when plug-ins are loaded. self._open_file_queue = [] # Files to open when plug-ins are loaded.
# Need to do this before ContainerRegistry tries to load the machines # Need to do this before ContainerRegistry tries to load the machines
SettingDefinition.addSupportedProperty("global_only", DefinitionPropertyType.Function, default = False) SettingDefinition.addSupportedProperty("settable_per_mesh", DefinitionPropertyType.Any, default = True)
SettingDefinition.addSupportedProperty("settable_per_extruder", DefinitionPropertyType.Any, default = True)
SettingDefinition.addSupportedProperty("settable_per_meshgroup", DefinitionPropertyType.Any, default = True)
SettingDefinition.addSupportedProperty("settable_globally", DefinitionPropertyType.Any, default = True)
SettingDefinition.addSettingType("extruder", str, ast.literal_eval, UM.Settings.Validator) SettingDefinition.addSettingType("extruder", str, ast.literal_eval, UM.Settings.Validator)
super().__init__(name = "cura", version = CuraVersion, buildtype = CuraBuildType) super().__init__(name = "cura", version = CuraVersion, buildtype = CuraBuildType)

View file

@ -51,13 +51,18 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
global_container_stack = UM.Application.getInstance().getGlobalContainerStack() global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
if not global_container_stack: if not global_container_stack:
return #There is no machine to get the extruders of. return #There is no machine to get the extruders of.
for index, extruder in enumerate(manager.getMachineExtruders(global_container_stack.getBottom())): for extruder in manager.getMachineExtruders(global_container_stack.getBottom()):
material = extruder.findContainer({ "type": "material" }) material = extruder.findContainer({ "type": "material" })
colour = material.getMetaDataEntry("color_code", default = "#FFFF00") if material else "#FFFF00" colour = material.getMetaDataEntry("color_code", default = "#FFFF00") if material else "#FFFF00"
position = extruder.getBottom().getMetaDataEntry("position", default = "0") #Position in the definition.
try:
position = int(position)
except ValueError: #Not a proper int.
position = -1
item = { #Construct an item with only the relevant information. item = { #Construct an item with only the relevant information.
"name": extruder.getName(), "name": extruder.getName(),
"colour": colour, "colour": colour,
"index": index "index": position
} }
self.appendItem(item) self.appendItem(item)
self.sort(lambda item: item["index"]) self.sort(lambda item: item["index"])

View file

@ -190,11 +190,11 @@ Item {
{ {
if(text != "") if(text != "")
{ {
listview.model.filter = {"global_only": false, "label": "*" + text} listview.model.filter = {"settable_per_mesh": true, "label": "*" + text}
} }
else else
{ {
listview.model.filter = {"global_only": false} listview.model.filter = {"settable_per_mesh": true}
} }
} }
} }
@ -219,7 +219,7 @@ Item {
containerId: Cura.MachineManager.activeDefinitionId containerId: Cura.MachineManager.activeDefinitionId
filter: filter:
{ {
"global_only": false "settable_per_mesh": true
} }
visibilityHandler: UM.SettingPreferenceVisibilityHandler {} visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
} }

View file

@ -24,7 +24,11 @@
"description": "The extruder train used for printing. This is used in multi-extrusion.", "description": "The extruder train used for printing. This is used in multi-extrusion.",
"type": "extruder", "type": "extruder",
"default_value": 0, "default_value": 0,
"minimum_value": "0" "minimum_value": "0",
"settable_per_mesh": true,
"settable_per_extruder": false,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_nozzle_offset_x": "machine_nozzle_offset_x":
{ {
@ -33,7 +37,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_nozzle_offset_y": "machine_nozzle_offset_y":
{ {
@ -42,7 +49,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_start_code": "machine_extruder_start_code":
{ {
@ -50,7 +60,10 @@
"description": "Start g-code to execute whenever turning the extruder on.", "description": "Start g-code to execute whenever turning the extruder on.",
"type": "str", "type": "str",
"default_value": "", "default_value": "",
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_start_pos_abs": "machine_extruder_start_pos_abs":
{ {
@ -58,7 +71,10 @@
"description": "Make the extruder starting position absolute rather than relative to the last-known location of the head.", "description": "Make the extruder starting position absolute rather than relative to the last-known location of the head.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_start_pos_x": "machine_extruder_start_pos_x":
{ {
@ -67,7 +83,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_start_pos_y": "machine_extruder_start_pos_y":
{ {
@ -76,7 +95,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_end_code": "machine_extruder_end_code":
{ {
@ -84,7 +106,10 @@
"description": "End g-code to execute whenever turning the extruder off.", "description": "End g-code to execute whenever turning the extruder off.",
"type": "str", "type": "str",
"default_value": "", "default_value": "",
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_end_pos_abs": "machine_extruder_end_pos_abs":
{ {
@ -92,7 +117,10 @@
"description": "Make the extruder ending position absolute rather than relative to the last-known location of the head.", "description": "Make the extruder ending position absolute rather than relative to the last-known location of the head.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_end_pos_x": "machine_extruder_end_pos_x":
{ {
@ -101,7 +129,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
}, },
"machine_extruder_end_pos_y": "machine_extruder_end_pos_y":
{ {
@ -110,7 +141,10 @@
"type": "float", "type": "float",
"unit": "mm", "unit": "mm",
"default_value": 0, "default_value": 0,
"global_only": "True" "settable_per_mesh": false,
"settable_per_extruder": true,
"settable_per_meshgroup": false,
"settable_globally": false
} }
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -110,8 +110,9 @@ Item
checked: base.currentExtruderIndex == index checked: base.currentExtruderIndex == index
onClicked: onClicked:
{ {
base.currentExtruderIndex = index extruderSelection.focus = true; //Changing focus applies the currently-being-typed values so it can change the displayed setting values.
ExtruderManager.setActiveExtruderIndex(index) base.currentExtruderIndex = index;
ExtruderManager.setActiveExtruderIndex(index);
} }
style: ButtonStyle { style: ButtonStyle {