| Summary: | Paths are not entirely readable in Locations KCM | ||
|---|---|---|---|
| Product: | [Applications] systemsettings | Reporter: | Patrick Silva <bugseforuns> |
| Component: | kcm_desktoppath | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | RESOLVED UPSTREAM | ||
| Severity: | normal | CC: | nate, qydwhotmail |
| Priority: | NOR | Keywords: | junior-jobs, qt6 |
| Version First Reported In: | master | ||
| Target Milestone: | --- | ||
| Platform: | Neon | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/plasma-desktop/-/commit/2ead94b4841827348eb14227ca01d4557b420a13 | Version Fixed/Implemented In: | 6.0 |
| Sentry Crash Report: | |||
| Attachments: |
screenshot
screenshot2 font settings fonts screenshot2 location without accent |
||
|
Description
Patrick Silva
2023-06-17 13:01:33 UTC
Created attachment 159743 [details]
screenshot
I don't believe this is a Qt regression; it seems to be an issue caused by the QML port in https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1373. Right now we're just setting the text field width to gridUnit * 10, which adjusts with the font size, but not with the label length. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1582 Git commit d647242cf5a5884ce00f641d747cec6497bd4d38 by Nate Graham. Committed on 21/06/2023 at 04:25. Pushed by ngraham into branch 'master'. kcms/desktoppaths: always perfectly fit text Previously the text fields' widths were hardcoded to gridUnit * 10. This was not long enough for some text. Now, the fields all share a common width that's equal to width long enough to fit the longest piece of text, limited to a sane value to avoid overflowing the window. FIXED-IN: 6.0 M +9 -1 kcms/desktoppaths/ui/UrlRequester.qml M +51 -0 kcms/desktoppaths/ui/main.qml https://invent.kde.org/plasma/plasma-desktop/-/commit/d647242cf5a5884ce00f641d747cec6497bd4d38 Created attachment 159975 [details]
screenshot2
Desktop path is not entirely readable yet.
Fascinating. I wonder how the calculation used there could be wrong with that string. Will investigate. What font and font size are you using? Created attachment 159999 [details]
font settings
I'm attaching my font settings.
Where can I get that font to test it out? Created attachment 160237 [details]
fonts
Fonts attached.
Aha, found the bug. It didn't actually have anything to do with the font at all, but rather the text length relative to the page width. Git commit 2ead94b4841827348eb14227ca01d4557b420a13 by Nate Graham. Committed on 14/07/2023 at 18:41. Pushed by ngraham into branch 'master'. kcms/desktoppaths: refine text field width calculation Instead of using a fairly crude upper width limit of half the page width (which caused long text to get cut off with narrow windows), make the calculation more real-world by actually seeing how much horizontal space is available on the page in a varity of conditions: wide and narrow view, and when the page is scrollable as well as not. M +19 -1 kcms/desktoppaths/ui/main.qml https://invent.kde.org/plasma/plasma-desktop/-/commit/2ead94b4841827348eb14227ca01d4557b420a13 Basically my "limited to a sane value to avoid overflowing the window" from the first commit turned out to not be so sane after all! Hopefully the new value should be much saner. This bug persists. Sigh. Please attach another screenshot that shows it still happening. Created attachment 160668 [details]
screenshot2
Desktop path is still not entirely readable.
I cannot reproduce the issue no matter how I try. Did this just start happening again when you upgraded to Qt 6.6 in Neon, by any chance? Or was it broken before Neon shipped Qt 6.6, and you're just now reporting the issue? The bug was fixed after closing this report and then reapppeared, I do not know when exactly. Possibly after Qt 6.6. I suspect it's Qt 6.6, then. Can you run it in a terminal window with `systemsettings kcm_desktoppaths` and paste the output? $ systemsettings kcm_desktoppaths kf.xmlgui: cannot find .rc file "systemsettingsui.rc" for component "systemsettings" Using fontconfig file: "/home/stalker/.config/fontconfig/fonts.conf" Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes. kf.sonnet.clients.hspell: HSpellDict::HSpellDict: Init failed qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/MobileTextActionsToolBar.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qt.qml.typeresolution.cycle: Cyclic dependency detected between "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/private/TextFieldContextMenu.qml" and "file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/desktop/Menu.qml" qml: The item SubCategoryPage_QMLTYPE_116(0x555c89cc5ea0) is already in the PageRow kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " kf.coreaddons: "Could not find plugin " file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:334: TypeError: Cannot read property 'activeFocus' of null (exception occurred during delayed function evaluation) file:///usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/kirigami/ScrollablePage.qml:334: TypeError: Cannot read property 'activeFocus' of null (exception occurred during delayed function evaluation) The requested information was provided. I can't reproduce the issue when using the SF Pro Display (regular) font, and I'm out of ideas. I suspect a weird interaction between that font's metrics and something that Qt 6.6 does. One final idea: does the issue reproduce for you when you use a long path that doesn't have any accented characters? Like get rid of the "Á" in there. Created attachment 160865 [details]
location without accent
Same result.
And to confirm, it works when using the Noto Sans font, right? Right. By testing the default font settings and then reverting to SF Pro Display font I found the culprit: the font hinting. open Fonts KCM set the SF Pro Display font set the font hinting to "Full" apply the changes close System Settings open Locations KCM Wow. In this case there are two options for where the bug could be: - In the font itself, for not properly settings its metrics for its various hinted states - In Qt, for not properly deriving a size that takes into account proper hinted metrics Either way, it's not our bug. And to be honest, my motivation to investigate any further is quite low given how difficult it is to encounter this issue. :) |