diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-13 10:20:03 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-13 10:20:03 +0200 |
| commit | 13794e15896df75fb013a300de976e7f4d23debe (patch) | |
| tree | 13b9878939869b9968e556d4a4e2d6f94dc8606b /examples/GuiClient | |
| parent | d8954a0208c5150f9f9737f14708e91c14faa9c7 (diff) | |
| download | qxmpp-13794e15896df75fb013a300de976e7f4d23debe.tar.gz | |
simplify rosterItemModel
Diffstat (limited to 'examples/GuiClient')
| -rw-r--r-- | examples/GuiClient/rosterItemModel.cpp | 35 | ||||
| -rw-r--r-- | examples/GuiClient/rosterItemModel.h | 2 |
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 |
