< Calligra‎ | Projects
Revision as of 13:38, 26 January 2013 by Boemann (talk | contribs)


For implementation of Annotations we will implement it stepwise

1) load it 
2) show&edit
3) save
4) create


We create a subclass of TextShape called AnnotationShape

   class AnnotationTextShape : public TextShape

It registers itself as being able to read annotations, but other than that it's basically just TextShape with a different name. The TextTool should register itself as being able to edit it. The Review and References tools should not.

In KoTextLoader load annotation we create the shape instead of loading into QTextFrame. And then we make the shape load the content into it's own QtextDocument (see: KoTextLoader::loadShape on how to create the shape)

Into the original document we still insert a KoAnnotation (using KoTextRangeManager). The difference is just where we store the content

Show & Edit

To have the AnnotationTextShape show up in the side panel we need to tweak Words to not create frames out of these kind of shapes but instead place it in the side area.

The geometry of the AnnotationTextShape should be locked so only words can move it around

Words will probably need some kind of manager class to handle the layout of the annotation shapes. At some point this layout will be a s complex so it can look like in Kompare


Save is probably going to be really simple. The shapes shouldn't save them selves like other freefloating shapes. Instead KoAnnotation should just ask the shape to save it self of the current behavoir of QTextFrame being save.


An action should be added to the Review tool that creates an annotation but beyond that there really is'nt much to it. However the Review tool is not yet ready to be hacked on (we need to await the removal of the changetracking stuff, so this is why this item is last)

This page was last edited on 27 January 2013, at 13:00. Content is available under Creative Commons License SA 4.0 unless otherwise noted.