Use ContainerTree to find quality groups

Contributes to issue CURA-6600.
This commit is contained in:
Ghostkeeper 2019-08-15 16:21:51 +02:00
parent 8a51582210
commit ed19e9e15c
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276

View file

@ -8,6 +8,7 @@ from PyQt5.QtCore import Qt, QObject, pyqtProperty, pyqtSignal
from UM.Qt.ListModel import ListModel
from UM.Settings.ContainerRegistry import ContainerRegistry
from cura.Machines.ContainerTree import ContainerTree
from cura.Settings.IntentManager import IntentManager
import cura.CuraApplication
@ -47,13 +48,15 @@ class IntentModel(ListModel):
def _update(self) -> None:
new_items = [] # type: List[Dict[str, Any]]
application = cura.CuraApplication.CuraApplication.getInstance()
quality_manager = application.getQualityManager()
global_stack = application.getGlobalContainerStack()
global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack()
if not global_stack:
self.setItems(new_items)
return
quality_groups = quality_manager.getQualityGroups(global_stack)
definition_id = global_stack.definition.getId()
variant_names = [extruder.variant.getName() for extruder in global_stack.extruders.values()]
material_bases = [extruder.material.getMetaDataEntry("base_file") for extruder in global_stack.extruders.values()]
extruder_enabled = [extruder.isEnabled for extruder in global_stack.extruders.values()]
quality_groups = ContainerTree.getInstance().machines[definition_id].getQualityGroups(variant_names, material_bases, extruder_enabled)
for intent_category, quality_type in IntentManager.getInstance().getCurrentAvailableIntents():
if intent_category == self._intent_category: