Hello,
I am sparring with QIcon::fromTheme() on OS X, and have the feeling I'm missing
something from the documentation.
From
"Note: By default, only X11 will support themed icons. In order to use themed
icons on Mac and Windows, you will have to bundle a compliant theme in one of
your themeSearchPaths() and set the appropriate themeName()."
I understand that even with the native OS X platform theme, all I would have to
do is ensure that QIcon::themeSearchPaths() returns a list with XDG-compliant
icon themes, and QIcon::themeName() a ditto icon theme name.
I think I am replying to both conditions, adding
qDebug() << Q_FUNC_INFO << "themeSearchPaths=" << themeSearchPaths() <<
"themeName=" << themeName();
to the actual lookup-part of QIcon::fromTheme() I get the output
static QIcon QIcon::fromTheme(const QString &, const QIcon &) themeSearchPaths=
("/opt/local/share/icons", "/opt/local/share/pixmaps", ":/icons") themeName=
"hicolor"
Evidently I have the hicolor theme in /opt/local/share/icons, and indeed when I
launch applications using the XCB QPA plugin or using the KDE platform theme,
I'm getting the expected icons, e.g.
hasUserTheme= false engine= 0x7fe58bf583a0 name "dialog-ok" ->
QIcon("dialog-ok",availableSizes[normal,Off]=(QSize(16, 16), QSize(22, 22),
QSize(32, 32), QSize(48, 48), QSize(64, 64), QSize(128, 128), QSize(256,
256)),cacheKey=0x100000000)
However, using just the native OS X theme I'm seeing this:
hasUserTheme= false engine= 0x7fb5b9e3c880 name "dialog-ok" ->
QIcon(availableSizes[normal,Off]=(),cacheKey=0x100000000)
hasUserTheme= false engine= 0x7fb5b9f05b40 name "dialog-cancel" ->
QIcon(availableSizes[normal,Off]=(),cacheKey=0x200000000)
hasUserTheme= false engine= 0x7fb5b9c71c20 name "user-trash" ->
QIcon(availableSizes[normal,Off]=(),cacheKey=0x700000000)
It looks like a bit of required functionality isn't loaded or is cut out of the
loop with the OS X platform theme, but that's not what the documentation
suggests.
Alternatively: the documentation also mentions a "guaranteed fallback for
platforms that do not support theme icons", e.g. "edit-undo" == ":/undo.png".
Is there a lookup function somewhere that maps all known/supported XDG icon
names to that fallback naming scheme?
Thanks,
René
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest