X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsnorenotificationbackend.cpp;h=3612bb025648bc8a6a9f13f758343d31c57784a7;hp=8a33dc6d56dc84d483daeeac7ad2b3485b81ccbd;hb=90ca2d5de312eaab9fa410d87dae019e63599378;hpb=041cba001b691df0d67aaec5fbf220f5503cdaa3 diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index 8a33dc6d..3612bb02 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -22,7 +22,6 @@ #include #include -#include #include "client.h" #include "iconloader.h" @@ -38,30 +37,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(DesktopIcon("quassel").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)); @@ -70,24 +69,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; } } @@ -101,22 +91,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) @@ -131,7 +123,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); } @@ -139,7 +131,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; @@ -152,16 +144,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) @@ -191,12 +185,8 @@ void SnoreNotificationBackend::ConfigWidget::defaults() void SnoreNotificationBackend::ConfigWidget::load() { NotificationSettings s; - QString backend = m_snore->primaryNotificationBackend(); - if(backend.isEmpty()){ - backend = "SystemTray"; - } - qDebug() << s.value("Snore/Timeout",10); - 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); @@ -206,6 +196,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(); }