From: Manuel Nickschas Date: Wed, 13 Jun 2018 22:03:23 +0000 (+0200) Subject: qtui: Properly update tray icons X-Git-Tag: travis-deploy-test~32 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=ea5b220601473213689ef9bad6611ec74b776aa5 qtui: Properly update tray icons Refresh tray icons in case the icon theme is changed, or when switching between normal and inverted tray icons. --- diff --git a/src/qtui/legacysystemtray.cpp b/src/qtui/legacysystemtray.cpp index 8e7d2b72..7513bc81 100644 --- a/src/qtui/legacysystemtray.cpp +++ b/src/qtui/legacysystemtray.cpp @@ -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); diff --git a/src/qtui/statusnotifieritem.cpp b/src/qtui/statusnotifieritem.cpp index f3b462bc..9f34e7c9 100644 --- a/src/qtui/statusnotifieritem.cpp +++ b/src/qtui/statusnotifieritem.cpp @@ -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 diff --git a/src/qtui/systemtray.cpp b/src/qtui/systemtray.cpp index 4a68dd64..9d2078be 100644 --- a/src/qtui/systemtray.cpp +++ b/src/qtui/systemtray.cpp @@ -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(); } diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index d07edf10..733a6f09 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -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);