diff --git a/plugins/tray/snitraywidget.cpp b/plugins/tray/snitraywidget.cpp index 2500c09c6..1fb516754 100644 --- a/plugins/tray/snitraywidget.cpp +++ b/plugins/tray/snitraywidget.cpp @@ -156,6 +156,8 @@ SNITrayWidget::SNITrayWidget(const QString &sniServicePath, QWidget *parent) connect(m_sniInter, &StatusNotifierItem::NewStatus, [ = ] { onSNIStatusChanged(m_sniInter->status()); }); + + initSNIPropertys(); } QString SNITrayWidget::itemKeyForConfig() @@ -251,6 +253,30 @@ uint SNITrayWidget::servicePID(const QString &servicePath) return conn.interface()->servicePid(serviceName); } +void SNITrayWidget::initSNIPropertys() +{ + m_sniAttentionIconName = m_sniInter->attentionIconName(); + m_sniAttentionIconPixmap = m_sniInter->attentionIconPixmap(); + m_sniAttentionMovieName = m_sniInter->attentionMovieName(); + m_sniCategory = m_sniInter->category(); + m_sniIconName = m_sniInter->iconName(); + m_sniIconPixmap = m_sniInter->iconPixmap(); + m_sniIconThemePath = m_sniInter->iconThemePath(); + m_sniMenuPath = m_sniInter->menu(); + m_sniOverlayIconName = m_sniInter->overlayIconName(); + m_sniOverlayIconPixmap = m_sniInter->overlayIconPixmap(); + m_sniStatus = m_sniInter->status(); + + // 使用同步的方式获取id,否则在插入的时候无法获取正确的位置 + m_sniInter->setSync(true); + m_sniId = m_sniInter->id(); + m_sniInter->setSync(false); + + m_updateIconTimer->start(); +// m_updateOverlayIconTimer->start(); +// m_updateAttentionIconTimer->start(); +} + void SNITrayWidget::initMenu() { const QString &sniMenuPath = m_sniMenuPath.path(); diff --git a/plugins/tray/snitraywidget.h b/plugins/tray/snitraywidget.h index 17517bda4..65b487fd1 100644 --- a/plugins/tray/snitraywidget.h +++ b/plugins/tray/snitraywidget.h @@ -79,6 +79,7 @@ Q_SIGNALS: void statusChanged(SNITrayWidget::ItemStatus status); private Q_SLOTS: + void initSNIPropertys(); void initMenu(); void refreshIcon(); void refreshOverlayIcon();