X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsnorenotificationbackend.cpp;h=bb126ce5c94d82c0e2fd95f56a27454bd8c55b3b;hp=0951e315bd21d05303cd1e3c55a40967a2723f27;hb=a113f73e5f8ce89c3df5c42d55528404fc7a2294;hpb=79ef34a9495187b296dd554cf57983019001c38b diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index 0951e315..bb126ce5 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -1,22 +1,22 @@ /*************************************************************************** -* Copyright (C) 2011-2013 by Patrick von Reth * -* vonreth@kde.org * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) version 3. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ + * Copyright (C) 2011-2016 by Hannah von Reth * + * vonreth@kde.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include "snorenotificationbackend.h" @@ -38,14 +38,14 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) : AbstractNotificationBackend(parent), - m_icon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png")).pixmap(48).toImage()) + m_icon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png"))) { Snore::SnoreCore::instance().loadPlugins( #ifndef HAVE_KDE - Snore::SnorePlugin::BACKEND | + Snore::SnorePlugin::Backend | #endif - Snore::SnorePlugin::SECONDARY_BACKEND); + Snore::SnorePlugin::SecondaryBackend | Snore::SnorePlugin::Settings); m_application = Snore::Application("Quassel", m_icon); m_application.hints().setValue("windows-app-id","QuasselProject.QuasselIRC"); m_application.hints().setValue("pushover-token", "arNtsi983QSZUqU3KAZrFLKHGFPkdL"); @@ -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); + } } }