Better undo/redo for krita
This project is divided into two parts.
Implement a docker to allow users create snapshots (shallow copies) of the current state of documents and switch back to them at a later time.
Copy-on-Write Vector Layers
Make vector layers copy-on-write so that the undo/redo system for them can be implemented by replacing the layer with another, rather than store the undo information for each command.
- Research into solutions for copy-on-write mechanism
- Snapshot Docker
- COW vector layers
- Make members of KoShapePrivate implicitly-sharable
- Make KoShape hierarchy implicitly-sharable
- Create undo commands that switch between states of vector layers
- Phabricator task
- Merge Request for Snapshot Docker
- Merge Request for COW Vector Layers