There's no proper replacement for KIcon
Kevin Krammer
krammer at kde.org
Fri Sep 12 07:10:13 UTC 2014
On Thursday, 2014-09-11, 17:56:38, Eike Hein wrote:
> On 11.09.2014 17:22, Kevin Krammer wrote:
> > Hicolor is there for cases where the setup fails to provide any workspace
> > or distribution specific theme.
>
> Yes. So I'm thinking ahead and telling you how that "setup" looks
> like for a workspace:
>
> - Write a Qt platform plugin. Needs coding chops. We have them. What
> about workspaces which don't? What about all the other toolkits be-
> sides Qt?
>
> - Swap out icons in hicolor.
>
> Which do you think happens?
Depends on the wanted results.
A platform plugin provide platform integration which icons are only a small
part of. If the platform vendor wants Qt application to properly integrate
with their choice of workspace, they will have a platform integration plugins.
If they just want to have icons, they are very well able to ship their own
version of hicolor fallback icons.
This does not conflict with having a non-broken hicolor theme package to start
with.
> > But why not just have your theme as an explicit theme like everyone else
> > and only get your theme in case the fallback path is triggered?
>
> Because making Qt aware of an explicit theme involves writing a Qt
> platform plugin. It means if you're a sys admin / distro you can no
> longer solve your problem on the spec level (unless you swap out
> icons in hicolor), you need to be aware Qt exists. Seems like a
> layering violation to me.
As I said above, it depends on the level of integration you'd like to achieve.
There are lots of integration points provided by said plugin.
> > Sharing a setting that indicates a default theme name is of course a good
> > goal, doesn't however fix the problem of the fallback being incomplete.
>
> No, but it makes it a lot easier for distros to provide a complete
> fallback (-> installing Oxygen or something else, setting it as
> preferred fallback). It's less work than maintaining a complete hi-
> color no one can agree on.
I don't see why it would be difficult to agree on having a non-broken
fallback.
> > Or do you mean install the custom theme twice, once as itself and once as
> > hicolor?
>
> Wait - I think I now understand why we're having trouble
> communicating about this.
>
> You think a distro has the option to install Oxygen *as*
> hicolor, right, making my preferred fallback thing seem
> redundant?
>
> That's not so - because numerous apps install app icons
> *into* the hicolor folder structure, including KDE apps,
> and those can conflict with the icons in a theme. For
> distro packagers that means they'd have to fix numerous
> package installs to eliminate those conflicts.
No, I mean providing their own hicolor theme if they want to (ab)use the
fallback as their integration point.
I really have to read the spec soon, but I have my doubt that it lists any app
specific icons. Thus installing such into its paths should not conflict with
anything already there.
> So using any given theme *as* hicolor doesn't fly without
> manual merging/maintenance work for packagers, which is
> what I suggest to avoid with a 'preferred system fallback'
> config knob.
Assuming that a vendor wants to override the default hicolor package, then yes
that will obviously require maintenance. This is no different with any other
deviation from upstream.
Again, having a shared setting, exposed via whatever mechanism (env variable,
X11 property, file, ....) is orthogonal to having a working fallback.
The fallback is hit when no other means of lookup, whether configurable or
hardcoded, resulted in a matching icon.
So it *must* at least contain all icons that are specified in the spec, it is
an icon loader's last resort.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 173 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140912/ca0c979f/attachment.sig>
More information about the Kde-frameworks-devel
mailing list