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

@ -22,6 +22,7 @@ from UM.Message import Message
from UM.Settings.SettingFunction import SettingFunction
from UM.Signal import postponeSignals, CompressTechnique
from cura.Machines.ContainerTree import ContainerTree
from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch, QualityManager
from cura.Machines.MaterialManager import MaterialManager
@ -1312,6 +1313,8 @@ class MachineManager(QObject):
current_quality_type, quality_type)
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:
if self._global_container_stack is None:
return
@ -1320,10 +1323,6 @@ class MachineManager(QObject):
else:
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:
extruder = self._global_container_stack.extruders[position_item]
@ -1332,12 +1331,7 @@ class MachineManager(QObject):
if extruder.variant.getId() != empty_variant_container.getId():
current_nozzle_name = extruder.variant.getMetaDataEntry("name")
material_diameter = extruder.getCompatibleMaterialDiameter()
candidate_materials = MaterialManager.getInstance().getAvailableMaterials(
self._global_container_stack.definition,
current_nozzle_name,
buildplate_name,
material_diameter)
candidate_materials = ContainerTree.getInstance().machines[self._global_container_stack.definition.getId()].variants[current_nozzle_name].materials
if not candidate_materials:
self._setMaterial(position_item, container_node = None)