It was used to show the KNS dialog to download
wallpaper plugins. But nowadays we can and should
just use the QML components provided by KNewStuff directly.
All occurency in plasma-desktop, plasma-bigscreen and
plasma-nano have open MRs to port away from it (or just remove the import).
Considerations:
* In any point of time, the only layout info client might need is about:
- a single layout (the current one)
- list of all layouts configured (e.g to fill context menu entries)
There is no chance it might need to asqure some random layout info
which is not current.
* To get current layout Display Name, client shouldn't have to asqure
the current layout itself first - such dependecy makes code based on
async DBus API unnecessary complicated.
* Shall the layouts context menu be ever desired, it would be easy to
implement by adding both Name lists (Short/Long) and Index getters to
the API.
KWin/P-D parts:
impr: Keyboard Layout DBus API: drop excessive method arguments
No need to reimplement switching to the next layout logic in every QML
code - implemenation is already there on KWin/P-D side
KWin/P-D parts:
impr: Keyboard Layout DBus API: expose switchToNextLayout() method
KWin Wayland initially misused the DBus API and passed Long layout Name
via currentLayoutDisplayName() method which is wrong.
Instead, the new currentLayoutLongName() property should be added,
and Short Name be passed via currentLayoutDisplayName() as it is for
X11.
When layout changes, the country code (or short layout name) should be passed via DBus
from compositor to this C++ QML plugin, and then to a keyboard applet for
indication
CCBUG: 390079
KWin commit: "feat: expose keyboard layout Short Name via DBus"
We do this sometimes, but not consistenly.
The benefit is twofold.
First it improves the diff when adding new values since no existing line needs to be touched.
Second it prevents clang-format from collapsing the definition into a single line, which is undesired for large enums.
And use KPluginMetaData instead. It's what we get from the PackageLoader anyway.
Unlike KPluginInfo KPluginMetaData supports multiple authors. To keep the current behaviour of the model the code picks the first one and ignores the potential others.
Instead of using KPluginTrader's contraint system pass a filter function to KPackage::PackageLoader.
Also move the later filtering into said filter function.
This method calls doesn't seem to work anymore having been replaced by
the more intuitve virtual paths on the logind over a year ago.
Arguably that's still a bug upstream that GetSessionByPID no longer
works correctly, but we may as well port to the simpler path that avoids
so many layers of indirection.
Use of "/auto" does not exist on old distros so the legacy path is kept.
The paths used in this class were always wrong, which went unnoticed as
this is the first usage of them.
BUG: 423526
This was the last occurrence that didn't get ported/detected.
Because of that the updating did not work and uninstalling
an entry using the "Widget Explorer" did not work.
BUG: 423055
BUG: 424429
FIXED-IN: 5.20
There were three principal sources of errors and warnings:
1. Un-ported `onFooChanged` statements
2. `config.fontSize` being unconditionally referenced from components
without access to it (it comes from the SDDM config)
3. Accessing units from the context property rather than the singleton
All are fixed now. Tested with:
1. `sddm-greeter --test-mode --theme ~/kde/usr/share/sddm/themes/breeze/`
2. `~/kde/usr/lib64/libexec/kscreenlocker_greet --testing --theme ~/kde/src/plasma-workspace/lookandfeel`
3. `/kde/usr/lib64/libexec/ksmserver-logout-greeter --fakearg`
No regressions found.
BUG: 425349
FIXED-IN: 5.20
The existing method was overly complicated given that KPackage can load packages
relative to the default package root. Also it didn't work because QStandardPaths
defaults to LocateFile, not finding any packages.
Currently the applet count is filtered by activity. But for every activity all
applets in all known screens/containments are counted. If a user switches
screens regularly they will see for example that there are 7 instances of the
clock applet even though they have less screens and only one instance in their
current panel(s). This information is not useful to the user because they cannot
interact with the not visible applets in any way.