On dimanche 8 octobre 2017 15:22:00 CEST Mark Gaiser wrote: > But then i still miss one rather important detail that i can't really find > anywhere.. > Lets say I have that module and call it "tags2" (as Baloo already has tags, > therefore tags2 to prevent naming issues). > > So i make a dbus service file named: > Name=org.kde.tags2 > > And in the "tags2.json" i put: > > { > "KPlugin": { > "Description": "Put tags on files and folders.", > "Name": "Tags 2", > "ServiceTypes": [ > "KDEDModule" > ] > }, > > "X-KDE-DBus-ModuleName": "tags2", > "X-KDE-DBus-ServiceName": "org.kde.tags2" > } > > What do i do in the client side code to start this module?
You just make a DBus call to the service org.kde.tags, with object path /modules/tags2. That will start kiod if needed, load the module, and make the call. The best solution for this is with type safety rather than without, i.e. generating C++ from the DBus xml file. See e.g. kio/core/kpasswdserverclient.cpp which makes calls to the kiod kpasswdserver module using the generated OrgKdeKPasswdServerInterface class. qt5_add_dbus_interface() is the cmake function for doing that. > That "client side" can be an IO slave, but it can also be some special Tags > helper classes to create a new tag name with description and icon or such. Sure, anyone can make dbus calls. > I need to call something to trigger KIOD to start this module, but i can't > figure out what. > > How do i see qCDebug output from kiod plugins anyhow? In ~/.xsession-errors, or by killing kiod and restarting it in a terminal. -- David Faure, fa...@kde.org, http://www.davidfaure.fr Working on KDE Frameworks 5