diff --git a/plugins/3MFReader/SpecificSettingsModel.py b/plugins/3MFReader/SpecificSettingsModel.py index d541e50b7f..1a4e02b1b2 100644 --- a/plugins/3MFReader/SpecificSettingsModel.py +++ b/plugins/3MFReader/SpecificSettingsModel.py @@ -3,6 +3,7 @@ from PyQt6.QtCore import Qt +from UM.Logger import Logger from UM.Settings.SettingDefinition import SettingDefinition from UM.Qt.ListModel import ListModel @@ -19,6 +20,8 @@ class SpecificSettingsModel(ListModel): self.addRoleName(self.ValueRole, "value") self._i18n_catalog = None + self._update() + def addSettingsFromStack(self, stack, category, settings): for setting, value in settings.items(): @@ -36,3 +39,8 @@ class SpecificSettingsModel(ListModel): "label": stack.getProperty(setting, "label"), "value": value }) + + def _update(self): + Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) + self.setItems([]) + return diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 13e2650971..6a6642331b 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -332,7 +332,7 @@ class WorkspaceDialog(QObject): def allowCreateMachine(self): return self._allow_create_machine - @pyqtProperty(QObject, constant = True) + @pyqtProperty(QObject) def exportedSettingModel(self): return self._exported_settings_model diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 58d2cfaa49..700f15ab5b 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -216,7 +216,6 @@ UM.Dialog buttonText: tableViewSpecificSettings.shouldBeVisible ? catalog.i18nc("@action:button", "Hide settings") : catalog.i18nc("@action:button", "Show settings") onButtonClicked: tableViewSpecificSettings.shouldBeVisible = !tableViewSpecificSettings.shouldBeVisible } - Cura.TableView { id: tableViewSpecificSettings @@ -239,6 +238,13 @@ UM.Dialog rows: manager.exportedSettingModel.items } } + + property var modelRows: manager.exportedSettingModel.items + onModelRowsChanged: + { + tableModel.clear() + tableModel.rows = modelRows + } } comboboxVisible: manager.qualityChangesConflict