mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-23 22:54:01 -06:00
Fix: Per mesh setting combobox did not save selected option
CURA-4760
This commit is contained in:
parent
0722465fb9
commit
117c467829
2 changed files with 11 additions and 0 deletions
|
@ -2,6 +2,7 @@
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal
|
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal
|
||||||
|
from UM.FlameProfiler import pyqtSlot
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry
|
from UM.Settings.ContainerRegistry import ContainerRegistry
|
||||||
|
@ -21,6 +22,7 @@ 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
|
||||||
|
|
||||||
def setSelectedObjectId(self, id):
|
def setSelectedObjectId(self, id):
|
||||||
if id != self._selected_object_id:
|
if id != self._selected_object_id:
|
||||||
|
@ -36,6 +38,10 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
|
||||||
def selectedObjectId(self):
|
def selectedObjectId(self):
|
||||||
return self._selected_object_id
|
return self._selected_object_id
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def setSkipSetting(self, setting_name):
|
||||||
|
self._skip_setting = setting_name
|
||||||
|
|
||||||
def setVisible(self, visible):
|
def setVisible(self, visible):
|
||||||
if not self._node:
|
if not self._node:
|
||||||
return
|
return
|
||||||
|
@ -50,6 +56,9 @@ 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
|
||||||
|
if self._skip_setting is not None and self._skip_setting == instance.definition.key:
|
||||||
|
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)
|
||||||
visibility_changed = True
|
visibility_changed = True
|
||||||
|
|
|
@ -324,6 +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
|
||||||
|
contents.model.visibilityHandler.setSkipSetting(meshTypeSelection.model.get(meshTypeSelection.currentIndex).type)
|
||||||
listview.model.forceUpdate()
|
listview.model.forceUpdate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue