The wallpaper infrastructure sutures multiple form layouts.
The image wallpaper adds its own Positioning combobox, but the combobox's width does not match that of the two comboboxes right above it.
This patch makes the Positioning combobox as wide as the other two by resuing code already present in ConfigurationContainmentAppearance.qml.
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done`
This adds a small cli helper tool which allows you to list what Plasma
themes are available on the system (and which is the current one), as
well as letting you set a theme as the current. It handles being passed
a full path to the theme, though when that happens it just uses the last
bit of the path as the name of the theme.
The latter part allows it to be used by KNewStuff as an adoption
command, and the changes to the knsrc file makes that happen. There is
also a small change which fixes a discrepancy in the naming of the
Plasma Themes dialog, making it consistent with everywhere else that
references Plasma Themes (not sure why they were called styles here,
guessing a really old copy/paste thing).
Additionally, a similar tool for the color and cursor KCMs are also added by
this patch, and the lookandfeeltool binary built by the global themes kcm is
also modified slightly to accept a full path to a package, and added as
an adoption command for those.
The patch also adds a tool which sets wallpapers, which replaces the
failure-prone dbus command previously used as the kns adoption command.
Prior to this change, the use commands would fail if the wallpaper
download payload had a space in the filename (caused, paradoxically, by
the method used to ensure the payload is escaped for shell use).
This patch introduces a new knsrc for wallpapers that's supposed to be
used for mobile devices. While many of the existing wallpapers on the
store do work for mobile use, a great many of them only focus on desktop
style form factors, and since there's mobile-focused categories on the
store now, we probably want to make use of that.
This makes it look better with the change to Kirigami.SwipeListItem to
make the actions always visible on the desktop, and in the process fixes
a binding loop and some minor visual glitches.
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.
Qt 5.15 introduced new syntax for defining Connections. Fix warnings like this one:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
They work, but they weren't marked as such. Now you can drad-and-drop
images of these types onto the desktop to get the correct drop menu.
BUG: 426379
FIXED-IN: 5.20