There's no need to reconstruct the entire menu, when it exists already.
Also shows correct behavior on Wayland because the imported menues have
correct parents compared to the new one.
BUG:438467
When the mouse hovers the appmenu item, the text color should be inverted to the background
color. Before this commit, the text was still the same color as the "REST" state, making it
difficult to recognize.
Instead just set the right focus properties so that we are actually
declaring what we want instead of bypassing all the focus mechanisms.
This also uses Plasmoid.expanded to ensure we reevalute the focus
binding when the applet is reshown so it is in a known state.
We use a checkmark icon for the notifications applet since having no
unread notifications is considered a good thing. In this busy modern
world, having no scheduled events on a particular day can be considered
in the same way, so let's use a checkmark icon here too.
Often, it's hard to gague a numeric 'how much is that' from larger
file transfer jobs, e.g. '150 MB of 7 GB' isn't trivial to guess
a rough percent from. Adding an explicit percentage makes these cases
far easier to gague numerically.
Currently, every time adding a new item, `beginInsertRows` and
`endInsertRows` are called, which is not efficient. Use `beginResetModel`
and `endResetModel` before and after loading history items to avoid
frequently emitting inserted signals.
CCBUG: 450989
Now that we depend on a new enough version of PlaceholderMessage, we can
use its explanation: property to display a subtitle, rather than a child
Label item.
The code is borrowed from the wallpaper: use a StackView to handle
multiple Image instances, and cross-fade between them when the
artwork changes.
BUG: 446862
FIXED-IN: 5.25
We don't have placeholders in any other field in this KCM.
Showing a placeholder is good to show a default value, but showing an
example of what an email address is with an incorrect value doesn't add
anything.
Power profile labels are gone and replaced with only two descriptive
icons, and now there's only one of label at the top of the slider,
which aligns with what `BrightnessItem`s do.
Padding of the header is handled now entirely within the header itself.
By passing the appropriate mask we get NET::Notification instead of NET::Override as type
This results in notifications being not added to the model, which makes sense given they are not tasks
This is a bit more elaborate than a straightforward port, as the old code
already was prone to using dangling string references due to values from
the English language block being out of scope when the reference were used
in the final loop.
So far we were loading the slideshow model right at startup which
iterates through all the backgrounds on the system.
This changes so that it's only created when it's needed, which helps to
remove some startup disk accesses.
It should also give us less background-related warnings at startup as
they won't be all checked immediately.
BUG: 371455
Slider refuses to set a value beyond its end, make sure "to" is up-to-date
before we attempt to set "value".
Position changed may be emitted before Length change was emitted.
Fixes media controller position not being up to date on first open.