mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-10 08:17:49 -06:00
Allow switching back to the "Custom" set
This commit is contained in:
parent
4c66c935af
commit
711d60e8c7
3 changed files with 30 additions and 4 deletions
|
@ -29,10 +29,12 @@ class SettingVisibilityPresetsModel(ListModel):
|
|||
|
||||
self._populate()
|
||||
|
||||
preferences = Preferences.getInstance()
|
||||
preferences.addPreference("cura/active_setting_visibility_preset", "custom")
|
||||
self._preferences = Preferences.getInstance()
|
||||
self._preferences.addPreference("cura/active_setting_visibility_preset", "custom") # Preference to store which preset is currently selected
|
||||
self._preferences.addPreference("cura/custom_visible_settings", "") # Preference that stores the "custom" set so it can always be restored (even after a restart)
|
||||
self._preferences.preferenceChanged.connect(self._onPreferencesChanged)
|
||||
|
||||
self._active_preset = Preferences.getInstance().getValue("cura/active_setting_visibility_preset")
|
||||
self._active_preset = self._preferences.getValue("cura/active_setting_visibility_preset")
|
||||
if self.find("id", self._active_preset) < 0:
|
||||
self._active_preset = "custom"
|
||||
|
||||
|
@ -90,7 +92,12 @@ class SettingVisibilityPresetsModel(ListModel):
|
|||
Logger.log("w", "Tried to set active preset to unknown id %s", preset_id)
|
||||
return
|
||||
|
||||
Preferences.getInstance().setValue("cura/active_setting_visibility_preset", preset_id);
|
||||
if preset_id == "custom" and self._active_preset == "custom":
|
||||
# Copy current visibility set to custom visibility set preference so it can be restored later
|
||||
visibility_string = self._preferences.getValue("general/visible_settings")
|
||||
self._preferences.setValue("cura/custom_visible_settings", visibility_string)
|
||||
|
||||
self._preferences.setValue("cura/active_setting_visibility_preset", preset_id)
|
||||
|
||||
self._active_preset = preset_id
|
||||
self.activePresetChanged.emit()
|
||||
|
@ -101,6 +108,18 @@ class SettingVisibilityPresetsModel(ListModel):
|
|||
def activePreset(self):
|
||||
return self._active_preset
|
||||
|
||||
def _onPreferencesChanged(self, name):
|
||||
if name != "general/visible_settings":
|
||||
return
|
||||
|
||||
if self._active_preset != "custom":
|
||||
return
|
||||
|
||||
# Copy current visibility set to custom visibility set preference so it can be restored later
|
||||
visibility_string = self._preferences.getValue("general/visible_settings")
|
||||
self._preferences.setValue("cura/custom_visible_settings", visibility_string)
|
||||
|
||||
|
||||
# Factory function, used by QML
|
||||
@staticmethod
|
||||
def createSettingVisibilityPresetsModel(engine, js_engine):
|
||||
|
|
|
@ -27,6 +27,8 @@ Menu
|
|||
onTriggered:
|
||||
{
|
||||
Cura.SettingVisibilityPresetsModel.setActivePreset("custom");
|
||||
// Restore custom set from preference
|
||||
UM.Preferences.setValue("general/visible_settings", UM.Preferences.getValue("cura/custom_visible_settings"));
|
||||
showSettingVisibilityProfile();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,6 +164,11 @@ UM.PreferencesPage
|
|||
UM.Preferences.setValue("general/visible_settings", Cura.SettingVisibilityPresetsModel.getItem(index - 1).settings.join(";"));
|
||||
// "Custom selection" entry is added in front, so index is off by 1
|
||||
}
|
||||
else
|
||||
{
|
||||
// Restore custom set from preference
|
||||
UM.Preferences.setValue("general/visible_settings", UM.Preferences.getValue("cura/custom_visible_settings"));
|
||||
}
|
||||
base.inhibitSwitchToCustom = false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue