aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-13 10:20:03 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-13 10:20:03 +0200
commit13794e15896df75fb013a300de976e7f4d23debe (patch)
tree13b9878939869b9968e556d4a4e2d6f94dc8606b /examples/GuiClient
parentd8954a0208c5150f9f9737f14708e91c14faa9c7 (diff)
downloadqxmpp-13794e15896df75fb013a300de976e7f4d23debe.tar.gz
simplify rosterItemModel
Diffstat (limited to 'examples/GuiClient')
-rw-r--r--examples/GuiClient/rosterItemModel.cpp35
-rw-r--r--examples/GuiClient/rosterItemModel.h2
2 files changed, 14 insertions, 23 deletions
diff --git a/examples/GuiClient/rosterItemModel.cpp b/examples/GuiClient/rosterItemModel.cpp
index f7b6c85a..ed6eca75 100644
--- a/examples/GuiClient/rosterItemModel.cpp
+++ b/examples/GuiClient/rosterItemModel.cpp
@@ -40,50 +40,41 @@ rosterItem* rosterItemModel::getRosterItemFromBareJid(const QString& bareJid)
return 0;
}
-void rosterItemModel::addRosterItemIfDontExist(const QString& bareJid)
+rosterItem* rosterItemModel::getOrCreateItem(const QString& bareJid)
{
- if(!m_jidRosterItemMap.contains(bareJid))
- {
+ if(m_jidRosterItemMap.contains(bareJid)) {
+ return m_jidRosterItemMap[bareJid];
+ } else {
rosterItem* item = new rosterItem(bareJid);
m_jidRosterItemMap[bareJid] = item;
appendRow(item);
+ return item;
}
}
void rosterItemModel::updatePresence(const QString& bareJid, const QMap<QString, QXmppPresence>& presences)
{
- addRosterItemIfDontExist(bareJid);
+ rosterItem *item = getOrCreateItem(bareJid);
if (!presences.isEmpty())
- getRosterItemFromBareJid(bareJid)->setPresence(*presences.begin());
+ item->setPresence(*presences.begin());
+ else
+ item->setPresence(QXmppPresence(QXmppPresence::Unavailable));
}
void rosterItemModel::updateRosterEntry(const QString& bareJid, const QXmppRosterIq::Item& rosterEntry)
{
- addRosterItemIfDontExist(bareJid);
-
- QString name = rosterEntry.name();
- if(getRosterItemFromBareJid(bareJid))
- getRosterItemFromBareJid(bareJid)->setName(name);
+ getOrCreateItem(bareJid)->setName(rosterEntry.name());
}
void rosterItemModel::updateAvatar(const QString& bareJid, const QImage& image)
{
- addRosterItemIfDontExist(bareJid);
-
-// if(image.isNull())
-// return;
-
- getRosterItemFromBareJid(bareJid)->setAvatar(image);
+ getOrCreateItem(bareJid)->setAvatar(image);
}
void rosterItemModel::updateName(const QString& bareJid, const QString& name)
{
- addRosterItemIfDontExist(bareJid);
-
- if(name.isEmpty())
- return;
-
- getRosterItemFromBareJid(bareJid)->setName(name);
+ if (!name.isEmpty())
+ getOrCreateItem(bareJid)->setName(name);
}
void rosterItemModel::clear()
diff --git a/examples/GuiClient/rosterItemModel.h b/examples/GuiClient/rosterItemModel.h
index 23436498..0e425432 100644
--- a/examples/GuiClient/rosterItemModel.h
+++ b/examples/GuiClient/rosterItemModel.h
@@ -46,8 +46,8 @@ public:
void clear();
private:
+ rosterItem* getOrCreateItem(const QString& bareJid);
QMap<QString, rosterItem*> m_jidRosterItemMap;
- void addRosterItemIfDontExist(const QString& bareJid);
};
#endif // ROSTERITEMMODEL_H