Review Request 111686: KPluginFactory macros port

Sebastian Kügler sebas at kde.org
Mon Jul 29 23:16:10 UTC 2013



> On July 25, 2013, 4:33 p.m., David Faure wrote:
> > staging/kservice/src/plugin/kpluginloader.cpp, line 235
> > <http://git.reviewboard.kde.org/r/111686/diff/1/?file=173289#file173289line235>
> >
> >     This relates to my comment in the other review. If what we have is a list with always just one parameter (which is a map), why not pass the map directly in setArgs, rather than a list of maps with one map in the list?
> >     
> >     IOW:  setArgs(QVariantMap).

For this to work, we also need the macro to include the json file. That means that we have to introduce a new DECLARATION (temp-)macro to allow passing in a .json file. I was planning to put this ahead, and get this merged first, but as we need a coherent solution for the whole chain, a new version of the patch will add this macro as well, and then we can synchronize it also with the KPluginInfo ctor patch. I'm working on these changes right now, then I'll look into how the layout of the arguments passed around should look like.


- Sebastian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111686/#review36497
-----------------------------------------------------------


On July 25, 2013, 4:10 p.m., Sebastian Kügler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111686/
> -----------------------------------------------------------
> 
> (Updated July 25, 2013, 4:10 p.m.)
> 
> 
> Review request for KDE Frameworks and David Faure.
> 
> 
> Description
> -------
> 
> Make K_EXPORT_PLUGIN work with Qt's new plugin system
> 
> This patch changes the K_EXPORT_MACRO and the class it generates to be compatible with Qt's new plugin / metadata system. It basically replaces the old macros around q_plugin_instance with the new ones, using Q_INTERFACES. There's also a setter for the args, which are used to pass metadata into the plugin.
> 
> Otherwise, this is the minimal change, to make old plugin factories work atop the new framework.
> 
> This change is source-compatible, but the right .moc file when this macro is used from the .cpp file.
> 
> 
> Diffs
> -----
> 
>   staging/kservice/src/plugin/kexportplugin.h cc5d58b 
>   staging/kservice/src/plugin/kpluginfactory.h a5ea21b 
>   staging/kservice/src/plugin/kpluginfactory.cpp 6bd2350 
>   staging/kservice/src/plugin/kpluginfactory_p.h 09fcfe4 
>   staging/kservice/src/plugin/kpluginloader.cpp 945c75b 
> 
> Diff: http://git.reviewboard.kde.org/r/111686/diff/
> 
> 
> Testing
> -------
> 
> Loaded plugins using KService, KPluginLoader, QPluginLoader and Plasma::PluginLoader, all work as expected.
> 
> 
> Thanks,
> 
> Sebastian Kügler
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20130729/3f80353e/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list