plasma-frameworks has several parts:
2 C++ libraries
1 C++ plugin
a bunch of QML imports
Main C++ library
libplasma
it has 3 functionally separated parts:
Loading of the desktop layout: Corona, Containment and applet
DataEngine loading:DateEngine, DataContainer, DataengineConsumer, ServiceJob: The biggest offender for raising the tier
Theme stuff: Svg rendering: Svg and FrameSVG. Plasma::Theme for colors loading
Second C++ library
libplasmaquick
QML specific stuff: almost exclusively QQuickViews subclasses:
- Containmentview: base for panels and desktops windows
- ConfingView: configdialog: we should have some other framework for qml config dialogs-> future discussion
- ConfigModel: implementation detail of config dialogs, see above
- Dialog: all the popups, very problematic implementation
- AppletQuickItem: loads with kpackage the qml of the plasmoid
- Plugin **
AppletInterface: Appletquickitem is the main interface to qml: it's both plasmoid.* and Plasmoid.*
ContainmentInterface, the appletinterface for contaiments
Wallpaperinterface: same thing for wallpapers
Appeltinterface properties and slot should be exposed directly in libplasma Applet
Loading of the desktop layout: only part that stays in libplasma:
Dataengines -> library to be moved in workspace mostly as a porting aid: dataengines should become QML imports
Theming: SVG themes: separate tier2 framework (2 because of kimagecache) also Plasma::Theme for stylesheet coloring which should be replaced by Kirigami::Theme
From the KF6 meeting: Most of this is very Plasma-specific and not necessarily related to the other frameworks.
plasma-framework is not necessarily a blocker for a KF6 release, we can release without it and ship it whenever Plasma 6 is ready