Bug 385547

Summary: Workspace Theme/Look & Feel KCM: use of QtQuickControls1 and/or PlasmaComponents labels causes blurry pixellated text with non-integer scale factors
Product: [Applications] systemsettings Reporter: iotaka <net.monitor.x>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: bugseforuns, kaabud-kde, nate, notmart, pawelcislo, simonandric5, woskimi, zachhobbs
Priority: NOR Keywords: usability
Version: 5.12.3   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.15.0
Sentry Crash Report:
Attachments: screenshot that shows the problem
test case
screenshot for test case
Desktop behavior > Workspace kcm with fractional display scale

Description iotaka 2017-10-10 10:35:15 UTC
Created attachment 108264 [details]
screenshot that shows the problem

Hello, the new systemsttings on a 4k monitor with scaling seems a raster and not a vectorial scaled, all the text is squared, see the attachment.

Other applications like dolphin, konversation, ... are ok.

Kind regards
Comment 1 Marco Martin 2017-10-10 10:40:22 UTC
is this happening with every QML app?
Comment 2 iotaka 2017-10-10 12:39:42 UTC
Ciao Marco,

it happens also with plasma-discover
Comment 3 Nate Graham 2017-10-11 19:54:23 UTC
*** Bug 385621 has been marked as a duplicate of this bug. ***
Comment 4 Nate Graham 2017-10-11 20:03:10 UTC
Moving to Kirigami since this seems more widespread than just System Settings, and affects other Kirigami QML apps too.
Comment 5 iotaka 2017-10-18 07:35:00 UTC
Hello, just installed 5.11.1 on KDE Neon and the problem is still present.
Comment 6 Nate Graham 2017-10-19 19:43:01 UTC
*** Bug 385963 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2017-10-29 16:26:47 UTC
*** Bug 386216 has been marked as a duplicate of this bug. ***
Comment 8 kabud 2017-10-29 19:49:08 UTC
https://bugs.kde.org/show_bug.cgi?id=385963#c2
David Edmundson:
> QtQuick,not kirigami.
> 
> Also please attach your Qt version in the other report.

According to Info Center, I have 5.9.1
Comment 9 Marco Martin 2017-11-03 16:00:10 UTC
some of the QtQuickControls1 controls don't cope well with non integer scaling (like 1.5) when those systemsettings modules are ported to QtQuickcontrols2 those glitches should go away
Comment 10 Michi 2018-02-16 09:54:21 UTC
Created attachment 110707 [details]
test case
Comment 11 Michi 2018-02-16 09:55:04 UTC
Created attachment 110708 [details]
screenshot for test case
Comment 12 Nate Graham 2018-03-16 22:27:22 UTC
Git commit a21bc11fe11651f6d211489ebfc8435cef877194 by Nathaniel Graham.
Committed on 16/03/2018 at 22:26.
Pushed by ngraham into branch 'master'.

Fix text scaling with non-integer scale factors when PLASMA_USE_QT_SCALING=1 is set

Summary:
When `PLASMA_USE_QT_SCALING=1` is set, Plasma uses native Qt scaling. This works fine for integer scale factors, and fixes a lot of bugs (see [[https://bugs.kde.org/show_bug.cgi?id=356446|Bug 356446]]) but it introduces a new one: with non-integer scale factors, text becomes blurry and pixellated because of a bug in `Text.NativeRendering`: https://bugreports.qt.io/browse/QTBUG-67007

QQC2-desktop-style forces the use of `Text.QtRendering` rendering for non-integer scale factors, successfully working around the problem. But PlasmaComponents QML objects don't implement the same workaround, so we see the issue in Plasma. This patch fixes that, and gets us one step closer to being able to use Qt scaling in Plasmashell.

There is no effect when `PLASMA_USE_QT_SCALING=1` is not being used.

FIXED-IN 5.13
Related: bug 391691, bug 384031, bug 386216, bug 391695, bug 391694, bug 391692, bug 356446

Test Plan:
Before: `PLASMA_USE_QT_SCALING=1` set, 1.2 scale factor: Plasma text looks awful:
{F5749797}

After: `PLASMA_USE_QT_SCALING=1` set, 1.2 scale factor: Plasma text looks amazing!
{F5749798}

Note that we still get sub-pixel anti-aliasing and good kerning. There appear to be no layout regressions.

Without both `PLASMA_USE_QT_SCALING=1` and a non-integer scale factor set, there is no visual change compared to the status quo.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: mart, broulik, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D11244

M  +4    -2    examples/applets/testtheme/contents/ui/FontGizmo.qml
M  +5    -1    src/declarativeimports/plasmacomponents/qml/Label.qml
M  +5    -1    src/declarativeimports/plasmacomponents/qml/private/DualStateButton.qml
M  +4    -0    src/declarativeimports/plasmacomponents3/ComboBox.qml
M  +5    -1    src/declarativeimports/plasmacomponents3/Label.qml
M  +5    -1    src/declarativeimports/plasmacomponents3/TextArea.qml
M  +5    -1    src/declarativeimports/plasmacomponents3/TextField.qml
M  +5    -0    src/declarativeimports/plasmastyle/ComboBoxStyle.qml
M  +4    -1    src/declarativeimports/plasmastyle/SpinBoxStyle.qml
M  +4    -1    src/declarativeimports/plasmastyle/TextAreaStyle.qml
M  +4    -1    src/declarativeimports/plasmastyle/TextFieldStyle.qml

https://commits.kde.org/plasma-framework/a21bc11fe11651f6d211489ebfc8435cef877194
Comment 13 Patrick Silva 2018-10-28 12:30:38 UTC
Created attachment 115944 [details]
Desktop behavior > Workspace kcm with fractional display scale

Desktop Behavior > Workspace kcm also has bad font rendering with fractional display scale.

SOFTWARE VERSIONS
Arch Linux
KDE Plasma Version: 5.14.2
KDE Frameworks Version: 5.51
Qt Version: 5.12 beta3
Comment 14 Nate Graham 2018-10-28 20:27:07 UTC
Here's a patch: https://phabricator.kde.org/D16483
Comment 15 Nate Graham 2018-10-29 03:51:51 UTC
Git commit a2c87ce86c8047d631988243f28fe8712c43ce01 by Nate Graham.
Committed on 29/10/2018 at 03:39.
Pushed by ngraham into branch 'master'.

[workspace KCM] Port to QQC2

Summary:
Port the Workspace KCM to QQC2.
FIXED-IN: 5.15.0

Test Plan:
- All functionality still works
- Keyboard navigation via the Tab key still works as expected
- Looks good at with a fractional scale factor now; here shown at 1.5x:{F6370717}

Reviewers: #plasma, davidedmundson, apol

Reviewed By: apol

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D16483

M  +2    -6    kcms/workspaceoptions/package/contents/ui/main.qml

https://commits.kde.org/plasma-desktop/a2c87ce86c8047d631988243f28fe8712c43ce01