Bug report #6054

QGIS 1.8 doesn't warn about unsaved changes in layers on exit anymore

Added by Borys Jurgiel almost 12 years ago. Updated over 11 years ago.

Status:Closed
Priority:Severe/Regression
Assignee:-
Category:GUI
Affected QGIS version:1.8.0 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:Yes Resolution:fixed
Crashes QGIS or corrupts data:No Copied to github as #:15417

Description

The title is self-explaining

fix_6054.patch Magnifier (454 Bytes) Alexander Bruy, 2012-10-04 10:02 AM

unsaved-provider-edits.png (19.5 KB) Larry Shaffer, 2012-11-23 02:30 PM

unsaved-provider-edits_2.png (22.5 KB) Larry Shaffer, 2012-11-26 06:22 AM


Related issues

Duplicated by QGIS Application - Bug report #6101: User not warned of uncommited edits when closing Closed 2012-07-26

History

#1 Updated by Giovanni Manghi almost 12 years ago

Hi Borys, is this a regression? If yes please tag the ticket as blocker.

#2 Updated by Borys Jurgiel almost 12 years ago

  • Priority changed from High to Severe/Regression

Yes, it's a regression. QGIS <= 1.7 used to warn at exit, if there were any unsaved changes in layers (I mean the layer contents. The unsaved project warning works ok). Now it exits quietly, losing the changes.

Note that when removing a layer from the TOC, the warning works ok.

#3 Updated by Alexander Bruy over 11 years ago

Seems this caused by 8d4a656e4d (author Tim). As I understand, the reason to not emit signal is performance improvement. Here is small patch that should fix this.

#4 Updated by Giovanni Manghi over 11 years ago

  • Pull Request or Patch supplied changed from No to Yes

Alexander Bruy wrote:

Seems this caused by 8d4a656e4d (author Tim). As I understand, the reason to not emit signal is performance improvement. Here is small patch that should fix this.

Hi Alexander, maybe is better to make a pull request on github... it will have more chances to have the patch added upstream as soon as possible.

#5 Updated by Alexander Bruy over 11 years ago

Giovanni Manghi wrote:

Hi Alexander, maybe is better to make a pull request on github... it will have more chances to have the patch added upstream as soon as possible.

OK, I'll create a pull request, but IMO it is better to discuss this changes with Tim and Jurgen (original authors of this commit) first. I think they have reasons to disable this signal

#7 Updated by Tim Sutton over 11 years ago

Hi

Yes there is a good reason to update this signal - if you have a plugin or other code that reacts to each layer removal event, it can lead to terrible performance problems when you remove many layers at once. So now we rather say layers added (list) or layers removed(list) and listener code can respond to one event and deal with all those removed layers.

Tim

#8 Updated by Larry Shaffer over 11 years ago

Hi,

I have implemented a version of this here:
https://github.com/qgis/Quantum-GIS/pull/333

'Add option to warn on project close if any layer is in edit mode with unsaved edits'

It does not address the layer legend edit issue, but does address (I think) the original issue concern.

#9 Updated by Larry Shaffer over 11 years ago

  • Status changed from Open to Feedback

#10 Updated by Larry Shaffer over 11 years ago

Should be fixed (regarding layer edits) with commit 21370d9

Attached is warning shown on project close if there are unsaved provider edits.

It does not address the layer legend edit issue (needs different ticket?), but does address the original issue concern.

#11 Updated by Regis Haubourg over 11 years ago

Hi Larry , it works! but I got trapped going too fast. The warning dialog may be a bit confusing. It warns you to save your edits, and just under it there is a save button. I jumped on it (a beautiful neuronal shortcut).. and it saved project only and not layers. I guess users do not read really well those messages like me.. Is there a way to open dialogs to save edits of all layers being edited? (this is the most common behaviour in other softs).
If not, I would just put warning red line in first position, and then propose a "Save project anyway?" on top of the three standars buttons.)
Thanks a lot again
Régis

#12 Updated by Larry Shaffer over 11 years ago

Hi Régis,

regis Haubourg wrote:

... Is there a way to open dialogs to save edits of all layers being edited? (this is the most common behaviour in other softs).

I think this would be handy, but a bit redundant. The layers are already listed in the legend with an edit icon. Other GUI items, like the layer's edit undo stack are already available in the main interface. Even if the dialog was more robust (offering saving of edited layers), I envision users looking at a layer listing and not remembering what they were editing, then cancelling the dialog to get back to the main interface to refresh their memory about the state of their edits (I know I do). I think just a more prominent warning and layer listing is all that is needed for now.

Ideally, having the legend layer's icon shift to a different version, or have the layer's text turn a different color, to indicate a layer has unsaved edits, would be helpful (not just for after cancelling project close prompt).

If not, I would just put warning red line in first position, and then propose a "Save project anyway?" on top of the three standars buttons.)

I have reformatted the notification and made it a separate dialog presented just before project save dialog (so as not to be confused with it). It also shows a layer listing in the same order as the legend to help understand which layers are affected, in case they are hidden in collapsed groups. See unsaved-provider-edits_2.png

If a user ignores the new dialog's WARNING, and loses edits... IMHO, they will learn to read such a dialog in the future. It no longer looks like the project close dialog and is very straightforward.

Caveat (or feature): there are now sometimes two dialogs to click through to close the project. While occasionally annoying, having project close dialog come after the 'layer edits exist' notification reduces the chance of the user accidentally/quickly clicking to dismiss a single dialog, thereby protecting against layer editing loss. Though, there are still times where the layer edits don't trigger a dirty project and the 'layer edits exist' notification dialog is the only one.

Note: not committed yet.

#13 Updated by Regis Haubourg over 11 years ago

+1 for me, I agree with your analysis, mine was maybe too quickly made. You can go for new dialog for me. Do other users have feedback on that point?

#14 Updated by Giovanni Manghi over 11 years ago

can we close this ticket?

#15 Updated by Larry Shaffer over 11 years ago

  • Status changed from Feedback to Resolved

The current fix addresses the issue, but I am currently working on an integrated dialog to allow saving the unsaved edits, closing the project, or both (not a two-dialog approach as previously noted).

However, that is an additional feature beyond fixing this issue, so I'm closing the issue. Please reopen if needed.

#16 Updated by Larry Shaffer over 11 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF