From b4b4d30567ea2d5c5bfaff8d019cf7ff5d023538 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Tue, 12 Jun 2018 22:56:59 +0200 Subject: [PATCH] qtui: Switch to tray-specific icons Change icon names for the system tray to use the tray-specific icons. Add support for inverted colors, too. --- src/qtui/systemtray.cpp | 29 ++++++++++++++++++++++------- src/qtui/systemtray.h | 2 ++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/qtui/systemtray.cpp b/src/qtui/systemtray.cpp index 2bc36541..679a4b18 100644 --- a/src/qtui/systemtray.cpp +++ b/src/qtui/systemtray.cpp @@ -39,6 +39,9 @@ SystemTray::SystemTray(QWidget *parent) _associatedWidget(parent) { Q_ASSERT(parent); + + NotificationSettings{}.initAndNotify("Systray/Animate", this, SLOT(enableAnimationChanged(QVariant)), true); + UiStyleSettings{}.initAndNotify("Icons/InvertTray", this, SLOT(invertTrayIconChanged(QVariant)), false); } @@ -75,9 +78,6 @@ void SystemTray::init() _trayMenu->addAction(coll->action("Quit")); connect(_trayMenu, SIGNAL(aboutToShow()), SLOT(trayMenuAboutToShow())); - - NotificationSettings notificationSettings; - notificationSettings.initAndNotify("Systray/Animate", this, SLOT(enableAnimationChanged(QVariant)), true); } @@ -151,15 +151,24 @@ void SystemTray::setState(State state) QString SystemTray::iconName(State state) const { + QString name; switch (state) { case State::Passive: - return "inactive-quassel"; + name = "inactive-quassel-tray"; + break; case State::Active: - return "quassel"; + name = "active-quassel-tray"; + break; case State::NeedsAttention: - return "message-quassel"; + name = "message-quassel-tray"; + break; } - return {}; + + if (_trayIconInverted) { + name += "-inverted"; + } + + return name; } @@ -206,6 +215,12 @@ void SystemTray::enableAnimationChanged(const QVariant &v) } +void SystemTray::invertTrayIconChanged(const QVariant &v) +{ + _trayIconInverted = v.toBool(); +} + + QString SystemTray::toolTipTitle() const { return _toolTipTitle; diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index f49f7cfb..1efdb418 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -108,12 +108,14 @@ private slots: void minimizeRestore(); void trayMenuAboutToShow(); void enableAnimationChanged(const QVariant &); + void invertTrayIconChanged(const QVariant &); private: Mode _mode{Mode::Invalid}; State _state{State::Passive}; bool _shouldBeVisible{true}; bool _animationEnabled{true}; + bool _trayIconInverted{false}; QString _toolTipTitle, _toolTipSubTitle; -- 2.20.1