blob: 4075f4fbf731a83c4b2bb00b888eb2a85489adf2 (
plain) (
blame)
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
|
#include "rosterItem.h"
#include <QImage>
rosterItem::rosterItem(const QString& bareJid) //: QStandardItem(bareJid)
{
setStatusType(QXmppPresence::Status::Offline);
setStatusText("Offline");
}
void rosterItem::setName(const QString& name)
{
setText(name);
}
QString rosterItem::getName()
{
return text();
}
void rosterItem::setBareJid(const QString& bareJid)
{
setData(bareJid, rosterItem::BareJid);
}
void rosterItem::setStatusText(const QString& text)
{
setData(text, rosterItem::StatusText);
}
QString rosterItem::getBareJid()
{
return data(rosterItem::BareJid).toString();
}
QString rosterItem::getStatusText()
{
return data(rosterItem::StatusText).toString();
}
void rosterItem::setStatusType(QXmppPresence::Status::Type type)
{
setData(static_cast<int>(type), StatusType);
QString icon;
switch(type)
{
case QXmppPresence::Status::Online:
case QXmppPresence::Status::Chat:
icon = "green";
break;
case QXmppPresence::Status::Away:
case QXmppPresence::Status::XA:
icon = "orange";
break;
case QXmppPresence::Status::DND:
icon = "red";
break;
case QXmppPresence::Status::Invisible:
case QXmppPresence::Status::Offline:
icon = "gray";
break;
}
if(!icon.isEmpty())
setIcon(QIcon(":/icons/resource/"+icon+".png"));
}
QXmppPresence::Status::Type rosterItem::getStatusType()
{
return static_cast<QXmppPresence::Status::Type>(data(StatusType).toInt());
}
void rosterItem::setPresenceType(QXmppPresence::Type type)
{
setData(static_cast<int>(type), PresenceType);
QString icon;
switch(type)
{
case QXmppPresence::Available:
break;
case QXmppPresence::Unavailable:
icon = "gray";
break;
case QXmppPresence::Error:
case QXmppPresence::Subscribe:
case QXmppPresence::Subscribed:
case QXmppPresence::Unsubscribe:
case QXmppPresence::Unsubscribed:
case QXmppPresence::Probe:
break;
}
if(!icon.isEmpty())
setIcon(QIcon(":/icons/resource/"+icon+".png"));
}
QXmppPresence::Type rosterItem::getPresenceType()
{
return static_cast<QXmppPresence::Type>(data(PresenceType).toInt());
}
void rosterItem::setAvatar(const QImage& image)
{
setData(QVariant(image), rosterItem::Avatar);
}
QImage rosterItem::getAvatar()
{
return qvariant_cast<QImage>(data(rosterItem::Avatar));
}
|