As discussed in https://mail.kde.org/pipermail/plasma-devel/2020-August/118263.html we agreed that requiring C++17 in Plasma is fine.
There's no code that actually uses C++17 features yet, but specifying the requirement anyway has advantages.
1) It documents the policy in a much more discoverable place than a wiki page or similar could do
2) Building in 17 mode allows the compiler to do some stuff implicitly, like guranteed copy elision
We currently need the lookandfeel and style kcm in plasma-workspace, but
appearantly they depend on the krdb so best solution is to move all kcms
together
They are taken from plasma-desktop at the commit :
8447c08e878ccbde9c5516ba8a912993ea199cb9
"Show" vs "Show always" is technically precise, but awkward in practice,
and I don't think the distinction is helpful. People are accustomed to
media controls appearing on demand, so I think we can safely put it in a
group with the label "Show".
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.
There's no point in keeping the search text if you're clearing all
entries, since doing that removes all data that the search field would
be searching through.
Otherwise if you search for some text and it produces no results, the
search field becomes disabled so you can't change or clear your search
and use the applet again!
This option is just too nerdy to show a UI for. We keep the logic for it
in the code (it's just two lines) but it's now only available for people
who know about this and manually add "popupOnNewDevice=false" to their
plasma-org.kde.plasma.desktop-appletsrc file.
This prevents the applet from being too cluttered with options with the
new design.
Right now the Device Notifier applet has two settings: what kind of
devices to show, and whether or not to open on new device attachment.
My sense is that nobody knows that these options exist because they're
hidden away in a config window that you can only access by
right-clicking on the item in the system tray.
Furthermore, the setting for what kind of devices to show is more useful
than we give it credit for; when set to "All devices", the applet functions
as an always-visible way to access all of the machine's disks. This is
quite handy.
Accordingly, this commit removes the config window and moves all of the
settings into the main UI of the applet using PlasmoidHeaders--one
header and one footer, exactly like the plasma-pa applet.
With this change, the "Show all devices" feature becomes discoverable:
when you plug in a flash drive or whatever, the applet will pop open,
showing you the combobox that chooses what it will display. In this moment,
you can notice it, play with it, and configure it to show all devices if
you'd like.
Accordingly again, the name of the applet is renamed to "Disks &
Devices" since "Device Notifier" is not an accurate name. It was only
ever accurate when using the applet's default settings, and now that
non-default settings are made more discoverable, it feels appropriate
to give it a more generally appropriate name.
This was previously done in the component itself, but that was removed
in 711789908b0c6c0f76597596d567fba4ae9151ca (plasma-framework). For the
most part, buttons look better without the old minimum width, but these
buttons here relied on that behavior and do in fact look better with it.
So let's set it manually on these buttons.