use notify to update exportedSettingModel

This commit is contained in:
c.lamboo 2024-03-18 11:54:23 +01:00
parent 40bc08f482
commit a58cd69b39
3 changed files with 8 additions and 3 deletions

View file

@ -1,7 +1,7 @@
# Copyright (c) 2024 Ultimaker B.V. # Copyright (c) 2024 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from PyQt6.QtCore import Qt from PyQt6.QtCore import Qt, pyqtSignal
from UM.Logger import Logger from UM.Logger import Logger
from UM.Settings.SettingDefinition import SettingDefinition from UM.Settings.SettingDefinition import SettingDefinition
@ -22,6 +22,8 @@ class SpecificSettingsModel(ListModel):
self._i18n_catalog = None self._i18n_catalog = None
self._update() self._update()
modelChanged = pyqtSignal()
def addSettingsFromStack(self, stack, category, settings): def addSettingsFromStack(self, stack, category, settings):
for setting, value in settings.items(): for setting, value in settings.items():
@ -39,8 +41,10 @@ class SpecificSettingsModel(ListModel):
"label": stack.getProperty(setting, "label"), "label": stack.getProperty(setting, "label"),
"value": value "value": value
}) })
self.modelChanged.emit()
def _update(self): def _update(self):
Logger.debug(f"Updating {self.__class__.__name__}") Logger.debug(f"Updating {self.__class__.__name__}")
self.setItems([]) self.setItems([])
self.modelChanged.emit()
return return

View file

@ -77,6 +77,7 @@ class WorkspaceDialog(QObject):
self._is_compatible_machine = False self._is_compatible_machine = False
self._allow_create_machine = True self._allow_create_machine = True
self._exported_settings_model = SpecificSettingsModel() self._exported_settings_model = SpecificSettingsModel()
self._exported_settings_model.modelChanged.connect(self.exportedSettingModelChanged.emit)
self._current_machine_pos_index = 0 self._current_machine_pos_index = 0
self._is_ucp = False self._is_ucp = False
@ -104,6 +105,7 @@ class WorkspaceDialog(QObject):
missingPackagesChanged = pyqtSignal() missingPackagesChanged = pyqtSignal()
isCompatibleMachineChanged = pyqtSignal() isCompatibleMachineChanged = pyqtSignal()
isUcpChanged = pyqtSignal() isUcpChanged = pyqtSignal()
exportedSettingModelChanged = pyqtSignal()
@pyqtProperty(bool, notify = isPrinterGroupChanged) @pyqtProperty(bool, notify = isPrinterGroupChanged)
def isPrinterGroup(self) -> bool: def isPrinterGroup(self) -> bool:
@ -356,7 +358,7 @@ class WorkspaceDialog(QObject):
def allowCreateMachine(self): def allowCreateMachine(self):
return self._allow_create_machine return self._allow_create_machine
@pyqtProperty(QObject) @pyqtProperty(QObject, notify=exportedSettingModelChanged)
def exportedSettingModel(self): def exportedSettingModel(self):
return self._exported_settings_model return self._exported_settings_model

View file

@ -205,7 +205,6 @@ UM.Dialog
{ {
tableModel.clear() tableModel.clear()
tableModel.rows = modelRows tableModel.rows = modelRows
numberOfOverrides.rightLabelText = catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.exportedSettingModel.rowCount()).arg(manager.exportedSettingModel.rowCount())
} }
} }