70 set_icon(window,
nullptr);
74 auto toplevelIcon = std::make_unique<QWaylandXdgToplevelIconV1>(create_icon(), mDisplay);
76 const QString name = icon.name();
77 const bool validName = !name.isEmpty() && !QDir::isAbsolutePath(name);
79 toplevelIcon->set_name(name);
82 QList<QSize> iconSizes = icon.availableSizes();
84 if (iconSizes.isEmpty()) {
85 iconSizes.reserve(mPreferredSizes.size());
86 for (
int size : std::as_const(mPreferredSizes)) {
87 iconSizes.append(QSize(size, size));
91 if (iconSizes.isEmpty()) {
92 iconSizes.append(QSize(64, 64));
95 bool hasPixmaps =
false;
96 for (
const QSize &size : std::as_const(iconSizes)) {
97 const QPixmap pixmap = icon.pixmap(size, 1.0);
98 if (pixmap.isNull()) {
99 qCWarning(lcQpaWayland) <<
"QWaylandXdgToplevelIconManagerV1: Failed to get pixmap of size" << size <<
"for icon" << icon;
103 toplevelIcon->addPixmap(pixmap);
107 if (validName || hasPixmaps) {
108 set_icon(window, toplevelIcon->object());
110 set_icon(window,
nullptr);