From 2171ed455bb54b327e09b0e873724cf75cbbfd33 Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Thu, 16 Jan 2014 09:41:05 +0100 Subject: [PATCH] fixed tray icon --- .../backends/trayicon/trayiconnotifer.cpp | 25 ++++++++++++------- .../backends/trayicon/trayiconnotifer.h | 4 +-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/plugins/backends/trayicon/trayiconnotifer.cpp b/src/plugins/backends/trayicon/trayiconnotifer.cpp index 6618671..d7a78a7 100644 --- a/src/plugins/backends/trayicon/trayiconnotifer.cpp +++ b/src/plugins/backends/trayicon/trayiconnotifer.cpp @@ -14,7 +14,13 @@ Q_EXPORT_PLUGIN2(trayicon,TrayIconNotifer) TrayIconNotifer::TrayIconNotifer () : SnoreBackend ( "SystemTray",false,false ), m_trayIcon(NULL), - m_displayed(-1) + m_displayed(-1), + m_currentlyDisplaying(false) +{ + +} + +TrayIconNotifer::~TrayIconNotifer() { } @@ -46,25 +52,26 @@ bool TrayIconNotifer::deinitialize() void TrayIconNotifer::slotNotify( Notification notification ) { m_notificationQue.append(notification); - if(m_lastNotify.elapsed()> Notification::defaultTimeout() * 1000) + qDebug() << notification << m_currentlyDisplaying; + if(!m_currentlyDisplaying) { + m_currentlyDisplaying = true; displayNotification(); } } void TrayIconNotifer::displayNotification() { - qDebug()<<"Display"<showMessage ( Snore::toPlainText(notification.title()),Snore::toPlainText(notification.text()),QSystemTrayIcon::NoIcon,notification.timeout() *1000 ); - m_lastNotify.restart(); + QTimer::singleShot(notification.timeout()*1000,this,SLOT(slotCloseNotificationByTimeout())); } void TrayIconNotifer::slotCloseNotificationByTimeout() diff --git a/src/plugins/backends/trayicon/trayiconnotifer.h b/src/plugins/backends/trayicon/trayiconnotifer.h index abeeac9..c1e297c 100644 --- a/src/plugins/backends/trayicon/trayiconnotifer.h +++ b/src/plugins/backends/trayicon/trayiconnotifer.h @@ -3,7 +3,6 @@ #include "core/plugins/snorebackend.h" -#include namespace Snore{ class SnoreCore; @@ -18,6 +17,7 @@ class TrayIconNotifer:public Snore::SnoreBackend Q_PLUGIN_METADATA(IID "org.Snore.NotificationBackend/1.0") public: TrayIconNotifer (); + virtual ~TrayIconNotifer(); virtual bool initialize(Snore::SnoreCore *snore); virtual bool deinitialize(); @@ -27,8 +27,8 @@ public slots: private: QSystemTrayIcon *m_trayIcon; QList m_notificationQue; - QTime m_lastNotify; uint m_displayed; + bool m_currentlyDisplaying; private slots: void displayNotification();