From e5450a449cd32f98387082ddc4aac31a0a4890a2 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 15 Oct 2019 13:27:29 +0200 Subject: [PATCH 1/3] IntentManager should take into account disabled extruders CURA-6891 --- cura/Settings/IntentManager.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/Settings/IntentManager.py b/cura/Settings/IntentManager.py index 9f9d174ffa..c1d59fb84a 100644 --- a/cura/Settings/IntentManager.py +++ b/cura/Settings/IntentManager.py @@ -78,6 +78,8 @@ class IntentManager(QObject): final_intent_ids = set() # type: Set[str] current_definition_id = global_stack.definition.getId() for extruder_stack in global_stack.extruderList: + if not extruder_stack.isEnabled: + continue nozzle_name = extruder_stack.variant.getMetaDataEntry("name") material_id = extruder_stack.material.getMetaDataEntry("base_file") final_intent_ids |= {metadata["id"] for metadata in self.intentMetadatas(current_definition_id, nozzle_name, material_id) if metadata.get("quality_type") in available_quality_types} @@ -104,6 +106,8 @@ class IntentManager(QObject): current_definition_id = global_stack.definition.getId() final_intent_categories = set() # type: Set[str] for extruder_stack in global_stack.extruderList: + if not extruder_stack.isEnabled: + continue nozzle_name = extruder_stack.variant.getMetaDataEntry("name") material_id = extruder_stack.material.getMetaDataEntry("base_file") final_intent_categories.update(self.intentCategories(current_definition_id, nozzle_name, material_id)) From fe8b7a48e6c4e7d4dc05d21f417a9968bef73cb3 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 15 Oct 2019 14:22:38 +0200 Subject: [PATCH 2/3] Fix QualityManagementModel update CURA-6883 --- cura/Machines/Models/QualityManagementModel.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/Machines/Models/QualityManagementModel.py b/cura/Machines/Models/QualityManagementModel.py index 1d30b1753e..d5a35d8eab 100644 --- a/cura/Machines/Models/QualityManagementModel.py +++ b/cura/Machines/Models/QualityManagementModel.py @@ -54,6 +54,10 @@ class QualityManagementModel(ListModel): self._extruder_manager = application.getExtruderManager() self._machine_manager.globalContainerChanged.connect(self._update) + self._machine_manager.activeQualityGroupChanged.connect(self._update) + self._machine_manager.activeStackChanged.connect(self._update) + self._machine_manager.extruderChanged.connect(self._update) + container_registry.containerAdded.connect(self._qualityChangesListChanged) container_registry.containerRemoved.connect(self._qualityChangesListChanged) container_registry.containerMetaDataChanged.connect(self._qualityChangesListChanged) From 845cab557317f5bc200c2b16e786634566839c3e Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Tue, 15 Oct 2019 14:37:37 +0200 Subject: [PATCH 3/3] Clarified comment for duplicating materials --- cura/Machines/Models/MaterialManagementModel.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/MaterialManagementModel.py b/cura/Machines/Models/MaterialManagementModel.py index a494e35c89..8a143f46b2 100644 --- a/cura/Machines/Models/MaterialManagementModel.py +++ b/cura/Machines/Models/MaterialManagementModel.py @@ -141,7 +141,8 @@ class MaterialManagementModel(QObject): new_container.getMetaData().update(new_metadata) new_containers.append(new_container) - # Optimization. Serving the same purpose as the postponeSignals() in removeMaterial() + # postpone the signals emitted when duplicating materials. This is easier on the event loop; changes the + # behavior to be like a transaction. Prevents concurrency issues. with postponeSignals(container_registry.containerAdded, compress=CompressTechnique.CompressPerParameterValue): for container_to_add in new_containers: container_to_add.setDirty(True)