From a58cd69b394d4f81d94644b1d2cb2ecea9b6d97d Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 18 Mar 2024 11:54:23 +0100 Subject: [PATCH] use notify to update `exportedSettingModel` --- plugins/3MFReader/SpecificSettingsModel.py | 6 +++++- plugins/3MFReader/WorkspaceDialog.py | 4 +++- plugins/3MFReader/WorkspaceDialog.qml | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/3MFReader/SpecificSettingsModel.py b/plugins/3MFReader/SpecificSettingsModel.py index ac8e7af3ef..ec4a68e337 100644 --- a/plugins/3MFReader/SpecificSettingsModel.py +++ b/plugins/3MFReader/SpecificSettingsModel.py @@ -1,7 +1,7 @@ # Copyright (c) 2024 Ultimaker B.V. # 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.Settings.SettingDefinition import SettingDefinition @@ -22,6 +22,8 @@ class SpecificSettingsModel(ListModel): self._i18n_catalog = None self._update() + modelChanged = pyqtSignal() + def addSettingsFromStack(self, stack, category, settings): for setting, value in settings.items(): @@ -39,8 +41,10 @@ class SpecificSettingsModel(ListModel): "label": stack.getProperty(setting, "label"), "value": value }) + self.modelChanged.emit() def _update(self): Logger.debug(f"Updating {self.__class__.__name__}") self.setItems([]) + self.modelChanged.emit() return diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 4b9f1eaa6f..13851c041d 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -77,6 +77,7 @@ class WorkspaceDialog(QObject): self._is_compatible_machine = False self._allow_create_machine = True self._exported_settings_model = SpecificSettingsModel() + self._exported_settings_model.modelChanged.connect(self.exportedSettingModelChanged.emit) self._current_machine_pos_index = 0 self._is_ucp = False @@ -104,6 +105,7 @@ class WorkspaceDialog(QObject): missingPackagesChanged = pyqtSignal() isCompatibleMachineChanged = pyqtSignal() isUcpChanged = pyqtSignal() + exportedSettingModelChanged = pyqtSignal() @pyqtProperty(bool, notify = isPrinterGroupChanged) def isPrinterGroup(self) -> bool: @@ -356,7 +358,7 @@ class WorkspaceDialog(QObject): def allowCreateMachine(self): return self._allow_create_machine - @pyqtProperty(QObject) + @pyqtProperty(QObject, notify=exportedSettingModelChanged) def exportedSettingModel(self): return self._exported_settings_model diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index f0f74b60b7..95dce875c1 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -205,7 +205,6 @@ UM.Dialog { tableModel.clear() tableModel.rows = modelRows - numberOfOverrides.rightLabelText = catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.exportedSettingModel.rowCount()).arg(manager.exportedSettingModel.rowCount()) } }