Page MenuHome

Improve communication of auto-save behavior by adding dialog box to "Load Factory Preferences/Settings"
Open, Confirmed, LowPublic

Tokens
"Love" token, awarded by bnzs."Like" token, awarded by amonpaike."Like" token, awarded by rjg."Like" token, awarded by sybren."Like" token, awarded by JulienKaspar.
Assigned To
None
Authored By

Description

Adding this task based on a discussion about improving usability to auto-save preferences when loading factory settings.

Currently when loading factory settings, the preferences don't auto-save, even though loading the factory settings enables the auto-save option.

The rationale here is that we want to allow users to temporarily load factory settings without it overwriting their own preferences.

In this case explicitly saving needs to be done to overwrite their preferences.

This task is not to re-open the design discussion, for some context on the topic see other discussions.

For reference, discussion on this topic:

  • D4863 - Preferences UI patch for Save/Revert/Reset
  • D5236 - Remove option for disabling the override when factory settings are loaded
  • T66675 - Tooltip urgently needed for Preferences editor button to avoid user data loss with factory-defaults.
  • rB4a5e046c923f4858981c429dd710cdc38ac83ece UI: remove button to enable auto-save after load factory preferences

Based on discussion with @Julien Kaspar (JulienKaspar), @Sybren A. Stüvel (sybren) & @William Reynish (billreynish) - we agree the current logic isn't well communicated to the user,
since loading factory settings puts Blender in a state where auto-save is checked but ignored.

This could be mitigated using a dialog which lets the user know what happens when loading factory settings.

Suggested text:

Loading factory preferences won't automatically save your preferences on exit.
To overwrite your current preferences you must manually save the preferences.

Details

Type
To Do

Event Timeline

Campbell Barton (campbellbarton) lowered the priority of this task from Needs Triage by Developer to Confirmed, Low.Aug 14 2019, 3:37 PM
  1. Remove "skip_save_on_exit", this is very confusing when the Auto Save option is enabled, but the preferences are not saved automatically. Once the factory settings have been loaded, just explicitly turn off the Auto Save option.
  1. When loading factory settings, display the "Auto-Save" or "Disable Auto-Save (don't save preferences on exit)" checkbox in the confirmation dialog, so the user can directly see what is happening and what settings he has.

  1. Display the "Auto-Save" checkbox in the Preferences so that the user can clearly see that autosave is enabled.

@Yevgeny Makarov (jenkm) @Campbell Barton (campbellbarton) I think this one could help as well. Since any save option is just kinda missing when auto-save is enabled. It's all hidden in the popup otherwise.

  1. Display the "Auto-Save" checkbox in the Preferences so that the user can clearly see that autosave is enabled.

Other than that I think the dialogue is great.

@Yevgeny Makarov (jenkm) Your proposal looks nice, but it's not complete. What would be shown when Auto-Save is turned off by the user? Do you show the checkbox and the save button at the same time? What if the user wants to reset to factory settings, then turn off auto-save, then save the new preferences, what would that look like?

It's the same as it is now, but shows the checkbox instead of the empty space.

By default, Auto Save is enabled:

Auto Save is turned off by the user:

change

if prefs.use_preferences_save and (not bpy.app.use_userpref_skip_save_on_exit):
    pass
else:

to

if prefs.use_preferences_save:
    row.prop(prefs, "use_preferences_save", text="Auto-Save Preferences")
else:

line 45, space_userpref.py

And you need to rename the "Auto Save Temporary Files", "Recover > Auto Save…" to "Auto Backup", so as not to confuse.


Oh, and another thing, "Load Factory Settings" vs "Load Factory Preferences".
The difference is only visible when you see them next to each other.

When you see "Load Factory Settings" in the menu, you don't remember that in the Preferences,
the option is called "Load Factory Preferences" and you think it's the same function.

Auto Save is turned off by the user:

This means they won't be able to turn it on again.

This means they won't be able to turn it on again.

Yes, just like it is now.

Alternatively, it could just be a "Auto Save enabled" label, not a checkbox.
This is only to allow the user to clearly see that the Auto Save feature is enabled.

This means they won't be able to turn it on again.

Yes, just like it is now.

No, that's not how it is now. It's a checkbox that's always available:

@Sybren A. Stüvel (sybren) It's all here, if you mean the menu, I'm not suggesting remove anything, just add a checkbox (or label), see my comment above T68649#753568.

I think having a checkbox that disappears when you un-check it is a bad idea. We've had that before, and it was horribly confusing.

Diff: P1070


Mockup of the dialog box:

I'd rather we not use exclamation marks like that - and since most apps always auto-save preferences, there's no need to draw that much attention to the fact that Blender works the same.

I do like the idea to expose the "Autosave = On" as a checkmark when it's enabled.

and since most apps always auto-save preferences, there's no need to draw that much attention to the fact that Blender works the same.

I agree but but Blender didn't work like that so far. It's a new concept for Blender users so it makes sense to highlight it a bit more. Not necessarily shout it out in the interface but at least showing it prominently when it's enabled instead of always hiding it.

It's the same as it is now, but shows the checkbox instead of the empty space.
By default, Auto Save is enabled:


Auto Save is turned off by the user:

most apps always auto-save preferences, there's no need to draw that much attention

These applications are not able to disable autosave, so the user always knows that autosave will take place.

In Blender autosave is an option and as it is important it should be visible.

Or this option (to disable autosave) should not exist as in other applications. In order not to confuse users.