<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/107517/">http://git.reviewboard.kde.org/r/107517/</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 Calligra and C. Boemann.</div>
<div>By Friedrich W. H. Kossebau.</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;">The constructor of KoSemanticStylesheet is protected, possibly to control who can create system stylesheets or user stylesheets.

Subclasses of KoRdfSemanticItem need to implement the abstract virtual "QList<hKoSemanticStylesheet> KoRdfSemanticItem::stylesheets() const", where they create the default system KoSemanticStylesheet. Having no stylesheet at all fails e.g. in KoRdfSemanticItem::defaultStylesheet() which assumes some ("Q_ASSERT(ret);"). And setting at least a user stylesheet as workaround seems to fail in other parts, where at least one system stylesheet is wanted, and still is a workaround.
Currently only the three subclasses of KoRdfSemanticItem which are part of Calligra libs can do that, create system stylesheets, because they are listed as friend classes for KoSemanticStylesheet and only because of that can use its constructor. 3rd-party subclasses can not. 

Attached patch changes that, by adding a protected helper method to KoRdfSemanticItem which enables all subclasses of it to create their system stylesheets as wanted. It also changes the subclasses which are part of Calligra libs to use this method, to show 3rd-party coders how to do it and also ensure a single way to create system stylesheets, for consistency and reducing exceptions and the need for friend class declarations.

Okay to apply to 2.6 and master?</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;">Enables to fix a crash introduced by 3rd-party code not being able to properly implement KoRdfSemanticItem::stylesheets(), runs fine now.</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/rdf/KoRdfCalendarEvent.cpp <span style="color: grey">(d7b6417)</span></li>

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

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

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

 <li>libs/main/rdf/KoRdfSemanticItem.cpp <span style="color: grey">(64ef7c3)</span></li>

 <li>libs/main/rdf/KoSemanticStylesheet.h <span style="color: grey">(958f1d4)</span></li>

</ul>

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




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




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