Jump to content

GSoC/2019/StatusReports/tusooa: Difference between revisions

From KDE Community Wiki
No edit summary
Add links
Line 29: Line 29:
== Links ==
== Links ==
* [https://phabricator.kde.org/T10901 Phabricator task]
* [https://phabricator.kde.org/T10901 Phabricator task]
* [https://invent.kde.org/tusooaw/krita/commits/tusooaw/T10991-snapshot-docker Branch for Snapshot Docker]
** [https://phabricator.kde.org/T10991 Subtask for Snapshot Docker]
* [https://invent.kde.org/kde/krita/merge_requests/41 Merge Request for Snapshot Docker]
* [https://invent.kde.org/kde/krita/merge_requests/58 Merge Request for COW Vector Layers]
   
   
Blog posts:
Blog posts:
Line 36: Line 38:
* [https://tusooa.github.io/2019/05/18/Polymorphism-and-Implicit-Sharing/ Some Strategies for COW]
* [https://tusooa.github.io/2019/05/18/Polymorphism-and-Implicit-Sharing/ Some Strategies for COW]
* [https://tusooa.github.io/2019/05/30/Assistants-copy-share-assignment/ An example for the undo system to use clones]
* [https://tusooa.github.io/2019/05/30/Assistants-copy-share-assignment/ An example for the undo system to use clones]
* [https://tusooa.github.io/2019/06/16/New-Style-Signal-Slot-Connection/ Porting the new error-preventing syntax of signal/slot connection to KisAutoSignalConnectionsStore]
* [https://tusooa.github.io/2019/06/21/Snapshot-Docker/ Done with the snapshots]
* [https://tusooa.github.io/2019/07/09/make-j5-kritaflake/ Making Flake as COW as possible]

Revision as of 03:16, 11 July 2019

Better undo/redo for krita

This project is divided into two parts.

Snapshot Docker

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.

Progress

Done

  • Research into solutions for copy-on-write mechanism
  • Snapshot Docker
  • COW vector layers
    • Make members of KoShapePrivate implicitly-sharable
    • Make KoShape hierarchy implicitly-sharable

Doing

  • Create undo commands that switch between states of vector layers

Todo

Links

Blog posts: