diff options
Diffstat (limited to 'Swift/Controllers/NickResolver.cpp')
-rw-r--r-- | Swift/Controllers/NickResolver.cpp | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/Swift/Controllers/NickResolver.cpp b/Swift/Controllers/NickResolver.cpp deleted file mode 100644 index 2cc6562..0000000 --- a/Swift/Controllers/NickResolver.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include "Swift/Controllers/NickResolver.h" - -#include <boost/shared_ptr.hpp> -#include <boost/bind.hpp> - -#include "Swiften/MUC/MUCRegistry.h" -#include "Swiften/Roster/XMPPRoster.h" -#include "Swiften/VCards/VCardManager.h" - -// FIXME: The NickResolver currently relies on the vcard being requested by the client on login. -// The VCardManager should get an onConnected() signal (which is signalled when the stanzachannel is available(, and each time this is emitted, -// the nickresolver should request the vcard. - -namespace Swift { - -NickResolver::NickResolver(const JID& ownJID, XMPPRoster* xmppRoster, VCardManager* vcardManager, MUCRegistry* mucRegistry) : ownJID_(ownJID) { - xmppRoster_ = xmppRoster; - vcardManager_ = vcardManager; - if (vcardManager_) { - vcardManager_->onVCardChanged.connect(boost::bind(&NickResolver::handleVCardReceived, this, _1, _2)); - } - mucRegistry_ = mucRegistry; -} - -String NickResolver::jidToNick(const JID& jid) { - if (jid.toBare() == ownJID_) { - if (!ownNick_.isEmpty()) { - return ownNick_; - } - } - String nick; - - if (mucRegistry_ && mucRegistry_->isMUC(jid.toBare()) ) { - return jid.getResource().isEmpty() ? jid.toBare().toString() : jid.getResource(); - } - - if (xmppRoster_->containsJID(jid) && !xmppRoster_->getNameForJID(jid).isEmpty()) { - return xmppRoster_->getNameForJID(jid); - } - - return jid.toBare(); -} - -void NickResolver::handleVCardReceived(const JID& jid, VCard::ref ownVCard) { - if (!jid.equals(ownJID_, JID::WithoutResource)) { - return; - } - String initialNick = ownNick_; - ownNick_ = ownJID_.toString(); - if (ownVCard) { - if (!ownVCard->getNickname().isEmpty()) { - ownNick_ = ownVCard->getNickname(); - } else if (!ownVCard->getGivenName().isEmpty()) { - ownNick_ = ownVCard->getGivenName(); - } else if (!ownVCard->getFullName().isEmpty()) { - ownNick_ = ownVCard->getFullName(); - } - } - if (ownNick_ != initialNick) { - onOwnNickChanged(ownNick_); - } -} - -} - |