X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsnorenotificationbackend.cpp;h=2408a992c5fd4c05e1d6df98c401e6037bc725cd;hp=6c125d988f555a34848052073976e79a475d48fc;hb=cc6e7c08709c4e761e2fd9c2e322751015497003;hpb=8cece06596c290d69c1f32b7221c796437f5fabb diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index 6c125d98..2408a992 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -1,57 +1,54 @@ /*************************************************************************** -* 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-2019 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" -#include -#include -#include - -#include "client.h" -#include "networkmodel.h" -#include "systraynotificationbackend.h" -#include "qtui.h" - #include +#include +#include +#include -#include #include +#include +#include "client.h" +#include "icon.h" +#include "networkmodel.h" +#include "qtui.h" +#include "systraynotificationbackend.h" -SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) - : AbstractNotificationBackend(parent), - m_icon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png"))) +SnoreNotificationBackend::SnoreNotificationBackend(QObject* parent) + : AbstractNotificationBackend(parent) + , m_icon(icon::get("quassel")) { - Snore::SnoreCore::instance().loadPlugins( #ifndef HAVE_KDE - Snore::SnorePlugin::Backend | + Snore::SnorePlugin::Backend | #endif - Snore::SnorePlugin::SecondaryBackend | Snore::SnorePlugin::Settings); + 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("windows-app-id", "QuasselProject.QuasselIRC"); m_application.hints().setValue("pushover-token", "arNtsi983QSZUqU3KAZrFLKHGFPkdL"); - connect(&Snore::SnoreCore::instance(), SIGNAL(actionInvoked(Snore::Notification)), this, SLOT(actionInvoked(Snore::Notification))); - + connect(&Snore::SnoreCore::instance(), &Snore::SnoreCore::actionInvoked, this, &SnoreNotificationBackend::actionInvoked); m_alert = Snore::Alert(tr("Private Message"), m_icon); m_application.addAlert(m_alert); @@ -60,7 +57,7 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) NotificationSettings notificationSettings; bool enabled = notificationSettings.value("Snore/Enabled", false).toBool(); setTraybackend(enabled); - notificationSettings.notify("Snore/Enabled", this, SLOT(setTraybackend(const QVariant &))); + notificationSettings.notify("Snore/Enabled", this, &SnoreNotificationBackend::setTraybackend); } SnoreNotificationBackend::~SnoreNotificationBackend() @@ -68,14 +65,14 @@ SnoreNotificationBackend::~SnoreNotificationBackend() Snore::SnoreCore::instance().deregisterApplication(m_application); } -void SnoreNotificationBackend::notify(const Notification &n) +void SnoreNotificationBackend::notify(const Notification& n) { #ifndef HAVE_KDE if (m_systrayBackend != nullptr) { return; } #endif - QString title = QString("%1 - %2").arg(Client::networkModel()->networkName(n.bufferId), Client::networkModel()->bufferName(n.bufferId)); + QString title = QString("%1 - %2").arg(Client::networkModel()->networkName(n.bufferId), Client::networkModel()->bufferName(n.bufferId)); QString message = QString("<%1> %2").arg(n.sender, n.message); Snore::Notification noti(m_application, m_alert, title, message, m_icon); noti.hints().setValue("QUASSEL_ID", n.notificationId); @@ -91,7 +88,7 @@ void SnoreNotificationBackend::close(uint notificationId) } #endif Snore::Notification n = Snore::SnoreCore::instance().getActiveNotificationByID(m_notificationIds.take(notificationId)); - if (n.isValid()) { // Don't close the notification if it no longer exists. + if (n.isValid()) { // Don't close the notification if it no longer exists. Snore::SnoreCore::instance().requestCloseNotification(n, Snore::Notification::Closed); } } @@ -101,13 +98,12 @@ void SnoreNotificationBackend::actionInvoked(Snore::Notification n) emit activated(n.hints().value("QUASSEL_ID").toUInt()); } -SettingsPage *SnoreNotificationBackend::createConfigWidget()const +SettingsPage* SnoreNotificationBackend::createConfigWidget() const { return new ConfigWidget(); } - -void SnoreNotificationBackend::setTraybackend(const QVariant &b) +void SnoreNotificationBackend::setTraybackend(const QVariant& b) { #ifndef HAVE_KDE if (!b.toBool()) { @@ -115,7 +111,8 @@ void SnoreNotificationBackend::setTraybackend(const QVariant &b) m_systrayBackend = new SystrayNotificationBackend(this); QtUi::registerNotificationBackend(m_systrayBackend); } - } else { + } + else { if (m_systrayBackend != nullptr) { QtUi::unregisterNotificationBackend(m_systrayBackend); m_systrayBackend->deleteLater(); @@ -124,19 +121,24 @@ void SnoreNotificationBackend::setTraybackend(const QVariant &b) } #endif if (b.toBool()) { - 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().registerApplication(m_application); + } + } + else { + if (Snore::SnoreCore::instance().aplications().contains(m_application.name())) { + Snore::SnoreCore::instance().deregisterApplication(m_application); + } } } /***************************************************************************/ -SnoreNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) - :SettingsPage("Internal", "SnoreNotification", parent) +SnoreNotificationBackend::ConfigWidget::ConfigWidget(QWidget* parent) + : SettingsPage("Internal", "SnoreNotification", parent) { ui.setupUi(this); - connect(ui.useSnoreCheckBox, SIGNAL(toggled(bool)), this, SLOT(useSnnoreChanged(bool))); + connect(ui.useSnoreCheckBox, &QCheckBox::toggled, this, &ConfigWidget::useSnoreChanged); } bool SnoreNotificationBackend::ConfigWidget::hasDefaults() const @@ -146,7 +148,7 @@ bool SnoreNotificationBackend::ConfigWidget::hasDefaults() const void SnoreNotificationBackend::ConfigWidget::defaults() { - useSnnoreChanged(false); + useSnoreChanged(false); ui.widget->reset(); } @@ -157,7 +159,7 @@ void SnoreNotificationBackend::ConfigWidget::load() ui.useSnoreCheckBox->setChecked(enabled); ui.widget->setEnabled(enabled); setChangedState(false); - QMetaObject::invokeMethod(this, "changed", Qt::QueuedConnection);//hack to make apply and accept button work for snore settings widget + QMetaObject::invokeMethod(this, "changed", Qt::QueuedConnection); // hack to make apply and accept button work for snore settings widget } void SnoreNotificationBackend::ConfigWidget::save() @@ -168,11 +170,9 @@ void SnoreNotificationBackend::ConfigWidget::save() load(); } -void SnoreNotificationBackend::ConfigWidget::useSnnoreChanged(bool b) +void SnoreNotificationBackend::ConfigWidget::useSnoreChanged(bool b) { ui.useSnoreCheckBox->setChecked(b); ui.widget->setEnabled(b); setChangedState(true); } - -