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