forked from blue/squawk
Roster improovements
This commit is contained in:
parent
7b30228249
commit
76f9ece344
7 changed files with 265 additions and 18 deletions
72
ui/models/contact.cpp
Normal file
72
ui/models/contact.cpp
Normal file
|
@ -0,0 +1,72 @@
|
|||
#include "contact.h"
|
||||
|
||||
Models::Contact::Contact(const QMap<QString, QVariant>& data, Models::Item* parentItem):
|
||||
Item(Item::contact, data, parentItem),
|
||||
jid(data.value("jid").toString()),
|
||||
state(data.value("state").toInt())
|
||||
{
|
||||
}
|
||||
|
||||
Models::Contact::~Contact()
|
||||
{
|
||||
}
|
||||
|
||||
QString Models::Contact::getJid() const
|
||||
{
|
||||
return jid;
|
||||
}
|
||||
|
||||
void Models::Contact::setJid(const QString p_jid)
|
||||
{
|
||||
if (jid != p_jid) {
|
||||
jid = p_jid;
|
||||
emit changed(1);
|
||||
}
|
||||
}
|
||||
|
||||
int Models::Contact::getState() const
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
||||
void Models::Contact::setState(int p_state)
|
||||
{
|
||||
if (state != p_state) {
|
||||
state = p_state;
|
||||
emit changed(2);
|
||||
}
|
||||
}
|
||||
|
||||
int Models::Contact::columnCount() const
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
QVariant Models::Contact::data(int column) const
|
||||
{
|
||||
switch (column) {
|
||||
case 0:
|
||||
if (name == "") {
|
||||
return jid;
|
||||
} else {
|
||||
return Item::data(column);
|
||||
}
|
||||
case 1:
|
||||
return jid;
|
||||
case 2:
|
||||
return state;
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
void Models::Contact::update(const QString& field, const QVariant& value)
|
||||
{
|
||||
if (field == "name") {
|
||||
setName(value.toString());
|
||||
} else if (field == "jid") {
|
||||
setJid(value.toString());
|
||||
} else if (field == "state") {
|
||||
setState(value.toInt());
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue