diff options
Diffstat (limited to 'src/lib/xdgnotificationmessage.cpp')
-rw-r--r-- | src/lib/xdgnotificationmessage.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/lib/xdgnotificationmessage.cpp b/src/lib/xdgnotificationmessage.cpp new file mode 100644 index 0000000..3dc0e2e --- /dev/null +++ b/src/lib/xdgnotificationmessage.cpp @@ -0,0 +1,119 @@ +#include "xdgnotificationmessage.h" +#include <QTimer> + + +QString xdg::NotificationMessage::appName() const +{ + return m_appName; +} + +QString xdg::NotificationMessage::appIcon() const +{ + return m_appIcon; +} + +QString xdg::NotificationMessage::summary() const +{ + return m_summary; +} + +QString xdg::NotificationMessage::body() const +{ + return m_body; +} + +QStringList xdg::NotificationMessage::actions() const +{ + return m_actions; +} + +QVariantMap xdg::NotificationMessage::hints() const +{ + return m_hints; +} + +uint xdg::NotificationMessage::id() const +{ + return m_id; +} + +void xdg::NotificationMessage::_expired() +{ + emit expired(this); +} + + +xdg::NotificationMessage::NotificationMessage( + const QString &app_name, + const QString &app_icon, + const QString &summary, + const QString &body, + const QStringList &actions, + const QVariantMap &hints, + int timeout, + QObject *parent) + : QObject(parent) + , m_appName(app_name) + , m_appIcon(app_icon) + , m_summary(summary) + , m_body(body) + , m_actions(actions) + , m_hints(hints) + , m_timeout(timeout) +{ + if(m_timeout > 0) + QTimer::singleShot(m_timeout, this, &xdg::NotificationMessage::_expired); +} + +void xdg::NotificationMessage::update(const QString &app_name, const QString &app_icon, const QString &summary, const QString &body, const QStringList &actions, const QVariantMap &hints, int timeout) +{ + if(m_appName != app_name) + { + m_appName = app_name; + emit appNameChanged(m_appName); + } + + if(m_appIcon != app_icon) + { + m_appIcon = app_icon; + emit appIconChanged(m_appIcon); + } + + if(m_summary != summary) + { + m_summary = summary; + emit summaryChanged(m_summary); + } + + if(m_body != app_name) + { + m_body = body; + emit bodyChanged(m_body); + } + + if(m_actions != actions) + { + m_actions = actions; + emit actionsChanged(m_actions); + } + + if(m_hints != hints) + { + m_hints = hints; + emit hintsChanged(m_hints); + } + + if(m_timeout != timeout) + { + m_timeout = timeout; + emit timeoutChanged(m_timeout); + } + if(m_timeout > 0) + QTimer::singleShot(m_timeout, this, &xdg::NotificationMessage::_expired); + +} + +void xdg::NotificationMessage::setId(uint id) +{ + m_id = id; +} |