diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-12-17 13:21:14 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-01-30 15:10:02 (GMT) |
commit | b897bac235a95f9c4654b31d101779bd0cc8f72f (patch) | |
tree | 8d00b3ab58ec200adf670e01671eed91876b485d /Swiften/VCards/VCardManager.cpp | |
parent | 869c52b244c2d03313e9eda83fac05bf0fc3a619 (diff) | |
download | swift-contrib-b897bac235a95f9c4654b31d101779bd0cc8f72f.zip swift-contrib-b897bac235a95f9c4654b31d101779bd0cc8f72f.tar.bz2 |
Added profile edit dialog.
Resolves: #141, #587.
Diffstat (limited to 'Swiften/VCards/VCardManager.cpp')
-rw-r--r-- | Swiften/VCards/VCardManager.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Swiften/VCards/VCardManager.cpp b/Swiften/VCards/VCardManager.cpp index 8d695d4..de53238 100644 --- a/Swiften/VCards/VCardManager.cpp +++ b/Swiften/VCards/VCardManager.cpp @@ -17,6 +17,9 @@ namespace Swift { VCardManager::VCardManager(const JID& ownJID, IQRouter* iqRouter, VCardStorage* vcardStorage) : ownJID(ownJID), iqRouter(iqRouter), storage(vcardStorage) { } +VCardManager::~VCardManager() { +} + VCard::ref VCardManager::getVCard(const JID& jid) const { return storage->getVCard(jid); } @@ -51,8 +54,27 @@ void VCardManager::handleVCardReceived(const JID& actualJID, VCard::ref vcard, E } requestedVCards.erase(actualJID); JID jid = actualJID.isValid() ? actualJID : ownJID.toBare(); + setVCard(jid, vcard); +} + +SetVCardRequest::ref VCardManager::createSetVCardRequest(VCard::ref vcard) { + SetVCardRequest::ref request = SetVCardRequest::create(vcard, iqRouter); + request->onResponse.connect(boost::bind(&VCardManager::handleSetVCardResponse, this, vcard, _2)); + return request; +} + +void VCardManager::handleSetVCardResponse(VCard::ref vcard, ErrorPayload::ref error) { + if (!error) { + setVCard(ownJID.toBare(), vcard); + } +} + +void VCardManager::setVCard(const JID& jid, VCard::ref vcard) { storage->setVCard(jid, vcard); onVCardChanged(jid, vcard); + if (jid.compare(ownJID, JID::WithoutResource) == 0) { + onOwnVCardChanged(vcard); + } } } |