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.
# 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)
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()
if not global_container_stack:
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" })
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.
"name": extruder.getName(),
"colour": colour,
"index": index
"index": position
}
self.appendItem(item)
self.sort(lambda item: item["index"])

View file

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

View file

@ -24,7 +24,11 @@
"description": "The extruder train used for printing. This is used in multi-extrusion.",
"type": "extruder",
"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":
{
@ -33,7 +37,10 @@
"type": "float",
"unit": "mm",
"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":
{
@ -42,7 +49,10 @@
"type": "float",
"unit": "mm",
"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":
{
@ -50,7 +60,10 @@
"description": "Start g-code to execute whenever turning the extruder on.",
"type": "str",
"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":
{
@ -58,7 +71,10 @@
"description": "Make the extruder starting position absolute rather than relative to the last-known location of the head.",
"type": "bool",
"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":
{
@ -67,7 +83,10 @@
"type": "float",
"unit": "mm",
"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":
{
@ -76,7 +95,10 @@
"type": "float",
"unit": "mm",
"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":
{
@ -84,7 +106,10 @@
"description": "End g-code to execute whenever turning the extruder off.",
"type": "str",
"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":
{
@ -92,7 +117,10 @@
"description": "Make the extruder ending position absolute rather than relative to the last-known location of the head.",
"type": "bool",
"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":
{
@ -101,7 +129,10 @@
"type": "float",
"unit": "mm",
"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":
{
@ -110,7 +141,10 @@
"type": "float",
"unit": "mm",
"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
onClicked:
{
base.currentExtruderIndex = index
ExtruderManager.setActiveExtruderIndex(index)
extruderSelection.focus = true; //Changing focus applies the currently-being-typed values so it can change the displayed setting values.
base.currentExtruderIndex = index;
ExtruderManager.setActiveExtruderIndex(index);
}
style: ButtonStyle {