This fixes the mismatched default sectionDelegate compared to PlasmaComponents.ListItem,
where it was default false and this was default true.
BUG: 425769
Updated the tests so that you can see if the aspect ratio is correct.
Made an animated transition for when `control.running` is false.
Removed the code that updates the RotationAnimator when control.running changes since it didn't work.
Set padding to 0 (see comment).
BUG: 425504
Rather than duplicating the behaviors in both Button.qml and ToolButton.qml, leading to bugs and inconsistencies, the Button/ToolButton background code is split into separate reusable files. The correct background is used depending on whether or not flat mode is enabled.
BUG: 425174
This reverts commit 7062c635a9bc7186af5d14037ba74cb527bf6386.
Unfortunately, 3rd party themes were still broken after this commit was made because it didn't fix the real issue.
The real issue is that toolbutton-hover is supposed to have margins, but it didn't have real margins due to a previous patch to `button.svg`.
3rd party themes depend on hover and toolbutton-hover being used in inconsistent ways because of past behavior.
Unfortunately, they have to be inconsistent again
to not break themes.
Previously, it was trying to use the margins of toolbutton-hover for flat buttons, but toolbutton-hover doesn't have real margins (0.001 since 0 isn't valid).
BUG: #425255
Non-flat ToolButtons are supposed to have a shadow, but flat ToolButtons
are not. The ternary providing this was inverted so that the reverse was
true.
QQC2 controls gain activeFocus on press this is a difference to controls 1
which had activeFocusOnPress property that defaulted to false. qqc2-desktop-style
also only sets the focus flag if it was gained via keyboard (kquickstyleitem.cpp:705).
BUG:424446
For the following reasons:
- It can break and look bad on Plasma Mobile which uses the Plasma style
- It makes buttons with icons and short text look visually unbalanced
- QStyle and QML desktop style buttons do not do this so it's a source
of inconsistency
Tests are adjusted to all pass. Stuff looks better to my eye.
Fixes common and frequent crashes introduced by 6c627ea044e9e68ccbc9f3ecfc3ae49cb0af0fee.
Otherwise the engine will try to delete it. The docs say:
NOTE: A QObject singleton type instance returned from a singleton type provider
is owned by the QML engine unless the object has explicit
QQmlEngine::CppOwnership flag set.
A lambda can only be converted to a function pointer if it does not capture
anything. Just specifying a default capture even if it does not capture anything,
prevents this. In newer Qt this actually ended up calling the std::function
(which is much heavier than function pointers) overload which was introduced
only after Qt 5.12.
Since a checkbox is a subclass of AbstractButton, it can be given an
icon. QWidgets checkboxes will faithfully display this icon, but
PlasmaComponents3 ones will not. They should. :)
I will submit a similar change for the QQC2 checkbox style
to make them consistent.
The old code calling
qRegisterMetaType<Plasma::T *>("T");
was broken, as it registered for the name "T", not the pointer
type "T*". Things still work though as that registration is also
covered due to
qmlRegisterInterface<Plasma::T>("T");
internally also calling
qRegisterMetaType<Plasma::T *>("T*");
so that in the end "T*" was registered and mapped to the right type.
We should use the normal arrow cursor when a list item is hovered.
The hovered state is depicted with a highlight already, so the hand
cursor is unnecessary and doesn't go well with the rest of the desktop.
The sizes of the context buttons on the list item were being overridden
for no apparent reason. Let's stop doing that so that the button sizes
are consistent with other PC3 button sizes.
Make sure the shadow item--which includes the hover effect, if present--can
be shown when the ToolButton is focused, and also always omit the shadow
when the ToolButton is flat.
Now all of them have a base height of units.gridUnit. Combined with
the standard 6px margins it works out to make all of these controls
a uniform 30px tall with the default Noto Sans 10 font. If the font
is changed or the size is increased, even to absurd levels, all of
them scale evenly.
The PC3 version was missing the clear button and show password button,
which the PC2 version has. This should allow us to port more things to
use the PC3 version.
This changed the name of the types for which the classes where registered
from unnamespaced "Service", "ServiceJob", "DataSource" to the fully
namespaced "Plasma::Service", "Plasma::ServiceJob", "Plasma::DataSource",
so making the old names no longer known to the system and thus breaking
support for any invokable methods which use the unnamespaced type name.
And not only that, qmlRegisterInterface<T>("Name") also registered the
classes' pointer counterparts T* by the name "Name*", so here
"Service*", "ServiceJob*", "DataSource*". While the new again instead
does this with the fully namespaced names "Plasma::Service*",
"Plasma::ServiceJob*", "Plasma::DataSource*", so also breaking support
here.
This reverts commit 7c4f5c5f1ef120df70f1bc7f206d79aecdbcee92.
Level 1 is too large for this, as it's typically used for the entire
window or popup's title. The smaller level 2 is therefore more
appropriate so that when the parent window supplies its own level 1
heading, the calendar month label don't inappropriately be the same size.
Needed for https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/98