Review Request 108823: Use X-KDE-PluginInfo-Name to identify plugins, not the lib/module name
Friedrich W. H. Kossebau
kossebau at kde.org
Thu Feb 7 00:05:11 GMT 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/108823/
-----------------------------------------------------------
Review request for Calligra and Boudewijn Rempt.
Description
-------
Currently there can be only one plugin per lib/module, because plugins are identified by the name of their lib/module. So plugins which are interacting, like special tools on special shapes, are limited to the published API.
It would more convenient to be able to have multiple plugins in the same lib/module, so they can interact directly without the need to publish their special API. E.g. the TextDocument Inspector uses unpublished API of the text shape. And there is the wish to separate it out to another plugin, to be able to blacklist it for e.g. Krita. Just, that is not possible yet.
As was discussed yesterday it might be also nice to be able to allow the user to configure herself/himself what plugins should be enabled in an app, perhaps even per session (like it can be done in KDevelop).
Attached patch adds a property X-KDE-PluginInfo-Name to all the current Calligra plugin types (except for Calligra/Deferred) and changes KoPluginLoader to use that property to identify the plugins. All plugins' desktop files are accordingly changed, for now by simply setting the X-KDE-PluginInfo-Name value to the name of the library, so no whitelist/blacklist needs to be changed.
X-KDE-PluginInfo-Name was chosen as name of that property, because it is also the property name used with KPluginInfo and thus already wide-spread in use. KPluginInfo also might be used when implementing support for letting the user configure the used plugins.
Diffs
-----
karbon/plugins/dockers/karbondockersplugin.desktop 1bc41b7
flow/plugins/dockers/flowdockersplugin.desktop 351de6f
braindump/plugins/stateshape/stateshape.desktop 1d9bae4
braindump/plugins/webshape/webshape.desktop 8b58530
karbon/plugins/filtereffects/karbonfiltereffects.desktop d728024
karbon/plugins/tools/karbontools.desktop 48736f6
kexi/plugins/shapes/relationdesign/kexirelationdesignshape.desktop 0d4bb8a
krita/plugins/colorspaces/extensions/krita_colorspaces_extensions_plugin.desktop 0148eb2
libs/basicflakes/plugin/basicflakesplugin.desktop a9332ae
libs/flake/Mainpage.dox 5aaa20c
libs/flake/filtereffect.desktop 7531416
libs/flake/flake.desktop f5c7edd
libs/flake/flakeborder.desktop a0b2eb6
libs/flake/flakedevice.desktop c3eb4c2
libs/flake/flakeshape.desktop bc761e7
libs/flake/flaketool.desktop dcafd6a
libs/kopageapp/tools/backgroundTool/kopabackgroundtool.desktop 877c190
libs/koplugin/KoPluginLoader.cpp 7596c08
libs/main/calligradocker.desktop 36bbc72
plugins/artistictextshape/artistictextshape.desktop b723610
plugins/chartshape/chartshape.desktop 8b1baa5
plugins/colorengines/lcms2/colorspaces/gray_u8/calligragrayaplugin.desktop 93fe4a0
plugins/colorengines/lcms2/kolcmsengine.desktop 1b68a82
plugins/commentshape/commentshape.desktop afb12fc
plugins/defaultTools/defaulttools.desktop 520bd42
plugins/dockers/calligradockers.desktop 4ac59bc
plugins/formulashape/formulashape.desktop 67fc72f
plugins/musicshape/musicshape.desktop 8d5cd44
plugins/pathshapes/pathshapes.desktop 856dbf6
plugins/pictureshape/pictureshape.desktop 9084508
plugins/pluginshape/pluginshape.desktop 97edbde
plugins/spacenavigator/spacenavigator.desktop 3c6a217
plugins/staging/templateshape/templateshape.desktop 2d9a145
plugins/staging/threedshape/threedshape.desktop cf45269
plugins/textediting/autocorrection/autocorrect.desktop 3203075
plugins/textediting/changecase/changecase.desktop c20362f
plugins/textediting/spellcheck/spellcheck.desktop 90517d1
plugins/textediting/thesaurus/thesaurustool.desktop 3e37568
plugins/textshape/textshape.desktop 89a585c
plugins/variables/textvariables.desktop 6b7daa1
plugins/vectorshape/vectorshape.desktop c10b7c3
plugins/videoshape/videoshape.desktop 6cfe0b5
sheets/shape/spreadsheetshape.desktop 4e2ebe7
stage/part/tools/animationtool/calligrastagetoolanimation.desktop d0fcee0
stage/plugins/eventactions/calligrastageeventactions.desktop daa58d6
stage/plugins/variable/kprvariables.desktop 7203635
Diff: http://git.reviewboard.kde.org/r/108823/diff/
Testing
-------
Once the sycoca cache is refreshed :) Words and Krita started and loaded all plugins fine. Also blacklisting in Krita the TextDocument inspector (splitting out that into another plugin is not part of this patch, only locally done) worked fine.
Thanks,
Friedrich W. H. Kossebau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130207/e730cd51/attachment.htm>
More information about the calligra-devel
mailing list