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.
This commit is contained in:
Ghostkeeper 2019-08-28 16:54:41 +02:00
parent a7e5830762
commit b046ff6683
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276

View file

@ -12,6 +12,7 @@ from cura.Machines.ContainerTree import ContainerTree
from cura.Settings.cura_empty_instance_containers import empty_quality_changes_container from cura.Settings.cura_empty_instance_containers import empty_quality_changes_container
if TYPE_CHECKING: if TYPE_CHECKING:
from UM.Settings.Interfaces import ContainerInterface
from cura.Machines.QualityChangesGroup import QualityChangesGroup from cura.Machines.QualityChangesGroup import QualityChangesGroup
# #
@ -37,6 +38,9 @@ class QualityManagementModel(ListModel):
self._extruder_manager = application.getExtruderManager() self._extruder_manager = application.getExtruderManager()
self._machine_manager.globalContainerChanged.connect(self._update) 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() self._update()
@ -90,6 +94,14 @@ class QualityManagementModel(ListModel):
return new_name 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): def _update(self):
Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__))