diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index c7e4deaaa7..3e1df1c7b8 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -22,7 +22,9 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand self._selected_object_id = None self._node = None self._stack = None - self._skip_setting = None + + # this is a set of settings that will be skipped if the user chooses to reset. + self._skip_reset_setting_set = set() def setSelectedObjectId(self, id): if id != self._selected_object_id: @@ -39,8 +41,8 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand return self._selected_object_id @pyqtSlot(str) - def setSkipSetting(self, setting_name): - self._skip_setting = setting_name + def addSkipResetSetting(self, setting_name): + self._skip_reset_setting_set.add(setting_name) def setVisible(self, visible): if not self._node: @@ -57,7 +59,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand # Remove all instances that are not in visibility list for instance in all_instances: # exceptionally skip setting - if self._skip_setting is not None and self._skip_setting == instance.definition.key: + if instance.definition.key in self._skip_reset_setting_set: continue if instance.definition.key not in visible: settings.removeInstance(instance.definition.key) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 2b7b6cd541..10760b9039 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -324,8 +324,8 @@ Item { // force updating the model to sync it with addedSettingsModel if(visible) { - // Set skip setting, it will prevent from restting selected mesh_type - contents.model.visibilityHandler.setSkipSetting(meshTypeSelection.model.get(meshTypeSelection.currentIndex).type) + // Set skip setting, it will prevent from resetting selected mesh_type + contents.model.visibilityHandler.addSkipResetSetting(meshTypeSelection.model.get(meshTypeSelection.currentIndex).type) listview.model.forceUpdate() } }