diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppRosterManager.cpp | 22 | ||||
| -rw-r--r-- | src/QXmppRosterManager.h | 1 |
2 files changed, 23 insertions, 0 deletions
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); |
