71 set_icon(window,
nullptr);
75 auto toplevelIcon = std::make_unique<QWaylandXdgToplevelIconV1>(create_icon(), mDisplay);
77 const QString name = icon.name();
78 const bool validName = !name.isEmpty() && !QDir::isAbsolutePath(name);
80 toplevelIcon->set_name(name);
83 QList<QSize> iconSizes = icon.availableSizes();
85 if (iconSizes.isEmpty()) {
86 iconSizes.reserve(mPreferredSizes.size());
87 for (
int size : std::as_const(mPreferredSizes)) {
88 iconSizes.append(QSize(size, size));
92 if (iconSizes.isEmpty()) {
93 iconSizes.append(QSize(64, 64));
96 bool hasPixmaps =
false;
97 for (
const QSize &size : std::as_const(iconSizes)) {
98 const QPixmap pixmap = icon.pixmap(size, 1.0);
99 if (pixmap.isNull()) {
100 qCWarning(lcQpaWayland) <<
"QWaylandXdgToplevelIconManagerV1: Failed to get pixmap of size" << size <<
"for icon" << icon;
104 toplevelIcon->addPixmap(pixmap);
108 if (validName || hasPixmaps) {
109 set_icon(window, toplevelIcon->object());
111 set_icon(window,
nullptr);