I cut a polyline in the wrong spot, instinctively pressed Ctrl-z to undo it, and GPlates crashed. I was able to replicate this with both my main project and in GDB.
Version: GPlates 2.3.0
OS: Linux x86-64
Steps to reproduce:
Draw a polyline
Cut it anywhere
Press ctrl-z to undo the cut
Expected result: line should be reverted to pre-cut state
Thanks for reporting that, I can confirm the crash.
Undo-redo is not yet implemented outside of digitizing a new feature. In other words, it doesn’t work when modifying an existing feature. I think Split Feature is one of the exceptions (unlike Move Vertex, etc, which don’t allow undoing) but it’s currently flakey so I’ve disabled it’s undo just now (you’ll still be able to split a feature, just won’t be able to undo it).
There are plans to implement undo-redo (for existing features) once the internal model changes (that were necessary to birth pyGPlates) are integrated back into GPlates. However it’s fairly low priority at this stage.
Are there plans to implement a universal undo/redo, and what would be required to maintain an internal undo tree for a given session?
Most operations cannot be undone, although Split Feature is the only one that results in a crash as far as I can tell. It would be immensely useful to be able to arbitrarily undo and redo various operations and feature modifications.
Yes, we plan to implement undo/redo (in fact it is being worked on as a low priority background task). As I mentioned it’s a matter of integrating the internal model versioning changes made for pyGPlates back into GPlates. It’s not trivial though, and it’s low priority because users can use the reload button (in Manage Feature Collections dialog) to undo changes (although understandably it’s much better to have proper undo/redo).