<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/104074/">http://git.reviewboard.kde.org/r/104074/</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 26th, 2012, 4:16 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/104074/diff/2/?file=51062#file51062line1576" style="color: black; font-weight: bold; text-decoration: underline;">libs/flake/KoShape.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

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

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

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void KoShape::loadOdfGluePoints(const KoXmlElement &element, KoShapeLoadingContext &context)</pre></td>

  </tr>
 </tbody>



 
 




 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">1574</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="k">const</span> <span class="n">QString</span> <span class="n">id</span> <span class="o">=</span> <span class="n">child</span><span class="p">.</span><span class="n">attributeNS</span><span class="p">(</span><span class="n">KoXmlNS</span><span class="o">::</span><span class="n">draw</span><span class="p">,</span> <span class="s">"id"</span><span class="p">,</span> <span class="n">QString</span><span class="p">());</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1575</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">KoElementReference</span> <span class="n">ref</span><span class="p">;</span></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">1576</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="k">const</span> <span class="n">QString</span> <span class="n">id</span> <span class="o">=</span> <span class="n">ref</span><span class="p">.</span><span class="n">loadOdf</span><span class="p">(</span><span class="n">child</span><span class="p">).</span><span class="n">toString</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;">According to ODF 19.187.2 <draw:glue-point> does not support xml:id. Please revert this change. It does not reference a different object but is a number and therefore it is only draw:id.

I just see that it also wrongly writes out an xml:id. Maybe when you are on it can you please remove this.
</pre>
 </blockquote>



 <p>On February 26th, 2012, 3:51 p.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;">Well, 19,187 also says:

The draw:id attribute specifies identifiers for draw elements other than <draw:glue-point>.
OpenDocument consumers shall ignore a draw:id attribute if it occurs on a draw element with
an xml:id attribute value.
OpenDocument producers may write draw:id attributes for any draw element in addition to an
xml:id attribute.
The value of a draw:id attribute shall equal the value of an xml:id attribute on the same
element.
The draw:id attribute is deprecated in favor of xml:id. 19.914

So, I'd say that saving xml:id is the right thing to do; for loading, KoElementReference can load draw:id just fine.</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;">It is wrong and create invalid odf files so it needs to be removed. The draw:glue-point does not allow the xml:id to be save in it.

The documentation above does not say it is allowed to add a xml:id to the draw:glue-point. </pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On February 26th, 2012, 4:16 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/104074/diff/2/?file=51066#file51066line207" style="color: black; font-weight: bold; text-decoration: underline;">libs/flake/KoShapeSavingContext.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

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

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

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void KoShapeSavingContext::addOption(ShapeSavingOption option)</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">196</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> <span class="p">(</span><span class="n">d</span><span class="o">-></span><span class="n">referenceCounters</span><span class="p">.</span><span class="n">contains</span><span class="p">(</span><span class="n">prefix</span><span class="p">))</span> <span class="p">{</span></pre></td>
  </tr>

  <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">197</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">d</span><span class="o">-></span><span class="n">referenceCounters</span><span class="p">[</span><span class="n">prefix</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</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;">If you use iterators one lookup into the map can be avoided. </pre>
 </blockquote>



 <p>On February 26th, 2012, 3:51 p.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;">I prefer this way... It's easier to read, and I don't think the performance difference will be noticeable.</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;">How about to just call d->referemceCounters.remove(prefix) ?</pre>
<br />




<p>- Thorsten</p>


<br />
<p>On February 25th, 2012, 3:12 p.m., Boudewijn Rempt 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.</div>
<div>By Boudewijn Rempt.</div>


<p style="color: grey;"><i>Updated Feb. 25, 2012, 3:12 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;">draw:id and text:id are deprecated and to be replaced by xml:id. This patch creates a new class KoElementReference that encapsulates loading and saving all three tags, as well as automatically generating a unique id. This is used to make sure that if two items want to save an xml:id on the same element, we only have one, unique tag saved.

I'm not completely happy yet, since parts of KoShapeSavingContext still create numbered, prefixed id's with hidden meanings that are not clearly connect to what the idref actually links to for the master pages. Imo, xml:id should always be guaranteed unique and there should be a clear code-path between the entity that is linked to from an element and the element itself.</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;">Manual testing and unittests; on Tuesday I will do a practical test at SKF.</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=288644">288644</a>


</div>


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

 <li>filters/stage/kpr2odf/Filterkpr2odf.cpp <span style="color: grey">(df7079b)</span></li>

 <li>filters/stage/pptx/PptxXmlSlideReader.cpp <span style="color: grey">(eaee384)</span></li>

 <li>filters/words/docx/DocxXmlDocumentReader.cpp <span style="color: grey">(6aa31f5)</span></li>

 <li>filters/words/oowriter/ExportFilter.h <span style="color: grey">(dea56bd)</span></li>

 <li>filters/words/oowriter/ExportFilter.cc <span style="color: grey">(ff44e0c)</span></li>

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

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

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

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

 <li>libs/flake/KoImageCollection.cpp <span style="color: grey">(27b8260)</span></li>

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

 <li>libs/flake/KoShapeLoadingContext.h <span style="color: grey">(87b0830)</span></li>

 <li>libs/flake/KoShapeLoadingContext.cpp <span style="color: grey">(0573ddf)</span></li>

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

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

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

 <li>libs/kopageapp/KoPAMasterPage.cpp <span style="color: grey">(42e9065)</span></li>

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

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

 <li>libs/kopageapp/tests/TestPACopyPastePage.h <span style="color: grey">(363f803)</span></li>

 <li>libs/kopageapp/tests/TestPACopyPastePage.cpp <span style="color: grey">(3b023b8)</span></li>

 <li>libs/kotext/KoDocumentRdfBase.h <span style="color: grey">(d6f467a)</span></li>

 <li>libs/kotext/KoDocumentRdfBase.cpp <span style="color: grey">(7b6b38c)</span></li>

 <li>libs/kotext/KoInlineNote.h <span style="color: grey">(91823e9)</span></li>

 <li>libs/kotext/KoInlineNote.cpp <span style="color: grey">(897214c)</span></li>

 <li>libs/kotext/KoInlineObject.h <span style="color: grey">(8a1d627)</span></li>

 <li>libs/kotext/KoTextAnchor.cpp <span style="color: grey">(414b347)</span></li>

 <li>libs/kotext/KoTextBlockData.h <span style="color: grey">(cc1528b)</span></li>

 <li>libs/kotext/KoTextBlockData.cpp <span style="color: grey">(116b432)</span></li>

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

 <li>libs/kotext/KoTextInlineRdf.h <span style="color: grey">(fd7bb5e)</span></li>

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

 <li>libs/kotext/changetracker/KoChangeTracker.h <span style="color: grey">(33c2696)</span></li>

 <li>libs/kotext/changetracker/KoChangeTracker.cpp <span style="color: grey">(51b9c5e)</span></li>

 <li>libs/kotext/opendocument/KoTextLoader.cpp <span style="color: grey">(3ea7109)</span></li>

 <li>libs/kotext/opendocument/KoTextWriter.h <span style="color: grey">(fd0689c)</span></li>

 <li>libs/kotext/opendocument/KoTextWriter.cpp <span style="color: grey">(56125d3)</span></li>

 <li>libs/kotext/opendocument/KoTextWriter_p.h <span style="color: grey">(c89e895)</span></li>

 <li>libs/kotext/opendocument/KoTextWriter_p.cpp <span style="color: grey">(1dbc8bb)</span></li>

 <li>libs/kotext/opendocument/tests/CMakeLists.txt <span style="color: grey">(c386cfb)</span></li>

 <li>libs/kotext/opendocument/tests/TestChangeTracking.cpp <span style="color: grey">(665636b)</span></li>

 <li>libs/main/rdf/KoDocumentRdf.h <span style="color: grey">(fabc628)</span></li>

 <li>libs/main/rdf/KoDocumentRdf.cpp <span style="color: grey">(bfaa9ec)</span></li>

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

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

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

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

 <li>libs/odf/KoGenChange.cpp <span style="color: grey">(2cd2d97)</span></li>

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

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

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

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

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

 <li>plan/libs/ui/reports/odt/KoSimpleOdtCheckBox.cpp <span style="color: grey">(79ac92c)</span></li>

 <li>plan/libs/ui/reports/odt/KoSimpleOdtLine.cpp <span style="color: grey">(6cddad2)</span></li>

 <li>plan/libs/ui/reports/odt/KoSimpleOdtPicture.cpp <span style="color: grey">(20aee62)</span></li>

 <li>plan/libs/ui/reports/odt/KoSimpleOdtTextBox.cpp <span style="color: grey">(717b867)</span></li>

 <li>stage/part/animations/KPrAnimationBase.cpp <span style="color: grey">(b544485)</span></li>

 <li>tables/part/Doc.cpp <span style="color: grey">(25e3fd3)</span></li>

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

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

</ul>

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




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








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