Tooltip urgently needed for Preferences editor button to avoid user data loss with factory-defaults. #66675

Closed
opened 2019-07-10 21:25:22 +02:00 by Gavin Scott · 26 comments

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: 3fe0c32fae

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:
image.png
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.

**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: `3fe0c32fae` **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: ![image.png](https://archive.blender.org/developer/F7584484/image.png) 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.
Author

Added subscriber: @GavinScott

Added subscriber: @GavinScott
Member

Added subscribers: @ideasman42, @lichtwerk

Added subscribers: @ideasman42, @lichtwerk
Campbell Barton was assigned by Philipp Oeser 2019-07-11 10:38:01 +02:00
Member

@ideasman42 : if you are looking into studio/blender-studio#66674 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...)

@ideasman42 : if you are looking into studio/blender-studio#66674 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...)

Added subscriber: @brecht

Added subscriber: @brecht

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

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

Added subscriber: @WilliamReynish

Added subscriber: @WilliamReynish

CC @billreynish.

CC @billreynish.
Member

Added subscriber: @eyecandy

Added subscriber: @eyecandy
Member

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.

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.
Contributor

Added subscriber: @Rawalanche

Added subscriber: @Rawalanche
Contributor

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.

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.
Author

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.

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.
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

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.

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.

> 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.

This issue was referenced by 1499994557

This issue was referenced by 14999945573428c0cb9ae65651d9c3587716105a

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

@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".

@WilliamReynish if you think this can use further changes, a design task could be created.

@Harley good points re: state/settings/preferences, naming isn't great, we could change this, eg: [P1034](https://archive.blender.org/developer/P1034.txt). Although this raises the question - why not just call this menu "Preferences", then items inside can be "Save/Revert/Auto-Save". @WilliamReynish if you think this can use further changes, a design task could be created.

In #66675#718217, @eyecandy wrote:
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.

> In #66675#718217, @eyecandy wrote: > 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](https://archive.blender.org/developer/D5236) changes behavior so loading factory settings never auto-saves afterwards, adding text that notifies the users of this.
Member

In #66675#718772, @ideasman42 wrote:
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:

SavePrefs.png

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.

PrefsBasic.png

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.

> In #66675#718772, @ideasman42 wrote: > 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: ![SavePrefs.png](https://archive.blender.org/developer/F7603222/SavePrefs.png) 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. ![PrefsBasic.png](https://archive.blender.org/developer/F7603310/PrefsBasic.png) 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.
Member

Removed subscriber: @eyecandy

Removed subscriber: @eyecandy
Author

In #66675#718711, @ideasman42 wrote:
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.

> In #66675#718711, @ideasman42 wrote: > 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.
Member

@ideasman42 : 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"

@ideasman42 : 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"

Added subscriber: @ErickNyanduKabongo

Added subscriber: @ErickNyanduKabongo

In BA there is a good example of what put as default please consider https://blenderartists.org/t/newbie-question/1169293

In BA there is a good example of what put as default please consider https://blenderartists.org/t/newbie-question/1169293

This checkbox has now been removed 4a5e046c92.

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

This checkbox has now been removed 4a5e046c92. Unless they're small adjustments, further suggestions should be made in a design task.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
9 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#66675
No description provided.