qtui: Rework the attention state behavior of the tray icon
[quassel.git] / src / qtui / statusnotifieritem.cpp
index 9f34e7c..5932746 100644 (file)
@@ -105,8 +105,9 @@ StatusNotifierItem::StatusNotifierItem(QWidget *parent)
 
     // Our own SNI service
     _statusNotifierItemDBus = new StatusNotifierItemDBus(this);
+    connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewIcon()));
+    connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewAttentionIcon()));
     connect(this, SIGNAL(toolTipChanged(QString, QString)), _statusNotifierItemDBus, SIGNAL(NewToolTip()));
-    connect(this, SIGNAL(animationEnabledChanged(bool)), _statusNotifierItemDBus, SIGNAL(NewAttentionIcon()));
 
     // Service watcher to keep track of the StatusNotifierWatcher service
     QDBusServiceWatcher *watcher = new QDBusServiceWatcher(kSniWatcherService,
@@ -240,11 +241,11 @@ bool StatusNotifierItem::isSystemTrayAvailable() const
 void StatusNotifierItem::onModeChanged(Mode mode)
 {
     if (mode == Mode::StatusNotifier) {
-        _statusNotifierItemDBus->registerService();
+        _statusNotifierItemDBus->registerTrayIcon();
         registerToWatcher();
     }
     else {
-        _statusNotifierItemDBus->unregisterService();
+        _statusNotifierItemDBus->unregisterTrayIcon();
     }
 }
 
@@ -252,7 +253,6 @@ void StatusNotifierItem::onModeChanged(Mode mode)
 void StatusNotifierItem::onStateChanged(State state)
 {
     if (mode() == Mode::StatusNotifier) {
-        emit _statusNotifierItemDBus->NewIcon();
         emit _statusNotifierItemDBus->NewStatus(metaObject()->enumerator(metaObject()->indexOfEnumerator("State")).valueToKey(state));
     }
 }
@@ -262,11 +262,11 @@ void StatusNotifierItem::onVisibilityChanged(bool isVisible)
 {
     if (mode() == Mode::StatusNotifier) {
         if (isVisible) {
-            _statusNotifierItemDBus->registerService();
+            _statusNotifierItemDBus->registerTrayIcon();
             registerToWatcher();
         }
         else {
-            _statusNotifierItemDBus->unregisterService();
+            _statusNotifierItemDBus->unregisterTrayIcon();
         }
     }
 }
@@ -280,23 +280,13 @@ QString StatusNotifierItem::title() const
 
 QString StatusNotifierItem::iconName() const
 {
-    if (state() == Passive) {
-        return SystemTray::iconName(State::Passive);
-    }
-    else {
-        return SystemTray::iconName(State::Active);
-    }
+    return currentIconName();
 }
 
 
 QString StatusNotifierItem::attentionIconName() const
 {
-    if (animationEnabled()) {
-        return SystemTray::iconName(State::NeedsAttention);
-    }
-    else {
-        return SystemTray::iconName(State::NeedsAttention);
-    }
+    return currentAttentionIconName();
 }