- working keyboard and mouse navigation
- inserting stuff from the keyboard
- inserting symbols and templates from the docker
- Undo and Redo
I solved this by letting each editing command return an QUndoCommand which is then passed to the tool in KOffice which wraps it in another QUndoCommand that is responsible for calling the first one and then calling update on the shape and tool. Works quite well.
Next things on my list include some refactoring of the movement code and finishing it for the missing elements. Changing some internals that make inserting and removing stuff a lot easier and finally maybe copy and paste.