<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/107442/">http://git.reviewboard.kde.org/r/107442/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Okular.</div>
<div>By Jon Mease.</div>


<p style="color: grey;"><i>Updated Dec. 31, 2012, 3:12 a.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Update incorporating Fabio's feedback (Thanks again!).  In addition, the following changes have been made

* Undo/Redo of annotation contents no longer relies on trying to sync up with the undo stack inside QTextEdit.  It has now been implemented from scratch and works much better.  The following simple edit actions may be merged together into a single undo action: Single character backspace, single character delete, and single character insertion.  All other text edit commands are treated as single actions for undo/redo.  Both the text cursor position and text selection states are restored upon undo.  We should be able to leverage this work to implement undo/redo of form text.

* Fixed bug when editing the properties of annotations in a PDF.  The problem was that the nativeID field and ExternallyDraw text interaction flag are not stored in the XML description of the annotation's properties and so these properties need to be restored manually (see Annotation::setAnnotationProperties()).  

* The implementations of Annotation::getAnnotationPropertiesDomNode() and Annotation::setAnnotationProperties() have been refactored so that no virtual functions are being called from annotation constructors.

Open Issues:
- Still no form support
- When you right click in the KTextEdit of an AnnotWindow the Undo and Redo actions are always disabled in the context menu (because we're not allowing the KTextEdit to handle undo/redo on it's own).  I would like to somehow hook these context menu actions up to the global undo/redo actions but I haven't looked into this yet</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.  
  

</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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. </pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=177501">177501</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>core/annotations.h <span style="color: grey">(72abdff)</span></li>

 <li>core/annotations.cpp <span style="color: grey">(49ab5bd)</span></li>

 <li>core/document.h <span style="color: grey">(1d825e1)</span></li>

 <li>core/document.cpp <span style="color: grey">(00e290d)</span></li>

 <li>core/document_p.h <span style="color: grey">(4a20561)</span></li>

 <li>core/page.cpp <span style="color: grey">(4df58e0)</span></li>

 <li>generators/poppler/annots.cpp <span style="color: grey">(b7fb9f7)</span></li>

 <li>part.rc <span style="color: grey">(39c1571)</span></li>

 <li>ui/annotationpropertiesdialog.cpp <span style="color: grey">(4b02258)</span></li>

 <li>ui/annotwindow.h <span style="color: grey">(f7df9f6)</span></li>

 <li>ui/annotwindow.cpp <span style="color: grey">(c1bafb9)</span></li>

 <li>ui/pageview.cpp <span style="color: grey">(811a169)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/107442/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>




  </div>
 </body>
</html>