From 6e43a0a872c9dac529b14b24c26587b6e049f2c8 Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Tue, 2 Jul 2013 19:17:06 +0200 Subject: [PATCH] cleanup --- share/snoretoast/SnoreToast.exe | Bin 223232 -> 259072 bytes src/core/notification/notification.cpp | 5 +++++ src/core/notification/notification.h | 2 ++ src/core/plugins/plugins.cpp | 4 ++-- src/core/plugins/plugins.h | 1 - src/core/snore.cpp | 7 ++++++ src/core/snore.h | 4 ++++ src/plugins/backends/growl/growl.cpp | 3 +-- src/plugins/backends/snarl/snarl.cpp | 14 +++--------- src/plugins/backends/snarl/snarl.h | 1 - .../backends/snoretoast/snoretoast.cpp | 5 ++--- .../backends/trayicon/trayiconnotifer.cpp | 20 +++++++++--------- .../freedesktopnotificationfrontend.cpp | 6 +----- 13 files changed, 37 insertions(+), 35 deletions(-) diff --git a/share/snoretoast/SnoreToast.exe b/share/snoretoast/SnoreToast.exe index f011b24b0fc4d6a552f6946f1a74ff74b0334306..2711ae3d8c08a16ccfbbdc111f7a78a7b27d24e2 100644 GIT binary patch delta 65365 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 delta 40983 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 U!XBdV9xUZ3ihmFPGTWH)U*_&2{{R30 diff --git a/src/core/notification/notification.cpp b/src/core/notification/notification.cpp index 518c69b..15a4ae1 100644 --- a/src/core/notification/notification.cpp +++ b/src/core/notification/notification.cpp @@ -245,6 +245,11 @@ void Notification::insertHint ( const QString &key, const QVariant &val ) d->m_hints.insert ( key,val ); } +bool Notification::isValid() const +{ + return d != NULL; +} + const QObject *Notification::data() const { return d; diff --git a/src/core/notification/notification.h b/src/core/notification/notification.h index 3f63127..38f53e6 100644 --- a/src/core/notification/notification.h +++ b/src/core/notification/notification.h @@ -95,6 +95,8 @@ public: bool hintExists ( const QString &key ); void insertHint ( const QString &key,const QVariant &val ); + bool isValid() const; + const QObject *data() const; diff --git a/src/core/plugins/plugins.cpp b/src/core/plugins/plugins.cpp index dd11139..bfd8582 100644 --- a/src/core/plugins/plugins.cpp +++ b/src/core/plugins/plugins.cpp @@ -82,8 +82,8 @@ void SnorePlugin::startTimeout(uint id,int timeout){ void SnorePlugin::notificationTimedOut(){ uint id = m_timeout_order.takeFirst(); m_timeouts.take(id)->deleteLater(); - if(m_activeNotifications.contains(id)){ - Notification n = m_activeNotifications.take(id); + Notification n = snore()->getActiveNotificationByID(id); + if(n.isValid()){ snore()->closeNotification(n,NotificationEnums::CloseReasons::TIMED_OUT); } } diff --git a/src/core/plugins/plugins.h b/src/core/plugins/plugins.h index fd02898..6c9a376 100644 --- a/src/core/plugins/plugins.h +++ b/src/core/plugins/plugins.h @@ -39,7 +39,6 @@ public: const QString &name() const; protected: - QHash m_activeNotifications; void startTimeout(uint id,int timeout); private slots: void notificationTimedOut(); diff --git a/src/core/snore.cpp b/src/core/snore.cpp index 21e1a6a..0e064c6 100644 --- a/src/core/snore.cpp +++ b/src/core/snore.cpp @@ -224,6 +224,7 @@ uint SnoreCore::broadcastNotification ( Notification notification ) qApp->quit(); } notification.setId(m_notificationBackend->notify( notification )); + m_activeNotifications[notification.id()] = notification; return notification.id(); } return -1; @@ -232,6 +233,7 @@ uint SnoreCore::broadcastNotification ( Notification notification ) void SnoreCore::closeNotification ( Notification notification,const NotificationEnums::CloseReasons::closeReasons &reason ) { notification.setCloseReason(reason); + m_activeNotifications.remove(notification.id()); emit closeNotify ( notification ); } @@ -314,6 +316,11 @@ QSystemTrayIcon *SnoreCore::trayIcon(){ return m_trayIcon; } +Notification SnoreCore::getActiveNotificationByID(uint id) +{ + return m_activeNotifications[id]; +} + } #include "snore.moc" diff --git a/src/core/snore.h b/src/core/snore.h index 09cdae1..287dc3c 100644 --- a/src/core/snore.h +++ b/src/core/snore.h @@ -28,6 +28,7 @@ class QSystemTrayIcon; class QDir; class QSettings; + namespace Snore{ class SNORE_EXPORT SnoreCore:public QObject { @@ -61,6 +62,8 @@ public: const QString &primaryNotificationBackend(); QSystemTrayIcon *trayIcon(); + Notification getActiveNotificationByID(uint id); + private: @@ -71,6 +74,7 @@ private: static QDir *s_pluginDir; ApplicationsList m_applications; + QHash m_activeNotifications; QStringList m_notificationBackends; diff --git a/src/plugins/backends/growl/growl.cpp b/src/plugins/backends/growl/growl.cpp index 8ddd838..0facadc 100644 --- a/src/plugins/backends/growl/growl.cpp +++ b/src/plugins/backends/growl/growl.cpp @@ -79,7 +79,6 @@ uint Growl::notify(Notification notification){ Notification::toPlainText(notification.title()).toUtf8().constData(), Notification::toPlainText(notification.text()).toUtf8().constData(), notification.icon().localUrl().isEmpty()?NULL:notification.icon().localUrl().toUtf8().constData(),NULL,"1"); - m_activeNotifications.insert(m_id,notification); }catch(const std::exception& e){ qDebug()<<"Growl:"<m_activeNotifications.take(id); + Notification n = s_instance->snore()->getActiveNotificationByID(id); NotificationEnums::CloseReasons::closeReasons r = NotificationEnums::CloseReasons::NONE; if(reason == "TIMEDOUT") r = NotificationEnums::CloseReasons::TIMED_OUT; diff --git a/src/plugins/backends/snarl/snarl.cpp b/src/plugins/backends/snarl/snarl.cpp index 48be386..99ca6ff 100644 --- a/src/plugins/backends/snarl/snarl.cpp +++ b/src/plugins/backends/snarl/snarl.cpp @@ -46,6 +46,7 @@ public: } bool winEvent( MSG * msg, long * result ){ + Q_UNUSED(result); if(msg->message == SNARL_GLOBAL_MESSAGE){ int action = msg->wParam; if(action == SnarlEnums::SnarlLaunched){ @@ -58,8 +59,7 @@ public: int action = msg->wParam & 0xffff; int data = (msg->wParam & 0xffffffff) >> 16; uint notificationID = msg->lParam; - qDebug()<<"_snarl->activeNotifications"<m_activeNotifications.keys(); - Notification notification(m_snarl->m_activeNotifications[notificationID]); + Notification notification = m_snarl->snore()->getActiveNotificationByID(notificationID); qDebug()<<"recived a Snarl callback id:"<m_away = true; break; case SnarlEnums::SnarlUserBack: qDebug()<<"Snalr user has returned"; - m_snarl->m_activeNotifications.clear(); - m_snarl->m_away = false; break; default: qDebug()<<"Unknown snarl action found!!"; @@ -106,8 +103,7 @@ private: SnarlBackend::SnarlBackend(): SnoreBackend("Snarl"), - m_defautSnarlinetrface(NULL), - m_away(false) + m_defautSnarlinetrface(NULL) { } @@ -189,9 +185,6 @@ uint SnarlBackend::notify(Notification notification){ foreach(const Notification::Action *a, notification.actions()){ snarlInterface->AddAction(id,a->name.toUtf8().constData(),QString("@").append(QString::number(a->id)).toUtf8().constData()); } - //add ack stuff - if(!m_away) - m_activeNotifications[id] = notification; }else{ //update message snarlInterface->Update(notification.id(), @@ -209,7 +202,6 @@ uint SnarlBackend::notify(Notification notification){ void SnarlBackend::closeNotification(Notification notification){ m_defautSnarlinetrface->Hide(notification.id()); - m_activeNotifications.remove(notification.id()); } #include "snarl.moc" diff --git a/src/plugins/backends/snarl/snarl.h b/src/plugins/backends/snarl/snarl.h index 5c9412b..eaf2205 100644 --- a/src/plugins/backends/snarl/snarl.h +++ b/src/plugins/backends/snarl/snarl.h @@ -35,7 +35,6 @@ private: SnarlBackend::SnarlWidget* m_eventLoop; QHash m_applications; Snarl::V42::SnarlInterface* m_defautSnarlinetrface; - bool m_away; public slots: void registerApplication(Snore::Application *application); diff --git a/src/plugins/backends/snoretoast/snoretoast.cpp b/src/plugins/backends/snoretoast/snoretoast.cpp index d9386f2..a466167 100644 --- a/src/plugins/backends/snoretoast/snoretoast.cpp +++ b/src/plugins/backends/snoretoast/snoretoast.cpp @@ -66,7 +66,6 @@ uint SnoreToast::notify(Notification notification) uint id = p->pid()->dwProcessId; p->setProperty("SNORE_NOTIFICATION_ID",id); - m_activeNotifications[id] = notification; return id; } @@ -79,7 +78,7 @@ void SnoreToast::closeNotification(Notification notification) void SnoreToast::slotToastNotificationClosed(int code, QProcess::ExitStatus) { QProcess *p = qobject_cast(sender()); - Notification n = m_activeNotifications.take(p->property("SNORE_NOTIFICATION_ID").toUInt()); + Notification n = snore()->getActiveNotificationByID(p->property("SNORE_NOTIFICATION_ID").toUInt()); NotificationEnums::CloseReasons::closeReason reason = NotificationEnums::CloseReasons::CLOSED; @@ -89,7 +88,7 @@ void SnoreToast::slotToastNotificationClosed(int code, QProcess::ExitStatus) reason = NotificationEnums::CloseReasons::CLOSED; if(!n.actions().isEmpty()) { - n.setActionInvoked(n.actions().begin().key()); + n.setActionInvoked(n.actions().keys().first()); snore()->notificationActionInvoked(n); } break; diff --git a/src/plugins/backends/trayicon/trayiconnotifer.cpp b/src/plugins/backends/trayicon/trayiconnotifer.cpp index 1bbd3f5..e98f0ae 100644 --- a/src/plugins/backends/trayicon/trayiconnotifer.cpp +++ b/src/plugins/backends/trayicon/trayiconnotifer.cpp @@ -64,28 +64,28 @@ void TrayIconNotifer::displayNotification(){ qDebug()<<"taking"<showMessage ( Notification::toPlainText(notification.title()),Notification::toPlainText(notification.text()),QSystemTrayIcon::NoIcon,notification.timeout() *1000 ); m_lastNotify.restart(); } void TrayIconNotifer::closeNotification(){ - if(m_activeNotifications.contains(m_displayed)){ - Notification noti = m_activeNotifications.take(m_displayed); - snore()->closeNotification(noti,NotificationEnums::CloseReasons::TIMED_OUT); + Notification n = snore()->getActiveNotificationByID(m_displayed); + if(n.isValid()){ + snore()->closeNotification(n,NotificationEnums::CloseReasons::TIMED_OUT); } displayNotification(); } void TrayIconNotifer::actionInvoked(){ qDebug()<<"Traicon invoked"<notificationActionInvoked(noti); + + Notification n = snore()->getActiveNotificationByID(m_displayed); + if(n.isValid()){ + if(n.actions().isEmpty()){ + n.setActionInvoked(n.actions().keys().first()); + snore()->notificationActionInvoked(n); } - snore()->closeNotification(noti,NotificationEnums::CloseReasons::CLOSED); + snore()->closeNotification(n,NotificationEnums::CloseReasons::CLOSED); } diff --git a/src/plugins/frontends/freedesktop/freedesktopnotificationfrontend.cpp b/src/plugins/frontends/freedesktop/freedesktopnotificationfrontend.cpp index 253a65b..c93372f 100644 --- a/src/plugins/frontends/freedesktop/freedesktopnotificationfrontend.cpp +++ b/src/plugins/frontends/freedesktop/freedesktopnotificationfrontend.cpp @@ -57,8 +57,6 @@ void FreedesktopFrontend::actionInvoked(Notification notification) { void FreedesktopFrontend::notificationClosed(Notification notification) { qDebug()<<"Closing Dbus notification"<broadcastNotification(noti); - m_activeNotifications[noti.id()] = noti; startTimeout(noti.id(),noti.timeout()); return noti.id(); } @@ -107,8 +104,7 @@ uint FreedesktopFrontend::Notify(const QString &app_name, uint replaces_id, void FreedesktopFrontend::CloseNotification(uint id){ - Notification noti = m_activeNotifications.take(id); - qDebug()<<"Active Dbus Notifications"<getActiveNotificationByID(id); snore()->closeNotification(noti,NotificationEnums::CloseReasons::TIMED_OUT); }