X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsnorenotificationbackend.cpp;h=6732c5493529bf36ca70f153497bc2dfe716f415;hb=b4c69f48601fdbb0266e66d4a71a7b896297f65b;hp=035947b32dc4707ac7b0cdbf69d7ed79fa18565d;hpb=30edb7b06758f7fd0335fcafdc77c066c32c00f0;p=quassel.git diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index 035947b3..6732c549 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -24,7 +24,6 @@ #include #include "client.h" -#include "iconloader.h" #include "networkmodel.h" #include "systraynotificationbackend.h" #include "qtui.h" @@ -37,30 +36,30 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) - :AbstractNotificationBackend(parent), + : AbstractNotificationBackend(parent), m_systrayBackend(NULL) { NotificationSettings notificationSettings; QString backend = notificationSettings.value("Snore/Backend", "Default").toString(); - m_timeout = notificationSettings.value("Snore/Timeout",10).toInt(); + m_timeout = notificationSettings.value("Snore/Timeout", 10).toInt(); notificationSettings.notify("Snore/Backend", this, SLOT(backendChanged(const QVariant &))); - notificationSettings.notify("Snore/Backend", this, SLOT(timeoutChanged(const QVariant &))); + notificationSettings.notify("Snore/Timeout", this, SLOT(timeoutChanged(const QVariant &))); //TODO: try to get an instance of the tray icon to be able to show popups m_snore = new Snore::SnoreCore(); - m_snore->hints().setValue("WINDOWS_APP_ID","QuasselProject.QuasselIRC"); - m_snore->loadPlugins(Snore::PluginContainer::BACKEND); - Snore::Application *a = new Snore::Application("Quassel",Snore::Icon(DesktopIcon("quassel").toImage())); + m_snore->loadPlugins(Snore::SnorePlugin::BACKEND); + m_icon = Snore::Icon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png")).pixmap(48).toImage()); + m_application = Snore::Application("Quassel", m_icon); + m_application.hints().setValue("WINDOWS_APP_ID","QuasselProject.QuasselIRC"); - connect(m_snore,SIGNAL(actionInvoked(Snore::Notification)),this,SLOT(actionInvoked(Snore::Notification))); + connect(m_snore, SIGNAL(actionInvoked(Snore::Notification)), this, SLOT(actionInvoked(Snore::Notification))); - m_icon = Snore::Icon(DesktopIcon("dialog-information").toImage()); - a->addAlert(new Snore::Alert(tr("Private Message"),tr("Private Message"))); + m_alert = Snore::Alert(tr("Private Message"), m_icon); + m_application.addAlert(m_alert); - m_snore->addApplication(a); - m_snore->applicationIsInitialized (a); + m_snore->registerApplication(m_application); backendChanged(QVariant::fromValue(backend)); @@ -69,24 +68,15 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) SnoreNotificationBackend::~SnoreNotificationBackend() { - m_snore->removeApplication("Quassel"); + m_snore->deregisterApplication(m_application); m_snore->deleteLater(); } void SnoreNotificationBackend::backendChanged(const QVariant &v) { QString backend = v.toString(); - if(backend == "Default") - { - if(m_snore->setPrimaryNotificationBackend())//try to find the default backend for the platform - { - return; - } - } - else if(backend != "SystemTray") - { - if(setSnoreBackend(backend)) - { + if (backend != "Default") { + if (setSnoreBackend(backend)) { return; } } @@ -100,22 +90,24 @@ void SnoreNotificationBackend::timeoutChanged(const QVariant &v) void SnoreNotificationBackend::notify(const Notification &n) { - if(m_systrayBackend != NULL) + if (m_systrayBackend != NULL) { return; + } QString title = Client::networkModel()->networkName(n.bufferId) + " - " + Client::networkModel()->bufferName(n.bufferId); QString message = QString("<%1> %2").arg(n.sender, n.message); - Snore::Notification noti("Quassel",tr("Private Message"),title,message,m_icon,m_timeout); - noti.hints().setValue("QUASSEL_ID",n.notificationId); - m_notificationIds.insert(n.notificationId,noti.id()); + Snore::Notification noti(m_application, m_alert, title, message, m_icon, m_timeout); + noti.hints().setValue("QUASSEL_ID", n.notificationId); + m_notificationIds.insert(n.notificationId, noti.id()); m_snore->broadcastNotification(noti); } void SnoreNotificationBackend::close(uint notificationId) { - if(m_systrayBackend != NULL) + if (m_systrayBackend != NULL) { return; + } Snore::Notification n = m_snore->getActiveNotificationByID(m_notificationIds.take(notificationId)); - m_snore->requestCloseNotification(n,Snore::NotificationEnums::CloseReasons::CLOSED); + m_snore->requestCloseNotification(n, Snore::Notification::CLOSED); } void SnoreNotificationBackend::actionInvoked(Snore::Notification n) @@ -130,7 +122,7 @@ SettingsPage *SnoreNotificationBackend::createConfigWidget()const void SnoreNotificationBackend::setTraybackend() { - if(m_systrayBackend == NULL){ + if (m_systrayBackend == NULL) { m_systrayBackend = new SystrayNotificationBackend(this); QtUi::registerNotificationBackend(m_systrayBackend); } @@ -138,7 +130,7 @@ void SnoreNotificationBackend::setTraybackend() bool SnoreNotificationBackend::setSnoreBackend(const QString &backend) { - if(m_systrayBackend != NULL){ + if (m_systrayBackend != NULL) { QtUi::unregisterNotificationBackend(m_systrayBackend); delete m_systrayBackend; m_systrayBackend = NULL; @@ -151,16 +143,18 @@ bool SnoreNotificationBackend::setSnoreBackend(const QString &backend) /***************************************************************************/ -SnoreNotificationBackend::ConfigWidget::ConfigWidget(Snore::SnoreCore *snore,QWidget *parent) +SnoreNotificationBackend::ConfigWidget::ConfigWidget(Snore::SnoreCore *snore, QWidget *parent) :SettingsPage("Internal", "SnoreNotification", parent), m_snore(snore) { ui.setupUi(this); - ui.backends->insertItem(0,"Default"); - ui.backends->insertItems(1,m_snore->notificationBackends()); + QStringList backends = m_snore->notificationBackends(); + backends.append("Default"); + qSort(backends); + ui.backends->insertItems(0, backends); connect(ui.backends, SIGNAL(currentIndexChanged(QString)), SLOT(backendChanged(QString))); - connect(ui.timeout,SIGNAL(valueChanged(int)),this,SLOT(timeoutChanged(int))); + connect(ui.timeout, SIGNAL(valueChanged(int)), this, SLOT(timeoutChanged(int))); } void SnoreNotificationBackend::ConfigWidget::backendChanged(const QString &b) @@ -190,11 +184,8 @@ void SnoreNotificationBackend::ConfigWidget::defaults() void SnoreNotificationBackend::ConfigWidget::load() { NotificationSettings s; - QString backend = m_snore->primaryNotificationBackend(); - if(backend.isEmpty()){ - backend = "SystemTray"; - } - int timeout = s.value("Snore/Timeout",10).toInt(); + QString backend = s.value("Snore/Backend", "Default").toString(); + int timeout = s.value("Snore/Timeout", 10).toInt(); ui.backends->setCurrentIndex(ui.backends->findText(backend)); ui.timeout->setValue(timeout); setChangedState(false); @@ -204,6 +195,6 @@ void SnoreNotificationBackend::ConfigWidget::save() { NotificationSettings s; s.setValue("Snore/Backend", ui.backends->currentText()); - s.setValue("Snore/Timeout",ui.timeout->value()); + s.setValue("Snore/Timeout", ui.timeout->value()); load(); }