@@ -391,7 +391,7 @@ X11WindowPreviewContainer::X11WindowPreviewContainer(X11WindowMonitor *monitor,
391391 if (iconData.toString ().isEmpty ()) {
392392 iconData = enter.data (TaskManager::IconNameRole);
393393 }
394- updatePreviewIconFromBase64 (iconData.toString ());
394+ updatePreviewIconFromString (iconData.toString ());
395395 updatePreviewTitle (enter.data (TaskManager::WinTitleRole).toString ());
396396 });
397397}
@@ -463,7 +463,7 @@ void X11WindowPreviewContainer::showPreviewWithModel(QAbstractItemModel *sourceM
463463 if (iconData.toString ().isEmpty ()) {
464464 iconData = firstIndex.data (TaskManager::IconNameRole);
465465 }
466- updatePreviewIconFromBase64 (iconData.toString ());
466+ updatePreviewIconFromString (iconData.toString ());
467467 updatePreviewTitle (firstIndex.data (TaskManager::WinTitleRole).toString ());
468468 updateSize (sourceModel->rowCount ());
469469 } else {
@@ -761,17 +761,24 @@ bool X11WindowPreviewContainer::eventFilter(QObject *watched, QEvent *event)
761761 return false ;
762762}
763763
764- void X11WindowPreviewContainer::updatePreviewIconFromBase64 (const QString &base64Data )
764+ void X11WindowPreviewContainer::updatePreviewIconFromString (const QString &stringData )
765765{
766- const QStringList strs = base64Data.split (" base64," );
767766 QPixmap pix;
767+ const QStringList strs = stringData.split (" base64," );
768768 if (strs.size () == 2 ) {
769+ // is base64 image data
769770 pix.loadFromData (QByteArray::fromBase64 (strs.at (1 ).toLatin1 ()));
771+ } else {
772+ // is (likely) icon name from theme
773+ pix = QIcon::fromTheme (stringData).pixmap (PREVIEW_TITLE_HEIGHT, PREVIEW_TITLE_HEIGHT);
770774 }
771775
772- if (!pix.isNull ()) {
773- m_previewIcon->setPixmap (pix);
774- return ;
776+ if (pix.isNull ()) {
777+ qCInfo (x11WindowPreview) << " Cannot load icon from string data:" << stringData;
778+ pix = QPixmap (PREVIEW_TITLE_HEIGHT, PREVIEW_TITLE_HEIGHT);
779+ pix.fill (Qt::transparent);
775780 }
781+
782+ m_previewIcon->setPixmap (pix);
776783}
777784}
0 commit comments