X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsnorenotificationbackend.cpp;h=3612bb025648bc8a6a9f13f758343d31c57784a7;hp=ee92875ed147527102543708e303d25960267b11;hb=90ca2d5de312eaab9fa410d87dae019e63599378;hpb=5d693863a5904e4b29de7b9e243b89ce6fa01288 diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index ee92875e..3612bb02 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -37,7 +37,7 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) - :AbstractNotificationBackend(parent), + : AbstractNotificationBackend(parent), m_systrayBackend(NULL) { NotificationSettings notificationSettings; @@ -45,22 +45,22 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) 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))); - 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,19 +69,14 @@ 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 (backend != "Default") { if (setSnoreBackend(backend)) { return; } @@ -101,7 +96,7 @@ void SnoreNotificationBackend::notify(const Notification &n) } 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); + 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); @@ -113,7 +108,7 @@ void SnoreNotificationBackend::close(uint notificationId) 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) @@ -154,8 +149,10 @@ SnoreNotificationBackend::ConfigWidget::ConfigWidget(Snore::SnoreCore *snore, QW 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))); @@ -188,10 +185,7 @@ void SnoreNotificationBackend::ConfigWidget::defaults() void SnoreNotificationBackend::ConfigWidget::load() { NotificationSettings s; - QString backend = m_snore->primaryNotificationBackend(); - if (backend.isEmpty()) { - backend = "SystemTray"; - } + 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);