D28765: KSettings::Dialog: add support for KPluginInfos without a KService
David Faure
noreply at phabricator.kde.org
Sun Apr 12 00:16:02 BST 2020
dfaure created this revision.
dfaure added reviewers: pino, broulik, mart, davidedmundson.
Herald added a project: Frameworks.
Herald added a subscriber: kde-frameworks-devel.
dfaure requested review of this revision.
REVISION SUMMARY
KPluginInfo evolved into an abstraction over old-style plugins
(KService i.e. desktop files) and new-style plugins with JSON
(KPluginMetaData/KPluginLoader).
When porting kontact to new-style plugins, I hit the issue that
KSettings::Dialog has a code path that creates a 'fake' KCM module
just to get a checkable item in the config dialog. That fake module
was using the plugininfo's KService, which was null, into the KCModuleInfo.
So I added support for metadata-based plugins to KCModuleInfo.
But rather than using KPluginMetaData and then turning KCModuleInfo into
yet another abstraction over old and new, I just used KPluginInfo in
there. One can still create a KCModuleInfo from a KService, but
internally it'll use a KPluginInfo. This makes KCModuleInfo::service()
dangerous now though, it can be null [but only in apps that start passing
new-style KPluginInfos, so not in systemsettings5 yet].
This commits ports kcmutils away from it as much as possible.
TEST PLAN
kontact's configuration dialog works (with and without my
not-yet-committed port to KPluginLoader). systemsettings5 still works.
konqueror's configuration dialog still works.
REPOSITORY
R295 KCMUtils
BRANCH
master
REVISION DETAIL
https://phabricator.kde.org/D28765
AFFECTED FILES
src/kcmoduleinfo.cpp
src/kcmoduleinfo.h
src/kcmoduleloader.cpp
src/kcmultidialog.cpp
src/kpluginselector.cpp
src/ksettings/dialog.cpp
To: dfaure, pino, broulik, mart, davidedmundson
Cc: kde-frameworks-devel, LeGast00n, cblack, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20200411/8c6738a3/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list