X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fknotificationbackend.cpp;h=f189f9e19a648a5922bc306580e6675ac3258674;hb=8ffce0099c17b7658a309c5db325ce7f84103b07;hp=d3939dfba8e8f6a19c5a786950756e8e1e5a7ae4;hpb=e7d1bc1fa02e1233f140e4b04d99ab8f4685bce5;p=quassel.git diff --git a/src/qtui/knotificationbackend.cpp b/src/qtui/knotificationbackend.cpp index d3939dfb..f189f9e1 100644 --- a/src/qtui/knotificationbackend.cpp +++ b/src/qtui/knotificationbackend.cpp @@ -28,6 +28,7 @@ #include "client.h" #include "icon.h" #include "iconloader.h" +#include "mainwin.h" #include "networkmodel.h" #include "qtui.h" @@ -36,6 +37,8 @@ KNotificationBackend::KNotificationBackend(QObject *parent) { connect(QtUi::mainWindow()->systemTray(), SIGNAL(activated(SystemTray::ActivationReason)), SLOT(notificationActivated(SystemTray::ActivationReason))); + + updateToolTip(); } void KNotificationBackend::notify(const Notification &n) { @@ -62,6 +65,7 @@ void KNotificationBackend::notify(const Notification &n) { _notifications.append(qMakePair(n.notificationId, QPointer(notification))); + updateToolTip(); QtUi::mainWindow()->systemTray()->setAlert(true); } @@ -75,6 +79,7 @@ void KNotificationBackend::removeNotificationById(uint notificationId) { } else ++i; } + updateToolTip(); } void KNotificationBackend::close(uint notificationId) { @@ -93,15 +98,21 @@ void KNotificationBackend::notificationActivated() { } void KNotificationBackend::notificationActivated(SystemTray::ActivationReason reason) { - if(reason == SystemTray::Trigger && _notifications.count()) { - notificationActivated(_notifications.first().first); // oldest one + if(reason == SystemTray::Trigger) { + if( _notifications.count()) + notificationActivated(_notifications.first().first); // oldest one + else + GraphicalUi::toggleMainWidget(); } } void KNotificationBackend::notificationActivated(uint notificationId) { - QtUi::mainWindow()->systemTray()->setInhibitActivation(); emit activated(notificationId); +} +void KNotificationBackend::updateToolTip() { + QtUi::mainWindow()->systemTray()->setToolTip("Quassel IRC", + _notifications.count()? tr("%n pending highlights", "", _notifications.count()) : QString()); } SettingsPage *KNotificationBackend::createConfigWidget() const {