Fixes #410 - away log (you'll find it in the views menu)
[quassel.git] / src / qtui / systraynotificationbackend.cpp
index 35dd2dd..c97860c 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
-*   Copyright (C) 2005-08 by the Quassel Project                          *
+*   Copyright (C) 2005-09 by the Quassel Project                          *
 *   devel@quassel-irc.org                                                 *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
@@ -29,7 +29,9 @@
 #include "networkmodel.h"
 #include "qtui.h"
 
-SystrayNotificationBackend::SystrayNotificationBackend(QObject *parent) : AbstractNotificationBackend(parent) {
+SystrayNotificationBackend::SystrayNotificationBackend(QObject *parent)
+  : AbstractNotificationBackend(parent)
+{
   NotificationSettings notificationSettings;
   _showBubble = notificationSettings.value("Systray/ShowBubble", true).toBool();
   _animate = notificationSettings.value("Systray/Animate", true).toBool();
@@ -37,13 +39,9 @@ SystrayNotificationBackend::SystrayNotificationBackend(QObject *parent) : Abstra
   notificationSettings.notify("Systray/ShowBubble", this, SLOT(showBubbleChanged(const QVariant &)));
   notificationSettings.notify("Systray/Animate", this, SLOT(animateChanged(const QVariant &)));
 
-  _configWidget = new ConfigWidget();
   _iconActive = false;
   connect(&_animationTimer, SIGNAL(timeout()), SLOT(blink()));
-}
-
-SystrayNotificationBackend::~SystrayNotificationBackend() {
-  delete _configWidget;
+  connect(QtUi::mainWindow()->systemTrayIcon(), SIGNAL(messageClicked()), this, SIGNAL(activated()));
 }
 
 void SystrayNotificationBackend::notify(const Notification &notification) {
@@ -86,9 +84,8 @@ void SystrayNotificationBackend::showBubble() {
 }
 
 void SystrayNotificationBackend::closeBubble() {
-  // there really seems to be no decent way to close the bubble...
-  // in addition, windows ignores the timeout -_-
-#ifndef Q_WS_WIN
+  // there really seems to be no sane way to close the bubble... :(
+#ifdef Q_WS_X11
   QtUi::mainWindow()->systemTrayIcon()->showMessage("", "", QSystemTrayIcon::NoIcon, 1);
 #endif
 }
@@ -117,8 +114,8 @@ void SystrayNotificationBackend::animateChanged(const QVariant &v) {
   _animate = v.toBool();
 }
 
-SettingsPage *SystrayNotificationBackend::configWidget() const {
-  return _configWidget;
+SettingsPage *SystrayNotificationBackend::createConfigWidget() const {
+  return new ConfigWidget();
 }
 
 /***************************************************************************/