qtui: Switch to tray-specific icons
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 12 Jun 2018 20:56:59 +0000 (22:56 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 15 Jun 2018 23:30:32 +0000 (01:30 +0200)
Change icon names for the system tray to use the tray-specific
icons. Add support for inverted colors, too.

src/qtui/systemtray.cpp
src/qtui/systemtray.h

index 2bc3654..679a4b1 100644 (file)
@@ -39,6 +39,9 @@ SystemTray::SystemTray(QWidget *parent)
     _associatedWidget(parent)
 {
     Q_ASSERT(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()));
     _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 SystemTray::iconName(State state) const
 {
+    QString name;
     switch (state) {
     case State::Passive:
     switch (state) {
     case State::Passive:
-        return "inactive-quassel";
+        name = "inactive-quassel-tray";
+        break;
     case State::Active:
     case State::Active:
-        return "quassel";
+        name = "active-quassel-tray";
+        break;
     case State::NeedsAttention:
     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;
 QString SystemTray::toolTipTitle() const
 {
     return _toolTipTitle;
index f49f7cf..1efdb41 100644 (file)
@@ -108,12 +108,14 @@ private slots:
     void minimizeRestore();
     void trayMenuAboutToShow();
     void enableAnimationChanged(const QVariant &);
     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};
 
 private:
     Mode _mode{Mode::Invalid};
     State _state{State::Passive};
     bool _shouldBeVisible{true};
     bool _animationEnabled{true};
+    bool _trayIconInverted{false};
 
     QString _toolTipTitle, _toolTipSubTitle;
 
 
     QString _toolTipTitle, _toolTipSubTitle;