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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 11th, 2013, 4 a.m. UTC, <b>Friedrich W. H. Kossebau</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/111990/diff/1/?file=177787#file177787line38" style="color: black; font-weight: bold; text-decoration: underline;">braindump/plugins/quickstates/BraindumpQuickStatesPlugin.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

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



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">38</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">BraindumpQuickStatesPlugin</span><span class="o">::</span><span class="n">BraindumpQuickStatesPlugin</span><span class="p">(</span><span class="n">QObject</span> <span class="o">*</span><span class="n">parent</span><span class="p">,</span> <span class="k">const</span> <span class="n">QStringList</span> <span class="o">&</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">38</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">BraindumpQuickStatesPlugin</span><span class="o">::</span><span class="n">BraindumpQuickStatesPlugin</span><span class="p">(</span><span class="n">QObject</span> <span class="err">*<span class="hl">/</span></span><span class="o"><span class="hl">*</span></span><span class="n">parent</span><span class="err"><span class="hl">*/</span></span><span class="p">,</span> <span class="k">const</span> <span class="n">QStringList</span> <span class="o">&</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;">No forward-passing of the parent object to the QObject?
I wonder who is supposed to do memory management of that plugin, if not the parent, which is the View object, as passed in View::loadExtensions() to 
service->createInstance<QObject>(this, QVariantList(), &error))?

The insertChildClient(...) call does not result in memory parentship, if that was assumed here.</pre>
 </blockquote>



 <p>On August 11th, 2013, 8:11 a.m. UTC, <b>C. Boemann</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;">plugins live as long as the application. I don't see any need for specific lifetime handling</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;">Not asking for specific lifetime handling, but at least any. Now there is none at all.
Difference to the application is that the plugins are not cleanly shutdown now. Or do we exit the application also only with exit() ? :)
So any external resources might not be freed properly (e.g. temporary files or maybe even X resources). Or configurations not made persistent if done/triggered in the destructor.
Not shutting down the plugins on application shut-down is asking for troubles.</pre>
<br />




<p>- Friedrich W. H.</p>


<br />
<p>On August 10th, 2013, 1:36 p.m. UTC, Boudewijn Rempt 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.</div>
<div>By Boudewijn Rempt.</div>


<p style="color: grey;"><i>Updated Aug. 10, 2013, 1:36 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;">This is a small part of my MVC refactoring branch -- the plugin cleanup. For historical reasons, many of Calligra's plugins were created as kparts, while they are, in fact, only kxmlguiclients, not parts at at all. This patch cleans that up.</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/plugins/quickstates/BraindumpQuickStatesPlugin.h <span style="color: grey">(b9625b0)</span></li>

 <li>braindump/plugins/quickstates/BraindumpQuickStatesPlugin.cpp <span style="color: grey">(bc27946)</span></li>

 <li>braindump/src/View.cpp <span style="color: grey">(ef19171)</span></li>

 <li>devtools/cstester/cstester.cpp <span style="color: grey">(b88619b)</span></li>

 <li>extras/okularodpgenerator/OkularOdpGenerator.cpp <span style="color: grey">(94650bf)</span></li>

 <li>karbon/data/CMakeLists.txt <span style="color: grey">(6b1e329)</span></li>

 <li>karbon/data/karbon_module.desktop <span style="color: grey">(7acc680)</span></li>

 <li>karbon/data/karbon_plugin.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>karbon/plugins/flattenpath/CMakeLists.txt <span style="color: grey">(f83620b)</span></li>

 <li>karbon/plugins/flattenpath/FlattenPathPlugin.h <span style="color: grey">(622973c)</span></li>

 <li>karbon/plugins/flattenpath/FlattenPathPlugin.cpp <span style="color: grey">(d03ccca)</span></li>

 <li>karbon/plugins/flattenpath/karbonflattenpath.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>karbon/plugins/refinepath/CMakeLists.txt <span style="color: grey">(caf6aa7)</span></li>

 <li>karbon/plugins/refinepath/RefinePathPlugin.h <span style="color: grey">(be16e29)</span></li>

 <li>karbon/plugins/refinepath/RefinePathPlugin.cpp <span style="color: grey">(b951adc)</span></li>

 <li>karbon/plugins/refinepath/karbonrefinepath.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>karbon/plugins/roundcorners/CMakeLists.txt <span style="color: grey">(82b7159)</span></li>

 <li>karbon/plugins/roundcorners/RoundCornersPlugin.h <span style="color: grey">(5cd610a)</span></li>

 <li>karbon/plugins/roundcorners/RoundCornersPlugin.cpp <span style="color: grey">(7ac63bf)</span></li>

 <li>karbon/plugins/roundcorners/karbonroundcorners.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>karbon/plugins/whirlpinch/CMakeLists.txt <span style="color: grey">(2e920e2)</span></li>

 <li>karbon/plugins/whirlpinch/WhirlPinchPlugin.h <span style="color: grey">(51280a1)</span></li>

 <li>karbon/plugins/whirlpinch/WhirlPinchPlugin.cpp <span style="color: grey">(94a3527)</span></li>

 <li>karbon/plugins/whirlpinch/karbonwhirlpinch.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>karbon/ui/KarbonFactory.cpp <span style="color: grey">(8bbabbe)</span></li>

 <li>karbon/ui/KarbonView.cpp <span style="color: grey">(068d39d)</span></li>

 <li>karbon/ui/dockers/KarbonLayerDocker.cpp <span style="color: grey">(1cf8395)</span></li>

 <li>krita/plugins/extensions/shiva/shivagenerator.h <span style="color: grey">(55894f4)</span></li>

 <li>krita/plugins/paintops/libbrush/kis_brush_registry.cpp <span style="color: grey">(f54a619)</span></li>

 <li>krita/plugins/paintops/particle/particle_paintop_plugin.h <span style="color: grey">(bd6b245)</span></li>

 <li>krita/ui/kis_factory2.h <span style="color: grey">(888b742)</span></li>

 <li>krita/ui/kis_factory2.cc <span style="color: grey">(b7896e5)</span></li>

 <li>krita/ui/kis_paintop_box.cc <span style="color: grey">(667e6b5)</span></li>

 <li>krita/ui/kis_view2.cpp <span style="color: grey">(6af9f4b)</span></li>

 <li>krita/ui/kis_view_plugin.h <span style="color: grey">(ff19b2a)</span></li>

 <li>krita/ui/kis_view_plugin.cpp <span style="color: grey">(69f5b9d)</span></li>

 <li>libs/kokross/KoScriptingPart.h <span style="color: grey">(4f4c933)</span></li>

 <li>libs/kokross/KoScriptingPart.cpp <span style="color: grey">(09b8cbb)</span></li>

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

 <li>libs/main/CMakeLists.txt <span style="color: grey">(9b8503b)</span></li>

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

 <li>libs/main/KoFactory.h <span style="color: grey">(dc4ada0)</span></li>

 <li>libs/main/KoFactory.cpp <span style="color: grey">(c361a11)</span></li>

 <li>libs/main/KoMainWindow.cpp <span style="color: grey">(12423a7)</span></li>

 <li>libs/main/KoServiceProvider.h <span style="color: grey">(35d603a)</span></li>

 <li>libs/main/KoServiceProvider.cpp <span style="color: grey">(f063401)</span></li>

 <li>libs/main/KoView.h <span style="color: grey">(10b6403)</span></li>

 <li>plan/CMakeLists.txt <span style="color: grey">(4ff06eb)</span></li>

 <li>plan/kptmaindocument.cpp <span style="color: grey">(333310c)</span></li>

 <li>plan/kptview.cpp <span style="color: grey">(537e047)</span></li>

 <li>plan/plan_viewplugin.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plan/plugins/scripting/CMakeLists.txt <span style="color: grey">(836176d)</span></li>

 <li>plan/plugins/scripting/ScriptingPart.cpp <span style="color: grey">(e6d6004)</span></li>

 <li>plan/plugins/scripting/planscripting.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/colorengines/lcms2/LcmsEnginePlugin.h <span style="color: grey">(36a5497)</span></li>

 <li>plugins/staging/pivottables/CMakeLists.txt <span style="color: grey">(efb2753)</span></li>

 <li>plugins/staging/pivottables/pivotplugin.h <span style="color: grey">(17fc384)</span></li>

 <li>plugins/staging/pivottables/pivotplugin.cpp <span style="color: grey">(1bef7d2)</span></li>

 <li>plugins/staging/pivottables/sheetspivottables.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>sheets/CMakeLists.txt <span style="color: grey">(e0f4a02)</span></li>

 <li>sheets/part/View.cpp <span style="color: grey">(0dc055a)</span></li>

 <li>sheets/plugins/scripting/CMakeLists.txt <span style="color: grey">(27e3861)</span></li>

 <li>sheets/plugins/scripting/ScriptingPart.h <span style="color: grey">(ac9e614)</span></li>

 <li>sheets/plugins/scripting/ScriptingPart.cpp <span style="color: grey">(26431b0)</span></li>

 <li>sheets/plugins/scripting/sheetsscripting.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>sheets/plugins/solver/CMakeLists.txt <span style="color: grey">(ad813e6)</span></li>

 <li>sheets/plugins/solver/Solver.h <span style="color: grey">(21ee006)</span></li>

 <li>sheets/plugins/solver/Solver.cpp <span style="color: grey">(c87639e)</span></li>

 <li>sheets/plugins/solver/sheetssolver.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>sheets/sheets_viewplugin.desktop <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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







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








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