Review Request 123626: port libplasma away from sycoca as much as possible
Marco Martin
notmart at gmail.com
Thu May 7 08:01:18 UTC 2015
> On May 6, 2015, 10:54 p.m., Sebastian Kügler wrote:
> > src/plasma/pluginloader.cpp, line 826
> > <https://git.reviewboard.kde.org/r/123626/diff/4/?file=366900#file366900line826>
> >
> > Why? This remark makes it kinda magical and doesn't provide any other information than "rather don't touch this" which is counter-productive to actually fixing it.
yeah, basically it's due to the KPackage::PackageLoader::self()->addKnownPackageStructure("Plasma/Applet", new PlasmoidPackage());
in the constructor. otherwise it doesn't know what a plasmoid package is. As i said in the addKnownPackageStructure, the solutions for this are either making sure addKnownPackageStructure has been called or making those structures plugins as well.
another solution that would be a bit more clear would be perhaps an accessor for known package structures in kpackageloader, so those self() would become:
if (!KPackage::PackageLoader::self()->packageStructureFor("Plasma/Applet")) {
KPackage::PackageLoader::self()->addKnownPackageStructure("Plasma/Applet", new PlasmoidPackage());
}
other/better api suggestions are welcome
- Marco
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123626/#review79999
-----------------------------------------------------------
On May 6, 2015, 5:21 p.m., Marco Martin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123626/
> -----------------------------------------------------------
>
> (Updated May 6, 2015, 5:21 p.m.)
>
>
> Review request for KDE Frameworks and Plasma.
>
>
> Repository: plasma-framework
>
>
> Description
> -------
>
> this ports most of libplasma away from sycoca, using instead a combination of KPluginLoader and KPackage::PackageLoader instead (so eventually using their own little caches instead of the global sycoca cache)
> a kservicetypetrader call is left in the loading of containmentactions since is the only way to make an older workspace still work, but is only a fallback, so containmentactions in plasma-workspace can be ported eventually as well
>
>
> Diffs
> -----
>
> KF5PlasmaConfig.cmake.in dee79ca
> src/declarativeimports/plasmacomponents/qml/private/TabBarLayout.qml be76a43
> src/plasma/applet.cpp 2dda381
> src/plasma/containment.cpp 7eabbb8
> src/plasma/containmentactions.cpp f24bdac
> src/plasma/dataengine.cpp 4b3d671
> src/plasma/package.cpp 4e0be88
> src/plasma/packagestructure.cpp b2686b6
> src/plasma/pluginloader.cpp 0ce349a
> src/plasma/private/applet_p.cpp 2cbfd06
> src/plasma/private/dataenginemanager.cpp b9c5d8e
> src/plasma/scripting/appletscript.h 863d707
> src/plasma/scripting/dataenginescript.h f7ad3c2
> src/plasma/scripting/scriptengine.cpp cc407e7
> src/plasma/service.h b5d9b5a
> src/plasma/service.cpp 3e9d852
> src/plasmapkg/plasmapkg.cpp d606365
> src/scriptengines/CMakeLists.txt f566406
> src/scriptengines/qml/CMakeLists.txt e7130db
> src/scriptengines/qml/plasmoid/appletinterface.cpp 07ecb3d
> src/scriptengines/qml/plasmoid/containmentinterface.cpp c6986f2
> src/scriptengines/qml/plasmoid/declarativeappletscript.cpp 24c39dd
> src/scriptengines/qml/plasmoid/wallpaperinterface.cpp a406d45
>
> Diff: https://git.reviewboard.kde.org/r/123626/diff/
>
>
> Testing
> -------
>
> still needs a lot of testing, so far, with a master plasma-workspace notmal workspace functions seems fine
>
> latest version still installs metadata files in kservices5. I would keep this for safety until Plasma 5.4 is released, then try to remove it again
>
>
> Thanks,
>
> Marco Martin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20150507/1e1bca21/attachment-0001.html>
More information about the Plasma-devel
mailing list