Refactor skip reset setting

CURA-4760
This commit is contained in:
Lipu Fei 2018-01-09 17:34:53 +01:00
parent 93599de642
commit 30870c5ef2
2 changed files with 8 additions and 6 deletions

View file

@ -22,7 +22,9 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
self._selected_object_id = None self._selected_object_id = None
self._node = None self._node = None
self._stack = 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): def setSelectedObjectId(self, id):
if id != self._selected_object_id: if id != self._selected_object_id:
@ -39,8 +41,8 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
return self._selected_object_id return self._selected_object_id
@pyqtSlot(str) @pyqtSlot(str)
def setSkipSetting(self, setting_name): def addSkipResetSetting(self, setting_name):
self._skip_setting = setting_name self._skip_reset_setting_set.add(setting_name)
def setVisible(self, visible): def setVisible(self, visible):
if not self._node: if not self._node:
@ -57,7 +59,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
# Remove all instances that are not in visibility list # Remove all instances that are not in visibility list
for instance in all_instances: for instance in all_instances:
# exceptionally skip setting # 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 continue
if instance.definition.key not in visible: if instance.definition.key not in visible:
settings.removeInstance(instance.definition.key) settings.removeInstance(instance.definition.key)

View file

@ -324,8 +324,8 @@ Item {
// force updating the model to sync it with addedSettingsModel // force updating the model to sync it with addedSettingsModel
if(visible) if(visible)
{ {
// Set skip setting, it will prevent from restting selected mesh_type // Set skip setting, it will prevent from resetting selected mesh_type
contents.model.visibilityHandler.setSkipSetting(meshTypeSelection.model.get(meshTypeSelection.currentIndex).type) contents.model.visibilityHandler.addSkipResetSetting(meshTypeSelection.model.get(meshTypeSelection.currentIndex).type)
listview.model.forceUpdate() listview.model.forceUpdate()
} }
} }