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 6c627ea044.
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.
if KDeclarative::runtimePlatform() is set, then filter applets
that have formfactors set and don't match, in order to not
show on the phone applets that are desktop only
in desktop case, list all applets, for maximum retrocompatibility,
to be reconsidered for kf6
Compare API dox of Q_DECLARE_METATYPE:
"
Some types are registered automatically and do not need this macro:
* Pointers to classes derived from QObject
* QPointer<T>, QSharedPointer<T>, QWeakPointer<T>,
where T is a class that derives from QObject
"
This is a ABI-compatible change, as this just replaces explicitly
defined template code (by the Q_DECLARE_METATYPE macro use) with the
generic predefined one picking up pointers to QObject subclasses.
So instead of the custom explicitly template overload
template <>
struct QMetaTypeId< TYPE >
{ /**/ static int qt_metatype_id() {/**/} };
the predefined template overload one is picked up via
template <typename T>
struct QMetaTypeId : public QMetaTypeIdQObject<T>
{ /**/ };
template <typename T, int =
QtPrivate::IsPointerToTypeDerivedFromQObject<T>::Value ?
QMetaType::PointerToQObject :
/**/ 0>
struct QMetaTypeIdQObject
{ /**/ };
template <typename T>
struct QMetaTypeIdQObject<T*, QMetaType::PointerToQObject>
{ /**/ static int qt_metatype_id() {/**/} };
And thus the constexpr code using QMetaTypeId<T>::qt_metatype_id(),
for which all this is done, evaluates as before.
GIT_SILENT
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.
Currently, I see that the network icons aren't visible enough. For example, I find it difficult to determine the signal strength of the network without peering. I would like these icons to be more visible, and therefore I propose to use 35% opacity for faded elements. As for me, this solution makes determining the signal level more convenient and the icons more informative.
Plasma dialogs are already marked as not being shown in the task manager
and the pager. We should similarly omit them from the task switcher, for
the same reasons.
BUG: 419239
FIXED-IN: 5.73
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.
relay->checkQueueing emits a signal to all observers. As it's a signal
anything can happen at that point. It's seemingly common for a receiver
to connect/disconnect a new visualisation which in turn alters
d->relays.
This broke when a foreach (with implicit shallow copy) was ported to a
for statement.
This report contains a good analysis and test case
BUG: 422973
Probably also:
BUG: 421392
BUG: 423713
BUG: 423776
BUG: 422230
BUG: 423081
Currently, I see that the icons that show available and connected networks are not visible enough. For example, I find it difficult to determine the signal strength of the network without peering. I would like these icons to be more visible, and therefore I propose to reduce the opacity of faded lines. As for me, this solution makes determining the signal level more convenient and the icons more informative.
BUG: 423843
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 7c4f5c5f1e.
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
Summary:
I recently noticed that `Kirigami.Units.devicePixelRatio` was `1.3` even though I was at the default 96dpi when writing a widget's config.
{F8287886}
There's 4 different `Units.qml`, and I'm not certain which does what. 2 are in `krigiami` and the other 2 are in `plasma-framework`.
```
$ locate /Units.qml | grep /usr/
/usr/lib/qt/qml/org/kde/kirigami.2/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/Plasma/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml
```
* 2 years ago [`kirigami/src/controls/Units.qml`](https://github.com/KDE/kirigami/blame/master/src/controls/Units.qml#L75) (`/usr/lib/qt/qml/org/kde/kirigami.2/Units.qml`) was changed from `13/10 = 1.3` to multiply by `13*0.75` so that `9.75/10 = 0.975` (then `max(1, 0.975) = 1`).
-----
There's 2 files owned by `plasma-framework`. The `/styles/Plasma/Units.qml` binds PlasmaCore's `units.devicePixelRatio`, so that leaves `/styles/org.kde.desktop.plasma/Units.qml`.
```
$ pacman -Qo /usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml
/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml is owned by plasma-framework 5.69.0-2
```
This patch edits the `org.kde.desktop.plasma` style, and fixes `qmlscene KirigamiDevicePixelRatioTest.qml`, and `plasmashell` widget configs, and `plasmoidviewer` widget configs.
The Kirigami patch is D29462
Test Plan:
You can edit `/usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml` then run:
* https://gist.github.com/Zren/621338b8cda7c550d7b43f8ea1ba71a7
* `qmlscene KirigamiDevicePixelRatioTest.qml`
and `Kirigami.Units.devicePixelRatio` should equal `1`.
Reviewers: #kirigami, mart
Reviewed By: #kirigami, mart
Subscribers: davidre, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29463
Summary:
Currently adjusting the value by scroll and click/touch+drag are not implemented.
This patch implements them.
Test Plan:
As far as I can tell, the `PlasmaComponents3.Spinbox` is not actually used anywhere in Plasma, so test with D29535:
{F8301480}
Reviewers: #vdg, #plasma, ahiemstra
Reviewed By: ahiemstra
Subscribers: ahiemstra, abetts, ndavis, cblack, kde-frameworks-devel
Tags: #frameworks
Maniphest Tasks: T9460
Differential Revision: https://phabricator.kde.org/D29534
Summary:
m_svgIcon can be null.
disconnect(q, nullptr, nullptr, nullptr); would have pretty catastrophic
consequences as it disconnects everything. Anyone listening for
QObject::destroyed of IconItem for cleanup would no longer get anything.
That could lead to obscure conditions.
ShaderEffectSource watches for the source being destroyed for cleanup
and we have a newly introduced crash with ShaderEffectSource that seems
to come from this patch.
BUG: 421170
Test Plan:
Someone who could reproduce the crash reliably confirms it fixes the
issue
Reviewers: #plasma
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29742
Summary: This makes borders of elements using plasmoidHeading rounded again
Test Plan:
After:
{F8289023}
Clearing cache might be needed here.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, ngraham, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29479
Summary:
We're moving towards using the small font for subtitles in Kirigami BasicListItem (D29432)
so we should probably do the same here since it has the same title + subtitle layout.
Test Plan:
Before: {F8284752}
After: {F8284751}
Reviewers: #plasma, #vdg, broulik, ndavis
Reviewed By: #vdg, ndavis
Subscribers: cblack, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29434
Summary:
We're the only theme with the appropriate heading svgs that make the headers and footers look as they should.
All the other themes fall back to Breeze, which is not a good look for some of them:
- the heading is too jarring compared to applet background
- the heading does not extend all the way vertically and horizontally
To solve this, to avoid degrading unmaintained themes and to give themes a chance to adjust on their own terms, this patch makes the heading visible only when the needed SVG exists in the theme.
Test Plan:
Avoids this:
{F8276897}
{F8276896}
Breeze still works as it should.
Reviewers: #vdg, #plasma, niccolove, ngraham
Reviewed By: #vdg, niccolove, ngraham
Subscribers: ngraham, niccolove, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29352
Summary:
When SvgSource is changed, old one is deleted. Connections are not automatically disconnected.
This change disconnects connections and fixes regression introduced in D28470.
BUG: 420801
FIXED-IN: 5.70
Test Plan:
STEPS TO REPRODUCE
1. click on mute button for a device
2. click on the desktop to collapse the applet
OBSERVED RESULT
crash in step 1 and in the rare case it doesn't crash it crash in step 2
EXPECTED RESULT
don't crash
Reviewers: #plasma, #frameworks, ngraham, davidedmundson
Reviewed By: ngraham
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29314
Summary: There are 3 possible strategies: QIcon, QImage and SVG. This change moves logic of each of these strategies into separate class.
Test Plan: Should behave exactly the same
Reviewers: #plasma, broulik, apol, davidedmundson, #frameworks
Reviewed By: #plasma, davidedmundson
Subscribers: mart, davidre, cblack, kde-frameworks-devel, #plasma
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28470
Summary:
It takes into account the dpi of the screen we're rendering to.
Other overloads assume the window is nullptr and will use the primary screen's dpi which can change almost randomly.
Test Plan: Icons still look fine even if I drag windows from a screen to another.
Reviewers: #plasma, #frameworks, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, ngraham, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29102
Summary:
Right now ExpandableListItem is not very touch-friendly due to use of a mousearea
hover effect for choosing the selected item. This patch fixes that by using a `TapHandler`
to handle left-clicks and touch input. We still need a MouseArea inside it to handle
non-touch hover and right-click behaviors.
FEATURE: 393749
FIXED-IN: 5.70
Test Plan: Click behavior is identical to how it was before, but now touch works too: {F8234452}
Reviewers: #plasma, apol, #vdg, niccolove
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28808
Summary:
Without this, the Busy Indicator generates binding loops for me when used in the new
ExpandableListItem component.
Test Plan: No more binding loops in console logging
Reviewers: #plasma, davidedmundson, broulik
Reviewed By: #plasma, broulik
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28787
Summary: Neither the merged look nor the normal one needs to have rounded borders, as they are clipped out from the dialog and they would break third party themes without rounding. Without rounded borders, there's no need for the enabledBorders check, which also broke the heading when used in top panels.
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: manueljlin, ahiemstra, ndavis, ngraham, mart, davidedmundson, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28372