From b046ff6683ab58fdd7f77e46c6a30675c3bac88a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 28 Aug 2019 16:54:41 +0200 Subject: [PATCH] Fix updating quality management page profile list When a custom profile gets added, deleted or renamed we need to update our model. Contributes to issue CURA-6600. --- cura/Machines/Models/QualityManagementModel.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cura/Machines/Models/QualityManagementModel.py b/cura/Machines/Models/QualityManagementModel.py index 4807471615..fef7ded30c 100644 --- a/cura/Machines/Models/QualityManagementModel.py +++ b/cura/Machines/Models/QualityManagementModel.py @@ -12,6 +12,7 @@ from cura.Machines.ContainerTree import ContainerTree from cura.Settings.cura_empty_instance_containers import empty_quality_changes_container if TYPE_CHECKING: + from UM.Settings.Interfaces import ContainerInterface from cura.Machines.QualityChangesGroup import QualityChangesGroup # @@ -37,6 +38,9 @@ class QualityManagementModel(ListModel): self._extruder_manager = application.getExtruderManager() self._machine_manager.globalContainerChanged.connect(self._update) + self._container_registry.containerAdded.connect(self._qualityChangesListChanged) + self._container_registry.containerRemoved.connect(self._qualityChangesListChanged) + self._container_registry.containerMetaDataChanged.connect(self._qualityChangesListChanged) self._update() @@ -90,6 +94,14 @@ class QualityManagementModel(ListModel): return new_name + ## Triggered when any container changed. + # + # This filters the updates to the container manager: When it applies to + # the list of quality changes, we need to update our list. + def _qualityChangesListChanged(self, container: "ContainerInterface") -> None: + if container.getMetaDataEntry("type") == "quality_changes": + self._update() + def _update(self): Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__))