There's no proper replacement for KIcon

Albert Astals Cid aacid at kde.org
Sun Sep 7 08:27:06 UTC 2014


El Dijous, 4 de setembre de 2014, a les 14:04:04, Kevin Ottens va escriure:
> On Thursday 04 September 2014 11:36:38 Martin Klapetek wrote:
> > On Wed, Sep 3, 2014 at 10:10 PM, Eike Hein <hein at kde.org> wrote:
> > > On 09/03/2014 10:07 PM, Nicolás Alvarez wrote:
> > >> So if I'm not in a Plasma session I get no icons?
> > > 
> > > If you're not in a Plasma session you don't get the Plasma
> > > platform plugin. Other platform plugins can drive this as
> > > they prefer.
> > 
> > Isn't that the task of the given platform plugin? Eg. if I run my app in
> > Gnome, there should be a Gnome plugin which provides its own icon plugin
> > and loads Gnome icons (well in an ideal world, anyway) and thus making the
> > app actually look more "integrated"...in other words, shouldn't this
> > problem be moved there?
> 
> Spot on. And such a plugin is in fact shipped with Qt, but for some reason
> isn't loaded in Albert's case. That awfully sounds like a bug to me, hence
> why my line of argument is that it should be investigated and fixed.

My setup & investigation:
 * Plasma 4 logged in with tsdgeos
 * konsole logged in to kdeunstable via "su - kdeunstable"
 * I'm using the QGenericUnixTheme QPT (aka PlatformTheme) 
 * QGenericUnixTheme uses XDG_CURRENT_DESKTOP, KDE_FULL_SESSION, 
GNOME_DESKTOP_SESSION_ID or DESKTOP_SESSION environment variables to decide in 
which desktop environment you are
 * Since none of those environment variables are defined in my kdeunstable 
user it falls back to the "UNKNOWN" desktop environment
 * Then it goes to QGenericUnixTheme::themeNames and since it's not a known 
desktop it will default to QGenericUnixTheme as QPT instead of to QKdeTheme or 
QGnomeTheme for icon theme handling
 * Then QGenericUnixTheme::themeHint does not implement 
QPlatformTheme::SystemIconThemeName and 
QPlatformTheme::SystemIconFallbackThemeName defaults to hicolor
 * And hicolor is not a "proper" theme, just a fallback theme, so it is not 
designed to hold icons for the majority of icons.

One could say the bug is in QGenericUnixTheme::themeHint that should actually 
provide a meaningul icon theme instead of "hicolor" as default.

The problem is that there is not (or I could not find it) a "xdg-way" to 
set/get the current icon theme so it's hard not to default to something 
different than "hicolor", one possibility would be making 
QGenericUnixTheme::themeHint default to say the first icon theme in 
xdgIconThemePaths, but that's obviously not that great either.

So as I see it, there's three options:
 * Do nothing, and expect that people have to set one of XDG_CURRENT_DESKTOP, 
KDE_FULL_SESSION, GNOME_DESKTOP_SESSION_ID or DESKTOP_SESSION environment 
variables to get icons
 * Do the change/hack to QGenericUnixTheme::themeHint return any of the themes 
in xdgIconThemePaths that is not hicolor
 * Talk to the xdg-people to include a way to get the current icon theme and 
use that in QGenericUnixTheme::themeHint


Cheers,
  Albert

P.S: Sorry it took that much to answer, akademy+travel kept me busy.

> 
> Regards.



More information about the Kde-frameworks-devel mailing list