Bug report #17658

Digitizing: Ctrl+Z (and other cancelation tools) reset the features to its initial state (or at least more than one action).

Added by Harrissou Santanna over 2 years ago. Updated over 2 years ago.

Status:Closed
Priority:High
Assignee:Nyall Dawson
Category:Digitising
Affected QGIS version:master Regression?:Yes
Operating System: Easy fix?:No
Pull Request or Patch supplied:Yes Resolution:fixed/implemented
Crashes QGIS or corrupts data:Yes Copied to github as #:25555

Description

I'm doing some digitizing on a geopackage layer
And it looks like when hitting ctrl-Z, it reverts more than the last action. At the same time, the Undo/Redo panel just jumps one action above (hence not coherent with the state of actions)
To reproduce, take a feature and open the undo/redo panel, select the node tool
Move a point
delete a point
move another point or group of points
delete a point
press ctrl z.
Here, it brings the feature to its original state (not just one action reverted as it should be). The same thing happens when you click ANY row in the undo panel

Another interesting part is what happens at the same time in that panel:
1/When you press Ctrl+Z, the focus in the panel jumped one step back despite the state of the feature being reset. But actually, if you have clicked ANY row in the Undo panel to revert your action(s), it would have reverted all the actions too
2/if you click on the previous actions in the Undo panel, you'll notice that nothing happens
3/If you click on a more recent action than in step 2, then you'll redo your latest actions.

It looks like there's something messy with cancelation steps.

I checked the "Corrupts data" status because if you don't have whole feature in front of you, you may not notice revertion of some changes.

Associated revisions

Revision 70644f1d
Added by Nyall Dawson over 2 years ago

Fix undo stack does not correctly roll back geometry edits
in a granular manner

Fixes #17658

History

#1 Updated by Nyall Dawson over 2 years ago

  • Assignee set to Nyall Dawson
  • Status changed from Open to In Progress

#2 Updated by Nyall Dawson over 2 years ago

  • Pull Request or Patch supplied changed from No to Yes

#3 Updated by Nyall Dawson over 2 years ago

  • % Done changed from 0 to 100
  • Status changed from In Progress to Closed

#4 Updated by Giovanni Manghi over 2 years ago

  • Resolution set to fixed/implemented

Also available in: Atom PDF