The behavior may cause unexpected results when the user spam press Del
in order to delete all characters in the search field, and find that
all items in the list are deleted.
It also causes pressing Del in the search field not deleting the fully
selected text.
BUG: 448738
BUG: 448739
PlasmoidPopupsContainer.qml has special code to handle merging headers
from applets if those applets use a PlasmaComponents3.Page instance as
their FullRepresentation. However this breaks for any applets that use
PlasmaExtras.Representation, which is a subclass of it that we have been
porting applets to over time, because it offers more features in a
single location. This caused the detection to break, so such applets
woudl have their headers improperly merged.
Explicitly detecting the use of PlasmaExtras.Representation as well
fixes it.
BUG: 438178
FIXED-IN: 5.24
No more one/many hints discrimination. They can all live happy together,
under single Repeater, using model directly. When the model will
migrate to a real Qt AbstractModel subclass (e.g. QML ListModel),
delegate's properties code will need to be adjusted again though.
Pass down laptop's lid action inhibition all the way from the top-level
file to reduce dependency on sketchy context properties and make
components more self-contained.
"Fix" as in "repair and make it right". This commit actually makes
header dynamic as it was always supposed to be. Wrongly fixed height
with dummy empty padding at the bottom was the result of incorrectly
applied anchors within Container[1]'s contentChildren.
[1]: PlasmoidHeading is a TabBar which inherits from Container and Control.
Technically it doesn't matter, since they are mutually exclusive anyway.
But for the upcoming refactoring it will be a bit easier to see what's
going on if they'll be close to each other.
Typically we have properties on top, then functions, then signal
handlers, then child items, then the onCompleted: block. The Battery
Monitor didn't conform to that, so this commit makes it do so. There are
no actual code changes; stuff is simply moved around for greater clarity
and style standardization.
f9e39815d ("applets/batterymonitor: Improve for desktop systems") changed the
plasmoid to use a plain icon instead of the CompactRepresentation if there are
no batteries.
While 471cc3745 ("applets/batterymonitor: fix CompactRepresentation") brought
the use of the CompactRepresentation back, the plain icon is still used.
For the case that there are no batteries and brightness controls available,
it fell back to "battery", which has no symbolic variant. Change that to use
the symbolic "video-display-brightness" as well.
BUG: 448520
When you unmount a device using the UI, the device shows a message
saying, "Removing..." This message remains visible as long as the device
is still processing file move or copy operations due to the use of async
file IO. The device is not yet safe to unplug as long as the message is
visible, but this is not obvious from the UI. As a result, it is
possible for people to think it's stuck and unplug it anyway, causing
data loss.
This commit attempts to address that by showing a different message when
the unmount takes more than one second, which tells the user what is
actually happening and explicitly asks them not to unplug it yet.
This reverts commit 354f7da871.
Somehow it prevents inhibitions from being visible in the UI. Since the
reason is not yet understood, let's revert for now to prevent releasing
a regression while we investigate.
CCMAIL: me@ratijas.tk
In the process, the onWheel handler is moved up to the main file so that
it gains write access to the screenBrightness property. This is how
other scrollable applets handle the same situation.
In the CompactRepresentation, we can use existing top-level properties
instead of defining and redefining a bunch of new properties at
various levels, which makes the code harder to read and more indirect.
In Wayland session data sources for modifier keys might be unavailable,
in which case the whole `source.data.Alt` is undefined. Standard
JavaScript try-catch didn't help much, because short-circuiting
operator && simply returns left-hand-side `undefined` value which is
falsy. It used to spam error messages to a console at a rate
proportional to the number of top-level menu items:
file:///usr/share/plasma/plasmoids/org.kde.plasma.appmenu/contents/ui/main.qml:112:17:
Unable to assign [undefined] to bool
Amends 156415f377
f9e39815dc introduced a few regressions by
blowing away the custom CompactRepresentation when there are no
batteries. This introduced a race condition that sometimes set the icon
incorrectly and also broke scrolling on the applet to change the volume.
This commit fixes those issues by using the existing infrastructure for
the CompactPepresentation, but simply swapping out its custom battery
icon for normal icon when there are no batteries.
It was nuked years ago, so the id does not exist any longer, and
generated a runtime error like this:
file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/CompactRepresentation.qml:132:
ReferenceError: jobProgressItem is not defined
Amends da86d1e40a
Outside of tablet mode, you don't need a virtual keyboard except for the
extremely niche case of not having a physical keyboard plugged into a
desktop machine. For all other use cases, the tray item to show and
hide the virtual keyboard is an annoyance when you're not in tablet
mode, so let's demote it to the expanded popup to save space in the
System Tray and make its contents more contextually relevant.
Normally we don't use Kirigami in applets, so this might on its face
seem odd, but it's there for a reason, so add a comment explaining why.
GIT_SILENT
the filtermodel only sorts by timestamp of the device, not the actual
types we visualize so you can conceivably have sections appear multiple
times
```
Drives
--------
/dev/sdc
Media Player
------------
/usb/123
Drives
-------
/dev/sdd
```
a device without StorageAccess cannot be mounted, so do not show the
mount default action for it, instead use the file manager action (with
the assumption that the trigger actually knows what to do with it, which
chances are it does not because we ignore the predicate system for some
reason - I've recorded a todo about that)
when then triggering the default action we check if the device supports
MTP and if so run the MTP predicate instead of the openin predicate
the end result is that phones with only MTP actually open via mtp://
They both say the same thing, but the "broken battery" message is more
descriptive and actionable, so we can show only that.
BUG: 442906
FIXED-IN: 5.24
As it was so far, it looked like the system was malfunctioning because
we were showing a battery with a big fat red mark. If there's no battery
we can show the default icon.
As for the name, we only say "battery and brightness" when there's
both of them. Otherwise we show either title.
If neither batteries nor brightness are available, we mark the applet as
passive so people can at least still access the power management blocking
checkbox which lives here.
BUG: 415073
FIXED-IN: 5.24