qtui: Properly update tray icons
authorManuel Nickschas <sputnick@quassel-irc.org>
Wed, 13 Jun 2018 22:03:23 +0000 (00:03 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 15 Jun 2018 23:30:32 +0000 (01:30 +0200)
Refresh tray icons in case the icon theme is changed, or when
switching between normal and inverted tray icons.

src/qtui/legacysystemtray.cpp
src/qtui/statusnotifieritem.cpp
src/qtui/systemtray.cpp
src/qtui/systemtray.h

index 8e7d2b7..7513bc8 100644 (file)
@@ -55,6 +55,7 @@ LegacySystemTray::LegacySystemTray(QWidget *parent)
     connect(this, SIGNAL(modeChanged(Mode)), this, SLOT(onModeChanged(Mode)));
     connect(this, SIGNAL(stateChanged(State)), this, SLOT(onStateChanged(State)));
     connect(this, SIGNAL(toolTipChanged(QString, QString)), SLOT(updateToolTip()));
+    connect(this, SIGNAL(iconsChanged()), this, SLOT(updateIcon()));
 
     _blinkTimer.setInterval(750);
     _blinkTimer.setSingleShot(false);
index f3b462b..9f34e7c 100644 (file)
@@ -100,7 +100,7 @@ StatusNotifierItem::StatusNotifierItem(QWidget *parent)
     }
 #endif
 
-    connect(QtUi::instance(), SIGNAL(iconThemeRefreshed()), this, SLOT(refreshIcons()));
+    connect(this, SIGNAL(iconsChanged()), this, SLOT(refreshIcons()));
     refreshIcons();
 
     // Our own SNI service
@@ -188,6 +188,7 @@ void StatusNotifierItem::onDBusError(const QDBusError &error)
     setMode(Mode::Legacy);
 }
 
+
 void StatusNotifierItem::refreshIcons()
 {
 #if QT_VERSION >= 0x050000
index 4a68dd6..9d2078b 100644 (file)
@@ -66,8 +66,9 @@ SystemTray::SystemTray(QWidget *parent)
     _trayMenu->addSeparator();
     _trayMenu->addAction(_minimizeRestoreAction);
     _trayMenu->addAction(coll->action("Quit"));
-
     connect(_trayMenu, SIGNAL(aboutToShow()), SLOT(trayMenuAboutToShow()));
+
+    connect(QtUi::instance(), SIGNAL(iconThemeRefreshed()), this, SIGNAL(iconsChanged()));
 }
 
 
@@ -213,6 +214,7 @@ void SystemTray::enableAnimationChanged(const QVariant &v)
 void SystemTray::invertTrayIconChanged(const QVariant &v)
 {
     _trayIconInverted = v.toBool();
+    emit iconsChanged();
 }
 
 
index d07edf1..733a6f0 100644 (file)
@@ -86,11 +86,11 @@ signals:
     void modeChanged(Mode mode);
     void stateChanged(State state);
     void visibilityChanged(bool isVisible);
-
-    void activated(SystemTray::ActivationReason);
-    void iconChanged(const QIcon &icon);
+    void iconsChanged();
     void animationEnabledChanged(bool);
     void toolTipChanged(const QString &title, const QString &subtitle);
+
+    void activated(SystemTray::ActivationReason);
     void messageClicked(uint notificationId);
     void messageClosed(uint notificationId);