From 5196ea695cca39aab53e0e23c707dfd7bb819760 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 23 Mar 2017 00:11:44 +0100 Subject: [PATCH] Add a notify signal to all container properties in GlobalStack Contributes to CURA-3497 --- cura/Settings/GlobalStack.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index e1c24cf9e2..eb67c12499 100644 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -22,39 +22,43 @@ class GlobalStack(ContainerStack): self._extruders = [] - @pyqtProperty(InstanceContainer) + self.containersChanged.connect(self._onContainersChanged) + + pyqtContainersChanged = pyqtSignal() + + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def userChanges(self) -> InstanceContainer: return self._containers[_ContainerIndexes.UserChanges] def setQualtiyChanges(self, new_quality_changes: InstanceContainer) -> None: self.replaceContainer(_ContainerIndexes.QualityChanges, new_quality_changes) - @pyqtProperty(InstanceContainer) + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def qualityChanges(self) -> InstanceContainer: return self._containers[_ContainerIndexes.QualityChanges] def setQuality(self, new_quality: InstanceContainer) -> None: self.replaceContainer(_ContainerIndexes.Quality, new_quality) - @pyqtProperty(InstanceContainer) + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def quality(self) -> InstanceContainer: return self._containers[_ContainerIndexes.Quality] def setMaterial(self, new_material: InstanceContainer) -> None: self.replaceContainer(_ContainerIndexes.Material, new_material) - @pyqtProperty(InstanceContainer) + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def material(self) -> InstanceContainer: return self._containers[_ContainerIndexes.Material] def setVariant(self, new_variant: InstanceContainer) -> None: self.replaceContainer(_ContainerIndexes.Variant, new_variant) - @pyqtProperty(InstanceContainer) + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def variant(self) -> InstanceContainer: return self._containers[_ContainerIndexes.Variant] - @pyqtProperty(InstanceContainer) + @pyqtProperty(InstanceContainer, notify = pyqtContainersChanged) def definitionChanges(self) -> InstanceContainer: return self._containers[_ContainerIndexes.DefinitionChanges] @@ -165,6 +169,8 @@ class GlobalStack(ContainerStack): self._containers = new_containers + def _onContainersChanged(self, container): + self.pyqtContainersChanged.emit() ## private: global_stack_mime = MimeType(