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.Qt.ListModel import ListModel
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
from cura.Machines.ContainerTree import ContainerTree
from cura.Settings.IntentManager import IntentManager from cura.Settings.IntentManager import IntentManager
import cura.CuraApplication import cura.CuraApplication
@ -47,13 +48,15 @@ class IntentModel(ListModel):
def _update(self) -> None: def _update(self) -> None:
new_items = [] # type: List[Dict[str, Any]] new_items = [] # type: List[Dict[str, Any]]
application = cura.CuraApplication.CuraApplication.getInstance() global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack()
quality_manager = application.getQualityManager()
global_stack = application.getGlobalContainerStack()
if not global_stack: if not global_stack:
self.setItems(new_items) self.setItems(new_items)
return 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(): for intent_category, quality_type in IntentManager.getInstance().getCurrentAvailableIntents():
if intent_category == self._intent_category: if intent_category == self._intent_category: