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:
Otherwise we're discarding style information possibly set in
the user's small font choices when we want to set a smaller
font.
Test Plan: Stuff that's suposta look small still looks small
Reviewers: #plasma, cblack
Reviewed By: #plasma, cblack
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D29436
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
Summary:
QQmlComponent::beginCreate and completeCreate are useful if you need to
set properties on the object explicitly. We're not doing that here, we
can just call create.
Test Plan:
On Qt5.15
Right click a panel
choose edit
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28599
Summary:
by default users have to opt out of BUILD_TESTING meaning everyone would
by default build and get testengine installed even though it serves no
purpose in production. this also includes distros as I've noticed :O
do not install the engine, same as testplugin isn't getting installed.
(I am actually thinking throwing it away as a whole may make sense; it
serves no real purpose over any other engine)
Reviewers: mart, apol
Reviewed By: apol
Subscribers: broulik, apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D28463
Summary:
As discussed in T12778, the icon can never be in a correct state: either it's
redundant with the icon you're hovering over that made the tooltip appear, or
else it's different from the icon you're hovering over, which is inconsistent.
Since either case is undesirable, let's just remove the icon from the tooltip
entirely. This reduces the visual noise in the tooltip and solves the entire
class of bugs automatically.
Test Plan:
{F8150019}
{F8150017}
{F8150021}
Reviewers: #vdg, #plasma, cblack, niccolove, apol
Reviewed By: #vdg, cblack, niccolove, apol
Subscribers: cblack, kde-frameworks-devel
Tags: #frameworks
Maniphest Tasks: T12778
Differential Revision: https://phabricator.kde.org/D27848
Summary:
This patch creates the `ExpandableListItem`, a re-usable PlasmaExtras item that can
be used for the views in various Plasma applet pop-ups, such as Vaults, Printers,
Bluetooth, Networks, and Device Notifier. This way those applets can share more code and
not have to implement this paradigm themselves in five different ways, as they currently
do.
All of these applets currently use slightly different visual styles. For example the
network applet uses a pushbutton with no icon as its "default action" button, while
other applets use icons-only toolbuttons. I tried my best to create a component that's
flexible but also consistent, so various applets that adopt it will see minor visual
changes as a result. Hopefully this is acceptable.
Closes T12812
Depends on D28144
Test Plan: {F8183650}
Reviewers: #vdg, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mart, davidedmundson, bruns, niccolove, cblack, davidre, kde-frameworks-devel
Tags: #frameworks
Maniphest Tasks: T12812
Differential Revision: https://phabricator.kde.org/D28033