Web lists-archives.com

Re: Aw: Re: setWindowIcon for QDialog




Hi Alexander,

according to the xprop output the _NET_WM_ICON property is not set. The method inside Qt responsible for this is: https://code.woboq.org/qt5/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp.html#_ZN10QXcbWindow13setWindowIconERK5QIcon

This method is called indirectly from QWidget::setWindowIcon. I am pretty sure that it works as you can easily check by xprop any other Qt window. So the problem must be the icon. If I search for labplot-worksheet I find only an icon in size 22x22. Looking at the linked code, I notice that it's not one of the sizes Qt expects and also none of the sizes KWin expects, see https://cgit.kde.org/kwin.git/tree/client.cpp#n1583

My suggestion is to try whether any other icon works. And if it does so, ensure that all relevant icon sizes are available for the labplot-worksheet.

Cheer
Martin

Am 2019-03-04 17:39, schrieb Alexander Semke:
not shown in the window bar, left to the window title. Please check
the attached screenshots. On windows the proper icon is shown, on
linux/kwin the applicaion icon is used.

It's X. The output of xprop:

_NET_WM_ICON_NAME(UTF8_STRING) =
_KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.labplot2"
_KDE_NET_WM_COLOR_SCHEME(STRING) =
"/usr/share/color-schemes/BreezeHighContrast.colors"
XdndAware(ATOM) = BITMAP
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 2840133529
WM_NAME(STRING) = "Import Data to Spreadsheet or Matrix"
_NET_WM_NAME(UTF8_STRING) = "Import Data to Spreadsheet or Matrix --
labplot2"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x7, 0x26, 0x1e, 0x3, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG,
_NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x5000008
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                Initial state is Normal State.
_NET_WM_PID(CARDINAL) = 29202
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 83886351
WM_CLASS(STRING) = "labplot2", "labplot2"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS,
_NET_WM_PING, _NET_WM_SYNC_REQUEST, _NET_WM_CONTEXT_HELP
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 819, 262
                user specified size: 536 by 711
                program specified minimum size: 522 by 711
                window gravity: Static

P.S.: sorry for html and for the full-quote, writing from the
web-frontend...

GESENDET: Montag, 04. März 2019 um 15:08 Uhr
VON: "David Edmundson" <david@xxxxxxxxxxxxxxxxxxxx>
AN: kde-devel <kde-devel@xxxxxxx>, "Kwin, NET API, kwin styles API,
kwin modules API" <kwin@xxxxxxx>
BETREFF: Re: setWindowIcon for QDialog
On Mon, Mar 4, 2019 at 1:49 PM Aleix Pol <aleixpol@xxxxxxx> wrote:

On Sun, Mar 3, 2019 at 11:00 AM Alexander Semke
<alexander.semke@xxxxxx> wrote:
>
> Hi,
>
> in LabPlot we have couple of modal dialogs, created on the heap
and shown with
> dlg->exec(). The dialog icon is set in the constructor of the
dialog via
> QDialog::setWindowIcon(), e.g.
>
setWindowIcon(QIcon::fromTheme(QLatin1String("labplot-worksheet")));
>
> The icon is set/handled by the window manager if I understand this
correctly.
> With kwin, the specified icons are not shown

Not shown where exactly?
Also X or xwayland?
Does running xprop and clicking on the window show the correct icon?