lxqt / lxqt-archiver

A simple & lightweight desktop-agnostic Qt file archiver
https://lxqt.github.io
GNU General Public License v2.0
39 stars 29 forks source link

Missing icons due non existing ids in freedesktop specification #368

Closed redtide closed 1 year ago

redtide commented 1 year ago

archive-insert, archive-insert-directory and archive-extract are not part of the freedesktop icon naming specification, so the result is missing icons in the toolbar:

immagine

There should be at least some fallback icons, even if not in line with the theme in use, by using somthing like QIcon::fromTheme fallback.

Expected Behavior

See summary.

Current Behavior

See summary.

Possible Solution

See summary.

Steps to Reproduce (for bugs)

See summary.

Context

See summary.

System Information

still a quite up to date Archlinux distro.

tsujan commented 1 year ago

archive-insert, archive-insert-directory and archive-extract are not part of the freedesktop icon naming specification

Which names are? In which documentation does freedesktop.org set icon names?

redtide commented 1 year ago

here

tsujan commented 1 year ago

here

If you can choose a fallback for archive-extract, please tell us — the other icons could have insert-object as fallback.

LXQt recommends an icon set as rich as Oxygen (not necessarily Oxygen itself), most icons being outside the basic list of standard names.

redtide commented 1 year ago

I guess that most of non standard icons used in some icon themes comes from GNOME and KDE namings, so they exists as "non standard extensions".

Do you mean insert-object as fallback for the standard ones? If yes might be useful (instead nothing) for incomplete themes. Though I saw either a custom question mark icon or similar; Oxygen seems to have image-missing (so to be added to the fallback ones). Or dialog-question.

EDIT: ah maybe you mean the 3 ones? They are all included in Oxygen (see the KDE link above).

IMO you can use one of the most used/complete like Oxygen, Breeze or whatever you find the most "sober/neutral" as replacement, I have no much of a preference to suggest any, but I use to include Oxygen ones as fallback in some of my GPL projects.

tsujan commented 1 year ago

Do you mean insert-object as fallback for the standard ones?

As the fallback for both archive-insert and archive-insert-directory. We can't expect more from a fallback ;)

Don't get me wrong; your report is quite relevant. But I don't know of a sensible fallback for extraction; hence asking you.

I use to include Oxygen ones as fallback in some of my GPL projects.

I use hard-coded symbolic icons that become black/while according to the background (by using a class derived from QIconEngine) and, probably (only in FeatherPad), the system icons as an option.

redtide commented 1 year ago

LXQt recommends an icon set as rich as Oxygen (not necessarily Oxygen itself), most icons being outside the basic list of standard names.

So this mean to suggest people to use some rich though non standard themes to hide the issue of non respecting the standard (though the standard itself is not ideal for most people including me)?

As fallback I mean either custom/self made or from another theme including them all, so breeze or oxygen, not from the same with a standard name.

I know about the monochromatic icons you use: by default I use Arqiver but I haven't set it for all archives, so I saw again the problem and opened this issue.

If you think you can't use some other colored icons as fallback because there are many monochromatic themes out there well, IDK what is best here, I dislike such themes so I use colored ones anyway, but it's a personal choice, and also using another icon in the same theme that sounds near to the one requested (in some theme might look strange, already done this in the past).

EDIT: or, maybe the best to do is use all custom icons as you do in some of your applications and add an option to use the system icons, so the user will provide a solution:

tsujan commented 1 year ago

So this mean to suggest people to use some rich though non standard themes

Icon sets aren't nonstandard; they're beyond standard. An icon set that only contains freedesktop's list is good for nothing.

If you think you can't use some other colored icons as fallback

In LXQt, we only add the app icons, and not hard-coded.

go-down may be used as the fallback for extraction.

redtide commented 1 year ago

Icon sets aren't nonstandard; they're beyond standard. An icon set that only contains freedesktop's list is good for nothing.

Call it as you like, beyond/above/extended/whatever, still non standard. Tell them the rest, maybe will change their mind.

In LXQt, we only add the app icons, and not hard-coded.

go-down may be used as the fallback for extraction.

Can't think to something better than that, the standard gives no help in this case (there is only an emblem for download, not even for upload, nothing else).

EDIT: No wait, maybe go-up; I see insert-object as a package with a down arrow, and also on Arqiver has an up arrow.

tsujan commented 1 year ago

No wait, maybe go-up

It looks acceptable too.

redtide commented 1 year ago

PR?

tsujan commented 1 year ago

Would be appreciated.

redtide commented 1 year ago

What about document-new and folder-new instead insert-object? (though new and Add files would be the same) immagine

tsujan commented 1 year ago

No, they would be confusing, because of their well known jobs.

tsujan commented 1 year ago

IMO, this doesn't need to be overthought. The point is that sensible fallbacks are better than no icon if the user hasn't installed a rich set yet. So many rich sets exist.

As freedesktop.org says, what it proposes is "a minimal list of must have icons", with a guideline for "creating new icons that extend the standardized list…" — i.e., it tells how to make richer sets.

redtide commented 1 year ago

One thing if can be interesting: the icon theme I use, which is a modified version of the original lxde-icon-theme I did years ago, has an index.theme file that specifies, among other things described in the specification (note the example code for icon lookup in this page), other icon themes from which it inherits:

[Icon Theme]
Name=nuoveXT.2.3
Comment=nuoveXT 2.3 Icon Theme
Inherits=nuoveXT-1.6,Tango,gnome,crystalsvg

in fact I don't miss any non standard icon in my system, because the missing icons are taken at least from the gnome icon set: immagine

So I wonder if this is some missing feature in Qt to read icons from themes inheriting from other themes, so not completely following the specification but just looking in the filesystem.

This works on Qt Designer: immagine

tsujan commented 1 year ago

the missing icons are taken at least from the gnome icon set:

… which is made for GNOME/GTK and lacks many icons some Qt apps may need. That's why an icon set as rich as Oxygen or Breeze is recommended when using a Qt-based DE — or a set with Inherits=breeze,oxygen,gnome,hicolor (although hicolor is automatically taken into account by LXQt's icon engine).

redtide commented 1 year ago

I wanted to make a focus to the point that Qt QIcon::fromTheme haven't found existing icons that Qt Designer for example have found. That icon set is really old and I might consider to replace the crystal icons and others with oxygen at some point but that's not the point of my comment and LXQt icon engine have nothing to do either with it.

tsujan commented 1 year ago

If you use LXQt, its icon engine (plugin) is active and makes QIcon::fromTheme find what it should. If not, Qt alone does the job, which is elementary and may not support several things (a reason for KDE and LXQt making their richer icon engines based on its private headers).

In general, for a more advanced look, regarding whether icons or styles, Qt needs plugins. Under DEs without Qt plugins, qt5ct can be used (but it shouldn't be used with LXQt/KDE).