X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fknotificationbackend.cpp;h=6cc25a6ac3c0f31fa09725ee6ef6a3a258af7b8f;hp=d3939dfba8e8f6a19c5a786950756e8e1e5a7ae4;hb=2ed35d8a6322e49ab604472a7af59592cf36ae12;hpb=e7d1bc1fa02e1233f140e4b04d99ab8f4685bce5 diff --git a/src/qtui/knotificationbackend.cpp b/src/qtui/knotificationbackend.cpp index d3939dfb..6cc25a6a 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,11 +79,12 @@ void KNotificationBackend::removeNotificationById(uint notificationId) { } else ++i; } + updateToolTip(); } void KNotificationBackend::close(uint notificationId) { removeNotificationById(notificationId); - if(!_notifications.count()) + //if(!_notifications.count()) // FIXME make configurable QtUi::mainWindow()->systemTray()->setAlert(false); } @@ -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 {