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