If you choose to make a separate dev package for StatusNotifierItem, please
consider to apply the following Ilya Fedin's patch. It fixes an unavailable
tray icon in KDE Plasma 5 and Cinnamon.

https://salsa.debian.org/debian/telegram-desktop/commit/e15e78c26c4076814888bea32e8a3f5b5a4a8f5f

commit e15e78c26c4076814888bea32e8a3f5b5a4a8f5f
Author: Ilya Fedin <[email protected]>
Date:   Sat Feb 22 23:31:57 2020 +0300

    StatusNotifierItem category
    
    Closes: #951810
    Origin: https://github.com/lxqt/lxqt-qtplugin/pull/52/files

diff --git a/debian/statusnotifieritem/statusnotifieritem.cpp b/debian/statusnotifieritem/statusnotifieritem.cpp
index 00e863fed..93b238f33 100644
--- a/debian/statusnotifieritem/statusnotifieritem.cpp
+++ b/debian/statusnotifieritem/statusnotifieritem.cpp
@@ -42,6 +42,7 @@ StatusNotifierItem::StatusNotifierItem(QString id, QObject *parent)
     mId(id),
     mTitle(QLatin1String("Test")),
     mStatus(QLatin1String("Active")),
+    mCategory(QLatin1String("ApplicationStatus")),
     mMenu(nullptr),
     mMenuExporter(nullptr),
     mSessionBus(QDBusConnection::connectToBus(QDBusConnection::SessionBus, mService))
@@ -116,6 +117,14 @@ void StatusNotifierItem::setStatus(const QString &status)
     Q_EMIT mAdaptor->NewStatus(mStatus);
 }
 
+void StatusNotifierItem::setCategory(const QString &category)
+{
+    if (mCategory == category)
+        return;
+
+    mCategory = category;
+}
+
 void StatusNotifierItem::setMenuPath(const QString& path)
 {
     mMenuPath.setPath(path);
diff --git a/debian/statusnotifieritem/statusnotifieritem.h b/debian/statusnotifieritem/statusnotifieritem.h
index 9f24b954c..094735cbf 100644
--- a/debian/statusnotifieritem/statusnotifieritem.h
+++ b/debian/statusnotifieritem/statusnotifieritem.h
@@ -43,6 +43,7 @@ class StatusNotifierItem : public QObject
 {
     Q_OBJECT
 
+    Q_PROPERTY(QString Category READ category)
     Q_PROPERTY(QString Title READ title)
     Q_PROPERTY(QString Id READ id)
     Q_PROPERTY(QString Status READ status)
@@ -74,6 +75,10 @@ public:
     { return mStatus; }
     void setStatus(const QString &status);
 
+    QString category() const
+    { return mCategory; }
+    void setCategory(const QString &category);
+
     QDBusObjectPath menu() const
     { return mMenuPath; }
     void setMenuPath(const QString &path);
@@ -162,6 +167,7 @@ private:
     QString mId;
     QString mTitle;
     QString mStatus;
+    QString mCategory;
 
     // icons
     QString mIconName, mOverlayIconName, mAttentionIconName;

Reply via email to