From 82ae99430647a9af638c7b19bddcf822115ff010 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 29 Sep 2011 10:02:01 +0000 Subject: add QXmppRosterManager::renameItem to rename a roster item --- src/QXmppRosterManager.cpp | 22 ++++++++++++++++++++++ src/QXmppRosterManager.h | 1 + 2 files changed, 23 insertions(+) (limited to 'src') diff --git a/src/QXmppRosterManager.cpp b/src/QXmppRosterManager.cpp index 6da4ee51..b89bdc0a 100644 --- a/src/QXmppRosterManager.cpp +++ b/src/QXmppRosterManager.cpp @@ -254,6 +254,28 @@ bool QXmppRosterManager::removeItem(const QString &bareJid) return client()->sendPacket(iq); } +/// Renames a roster item. +/// +/// As a result, the server will initiate a roster push, causing the +/// itemChanged() signal to be emitted. +/// +/// \param bareJid +/// \param name + +bool QXmppRosterManager::renameItem(const QString &bareJid, const QString &name) +{ + if (!d->entries.contains(bareJid)) + return false; + + QXmppRosterIq::Item item = d->entries.value(bareJid); + item.setName(name); + + QXmppRosterIq iq; + iq.setType(QXmppIq::Set); + iq.addItem(item); + return client()->sendPacket(iq); +} + /// Requests a subscription to the given contact. /// /// As a result, the server will initiate a roster push, causing the diff --git a/src/QXmppRosterManager.h b/src/QXmppRosterManager.h index c7c07de5..f8238544 100644 --- a/src/QXmppRosterManager.h +++ b/src/QXmppRosterManager.h @@ -92,6 +92,7 @@ public slots: bool acceptSubscription(const QString &bareJid); bool refuseSubscription(const QString &bareJid); bool removeItem(const QString &bareJid); + bool renameItem(const QString &bareJid, const QString &name); bool subscribe(const QString &bareJid); bool unsubscribe(const QString &bareJid); -- cgit v1.2.3