From be0e1f7284401b1e85b6ae884bce83784b041304 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 1 Nov 2019 15:14:04 +0100 Subject: [PATCH] Ensure that all updates from settingInheritance are on a timer --- cura/Settings/SettingInheritanceManager.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 8be0813d0a..7db579bf3f 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -28,20 +28,21 @@ if TYPE_CHECKING: class SettingInheritanceManager(QObject): def __init__(self, parent = None) -> None: super().__init__(parent) - Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) + self._global_container_stack = None # type: Optional[ContainerStack] self._settings_with_inheritance_warning = [] # type: List[str] self._active_container_stack = None # type: Optional[ExtruderStack] - self._onGlobalContainerChanged() - - ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged) - self._onActiveExtruderChanged() self._update_timer = QTimer() self._update_timer.setInterval(500) self._update_timer.setSingleShot(True) self._update_timer.timeout.connect(self._update) + Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) + ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged) + self._onGlobalContainerChanged() + self._onActiveExtruderChanged() + settingsWithIntheritanceChanged = pyqtSignal() ## Get the keys of all children settings with an override. @@ -106,7 +107,7 @@ class SettingInheritanceManager(QObject): if self._active_container_stack is not None: self._active_container_stack.propertyChanged.connect(self._onPropertyChanged) self._active_container_stack.containersChanged.connect(self._onContainersChanged) - self._update() # Ensure that the settings_with_inheritance_warning list is populated. + self._update_timer.start() # Ensure that the settings_with_inheritance_warning list is populated. def _onPropertyChanged(self, key: str, property_name: str) -> None: if (property_name == "value" or property_name == "enabled") and self._global_container_stack: