Lack of file overwrite prompt can lead to data loss

Creating proper topic for this issue. Attaching copy of the posts from the other thread:

3 Likes

As others already pointed out, confirmation dialogs arenā€™t without problems either. Not just that they are annoying, their biggest issue is that users have the habit of ignoring them (because they are often just annoying and donā€™t help much). Well, at least we can blame it on users then, hah! But thatā€™s still not good design in my opinion.

What we could do is move overridden files to the trash, rather than just permanently overriding them. There could still be a confirmation dialog, explaining that the file will be moved to the trash. Plus it could have the option to permanently delete/override the file instead.


Note that for unsaved changes when closing Blender, the user habits with the confirmation dialog are not so much of an issue. Blender has auto-saving and Recover Last Session (for which we always store the current file on exit), which help preventing data-loss.

2 Likes

Why is there always insistence on doing it the Blender way? Every single other piece of software out there uses confirmation dialog. In the case of double click, having a prompt appears is sufficient warning to put userā€™s muscle memory on hold and realize thereā€™s something wrong.

Moving it to trash is very unique. Why do that if thereā€™s already sufficient standard that literally all other mainstream software packages use? Overwriting files is something that doesnā€™t happen nearly often enough to make the confirmation dialog annoying.

Regarding the recover last session. Throughout my 5 year long usage of Blender, it has failed to help me even once. Itā€™s definitely not a solution to this issue.

I challenge you to go through every single piece of software which can save something on the computer you are on right now, and see if it has overwrite confirmation dialog. Be it VSCode, Chrome, Text editor, Image editor, anythingā€¦ Once you find out that Blender is really an outlier here, ask yourself it itā€™s really appropriate to be different just for the sake of being different. If you have been able to not find them annoying in all those other pieces of software, what makes you think it would suddenly become annoying in Blender?

The answer to that is that overwriting files using Save As dialog is not that frequent operation. Itā€™s relatively uncommon, but also very dangerous. So on those rare occasions it is actually intended to be done, thereā€™s no harm in doing it with one additional level of certainty, as it can not be undone. A level which would prevent user from doing it accidentally.

Following this annoying confirmation dialog logic. Why does Blender still have a pop up confirmation to delete scene objects, when thatā€™s actually an operation which does not result in data loss, as it can be undone? But overwriting file can not. Why are there such extreme double standards? Especially given the fact that deletion of scene objects is something that actually happens on frequent basis, unlike overwriting of existing .blend files.

Luckily, wrecking my Blend files doesnā€™t happen that often, but what does happen more often than it should is wrecking my FBX files. Itā€™s very easy to accidentally browse to the export submenu:
image
Instead of Import submenu:
image
Especially given the fact that the entries look mostly the same at glance. Then, after a double click, Iā€™ve already destroyed my FBX files several times without any warning.

The overwrite confirmation windows are standard in most computer software for at least 30 years now. Is it really appropriate to try to be unique and inventive in such a serious matter as data loss prevention?

Following this logic, why do not you remove the close window save prompt? It can be annoying, as it doesnā€™t allow you to quit Blender quickly enough :slight_smile:

3 Likes

Note that thereā€™s two ways to delete objects: X (which shows the confirmation dialog) or Delete (which does not need confirmation).

I am aware. I use customized keymap. But most average users do not. I am also aware I need to be extra careful when opening/saving files with Blender, but most average users are not. I do not think just about myself :slight_smile:

I do think mostly of myself :wink: and I really like the blender way (in this specific situation, anyway). and I donā€™t really like the way nearly all other apps do it. So if an overwrite prompt is ever added I do hope I can turn it off.

I think the ā€˜trashā€™ option is a good idea actually. Or maybe just rename the old file to .blend.old or something.

Isnā€™t there already the functionality that moves the existing file.blend to file.blend1, in case you accidentally overwrite? Although thatā€™s just one version by default, of course (but can be increased)

you are right, of course. There is. Iā€™ve even increased the number of backups to 5 myself.

even more reason to not add a prompt :wink:

As long as you have noticed the action. You will not realize that you should Undo if you accidentally deleted an object without realizing it.

But for the same reason I agree with a confirmation dialog for file overwrite, especially for saving keyboard shortcuts (combination of keys to Save and Enter key or Click to confirm the warning dialog, it is still a shortcut). If this feature is not wanted by some users, it could be an optional feature from the preferences.

Everyone just seems to advocate for some solution for the symptom of the problem. Like putting it into the trash, or creating backup increments. Why not just address the core issue. Something as essential as overwriting existing files should not have learning curve, or some obscure behavior, which needs to be looked up in the documentation or learned the hard way.

If a new user accidentally overwrites a file, and itā€™s moved to trash, how will they know that happened? What if they decide to empty the trash, without knowing it. The idea of having to read some sort of external documentation to be aware of some obscure mechanics of something as commonly standardized as overwriting existing files is preposterous in this day and age.

This is exactly the kind of weirdness that has scared a lot of people from Blender in pre 2.8 days. And a removal of many of these weird mechanics is the main reason Blender has grown in popularity ever since. So whatā€™s the reason for going back in the direction of pre 2.8 days?

Thereā€™s no justification to reinvent the wheel if the new wheel is not better than the old one.

1 Like

Hi.
It would be good if in Linux the system Trash is by default for temporary files, or at least have an easy way to choose Trash for it from the preferences (most users donā€™t know the real path to Trash). ā€œ/tmpā€ folder on Linux is volatile, you lose data on every reboot of the system. On the other hand, Liunx Trash is much more configurable in the system, with the possibility of placing icons/widgets on the desktop/panels and configuring maximum sizes and time of permanence of files in the trash.

I was looking into the file dialog code a bit and one thing to keep in mind is that Blender is not built on a GUI library like Qt. Every UI element is programmed at a fairly low level and the reason why the file load and save dialogs are so similar is that they are literally using the same code, with only a flag to differentiate in which mode to show the dialog (FILE_SAVE versus FILE_OPENFILE). I.e. adding an extra popup shown from the file open/save dialog to handle overwrite confirmation is a lot more of involved in the Blender code than it would be in a ā€œstandardā€ GUI application, also due to the several layers of code involved.

So one consequence of this is that changes/improvements that would be easy to do in more standard GUI software might be quite a bit harder to do in the Blender code base (also due to its long history and quite some legacy ways of writing code). Hence alternative solutions might be preferred by the devs, as they can oversee the implications. But this is just my impression looking at the Blender code, having also developed apps based on common GUI toolkits like Qt and wxWidgets.

Edit: this would probably be another ā€œwork-aroundā€ in your opinion, but perhaps itā€™s easily doable to have the ā€œSave asā€ button of the file save as dialog change into a big red ā€œOVERWRITE?ā€ button that would need to be clicked in order to actually overwrite a file.

1 Like

In general, I do not think this would be difficult to implement for an actual experienced Blender developer.

The button already says Save As instead of Open, when you are in save dialog. And the file name fields turns red. Itā€™s the same problem, itā€™s just visual sugar, which is not enough. Also, how would it solve the issue with double click override?

The only thing that can prevent the data loss to a reasonable degree is one additional confirmation dialog. Same/similar one as closing a file with unsaved changes triggers.

The difference would be that the button starts out reading ā€œSave asā€ in the regular color, but then clicking it or pressing enter or double-clicking a file would not directly save if the file exists. Instead it would change the button to read OVERWRITE which then needs to be clicked again. Itā€™s the same thing as using an extra dialog with a Yes button for confirmation but instead within the existing dialog (and code).

Edits: clearifications

Sorry but I strongly disagree here. The reasoning of being annoying or ignored is a very thin one compared to just how much damage they can cause. And I mean really a lot of data loss damage. Especially (but not at all limited to) overwriting FBX files because the cursor accidently pointed to export instead of import. Without our network backups in the company this nearly cost our team vital data more than once. The dialogues look very identical and every user is trained over mostly decades even that if a file is overwritten a warning will pop up.

Have an FBX file be exported with ā€œonly selectedā€ active and you might end up with an empty file.
No warning. just a red tinted export dialog. Gone.

If it really is such a huge annoyance then give the dialog a checkbox: ā€œdonā€™t show in the futureā€ and have it be enabled as an option in the preferences.
Moving a file to the recycle bin is slightly better but still a bad implementation, I think. I know of no other software in my art program arsenal who would do this. So this is less than obvious. And I am not even sure ow this would be handled when working on a network or shared folder.

Itā€™s good to try things differently but itā€™s not good to be different just to be different.
Data loss is a huge no-go (just like the ā€œfake userā€ discussion). Itā€™s not a feature if itā€™s prone to delete data. And errors happen fast - especially when you have to work under pressure.
Dialogs may come with problems but there is no proportionality between ā€œannoyingā€ and ā€œdata lossā€. Especially when there could be an option for those who really donā€™t care.

3 Likes

One improvement here (regardless of the other points you make) could be to move the Import option in the menu to the Open section, with the Export option going to below the current Save options. Makes it harder to missclick/confuse them

Yes. But ā€¦ why? Why dance around simply adding a dialog that prevents data loss?
I mean - sure It certainly is a better solution but I really canā€™t understand what is supposed to be so unbelievably annoying about a user supressable safety dialog that we keep on risking losing potentially hours or in fringe cases even days of data. Why do we dance around that issue so much?
For most of the pretty complex UI discussions that are going on I can relate to both sides in at least some degree. This is one of those rare cases where I really canā€™t understand the reasoning in the slightest.
Unlike the .blend files exports donā€™t keep a potential earlier version. They are not stored in auto saves (usually).
And even for the argument of being ignored by the user - yes. I know that dialogs are ignored when you expect them. Do a lot of exporting and maybe overwriting and the user will routinely find the shortest keyboard shortcut to dismiss it.
Itā€™s supposed to be a warning when you donā€™t expect it. This is what itā€™s there for. Accidentally overwrite something because you think you are in a different file dialog (like import). WOAH! A Popup I didnā€™t expect - oh shit. Tried to overwrite something instead of importing. Close call. I will never tell any of my colleagues about this.

There are numerous ways to give the user a chance to suppress the dialogue, as well.

  • Make it a checkmark in the export dialog for when you have to export a lot in one session and know that you want to suppress the warnings.
  • make it a separate export menu entry that says: Export (no dialog) that the user can move to their shortcuts
  • make it a setting in the preferences - ā€œwarning dialogsā€ and then have it with a checkmark besides every dialog the user never wants to see again.
    Have the dialog include a checkbox ā€œdonā€™t show this againā€.
  • go the ā€œsuppress this dialog until program restartā€ way.
  • have a dialog be there for all files except .blend files (because they keep backups in several ways by default).

These decisions IMO have real pros and cons to them that should be discussed.
Whether we need a safety net for data loss at all because it may annoy a part of the users should not be a discussion. Especially since there are logical ways of suppressing a file dialog. Itā€™s not like it has to be there forever and for everybody in the most annoying way possible.

2 Likes

Note that I said ā€œregardless of the other points you makeā€

1 Like

True. Sorry - didnā€™t read this.

What would that improve? It would shuffle things around, worse the menu categorization, yet achieve no improvement. Itā€™s a change for sake of making a change.

This is fascinating. All I proposed was to have one pop up dialog, similar to one when closing unsaved blend file, which would appear only in rather rare situations (overwriting existing files in Save As and Export windows), and which would not modify any of the existing blenderā€™s user interface or add any new UI elements.

Is there some sort of unwritten law of Blender that I am missing, which dictates that we first need to consider all of the most complicated and convoluted options to address something, before we can finally consider the most simple, straightforward and widely used one? It really feels like thereā€™s always some sort of push for ā€œAny way, just not the way most of other programs do itā€ solution.

Seriously, can someone explain me why having a simple, overwrite prompt which is literally present in any other software which has any sort of ā€œSave Asā€ type feature is a bad idea? I am really not understanding why would we possibly want to do anything more complicated than that. Itā€™s not like overwriting existing files through Save As/Export File Browser window is some sort of rapid workflow thing user does many times per hour, where confirmation pop up would be a hindrance.