Summary: | SVG thumbnails are corrupt for Adwaita icons | ||
---|---|---|---|
Product: | [Applications] dolphin | Reporter: | Fredrick Brennan <copypaste> |
Component: | general | Assignee: | Dolphin Bug Assignee <dolphin-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | minor | CC: | alois1, kfm-devel, nate |
Priority: | NOR | ||
Version: | 20.12.3 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
URL: | https://bugreports.qt.io/browse/QTBUG-92184 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Screenshot |
Description
Fredrick Brennan
2021-03-24 04:39:45 UTC
This is caused by the intersection of two issues: 1. The Qt SVG renderer which is used by all KDE software only supports the TinySVG subset of the full SVG spec, in order to save memory and be more performant. Accordingly in KDE, we make sure to only use TinySVG-compliant elements in our SVGs. 2. Adwaita SVGs do not follow the TinySVG spec, because they do not need to; the GTK SVG renderer supports a wider set of SVG, at the cost of some performance and higher memory use. So one of three things would have to happen here in order for this to get better: 1. KDE ditches the Qt SVG render in all software in favor of librsvg or some other one 2. The Qt SVG renderer supports more than just TinySVG 3. Adwaita's icons are re-done to conform to TinySVG Options 2 and 3 are out of KDE's control, which leaves option 1. We periodically discuss it but generally have not done so because it would add a rust dependency to our software and rust is horrible for distros to package, and it would amount to abandoning a thing provided by our upstream, which could damage our relationship with them, So sadly this is going to have to be one of those "we all know why it sucks but nobody can fix it" things, sorry. :( Sorry, what part of those SVG's violates the TinySVG spec? As an example, the Adwaita icons make use of elliptic paths, which are not supported in SVG Tiny. Update: Elliptic paths don't seem to have anything to do with these failures. This path messed up svg.path (a Python module), and the maintainer of it found the problem: https://github.com/regebro/svg.path/issues/69#issuecomment-806400936 I think this should be fixed in Qt's SVG renderer. Interesting. Feel free to submit a Qt bug at https://bugreports.qt.io/. This is now QTBUG-92184. https://bugreports.qt.io/browse/QTBUG-92184 Thanks! |