diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-12 14:33:43 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-12 14:33:43 +0200 |
| commit | ef8fce0bb434c5fdc22630a0890a3c0fa4c7cc1f (patch) | |
| tree | e0d64902da2332747cb4f5d6ce5edb6a2f4df169 /src/client | |
| parent | cd5287ba3fe64fd2782c10066a43c31b4c7694de (diff) | |
| download | qxmpp-ef8fce0bb434c5fdc22630a0890a3c0fa4c7cc1f.tar.gz | |
Add XEP-0045: Multi-User Chat attributes to QXmppPresence.
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/QXmppMucManager.cpp | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/client/QXmppMucManager.cpp b/src/client/QXmppMucManager.cpp index 811514c5..7f3b4b12 100644 --- a/src/client/QXmppMucManager.cpp +++ b/src/client/QXmppMucManager.cpp @@ -283,17 +283,8 @@ bool QXmppMucRoom::join() QXmppPresence packet = d->client->clientPresence(); packet.setTo(d->ownJid()); packet.setType(QXmppPresence::Available); - QXmppElement x; - x.setTagName("x"); - x.setAttribute("xmlns", ns_muc); - if (!d->password.isEmpty()) - { - QXmppElement p; - p.setTagName("password"); - p.setValue(d->password); - x.appendChild(p); - } - packet.setExtensions(QXmppElementList() << x); + packet.setMucPassword(d->password); + packet.setMucSupported(true); return d->client->sendPacket(packet); } @@ -717,15 +708,12 @@ void QXmppMucRoom::_q_presenceReceived(const QXmppPresence &presence) } } else if (presence.type() == QXmppPresence::Error) { - foreach (const QXmppElement &extension, presence.extensions()) { - if (extension.tagName() == "x" && extension.attribute("xmlns") == ns_muc) { - // emit error - emit error(presence.error()); + if (presence.isMucSupported()) { + // emit error + emit error(presence.error()); - // notify the user we left the room - emit left(); - break; - } + // notify the user we left the room + emit left(); } } } |
