Page MenuHome

Tooltip urgently needed for Preferences editor button to avoid user data loss with factory-defaults.
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 425.25

Blender Version
Broken: version: 2.80 (sub 74), branch: master (modified), commit date: 2019-07-10 15:13, hash: rB3fe0c32fae20

Short description of error
The button that shows in the Preferences editor when factory-defaults are in effect is confusing and needs a tooltip to explain its danger to users. As it stands, if a user presses the button they will lose their existing configuration unless they take un-obvious actions to prevent it.

Exact steps for others to reproduce the error
Start Blender with --factory-startup OR use File->Defaults->Load Factory Settings OR use the Load Factory Settings option from the Preferences editor hamburger menu.
The lower left corner of the Preferences Editor now changes to:


We see a button, with a check-box, and "Skip Auto-Save" which has the not terribly helpful tooltip "Toggle a context value".

If the user presses this button out of confusion or for whatever reason, it simply vanishes and now the default auto-save is re-enabled and unless the user takes the action of going into the hamburger menu and disabling auto-save, or re-loads default settings again, they will have their configuration overwritten when they exit.

The "Skip Auto-Save" button is a double-negative action (you click "Skip Auto-Save" in order to Not-Skip Auto-Save), includes a checkbox which is not actually a checkbox and cannot be toggled back on in any way, etc.

For 2.80, can we possibly slip in a tooltip specifically for the "[X] Skip Auto-Save" button that tells the user what the effect of pushing it will be? Something verbose and explicit like:

Because the factory default settings have been loaded, auto-saving of preferences at exit is temporarily disabled to avoid overwriting your previous settings. This button will remove that protection. WARNING: this may cause overwriting of your previously saved configuration with the values currently in effect unless you disable Auto Save Preferences in the menu to the left before exiting Blender.

Event Timeline

Philipp Oeser (lichtwerk) triaged this task as Confirmed, Medium priority.

@Campbell Barton (campbellbarton) : if you are looking into T66674 anyways [which is high prio], could you consider this?
This is a sensitive thing and has had me loose preferences as well (and only through that loss I learned how to do it right)
Technically it is not a bug, but... will let you decide (will confirm though for the time being if you dont mind...)

Brecht Van Lommel (brecht) raised the priority of this task from Confirmed, Medium to Confirmed, High.

Artists at the studio here were also confused by this and losing preferences, we need a better solution.

I second this (I was the last person at Blender HQ to complain about this). I had to take screenshots for the release, so I launched Blender with the factory defaults. I saw the "skip autosave" in the preferences so I thought you HAVE to press it in order to skip the auto save. Later I was told that it's actually a checkbox disguised as a button. I spent the next 30 minutes recovering my user prefs...

Apart from the fact that I am not a huge fan of the autosave myself (*when* does it save exactly?) I would suggest to turn it into a persistent checkbox that looks like all the other settings checkboxes in Blender.

This is very problematic. Most new users don't even grasp the concept of preferences autosaving being something optional, since in almost all other softwares, preferences are always auto-saved. So many people will think that "Skip auto-save" refers to skipping auto-saving of the .blend files for backup and recovery purposes, and they will most likely proceed to uncheck that checkbox. There's absolutely nothing that implies this UI element is related to preferences, not auto-save feature of autosaving .blend files periodically.

A simple solution would be renaming to "Auto-save preferences", making it a true, regular checkbox, and inverting the action, so that it's ON most of the time, and automatically switches OFF when factory defaults are loaded.

And this checkbox would then be persistent, always visible, always informing users of the current state of preferences autosaving. No longer hidden inside the hamburger menu.

A simple improvement might be to remove the internal and confusing "don't save because factory defaults are active" flag, and instead, simply have a line of code after the Load Factory Settings that explicitly turns off Auto Save Preferences.

Then what you get is that auto-save always has to be turned on explicitly if you want it after loading defaults, and what the user is presented with is the Save Preferences button which will do exactly what it says.

It also requires a learning process, but it's hopefully more likely that your preferences don't get stomped than that they do.

As Gavin mentioned, when loading factory settings just turn off the auto-saving of preferences.

But other smaller related issues:

The option to load factory settings is described three ways. The button says "Load Factory Settings", the tooltip says "Load Default Preferences", while the confirmation says "Load Factory Preferences"

"Revert to Saved" is a too terse compared to the other options. Above it is "load factory settings", while below is "save current state". So are we reverting to last saved "state" or last saved "settings"? Neither? Both? It should be explicit.

The menu item "Auto-Save Preferences" is badly worded. It could easily be mistaken to mean the "preferences of the "Auto-Save" feature, rather than "I am the current state of the auto-saving of preferences". Restated, it could be that "Auto-save Preferences" is a place like "Viewport Preferences". "Automatically Save Preferences" is probably better.

The "on exit" is confusing in the tooltip of "Save modified preferences on exit". The exit of what? The program? Just this window? The "modified" text of it also adds confusion and should probably be removed or changed. In most cases people don't care if preferences are saved when unmodified. Do we have to care in this case? If not it should be removed, if yes then it should be made explicit why that is the case. "Automatically Save Preferences on program exit" is probably better.

The "hamburger" icon is obscure down there. I'd prefer a button with TEXT, but even a "gear" icon would be more appropriate.

A simple improvement might be to remove the internal and confusing "don't save because factory defaults are active" flag, and instead, simply have a line of code after the Load Factory Settings that explicitly turns off Auto Save Preferences.
Then what you get is that auto-save always has to be turned on explicitly if you want it after loading defaults, and what the user is presented with is the Save Preferences button which will do exactly what it says.

The issue with this is auto-save *is* enabled by default, so if we make factory-settings different from Blender's default startup configuration, it's quite confusing.


As Gavin mentioned, when loading factory settings just turn off the auto-saving of preferences.

We currently do this, there is just the ability to disable the override.

If we do what you're suggesting, a user may reset to defaults, make time consuming changes to the preferences (keymap, theme etc), then exit - expecting the preferences to auto-save, but loose all their changes.

This option could be removed (they can just save the preferences manually), however in this case, users should be made aware that their changes wont be saved since there will be a check-box with auto-save enabled, it's reasonable they would expect that option be used.

@Harley Acheson (harley) good points re: state/settings/preferences, naming isn't great, we could change this, eg: P1034.

Although this raises the question - why not just call this menu "Preferences", then items inside can be "Save/Revert/Auto-Save".

@William Reynish (billreynish) if you think this can use further changes, a design task could be created.

Apart from the fact that I am not a huge fan of the autosave myself (*when* does it save exactly?)

When any preference is edited (although keymap editing currently isn't supported).

I would suggest to turn it into a persistent checkbox that looks like all the other settings checkboxes in Blender.

Auto-Save is a persistent checkbox in the "hamburger" menu, I think the issue is that the ability to re-enable auto-save after loading factory settings is quite confusing.

D5236 changes behavior so loading factory settings never auto-saves afterwards, adding text that notifies the users of this.

why not just call this menu "Preferences", then items inside can be "Save/Revert/Auto-Save".

I'm assuming that it would look confusing to have an active element called "Preferences" inside a window called "Preferences", but maybe it wouldn't be so bad in practice.

a design task could be created.

I'm always on board for design tasks! ;-)

In my ideal world we would directly expose (just) a "save" button and an "Auto-Save" checkmark. This would require changing the name of the "Save & Load" section to avoid confusion:

And the idea of loading "factory settings" and "revert to saved" would both change. Instead we'd regard these two things as just two in a group of "Preferences Sets". Those sets could then include multiple items. A set created for new users with new theme and left-click select, one for old-school users with a different theme and right-select. Maybe one for people migrating from specific software. Maybe a "Blender 101" version designed to be easier and more discoverable (like having the toolbars pulled out to expose the names). We could have one for people with vision difficulties that not only selects a high-contrast theme but also increases resolution scale, line width, etc. And these would all be selected in the top section of Prefs, so it would greet users right away as the "Basic" settings, versus all the "Advanced" settings below.

Together, I can't any issues with "auto-save". Although not shown correctly in my mockup (LOL) we would enable and disable the "save" button with the setting of the auto-save checkmark. So it would all be very obvious what the current state is when you load or revert to a different preference set and that setting changes.

If we do what you're suggesting, a user may reset to defaults, make time consuming changes to the preferences (keymap, theme etc), then exit - expecting the preferences to auto-save, but lose all their changes.

I agree that there will be the risk of either losing all your NEW changes or losing all your OLD changes until you understand how it works. If we have to make a choice, I think it's less bad to potentially lose the hour of work you *just did* because it's fresh in your mind and you'll be irritated but hopefully learn a valuable lesson as you do it all again :) If we cause you to lose all your OLD settings, that may be accumulated config and keymap changes done over an extended time which the user may not even remember and which thus will be much harder to recover from.

I think the change Campbell just made is a good step in the right direction. The checkbox is still a little confusing and I would personally switch the sense and instead of showing "[X] Skip Auto-Save" I would make it "[ ] Enable Auto-Save" and have the tooltip make it clear that this applies only to the current running instance of Blender and is showing because factory settings are in effect.

@Campbell Barton (campbellbarton) : Sorry for the noise, but have to make a comment about the new tooltip text of the "skip" button. It is confusing in a number of different ways. It now says:

"The current session has "Factory Preferences" loaded which disables automatically saving. Disable this to auto-save the preferences."

The subject to which the "which" refers can only be read as the "Factory Preferences". So you learn from the first sentence that the loading of "Factory Preferences" disables automatically saving. And that is clearly wrong and not what you intended.

And what is actually happening cannot be properly described as "disabling" automatic saving. We are just temporarily ignoring that setting, not disabling it.

Something like the following might be clearer and closer to your intention:

"The automatic saving of preferences has been temporarily disabled for this session. Clear this checkbox to re-enable it now"

This checkbox has now been removed rB4a5e046c923f4858981c429dd710cdc38ac83ece.

Unless they're small adjustments, further suggestions should be made in a design task.