Allow applets to have empty json metadata & use KPackage's metadata instead
This way we do not embed the json metadata in the plugins and can avoid the parsing of it at runtime. The plugin id from KPackage metadata must correspond to the plugin filename. Because we often use the reverse domain notation, frameworks/kcoreaddons!202 is needed for correctly deriving the id. In KF6 we can enforce this naming convention and thus get rid of the startup cache. This would further optimize the plugin loading, because we only need to load the libraries that we actually want to create plugins from. Task: https://phabricator.kde.org/T14757
-
@alex I think this caused https://bugs.kde.org/show_bug.cgi?id=454004 (and the numerous duplicates). From what I can tell, this:
if (factory->metaData().rawData().isEmpty()) { factory->setMetaData(p.metadata()); }
means that the package metadata is used, which means our applet ID ends up being "org.kde.plasma.systemmonitor.memory" instead of "org.kde.plasma.systemmonitor" which is the parent plugin. When that plugin ID is then written to config, the preset is being loaded every time Plasma starts instead of only once.
-
mentioned in commit plasma-workspace@d4abf0ed
-
mentioned in merge request plasma-workspace!1994 (merged)
-
When that plugin ID is then written to config, the preset is being loaded every time Plasma starts instead of only once.
I do not quite understand the parts where the presets are loaded. plasma-workspace!1994 (merged) Should take care of the plugin id being set to the parent value.
-
mentioned in commit plasma-workspace@262bf0af
-
mentioned in commit plasma-workspace@e64c1372