From f6c2c215ab8bb438b01d44a99feaf3c0aaf1e9b7 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Tue, 9 Mar 2010 15:48:43 +0000 Subject: store the vCard of the connected client --- source/QXmppVCardManager.cpp | 34 +++++++++++++++++++++++++++++++++- source/QXmppVCardManager.h | 9 +++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/QXmppVCardManager.cpp b/source/QXmppVCardManager.cpp index 845959f7..c5873071 100644 --- a/source/QXmppVCardManager.cpp +++ b/source/QXmppVCardManager.cpp @@ -26,7 +26,7 @@ #include "QXmppUtils.h" QXmppVCardManager::QXmppVCardManager(QXmppClient* client) : - QObject(client), m_client(client) + QObject(client), m_client(client), m_isClientVCardReceived(false) { } @@ -38,6 +38,38 @@ void QXmppVCardManager::requestVCard(const QString& jid) void QXmppVCardManager::vCardIqReceived(const QXmppVCard& vcard) { + // self vCard received + if(vcard.from().isEmpty()) + { + m_clientVCard = vcard; + m_isClientVCardReceived = true; + emit clientVCardReceived(); + } + emit vCardReceived(vcard); } +const QXmppVCard& QXmppVCardManager::clientVCard() const +{ + return m_clientVCard; +} + +void QXmppVCardManager::setClientVCard(const QXmppVCard& clientVCard) +{ + m_clientVCard = clientVCard; + m_clientVCard.setTo(""); + m_clientVCard.setFrom(""); + m_clientVCard.setType(QXmppIq::Set); + m_client->sendPacket(m_clientVCard); +} + +void QXmppVCardManager::requestClientVCard() +{ + requestVCard(); +} + +bool QXmppVCardManager::isClientVCardReceived() +{ + return m_isClientVCardReceived; +} + diff --git a/source/QXmppVCardManager.h b/source/QXmppVCardManager.h index f2a84658..129d478e 100644 --- a/source/QXmppVCardManager.h +++ b/source/QXmppVCardManager.h @@ -37,8 +37,14 @@ public: QXmppVCardManager(QXmppClient* client); void requestVCard(const QString& bareJid = ""); + const QXmppVCard& clientVCard() const; + void setClientVCard(const QXmppVCard&); + void requestClientVCard(); + bool isClientVCardReceived(); + signals: void vCardReceived(const QXmppVCard&); + void clientVCardReceived(); private slots: void vCardIqReceived(const QXmppVCard&); @@ -46,6 +52,9 @@ private slots: private: // reference to to client object (no ownership) QXmppClient* m_client; + + QXmppVCard m_clientVCard; ///< Stores the vCard of the connected client + bool m_isClientVCardReceived; }; #endif // QXMPPVCARDMANAGER_H -- cgit v1.2.3