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