The misterious case of oxygen-icons

Friedrich W. H. Kossebau kossebau at kde.org
Thu Aug 16 23:48:04 UTC 2012


Am Donnerstag, 16. August 2012, 18:22:46 schrieb Rex Dieter:
> On 08/16/2012 06:14 PM, Albert Astals Cid wrote:
> > Do we really have a runtime dependency on oxygen-icons? My limited
> > knowledge in the matter is that icon names are standarized thus you can
> > use oxygen-icons or AlbertAwesomeImages (aai for friends) and it'll still
> > work.
> > 
> > Can someone with more knowledge confirm or reject?
> 
> technically no, but in practical terms yes.
> 
> 1.  it's used as a fall back icon theme
> 2.  if not present, many many icons will be missing all over

And many many icons missing would be a big bug, no? :) So I would consider 
this also theoretically a dependency.

To cite myself from the thread on calligra-devel, the code which makes Oxygen 
the fallback icon theme is this, cmp. 
https://projects.kde.org/projects/kde/kdelibs/repository/revisions/master/entry/kdeui/icons/kiconloader.cpp#L603
--- 8< ---
void KIconLoaderPrivate::addBaseThemes(KIconThemeNode *node, const QString 
&appname)
{
    // Quote from the icon theme specification:
    //   The lookup is done first in the current theme, and then recursively
    //   in each of the current theme's parents, and finally in the
    //   default theme called "hicolor" (implementations may add more
    //   default themes before "hicolor", but "hicolor" must be last).
    //
    // So we first make sure that all inherited themes are added, then we
    // add the KDE default theme as fallback for all icons that might not be
    // present in an inherited theme, and hicolor goes last.

    addInheritedThemes(node, appname);
    addThemeByName(KIconTheme::defaultThemeName(), appname);
    addThemeByName("hicolor", appname);
}
--- 8< ---
where KIconTheme::defaultThemeName() is like:
--- 8< ---
QString KIconTheme::defaultThemeName()
{
    return QLatin1String("oxygen");
}
--- 8< ---

As there is no Oxygen icon subset just for icons used by kdelibs/kde-runtime, 
kdelibs/kde-runtime needs a certain version of the complete oxygen-icons.

And as said, programs using kdelibs/kde-runtime, like Calligra or Okteta, 
would need to know what icons they can expect and what icons not, so they know 
for which icons they need to install their own copies, just to make sure they 
are present.

So anybody objecting to document oxygen-iconset as a hard dependency in 
README.packagers in kde-runtime?

Cheers
Friedrich


More information about the release-team mailing list