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








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On February 13th, 2011, 5:09 a.m., <b>Thorsten Zachmann</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/100629/diff/1/?file=8941#file8941line56" style="color: black; font-weight: bold; text-decoration: underline;">libs/odf/KoEmbeddedFileSaver.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">public:</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">56</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                   <span class="n">QByteArray</span> <span class="n">contents</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Please pass contents as a const & </pre>
 </blockquote>



 <p>On February 13th, 2011, 6:50 a.m., <b>Inge Wallin</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;">No, I don't think we should do that, and there is a good reason for it: When the call to saveFile and embedFile is done, there is no way for the KoEmbeddedFileSaver to know what the shape does with the QByteArray.  The QByteArray is implicitly shared, meaning it is ref counted and by creating a copy this way I protect against the contents being deleted between the call to saveFile and when the contents is actually saved to the store.  But I should really add a comment about that.</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">That does not mean the parameter passed can't be a const ref. Sure you need to store a copy inside your class. But there is no need to copy the object twice even if it is implicitly shared.</pre>
<br />




<p>- Thorsten</p>


<br />
<p>On February 11th, 2011, 9:36 a.m., Inge Wallin wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/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.</div>
<div>By Inge Wallin.</div>





<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 implements saving in the KoUnavailShape.

The method it uses is to introduce a new class, KoEmbeddedFileSaver, in koodf. This class is a bit like the KoEmbeddedObjectSaver class, and is created and instantiated in the same places. It is also part of the KoShapeSavingContext.

As a bonus, this patch also implements saving for the Vector shape, since I used that for testing in early stages.</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;">Tested with a simple odt file with an embedded spreadsheet.</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>braindump/src/SectionsIO.cpp <span style="color: grey">(9d8949b)</span></li>

 <li>karbon/common/KarbonDocument.cpp <span style="color: grey">(1a6a2a5)</span></li>

 <li>kformula/flake/FormulaDocument.cpp <span style="color: grey">(84872fa)</span></li>

 <li>kformula/flake/KoFormulaTool.cpp <span style="color: grey">(d9eada1)</span></li>

 <li>krita/ui/flake/kis_shape_layer.cc <span style="color: grey">(f695b8a)</span></li>

 <li>krita/ui/flake/kis_shape_selection.cpp <span style="color: grey">(f5e2f28)</span></li>

 <li>libs/flake/KoDrag.cpp <span style="color: grey">(8ed2656)</span></li>

 <li>libs/flake/KoDragOdfSaveHelper.h <span style="color: grey">(b1e6212)</span></li>

 <li>libs/flake/KoDragOdfSaveHelper.cpp <span style="color: grey">(727e6c5)</span></li>

 <li>libs/flake/KoShapeSavingContext.h <span style="color: grey">(a06e040)</span></li>

 <li>libs/flake/KoShapeSavingContext.cpp <span style="color: grey">(fd8fb41)</span></li>

 <li>libs/flake/KoUnavailShape.cpp <span style="color: grey">(3f10acf)</span></li>

 <li>libs/kokross/KoScriptingOdf.cpp <span style="color: grey">(17a4f7d)</span></li>

 <li>libs/kopageapp/KoPADocument.cpp <span style="color: grey">(2ef4ac1)</span></li>

 <li>libs/kopageapp/KoPAOdfPageSaveHelper.h <span style="color: grey">(d8f064a)</span></li>

 <li>libs/kopageapp/KoPAOdfPageSaveHelper.cpp <span style="color: grey">(c60d0d8)</span></li>

 <li>libs/kopageapp/KoPAPastePage.cpp <span style="color: grey">(01bafe0)</span></li>

 <li>libs/kopageapp/KoPASavingContext.h <span style="color: grey">(c678e2c)</span></li>

 <li>libs/kopageapp/KoPASavingContext.cpp <span style="color: grey">(52524bf)</span></li>

 <li>libs/kotext/KoTextDrag.cpp <span style="color: grey">(f30cb5c)</span></li>

 <li>libs/kotext/KoTextOdfSaveHelper.h <span style="color: grey">(155aecd)</span></li>

 <li>libs/kotext/KoTextOdfSaveHelper.cpp <span style="color: grey">(d012557)</span></li>

 <li>libs/kotext/KoTextShapeSavingContext.h <span style="color: grey">(4d27bc4)</span></li>

 <li>libs/kotext/KoTextShapeSavingContext.cpp <span style="color: grey">(d5ade20)</span></li>

 <li>libs/kotext/opendocument/tests/TestChangeLoading.cpp <span style="color: grey">(ac42ddd)</span></li>

 <li>libs/kotext/opendocument/tests/TestLoading.cpp <span style="color: grey">(e6a790a)</span></li>

 <li>libs/main/KoDocument.cpp <span style="color: grey">(956e179)</span></li>

 <li>libs/odf/CMakeLists.txt <span style="color: grey">(1a6a131)</span></li>

 <li>libs/odf/KoEmbeddedDocumentSaver.cpp <span style="color: grey">(a8e13d8)</span></li>

 <li>libs/odf/KoEmbeddedFileSaver.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/odf/KoEmbeddedFileSaver.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/odf/KoOdfDocument.h <span style="color: grey">(c242776)</span></li>

 <li>libs/odf/KoOdfLoadingContext.h <span style="color: grey">(023b92f)</span></li>

 <li>libs/odf/KoOdfLoadingContext.cpp <span style="color: grey">(ce53992)</span></li>

 <li>libs/odf/KoOdfManifest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/odf/KoOdfManifest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/chartshape/ChartDocument.cpp <span style="color: grey">(f85bb19)</span></li>

 <li>plugins/chartshape/ChartShape.cpp <span style="color: grey">(edce6be)</span></li>

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

 <li>tables/Cell.cpp <span style="color: grey">(7aa8306)</span></li>

 <li>tables/DocBase.cpp <span style="color: grey">(5ccaef3)</span></li>

 <li>words/part/KWDocument.cpp <span style="color: grey">(f3dc5d4)</span></li>

 <li>words/part/KWOdfWriter.h <span style="color: grey">(4264e99)</span></li>

 <li>words/part/KWOdfWriter.cpp <span style="color: grey">(b507bbf)</span></li>

</ul>

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




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








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