No longer use deprecated MaterialManager when asking for available materials

Use the ContainerTree structure instead. That's what it's for.

Contributes to issue CURA-6600.
This commit is contained in:
Ghostkeeper 2019-08-13 16:51:33 +02:00
parent 7f84145c9a
commit 5738af4bb8
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276
2 changed files with 5 additions and 11 deletions

View file

@ -168,7 +168,7 @@ class MaterialManager(QObject):
# MaterialNodes from the ContainerTree that are available for the given # MaterialNodes from the ContainerTree that are available for the given
# printer and variant. # printer and variant.
def getAvailableMaterials(self, definition_id: str, nozzle_name: Optional[str]) -> Dict[str, MaterialNode]: def getAvailableMaterials(self, definition_id: str, nozzle_name: Optional[str]) -> Dict[str, MaterialNode]:
return ContainerTree.getInstance().machines[definition_id].variants.get(nozzle_name, "empty_variant").materials return ContainerTree.getInstance().machines[definition_id].variants[nozzle_name].materials
# #
# A convenience function to get available materials for the given machine with the extruder position. # A convenience function to get available materials for the given machine with the extruder position.

View file

@ -22,6 +22,7 @@ from UM.Message import Message
from UM.Settings.SettingFunction import SettingFunction from UM.Settings.SettingFunction import SettingFunction
from UM.Signal import postponeSignals, CompressTechnique from UM.Signal import postponeSignals, CompressTechnique
from cura.Machines.ContainerTree import ContainerTree
from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch, QualityManager from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch, QualityManager
from cura.Machines.MaterialManager import MaterialManager from cura.Machines.MaterialManager import MaterialManager
@ -1312,6 +1313,8 @@ class MachineManager(QObject):
current_quality_type, quality_type) current_quality_type, quality_type)
self._setQualityGroup(candidate_quality_groups[quality_type], empty_quality_changes = True) self._setQualityGroup(candidate_quality_groups[quality_type], empty_quality_changes = True)
## Update the material profile in the current stacks when the variant is
# changed.
def updateMaterialWithVariant(self, position: Optional[str]) -> None: def updateMaterialWithVariant(self, position: Optional[str]) -> None:
if self._global_container_stack is None: if self._global_container_stack is None:
return return
@ -1320,10 +1323,6 @@ class MachineManager(QObject):
else: else:
position_list = [position] position_list = [position]
buildplate_name = None
if self._global_container_stack.variant.getId() != "empty_variant":
buildplate_name = self._global_container_stack.variant.getName()
for position_item in position_list: for position_item in position_list:
extruder = self._global_container_stack.extruders[position_item] extruder = self._global_container_stack.extruders[position_item]
@ -1332,12 +1331,7 @@ class MachineManager(QObject):
if extruder.variant.getId() != empty_variant_container.getId(): if extruder.variant.getId() != empty_variant_container.getId():
current_nozzle_name = extruder.variant.getMetaDataEntry("name") current_nozzle_name = extruder.variant.getMetaDataEntry("name")
material_diameter = extruder.getCompatibleMaterialDiameter() candidate_materials = ContainerTree.getInstance().machines[self._global_container_stack.definition.getId()].variants[current_nozzle_name].materials
candidate_materials = MaterialManager.getInstance().getAvailableMaterials(
self._global_container_stack.definition,
current_nozzle_name,
buildplate_name,
material_diameter)
if not candidate_materials: if not candidate_materials:
self._setMaterial(position_item, container_node = None) self._setMaterial(position_item, container_node = None)