[Okular-devel] Review Request: Add undo/redo support for annotations

Jon Mease jon.mease at gmail.com
Sat Dec 1 21:33:55 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107442/
-----------------------------------------------------------

(Updated Dec. 1, 2012, 9:33 p.m.)


Review request for Okular.


Changes
-------

Update rebased to master and incorporating most of Fabio's suggestions.

Outstanding Issues:
- Annotation still has a reference to a QTextEdit*.  Right now the EditAnnotationContentsCommand holds on to a QTextEdit and delegates undo/redo commands to the QTextEdit.  I took this approach in order to leverage QTextEdit's ability to group text editing commands together (so that we're not always undoing the insertion and deletion of individual characters).  This approach also preserves the proper cursor position in the kTextEdit when a user calls undo while editing in the AnnotWindow.  However, I now see that this approach may be a no-go as it requires a GUI QTextEdit widget in order to edit and undo the contents of an annotation. I would appreciate suggestions on the matter.

- I have not done any further work on the .pdf issue described previously.

- No undo support for forms


Description
-------

This patch is a first cut at adding undo/redo support to Okular.  This patch is not yet complete, however it is far enough along that I would like to begin incorporating feedback from the community.

Functionality:
The following actions can be undone and redone: creation and removal of annotations, editing arbitrary annotation properties, relocating annotations with Ctrl+drag, and editing the text contents of an annotation.

This patch does not yet include support for undoing and redoing editing actions on forms.  I plan to implement this form undo functionality before the functionality of this patch is included in Okular.

Known Issue:
When editing an annotation's properties in a .dvi file the annotation is altered and the action can be undone as expected.  However, when editing an annotation's properties in a .pdf file the image of the original annotation is not removed from the document when the altered annotation appears.  I would appreciate any possible leads on this issue.  
  


This addresses bug 177501.
    http://bugs.kde.org/show_bug.cgi?id=177501


Diffs (updated)
-----

  core/annotations.h 72abdff 
  core/annotations.cpp 49ab5bd 
  core/document.h 1d825e1 
  core/document.cpp 3e4e21a 
  core/document_p.h 4a20561 
  core/page.cpp 4df58e0 
  part.rc 39c1571 
  ui/annotationpropertiesdialog.cpp 4b02258 
  ui/annotwindow.h f7df9f6 
  ui/annotwindow.cpp c1bafb9 
  ui/pageview.cpp e5ec39b 

Diff: http://git.reviewboard.kde.org/r/107442/diff/


Testing
-------

I have tested the undoing and redoing of the specified annotation actions using .dvi and .pdf documents.  The only known issue is the one described above when using .pdf files. 


Thanks,

Jon Mease

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20121201/bc1c982e/attachment.html>


More information about the Okular-devel mailing list