From b7213ad02095fed9db906a914c70e97ef40f0a74 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 21 Aug 2019 15:51:27 +0200 Subject: [PATCH] Don't require material manager any more to find available materials We have our container tree for that. Contributes to issue CURA-6600. --- cura/Machines/Models/BaseMaterialsModel.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index 9ee45c7525..93d3a9e51f 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -115,7 +115,14 @@ class BaseMaterialsModel(ListModel): return False extruder_stack = global_stack.extruders[extruder_position] - self._available_materials = self._material_manager.getAvailableMaterialsForMachineExtruder(global_stack, extruder_stack) + nozzle_name = None + if extruder_stack.variant.getId() != "empty_variant": + nozzle_name = extruder_stack.variant.getName() + + # Update the available materials (ContainerNode) for the current active machine and extruder setup. + materials = self.getAvailableMaterials(global_stack.definition.getId(), nozzle_name) + compatible_material_diameter = str(round(extruder_stack.getCompatibleMaterialDiameter())) + self._available_materials = {key: material for key, material in materials.items() if material.container.getMetaDataEntry("approximate_diameter") == compatible_material_diameter} return True ## This is another convenience function which is shared by all material