diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-19 10:51:05 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-19 10:51:05 +0000 |
| commit | 7e0e2f4977ffad379dc8b261fcadbd253a03773a (patch) | |
| tree | d05687d31d4e9049c9bedb69686a9ae9434016b9 /src/QXmppRosterManager.cpp | |
| parent | a6f9d8cf01f924375ce4c245345868b7dc55995c (diff) | |
| download | qxmpp-7e0e2f4977ffad379dc8b261fcadbd253a03773a.tar.gz | |
add QXmppRosterManager::removeRosterEntry()
Diffstat (limited to 'src/QXmppRosterManager.cpp')
| -rw-r--r-- | src/QXmppRosterManager.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/QXmppRosterManager.cpp b/src/QXmppRosterManager.cpp index 8cc1b52e..6adf7d56 100644 --- a/src/QXmppRosterManager.cpp +++ b/src/QXmppRosterManager.cpp @@ -126,6 +126,25 @@ void QXmppRosterManager::presenceReceived(const QXmppPresence& presence) } } +/// Removes a roster entry and cancels subscriptions to and from the contact. +/// +/// As a result, the server will initiate a roster push, causing the +/// rosterChanged() signal to be emitted. +/// +/// \param bareJid + +void QXmppRosterManager::removeRosterEntry(const QString &bareJid) +{ + QXmppRosterIq::Item item; + item.setBareJid(bareJid); + item.setSubscriptionType(QXmppRosterIq::Item::Remove); + + QXmppRosterIq iq; + iq.setType(QXmppIq::Set); + iq.addItem(item); + client()->sendPacket(iq); +} + void QXmppRosterManager::rosterIqReceived(const QXmppRosterIq& rosterIq) { bool isInitial = (m_rosterReqId == rosterIq.id()); |
