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





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This review has been submitted with commit 90fe250c814d02178b5774b32e61c7066e83606b by Friedrich W. H. Kossebau to branch master.</pre>
 <br />









<p>- Commit Hook</p>


<br />
<p>On November 6th, 2013, 1:41 p.m. UTC, Friedrich W. H. Kossebau wrote:</p>








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

<div>Review request for Calligra and Boudewijn Rempt.</div>
<div>By Friedrich W. H. Kossebau.</div>


<p style="color: grey;"><i>Updated Nov. 6, 2013, 1:41 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</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;">Fixes crash when semantic items are inserted after the dialog incl. the rdf page was shown & closed

Seems that KoDocumentInfoDlg is slightly flawed after the port to KPageDialog :/
For one KPageWidgetItem* are collected in d->pages ("item" vs. "page"), which then are tried to be casted to KoPageWidgetItem*, which is bogus because KoPageWidgetItem is not in any relationship with KPageWidgetItem anymore.

The initial plan was to make KoPageWidgetItem simply a subclass of KPageWidgetItem. But that has the problem that KPageWidgetItem expects its mainwidget to be passed in the constructor call, so in constructor code of subclasses right here: KoPageWidgetItem::KoPageWidgetItem(...) : KPageWidgetItem(widget) {...}.
Means, subclasses which would like to be complete page items  setting the widget themselves (like the KoDocumentRdfEditWidget) would have to do some tricks to get their widget already available on call to the baseclass constructor.
Somehow messy.

So decided to just do a quick fix for now, by adding a simple adapter/wrapper class, which makes sure that the KoPageWidgetItem is deleted on destruction and that any calls on the KoPageWidgetItem API after casting will happen actually again.

Hopefully this dialog will be redone in calligra 3.0 (qt5/kf5) properly. Or KoDocumentRdfEditWidget might get a refactoring and things could be done differently, as that is the only calligra-internal page-extension currently.

Okay to also backport to 2.7?</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;">No more crashes happening when semantic items are inserted after the dialog incl. the rdf page was shown & closed</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>libs/main/KoDocumentInfoDlg.cpp <span style="color: grey">(a8466c1)</span></li>

</ul>

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







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








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