mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-14 18:27:51 -06:00
Ensure that all updates from settingInheritance are on a timer
This commit is contained in:
parent
9dccbcdd8e
commit
be0e1f7284
1 changed files with 7 additions and 6 deletions
|
@ -28,20 +28,21 @@ if TYPE_CHECKING:
|
||||||
class SettingInheritanceManager(QObject):
|
class SettingInheritanceManager(QObject):
|
||||||
def __init__(self, parent = None) -> None:
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
|
|
||||||
self._global_container_stack = None # type: Optional[ContainerStack]
|
self._global_container_stack = None # type: Optional[ContainerStack]
|
||||||
self._settings_with_inheritance_warning = [] # type: List[str]
|
self._settings_with_inheritance_warning = [] # type: List[str]
|
||||||
self._active_container_stack = None # type: Optional[ExtruderStack]
|
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 = QTimer()
|
||||||
self._update_timer.setInterval(500)
|
self._update_timer.setInterval(500)
|
||||||
self._update_timer.setSingleShot(True)
|
self._update_timer.setSingleShot(True)
|
||||||
self._update_timer.timeout.connect(self._update)
|
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()
|
settingsWithIntheritanceChanged = pyqtSignal()
|
||||||
|
|
||||||
## Get the keys of all children settings with an override.
|
## 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:
|
if self._active_container_stack is not None:
|
||||||
self._active_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
self._active_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
||||||
self._active_container_stack.containersChanged.connect(self._onContainersChanged)
|
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:
|
def _onPropertyChanged(self, key: str, property_name: str) -> None:
|
||||||
if (property_name == "value" or property_name == "enabled") and self._global_container_stack:
|
if (property_name == "value" or property_name == "enabled") and self._global_container_stack:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue