View Issue Details

IDProjectCategoryView StatusLast Update
0004564Slicer4Core: Base Codepublic2018-05-30 11:34
Reporternick_slizerAssigned Tojcfr 
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0004564: Opening scene, too, kinda leads to loss of all data
Description

If one closes the default scene, after saving original work, then starts new work and save the new work, the original work will be overwritten and lost. Yes, there's a prompt about overwriting (or not), but since a user will quickly learn to always click "yes to all" that isn't much of a deterrent.

The problem is two-fold:
a) The default scene name is not "closed" --- it's actually reused even as it's already taken on disk
b) The scene name should refer to a sub-directory

TagsNo tags attached.

Activities

lassoan

lassoan

2018-05-29 22:42

developer   ~0015773

You get a warning for each and every file overwrite. How would you make it more obvious that data is getting overwritten?

nick_slizer

nick_slizer

2018-05-30 09:15

reporter   ~0015835

You get a warning for each and every file overwrite.

Perhaps at least use the current date as the default name for a scene, not arbitrarily the date (or name) of the last scene that happened to be open?

But It'll be fine to close the ticket as do-not-fix, because I realize this little problem is a consequence of the scene concept and even if the project name doesn't collide with something already on disk, something else in the scene may. There's simply not a notion of "New scence" or of an encapsulated project in 3D Slicer.

Yet in practice almost all warnings about file overwrites are superfluous and tedious.

How would you make it more obvious that data is getting overwritten?

Normally, a "save" is a "save" in project oriented applications, no questions asked. They'll simply ask the user once to distinguish data when it's imported. Either something is a mutable copy, to be stored inside the project directory, or it's a read-only file reference. Instead, 3D Slicer seems to take the approach that a project -- a scene -- is a bunch of mutable file references across the whole file system that the UI offer easy opportunities to change by an errant mouse click (often undoable!!!!).

So I would make it more obvious that data is to be overwritten by only warning if there were files outside the project that were to be overwritten (and perhaps eliminate that possibility all together by enforcing such object to be non-changeable). That's a bigger question.

lassoan

lassoan

2018-05-30 09:53

developer   ~0015836

Perhaps at least use the current date as the default name for a scene, not arbitrarily the date (or name) of the last scene that happened to be open?

The current date is used as default name, so that's done. However, we keep the last scene name when the scene is closed. It is a good idea to reset the scene file name when we close the scene.

Normally, a "save" is a "save" in project oriented applications, no questions asked.

Partial saving, overwriting, referring to same data files from multiple scene files are very useful features but I completely agree that the behavior is too complicated for new users.
In general, I recommend to non-advanced users:

  • To save the scene: use single-file (.mrb) format (click the package icon in the Save data dialog to activate that option): everything is saved in a single file. No questions asked. Nothing can be accidentally overwritten.
  • To export individual data files (volumes, meshes, etc.): disable .mrb package option and select just those files that should be exported

Maybe we should have separate Save and Export in the menu instead of having a single dialog box that handles both. I've posted this idea on the forum to get some feedback (https://discourse.slicer.org/t/separate-save-and-export-features/3018).

lassoan

lassoan

2018-05-30 11:34

developer   ~0015837

I've committed a fix (r27219), now scene file name is no longer preserved after a scene is closed (on save, scene file name will be the default - generated from today's date).

Issue History

Date Modified Username Field Change
2018-05-25 13:35 nick_slizer New Issue
2018-05-25 13:35 nick_slizer Status new => assigned
2018-05-25 13:35 nick_slizer Assigned To => jcfr
2018-05-29 22:42 lassoan Note Added: 0015773
2018-05-30 09:15 nick_slizer Note Added: 0015835
2018-05-30 09:53 lassoan Note Added: 0015836
2018-05-30 11:34 lassoan Note Added: 0015837