aboutsummaryrefslogtreecommitdiff
path: root/src
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
parenta6f9d8cf01f924375ce4c245345868b7dc55995c (diff)
downloadqxmpp-7e0e2f4977ffad379dc8b261fcadbd253a03773a.tar.gz
add QXmppRosterManager::removeRosterEntry()
Diffstat (limited to 'src')
-rw-r--r--src/QXmppRosterManager.cpp19
-rw-r--r--src/QXmppRosterManager.h1
2 files changed, 20 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());
diff --git a/src/QXmppRosterManager.h b/src/QXmppRosterManager.h
index 9dee4e96..5cd08383 100644
--- a/src/QXmppRosterManager.h
+++ b/src/QXmppRosterManager.h
@@ -70,6 +70,7 @@ public:
bool isRosterReceived();
QStringList getRosterBareJids() const;
QXmppRosterIq::Item getRosterEntry(const QString& bareJid) const;
+ void removeRosterEntry(const QString &bareJid);
QStringList getResources(const QString& bareJid) const;
QMap<QString, QXmppPresence> getAllPresencesForBareJid(