diff --git a/include/transport/buddy.h b/include/transport/buddy.h index c52f30fc..47a3baf7 100644 --- a/include/transport/buddy.h +++ b/include/transport/buddy.h @@ -105,6 +105,10 @@ class Buddy { void buddyChanged(); + void handleVCardReceived(const std::string &id, const Swift::JID &to, Swift::VCard::ref vcard); + + virtual void getVCard(const std::string &id, const Swift::JID &to) = 0; + /// Returns legacy network username of this buddy. (for example UIN for ICQ, /// JID for Jabber, ...). /// \return legacy network username diff --git a/spectrum/src/spectrumbuddy.cpp b/spectrum/src/spectrumbuddy.cpp index d3eab0a9..c89602f1 100644 --- a/spectrum/src/spectrumbuddy.cpp +++ b/spectrum/src/spectrumbuddy.cpp @@ -132,3 +132,7 @@ std::vector SpectrumBuddy::getGroups() { return groups; } +void SpectrumBuddy::getVCard(const std::string &id, const Swift::JID &to) { + +} + diff --git a/spectrum/src/spectrumbuddy.h b/spectrum/src/spectrumbuddy.h index 0ee6c349..214716f8 100644 --- a/spectrum/src/spectrumbuddy.h +++ b/spectrum/src/spectrumbuddy.h @@ -46,6 +46,7 @@ class SpectrumBuddy : public Buddy { void addBuddy(PurpleBuddy *buddy) { m_buddies.push_back(buddy); } void removeBuddy(PurpleBuddy *buddy) { m_buddies.remove(buddy); } int getBuddiesCount() { return m_buddies.size(); } + void getVCard(const std::string &id, const Swift::JID &to); PurpleBuddy *getBuddy() { return m_buddy; } diff --git a/src/buddy.cpp b/src/buddy.cpp index 98e43e22..5dac52b4 100644 --- a/src/buddy.cpp +++ b/src/buddy.cpp @@ -153,6 +153,11 @@ void Buddy::buddyChanged() { } } +void Buddy::handleVCardReceived(const std::string &id, const Swift::JID &to, Swift::VCard::ref vcard) { + boost::shared_ptr > request(new Swift::GenericRequest(Swift::IQ::Result, m_rosterManager->getUser()->getJID(), vcard, m_rosterManager->getUser()->getComponent()->getIQRouter())); + request->send(); +} + std::string Buddy::JIDToLegacyName(const Swift::JID &jid) { std::string name; if (jid.getUnescapedNode() == jid.getNode()) {