"get hot new stuff" button

Martijn Klingens klingens at kde.org
Sat Jun 22 01:46:46 BST 2002


On Friday 21 June 2002 08:02, David Faure wrote:
> On Thursday 20 June 2002 23:56, Cornelius Schumacher wrote:
> > By the way, how many different plugin loading frameworks do we have in
> > KDE?
>
> Only one and it's called KLibLoader+KTrader ;)
>
> What's missing as a common solution is a way to enable/disable plugins,
> including a listview with checkboxes for the GUI part of it - Matthias
> Kretz is working on it.

To pick a possible use case from noatun (probably fake, I don't know the code, 
but it's along the way I'm thinking for a number of potential projects and 
understandable for everyone): does the current code handle the case where 
visualization plugin Foo and visualization plugin Bar both require the 
visualization API plugin? Or the visualization DCOP bindings plugin for that 
matter?

The following sub-cases can be refined from that:
1. The visualization API plugin itself is useless without a plugin 
implementing the API, so it should not appear as selectable in the GUI, but 
rather be hidden. A simple flag in the .desktop file should probably do it.

2. The visualization API plugin is required by the implementing plugins and 
should hence be loaded automatically when one of those plugins is loaded and 
unloaded when all of them are unloaded. Some form of refcounting is probably 
needed here, and dependency checking and resolving code. Relying on the os' 
dynamic loader is not possible because plugins are not in LD_LIBRARY_PATH. 

3. The API plugin provides an API and hence requires an implementation to be 
loaded as well. This sounds redundant given #1, but it is not. A plugin like 
the visualization DCOP bindings, that does implement code (and hence is 
selectable by the user) might extend an API. Selecting this plugin *requires* 
that at least one implementation of the API itself is also available. This 
requires a simple trader mechanism, but I have no idea if KTrader can be used 
'as is' for that or needs refinement.

Maybe it's all there, but I think at least parts of this are missing. Does 
anyone have more info for me here? Again, the example itself is completely 
fake, but the idea is definitely not. I could give you similar use cases for 
Kopete, or for many other programs I would like to see in KDE one day or 
another.

Martijn





More information about the kde-core-devel mailing list