diff options
Diffstat (limited to 'Swiften/Roster/ContactRosterItem.cpp')
-rw-r--r-- | Swiften/Roster/ContactRosterItem.cpp | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/Swiften/Roster/ContactRosterItem.cpp b/Swiften/Roster/ContactRosterItem.cpp deleted file mode 100644 index 9c7af32..0000000 --- a/Swiften/Roster/ContactRosterItem.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include "Swiften/Roster/ContactRosterItem.h" -#include "Swiften/Roster/GroupRosterItem.h" - -namespace Swift { - - -ContactRosterItem::ContactRosterItem(const JID& jid, const JID& displayJID, const String& name, GroupRosterItem* parent) : RosterItem(name, parent), jid_(jid), displayJID_(displayJID) { -} - -ContactRosterItem::~ContactRosterItem() { -} - -StatusShow::Type ContactRosterItem::getStatusShow() const { - return shownPresence_ ? shownPresence_->getShow() : StatusShow::None; -} - -StatusShow::Type ContactRosterItem::getSimplifiedStatusShow() const { - switch (shownPresence_ ? shownPresence_->getShow() : StatusShow::None) { - case StatusShow::Online: return StatusShow::Online; break; - case StatusShow::Away: return StatusShow::Away; break; - case StatusShow::XA: return StatusShow::Away; break; - case StatusShow::FFC: return StatusShow::Online; break; - case StatusShow::DND: return StatusShow::DND; break; - case StatusShow::None: return StatusShow::None; break; - } - assert(false); - return StatusShow::None; -} - -String ContactRosterItem::getStatusText() const { - return shownPresence_ ? shownPresence_->getStatus() : ""; -} - -void ContactRosterItem::setAvatarPath(const String& path) { - avatarPath_ = path; - onDataChanged(); -} -const String& ContactRosterItem::getAvatarPath() const { - return avatarPath_; -} - -const JID& ContactRosterItem::getJID() const { - return jid_; -} - -void ContactRosterItem::setDisplayJID(const JID& jid) { - displayJID_ = jid; -} - -const JID& ContactRosterItem::getDisplayJID() const { - return displayJID_; -} - - -typedef std::pair<String, boost::shared_ptr<Presence> > StringPresencePair; - -void ContactRosterItem::calculateShownPresence() { - shownPresence_ = offlinePresence_; - foreach (StringPresencePair presencePair, presences_) { - boost::shared_ptr<Presence> presence = presencePair.second; - if (!shownPresence_ || presence->getPriority() > shownPresence_->getPriority() || presence->getShow() < shownPresence_->getShow()) { - shownPresence_ = presence; - } - } -} - -void ContactRosterItem::clearPresence() { - presences_.clear(); - calculateShownPresence(); - onDataChanged(); -} - -void ContactRosterItem::applyPresence(const String& resource, boost::shared_ptr<Presence> presence) { - if (offlinePresence_) { - offlinePresence_ = boost::shared_ptr<Presence>(); - } - if (presence->getType() == Presence::Unavailable) { - if (resource.isEmpty()) { - /* Unavailable from the bare JID means all resources are offline.*/ - presences_.clear(); - } else { - if (presences_.find(resource) != presences_.end()) { - presences_.erase(resource); - } - } - if (presences_.size() == 0) { - offlinePresence_ = presence; - } - } else { - presences_[resource] = presence; - } - calculateShownPresence(); - onDataChanged(); -} - -const std::vector<String> ContactRosterItem::getGroups() const { - return groups_; -} - -/** Only used so a contact can know about the groups it's in*/ -void ContactRosterItem::addGroup(const String& group) { - groups_.push_back(group); -} -void ContactRosterItem::removeGroup(const String& group) { - groups_.erase(std::remove(groups_.begin(), groups_.end(), group), groups_.end()); -} - -} - - |