Hi<br><br><span style="font-family:Prelude, Verdana, san-serif;">+1, that all makes sense to me, and sounds like a Good Thing.<br><br>R<br><br></span><span id="signature"><div style="font-family: arial, sans-serif; font-size: 12px;color: #999999;">--<br>Ryan Rix&nbsp;<a href="http://rix.Si" type="url">http://rix.Si</a><br><a href="http://opensource.com" type="url">http://opensource.com</a>&nbsp;: Where Open Source multiplies</div><br></span><span style="color:navy; font-family:Prelude, Verdana, san-serif; "><hr align="left" style="width:75%">On Jul 15, 2011 4:27, Aaron J. Seigo &lt;aseigo@kde.org&gt; wrote: <br><br></span>hi... <br> <br>so, we have the PluginLoader class now which is there to allow extending the  <br>loading of plugins by the application. <br> <br>there are methods like: PluginLoader::loadApplet and PluginLoader::loadPackage <br> <br>these are generally only used by the internals of classes like Applet::load,  <br>which is currently this: <br> <br>Applet *Applet::load(const QString &amp;appletName, uint appletId, const  <br>QVariantList &amp;args) <br>{ <br>    return PluginLoader::pluginLoader()-&gt;loadApplet(appletName, appletId,  <br>args); <br>} <br> <br>not much to it, is there? :) <br> <br>this is the same for AbstractRunner::load, Package::load, and on and on .. <br> <br>the one exception to this pattern is DataEngineManager, which does some  <br>internal bookkeeping around the PluginLoader method. that may be going away,  <br>however, in libplasma2 if we manage to get reference counted implicitly shared  <br>DataEngines. <br> <br>anyways.. the thing i'm contemplating is this: <br> <br>Removing all the "load(..)" methods from the classes, and instead have  <br>everything use PluginManager directly. <br> <br>pros: <br>  * fewer methods in general in the API, particularly ones that plugin writers  <br>don't care about <br>  * it follows the pattern now done with Package which handles all package  <br>loading instead of per-class API for that (in fact, it goes one better:  <br>Package::load would also disappeaer) <br>  * consistent way for loading plugins: use PluginLoader <br> <br>cons: <br>  * code like Applet::load becomes PluginLoader::self()-&gt;loadApplet. in other  <br>words, rather more verbose. i could change PluginLoader to instead of "having  <br>loadApplet" or "loadDataEngine" just "applet" and "dataEngine" <br> <br>thoughts? <br> <br>--  <br>Aaron J. Seigo <br>humru othro a kohnu se <br>GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43 <br> <br>KDE core developer sponsored by Qt Development Frameworks <br>