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









<div>




<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/101251/diff/3/?file=15592#file15592line110" style="color: black; font-weight: bold; text-decoration: underline;">plasma/pluginloader.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </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; ">Applet *PluginLoader::loadApplet(const QString &amp;name, uint appletId, const QVariantList &amp;args)</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">110</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="o">!</span><span class="n">offer</span><span class="o">-&gt;</span><span class="n">property</span><span class="p">(</span><span class="s">&quot;X-Plasma-ConfigApplet&quot;</span><span class="p">).</span><span class="n">toString</span><span class="p">().</span><span class="n">isEmpty</span><span class="p">())</span> <span class="p">{</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">coding style: &#39;if (&#39; not &#39;if(&#39; 

same for all lines that follow in this patch.</pre>
</div>
<br />

<div>




<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/101251/diff/3/?file=15592#file15592line119" style="color: black; font-weight: bold; text-decoration: underline;">plasma/pluginloader.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </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; ">Applet *PluginLoader::loadApplet(const QString &amp;name, uint appletId, const QVariantList &amp;args)</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">119</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">KConfig</span> <span class="n">desktop</span><span class="p">(</span><span class="n">offer</span><span class="o">-&gt;</span><span class="n">entryPath</span><span class="p">(),</span> <span class="n">KConfig</span><span class="o">::</span><span class="n">CascadeConfig</span><span class="p">,</span> <span class="s">&quot;services&quot;</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">config does not need to cascade. you only need a KSimpleConfig here</pre>
</div>
<br />

<div>




<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/101251/diff/3/?file=15592#file15592line121" style="color: black; font-weight: bold; text-decoration: underline;">plasma/pluginloader.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 3)

    </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; ">Applet *PluginLoader::loadApplet(const QString &amp;name, uint appletId, const QVariantList &amp;args)</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">121</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">KConfigGroup</span> <span class="n">config</span> <span class="o">=</span> <span class="n">applet</span><span class="o">-&gt;</span><span class="n">config</span><span class="p">();</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">applet-&gt;config() probably does not return the actual config group, but a temporary group that gets migrated later. i assume this works (and that you have test it :). this would be overly easy to break, however.

as a result, i&#39;d like to see an automated test in kdelibs/plasma/tests/ that tests this mechanism, otherwise it will be far too easy for it to break accidentally leaving all widgets that use it non-operational.</pre>
</div>
<br />



<p>- Aaron J.</p>


<br />
<p>On April 29th, 2011, 1:09 a.m., David Palacio 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 Plasma.</div>
<div>By David Palacio.</div>


<p style="color: grey;"><i>Updated April 29, 2011, 1:09 a.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;">There is some code duplication in that some plasmoids share very much of program logic but actually differ in just a setting. E.g. the recently made ShowActivityManager plasmoid, which just is a DBus call launcher. The Icon plasmoid is an example of this made right. I&#39;d like to have more generic plasmoids. Even better, I&#39;d like to have an easy way to configure them.                                                                                                                                                                                            
                                                                                                                                                                                                           
Let&#39;s see the code. config.patch shows a way to load a config metadata file and fill a designated plasmoid with the configuration data (metadata.desktop). We search for a X-Plasma-ConfigApplet property that defines the plasmoid to configure and load. Additional properties define the plasmoid settings. This allows us, for example, to easily provide access to any webservice without code duplication.                                                                                                                                                        </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;">Loading of plasmoids works.

Testcase: Install these widgets:
http://kde-look.org/content/show.php/Label?content=99881
http://kde-look.org/content/show.php?content=141270

Add configlabel to desktop.</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>plasma/data/servicetypes/plasma-applet.desktop <span style="color: grey">(8fabddb)</span></li>

 <li>plasma/pluginloader.cpp <span style="color: grey">(e57cac5)</span></li>

</ul>

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




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








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