This UI control currently has an extremely long tooltip that talks about
a bunch of technical jargon the user is likely to know nothing about,
and also says inaccurate things by mentioning hardware where the DPI is
not automatically detected, when in fact Qt software explicitly avoids
scaling things by DPI in the first place.
BUG: 445647
FIXED-IN: 5.24
Commit f9669af2 introduced a regression with Klipper Actions: it used
truncated text as a source for the action, which resulted in truncated
output.
BUG: 444365
In a recent commit HistoryItem::text() became the visual representation
of the mimedata; often a truncated string.
mimeData()->text() always returns the full value.
BUG: 446441
This is needed to easier implement a drop animation that smoothly animates a dropped plasmoid
from its drag position to its position on the desktop grid.
KSplash is changed to read which theme to use directly. It's already
linking config and it already loads the default shared config implicitly
so we weren't saving anything having it done by the launcher.
On X11 ksplash is still managed by startplasma-x11 as we can do it
straight away.
For wayland we need to wait till kwin is up so this is done either by
plasma-session or systemd. For systemd the unit is started explicitly so
we can parse the config file, but after the target starting kwin is
started so that the "After=" line works correctly.
ksmserver can crash if xwayland goes down, which currently happens
should kwin restart. With the refactoring this means kwin_wayland
restart handling would regress.
Instead we can tie to kwin wrapper on wayland. This closes after a
graceful shutdown as that instructs kwin to quit.
Currently we have a whole daisy-chain of startplasmawayland-> kwin ->
startplasmawaylandsession -> launching the session.
This was needed as we needed environment variables which previously we
only knew after kwin started.
After some kwin refactoring this is no longer the case, and
kwin_wayland_wrapper will sync it's environment variables to the
appropriate startup environments.
This allows us to move starting kwin_wayland to be systemd managed,
brining resource control, alongside it's classic counterpart
plasma-session.
Prevent `TextArea` in SelectableLabel from accepting wheel
events when the notification item is in FullRepresentation,
and pass wheel events to `ListView` in FullRepresentation when the
cursor is over the `TextArea`.
BUG: 443840
FIXED-IN: 5.24
Use a PropertyAnimation instead of an OpacityAnimator, as ActionButton
itself does. This fixes weird animation jumpiness on hover.
BUG: 446021
FIXED-IN: 5.24
When all players are closed, media player applet on the
desktop still shows a track from the last player, and
player control buttons are still clickable but have no effect.
Add a new signal named `playerListEmptied()`. When the proxy list is empty,
the signal is emitted and `m_multiplexer` is scheduled to be deleted, so
the media player applet on the desktop can indicate the right status of
no player opened.
BUG: 446098
FIXED-IN: 5.24
1. placeholderMessage and fallbackIconItem are put in the same Loader and
loaded on demand, and they share the same icon property.
2. When getting "Desktop Icon Name", check if `mpris2Source.currentData` is
available first.
3. Hide the details column when no track is available.
BUG: 444322
BUG: 446095
FIXED-IN: 5.24
When no media player is opened and there is a media player applet on the
desktop, `mpris2Source.currentData` is undefined and plasmashell will
report some TypeErrors.
BUG: 446096
FIXED-IN: 5.24
Qt's foreach is deprecated and should be replaced with modern C++
range-for loops. Const qualifiers are added to variable declarations
and wrapper in std::as_const as required to prevent unnecessary
clones/detach.
Qt's foreach is deprecated and should be replaced with modern C++
range-for loops. Const qualifiers are added to variable declarations
and wrapper in std::as_const as required to prevent unnecessary
clones/detach.
And factored out some duplicated code on the way.
This is for jobs, such as "Loading archive" or "Examining..."
which are purely informational and provide no meaningful
action once finished. When this property is set, a job will
not show a "Finished" notification when finished successfully.
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