aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppRosterManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-01-19 10:51:05 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-01-19 10:51:05 +0000
commit7e0e2f4977ffad379dc8b261fcadbd253a03773a (patch)
treed05687d31d4e9049c9bedb69686a9ae9434016b9 /src/QXmppRosterManager.cpp
parenta6f9d8cf01f924375ce4c245345868b7dc55995c (diff)
downloadqxmpp-7e0e2f4977ffad379dc8b261fcadbd253a03773a.tar.gz
add QXmppRosterManager::removeRosterEntry()
Diffstat (limited to 'src/QXmppRosterManager.cpp')
-rw-r--r--src/QXmppRosterManager.cpp19
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());