summaryrefslogtreecommitdiff
path: root/src/lib/xdgnotificationmessage.cpp
blob: ba5750409ff7073bc0877de69fdac7b29dc7b21b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "xdgnotificationmessage.h"
#include <QTimer>


QString KaZoe::NotificationMessage::appName() const
{
    return m_appName;
}

QString KaZoe::NotificationMessage::appIcon() const
{
    return m_appIcon;
}

QString KaZoe::NotificationMessage::summary() const
{
    return m_summary;
}

QString KaZoe::NotificationMessage::body() const
{
    return m_body;
}

QStringList KaZoe::NotificationMessage::actions() const
{
    return m_actions;
}

QVariantMap KaZoe::NotificationMessage::hints() const
{
    return m_hints;
}

uint KaZoe::NotificationMessage::id() const
{
    return m_id;
}

void KaZoe::NotificationMessage::_expired()
{
    emit expired(this);
}


KaZoe::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, &KaZoe::NotificationMessage::_expired);
}

void KaZoe::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, &KaZoe::NotificationMessage::_expired);

}

void KaZoe::NotificationMessage::setId(uint id) 
{
    m_id = id;
}