Fix setting default material after g-code flavour changes has_materials

Don't use the material manager here any more.

Contributes to issue CURA-6600.
This commit is contained in:
Ghostkeeper 2019-09-17 09:23:33 +02:00
parent 977beb8dbb
commit eaf649023a
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276

View file

@ -113,11 +113,8 @@ class MachineSettingsAction(MachineAction):
return return
machine_manager = self._application.getMachineManager() machine_manager = self._application.getMachineManager()
material_manager = self._application.getMaterialManager()
extruder_positions = list(global_stack.extruders.keys())
has_materials = global_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode" has_materials = global_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode"
material_node = None
if has_materials: if has_materials:
global_stack.setMetaDataEntry("has_materials", True) global_stack.setMetaDataEntry("has_materials", True)
else: else:
@ -129,10 +126,12 @@ class MachineSettingsAction(MachineAction):
self._updateHasMaterialsInContainerTree() self._updateHasMaterialsInContainerTree()
# set materials # set materials
for position in extruder_positions: machine_node = ContainerTree.getInstance().machines[global_stack.definition.getId()]
if has_materials: for position, extruder in enumerate(global_stack.extruderList):
material_node = material_manager.getDefaultMaterial(global_stack, position, None) #Find out what material we need to default to.
machine_manager.setMaterial(position, material_node) approximate_diameter = round(extruder.getProperty("material_diameter", "value"))
material_node = machine_node.variants[extruder.variant.getName()].preferredMaterial(approximate_diameter)
machine_manager.setMaterial(str(position), material_node)
self._application.globalContainerStackChanged.emit() self._application.globalContainerStackChanged.emit()