Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
3.1.1
-
None
-
Ubuntu 18.04, amd64
Description
Since the changes in QTIFW-1269 (specifically, https://codereview.qt-project.org/c/installer-framework/installer-framework/+/250549), Qt still installs its icons to the wrong folder if XDG_DATA_HOME is specified to direct it to a particular location.
e.g. with XDG_DATA_HOME=/usr/local/share (for a system-wide install), it installs the icons into
/usr/local/share/hicolor, rather than /usr/local/share/icons/hicolor.
This is because installiconsoperation.cpp defaults XDG_DATA_HOME to .local/share/icons, rather than to .local/share, and then does not append the "/icons" portion later. So it gets omitted entirely in the case of a user-specified XDG_DATA_HOME. createdesktopentryoperation.cpp does it correctly, with the XDG_DATA_HOME just being .local/share, and adding the "applications" part itself with
{directory = QDir(*it).absoluteFilePath(QLatin1String("applications"));}the icons case has some code tryint to test whether it is 1/2/3 entries from the end, and appending icons otherwise, but this is broken since the linked gerrit change, as there are no longer 3 qt-inserted paths. I think it should just look like createdesktopentryoperation.cpp now.