File akregator-fix_systray.patch of Package akregator
From ea04b62a2312c6e895257ec1c91292a5b6631feb Mon Sep 17 00:00:00 2001
From: Luigi Baldoni <aloisio@gmx.com>
Date: Fri, 8 Jan 2021 20:12:24 +0100
Subject: [PATCH] Fix Bug 420520 - tray icon always shown
BUG: 420520
(thanks @Jari Kuittinen)
---
src/akregator_part.cpp | 4 +---
src/trayicon.cpp | 12 +++++++++++-
src/trayicon.h | 4 ++++
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/akregator_part.cpp b/src/akregator_part.cpp
index ca5cb9c8..7fef01d4 100644
--- a/src/akregator_part.cpp
+++ b/src/akregator_part.cpp
@@ -274,9 +274,7 @@ void Part::initializeTrayIcon()
TrayIcon::setInstance(trayIcon);
m_actionManager->setTrayIcon(trayIcon);
- if (isTrayIconEnabled()) {
- trayIcon->setStatus(KStatusNotifierItem::Active);
- }
+ trayIcon->setEnabled(isTrayIconEnabled());
connect(m_mainWidget.data(), &MainWidget::signalUnreadCountChanged, trayIcon, &TrayIcon::slotSetUnread);
connect(m_mainWidget.data(), &MainWidget::signalArticlesSelected,
diff --git a/src/trayicon.cpp b/src/trayicon.cpp
index 89ce5711..966f0f95 100644
--- a/src/trayicon.cpp
+++ b/src/trayicon.cpp
@@ -26,6 +26,16 @@ void TrayIcon::setInstance(TrayIcon *trayIcon)
m_instance = trayIcon;
}
+bool TrayIcon::isEnabled() const
+{
+ return mEnabled;
+}
+
+void TrayIcon::setEnabled(bool enabled)
+{
+ mEnabled = enabled;
+}
+
TrayIcon::TrayIcon(QObject *parent)
: KStatusNotifierItem(parent)
{
@@ -40,7 +50,7 @@ TrayIcon::~TrayIcon()
void TrayIcon::slotSetUnread(int unread)
{
- if (m_unread != unread) {
+ if (mEnabled && m_unread != unread) {
m_unread = unread;
setToolTip(QStringLiteral("akregator"), i18n("Akregator"), unread == 0 ? i18n("There are no unread articles") : i18np("1 unread article", "%1 unread articles", unread));
diff --git a/src/trayicon.h b/src/trayicon.h
index 0b1f8449..a257c40f 100644
--- a/src/trayicon.h
+++ b/src/trayicon.h
@@ -20,6 +20,9 @@ public:
static TrayIcon *getInstance();
static void setInstance(TrayIcon *trayIcon);
+ bool isEnabled() const;
+ void setEnabled(bool enabled);
+
explicit TrayIcon(QObject *parent = nullptr);
~TrayIcon();
@@ -30,6 +33,7 @@ public Q_SLOTS:
private:
static TrayIcon *m_instance;
int m_unread = 0;
+ bool mEnabled = false;
};
} // namespace Akregator
--
GitLab