From 13794e15896df75fb013a300de976e7f4d23debe Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 13 Sep 2012 10:20:03 +0200 Subject: simplify rosterItemModel --- examples/GuiClient/rosterItemModel.cpp | 35 +++++++++++++--------------------- examples/GuiClient/rosterItemModel.h | 2 +- 2 files changed, 14 insertions(+), 23 deletions(-) (limited to 'examples/GuiClient') 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& 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 m_jidRosterItemMap; - void addRosterItemIfDontExist(const QString& bareJid); }; #endif // ROSTERITEMMODEL_H -- cgit v1.2.3