<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/102716/">http://git.reviewboard.kde.org/r/102716/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 27th, 2012, 9:27 a.m., <b>Boudewijn Rempt</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Was this already pushed?</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">No, I am still looking for the bug that creates the change in rendering that was found by Zagge using cstester. It's been very elusive. I have problems debugging it on my laptop because there is so much going on at the same time and I need a way to present more information.</pre>
<br />








<p>- Inge</p>


<br />
<p>On September 27th, 2011, 12:14 p.m., Inge Wallin wrote:</p>






<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 Calligra and Thorsten Zachmann.</div>
<div>By Inge Wallin.</div>


<p style="color: grey;"><i>Updated Sept. 27, 2011, 12:14 p.m.</i></p>






<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 does two things:
 - It implements the concept of the Playback Device Context into libemf
 - It contains a start of an EMFPLUS parser.

The device context is a struct of data that is kept during the playback of an EMF metafile. It contains graphics state variables like current colors (text, background, foreground), current brush, pen, raster operation, etc as well as some bigger things. Previously all this was kept in the QPainter backend that is used to paint the content of the EMF to a QPaintDevice.

With the new explicit device context, that is kept by the parser, we get two advantages:
 1. It is much easier to write new backends, so e.g. a karbon import filter for EMF will be almost trivial
 2. We can implement EMFPLUS, which is the next generation EMF from Microsoft, since EMFPLUS demands transfer of device contexts.

This patch is tested in every commit along the way, but only on a limited set of documents, by hand by me. the reason for this commit request is that Zagge promised to make a big cstester run if I put it up for review. I would like to merge this patch on thursday at the latest, since the tagging of beta2 is on friday.

The new EMFPLUS parser is still work in progress and not called yet, so there is no real need to review that.</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;">Testing all commits with a limited set of test files that I keep.</pre>
  </td>
 </tr>
</table>




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

 <li>plugins/vectorshape/CMakeLists.txt <span style="color: grey">(da25dbb)</span></li>

 <li>plugins/vectorshape/VectorShape.cpp <span style="color: grey">(c14e6a7)</span></li>

 <li>plugins/vectorshape/libemf/CMakeLists.txt <span style="color: grey">(7824052)</span></li>

 <li>plugins/vectorshape/libemf/EmfAbstractBackend.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfAbstractBackend.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfDebugBackend.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfDebugBackend.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfDeviceContext.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfDeviceContext.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfEnums.h <span style="color: grey">(1b15344)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutput.h <span style="color: grey">(7b247af)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutput.cpp <span style="color: grey">(df3332a)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutputDebugStrategy.h <span style="color: grey">(af3dc21)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutputDebugStrategy.cpp <span style="color: grey">(4f1d87c)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutputPainterStrategy.h <span style="color: grey">(8e37d42)</span></li>

 <li>plugins/vectorshape/libemf/EmfOutputPainterStrategy.cpp <span style="color: grey">(fcf6822)</span></li>

 <li>plugins/vectorshape/libemf/EmfPainterBackend.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfPainterBackend.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfParser.h <span style="color: grey">(f376dc2)</span></li>

 <li>plugins/vectorshape/libemf/EmfParser.cpp <span style="color: grey">(a8d54fa)</span></li>

 <li>plugins/vectorshape/libemf/EmfplusDeviceContext.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfplusDeviceContext.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfplusEnums.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfplusParser.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/EmfplusParser.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/vectorshape/libemf/TODO <span style="color: grey">(cde117e)</span></li>

</ul>

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




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








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