Enable Breeze on Appveyor
[quassel.git] / src / qtui / snorenotificationbackend.cpp
index 69ce0e0..d14f515 100644 (file)
@@ -91,7 +91,9 @@ void SnoreNotificationBackend::close(uint notificationId)
     }
 #endif
     Snore::Notification n = Snore::SnoreCore::instance().getActiveNotificationByID(m_notificationIds.take(notificationId));
-    Snore::SnoreCore::instance().requestCloseNotification(n, Snore::Notification::Closed);
+    if (n.isValid()) { // Don't close the notification if it no longer exists.
+        Snore::SnoreCore::instance().requestCloseNotification(n, Snore::Notification::Closed);
+    }
 }
 
 void SnoreNotificationBackend::actionInvoked(Snore::Notification n)
@@ -122,9 +124,13 @@ void SnoreNotificationBackend::setTraybackend(const QVariant &b)
     }
 #endif
     if (b.toBool()) {
-        Snore::SnoreCore::instance().registerApplication(m_application);
+        if (!Snore::SnoreCore::instance().aplications().contains(m_application.name())) {
+            Snore::SnoreCore::instance().registerApplication(m_application);
+        }
     } else {
-        Snore::SnoreCore::instance().deregisterApplication(m_application);
+        if (Snore::SnoreCore::instance().aplications().contains(m_application.name())) {
+            Snore::SnoreCore::instance().deregisterApplication(m_application);
+        }
     }
 }