However weird that title might sound, a lowercase `component A : B`
syntax allows us internalize any property, and even make it required
for an instantiator to provide. This no longer relies on implicit
scoping of QML.
GIT_SILENT
This is still borken as hell, because x/y were not supposed to work
inside Row/Column anyway.
PlasmaCore.Units.largeSpacing is inconsistent with Kirigami, and
actually equals to gridUnit, and 4 times as big as smallSpacing. So,
the proper replacement for a `largeSpacing / 2` (which also properly
takes care of rounding to an integer) is `smallSpacing * 2`. And the
largeSpacing itself shall be replaced with gridUnit to avoid confusion.
GIT_SILENT
Optimize previous patch that introduced extra margins for the battery's
progress bar in order to make its labels visually match the distance of
brightness sliders on top of it.
This patch moves `referenceSlider` property to the root component of
BatteryItem.qml, so that an existing item can be passed from the
outside. It keeps the default value there just in case, but it won't be
instantiated by QML engine when the property is overriden at component
declaration. (Note: this won't be true if the slider had an id set.)
Since we are defining some properties on the top-level component, we
might as well move the `extraMargin` here, so that the actual
ProgressBar component now won't have any properties on its own, and
thus QML engine won't create an extra runtime QML type just for it.
Add vertical margins to the battery progress bar, so that the distance
between colored bar and labels on top of it is the same as for the
sliders. This patch bases on assumption that sliders are always thicker
than progress bars, but guards against surprises by clamping from 0.
This also means that custom spacing of the parent ColumnLayout is no
longer needed, as it has only two children, and the equivalent Column
in BrightnessItem also has spacing set to zero.
This is done because QtQuick.Layout types are more convenient to work
with, and to avoid `with: parent.width` kind of boilerplate.
Nested RowLayout does not need Layout.fillWidth property, as that is the
default behavior for nested layout types.
GIT_SILENT
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
It may not be obvious to the user that performance mode is disabled or
degraded as a means of preventing excessive heat generation, so let's be
explicit about that.
Also, let's use less certainty in our description of how the computer
detected that it's sitting on your lap, because this may be inaccurate,
and if we use declarative language, it makes the system seem stupid.
Better to make the system seem wishy-washy than stupid. :)
This makes it a bit easier to see that a profile has been disabled if
the slider happens to be in the middle position, which makes the
different background color of the background to the right of it
difficult to distinguish from the ordinary background color.
Sets the profiles via the wrapped ui in powerdevil if available.
If the performance profile is inhibited, the second half of the slider
will look disabled and it will be impossible to move it to performance.
Co-authored-by: Kai Uwe Broulik <kde@privat.broulik.de>
Right now the applet puts the entries to open the KCM and Energy Info
page in a hamburger menu, while the Configure button opens the applet's
own settings window which has only one item in it. This emphasizes the
less important thing, while de-emphasizing the more important thing.
We can solve this by making the applet's configure button open the KCM
instead of the applet configuration window. This makes the configuration
window inaccessible, so we delete it and move its one setting into the
hamburger menu along with "Show Energy Information". This is okay as
these two are lesser-used settings.
Overall this should make the actions easier to access and use, and more
relevant to the user.
BUG: 407560
FIXED-IN: 5.22
Rounding errors made scrolling behave weirdly for devices supplying very
low scroll delta values. This is fixed now. For non-high resolution devices,
scrolling is now also aligned to 5%, just like the keyboard shortcuts.
BUG: 432331
FIXED-IN: 5.22
The power management inhibition UI is currently somewhat confusing to
users because it's not clear that the checkbox is a local override for
the permanent settings set elsewhere in System Settings.
A good sign that the UI is sub-optimal is that we refer to it as "power
management inhibition" internally and in our developer conversations,
but the UI expresses the opposite: *allowing* power management, not
inhibiting it. This conflicts in the user's mind with the UI in System
Settings that is also expressed in terms of allowing it. It is further
confused by the fact that the message about apps suppressing power
management is phrased in terms of being an temporary override, and that
we also show an unrelated message about the battery charge limit (if set)
in the same place where we're notifying the user about power management
inhibition.
Let's clarify this UI by doing the following:
- Re-word the checkbox's label to emphasize that it's a local override
for the settings that were set elsewhere
- Move the charge level message into the battery item itself, since
that's what it affects
- Slightly re-word the message for when apps are inhibiting power
management to emphasize that power management can be inhibited
automatically by apps in additionto manually by the user
BUG: 435827
FIXED-IN: 5.22
This is generally what we do for other KCMs, and the UX is virtually
unchanged from the current multi-KCM dialog, with the exception of being
able to navigate elsewhere if you want.
BUG: 423761
FIXED-IN: 5.22
There's no point, since it always says "-" and just covers up the icon.
Let's only show the overlay if there are actually any batteries.
BUG: 435890
FIXED-IN: 5.22
We ported units to use the PlasmaCore.Units singleton earlier; now it's
time to do the same thing for PlasmaCore.Theme.
There are no UI changes or regressions detected.