diff --git a/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml b/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml --- a/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml +++ b/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml @@ -45,18 +45,22 @@ iconItem: iconItem + function isIconNotNull(icon) { + return icon && !plasmoid.nativeInterface.isIconNull(icon); + } + PlasmaCore.IconItem { id: iconItem source: { if (taskIcon.status === PlasmaCore.Types.NeedsAttentionStatus) { - if (AttentionIcon) { + if (isIconNotNull(AttentionIcon)) { return AttentionIcon } if (AttentionIconName) { return AttentionIconName } } - return Icon ? Icon : IconName + return isIconNotNull(Icon) ? Icon : IconName } width: Math.min(parent.width, parent.height) diff --git a/applets/systemtray/systemtray.h b/applets/systemtray/systemtray.h --- a/applets/systemtray/systemtray.h +++ b/applets/systemtray/systemtray.h @@ -109,6 +109,13 @@ Q_INVOKABLE bool isSystemTrayApplet(const QString &appletId); + /** + * @brief isIconNull checks if icon is null + * @param icon + * @return true if icon is null + */ + Q_INVOKABLE bool isIconNull(const QIcon &icon) const; + private Q_SLOTS: void serviceNameFetchFinished(QDBusPendingCallWatcher* watcher, const QDBusConnection &connection); void serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner); diff --git a/applets/systemtray/systemtray.cpp b/applets/systemtray/systemtray.cpp --- a/applets/systemtray/systemtray.cpp +++ b/applets/systemtray/systemtray.cpp @@ -341,6 +341,11 @@ return m_systrayApplets.contains(appletId); } +bool SystemTray::isIconNull(const QIcon &icon) const +{ + return icon.isNull(); +} + void SystemTray::restoreContents(KConfigGroup &group) { Q_UNUSED(group); diff --git a/dataengines/statusnotifieritem/statusnotifieritemsource.cpp b/dataengines/statusnotifieritem/statusnotifieritemsource.cpp --- a/dataengines/statusnotifieritem/statusnotifieritemsource.cpp +++ b/dataengines/statusnotifieritem/statusnotifieritemsource.cpp @@ -303,7 +303,7 @@ overlayIcon(&icon, &overlay); } } - setData(QStringLiteral("Icon"), icon.isNull() ? QVariant() : icon); + setData(QStringLiteral("Icon"), icon); setData(QStringLiteral("IconName"), iconName); } @@ -329,7 +329,7 @@ overlayIcon(&attentionIcon, &overlay); } } - setData(QStringLiteral("AttentionIcon"), attentionIcon.isNull() ? QVariant() : attentionIcon); + setData(QStringLiteral("AttentionIcon"), attentionIcon); } //ToolTip