diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-07 12:12:06 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-07 12:12:06 +0000 |
| commit | 4cec473eb18b22bd1e06146f061dcc22679120e3 (patch) | |
| tree | 65ea592c314d4f8a265acd706f15d57c92ed85d3 /source/QXmppMucIq.cpp | |
| parent | 5cc6867063c060abe3748240813bff865f731a69 (diff) | |
| download | qxmpp-4cec473eb18b22bd1e06146f061dcc22679120e3.tar.gz | |
add QXmppMucAdminIq to administer chat room members
Diffstat (limited to 'source/QXmppMucIq.cpp')
| -rw-r--r-- | source/QXmppMucIq.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/source/QXmppMucIq.cpp b/source/QXmppMucIq.cpp index d33e1c41..42fa50b5 100644 --- a/source/QXmppMucIq.cpp +++ b/source/QXmppMucIq.cpp @@ -27,6 +27,109 @@ #include "QXmppMucIq.h" #include "QXmppUtils.h" +QString QXmppMucAdminIq::Item::affiliation() const +{ + return m_affiliation; +} + +void QXmppMucAdminIq::Item::setAffiliation(const QString &affiliation) +{ + m_affiliation = affiliation; +} + +QString QXmppMucAdminIq::Item::jid() const +{ + return m_jid; +} + +void QXmppMucAdminIq::Item::setJid(const QString &jid) +{ + m_jid = jid; +} + +QString QXmppMucAdminIq::Item::nick() const +{ + return m_nick; +} + +void QXmppMucAdminIq::Item::setNick(const QString &nick) +{ + m_nick = nick; +} + +QString QXmppMucAdminIq::Item::reason() const +{ + return m_reason; +} + +void QXmppMucAdminIq::Item::setReason(const QString &reason) +{ + m_reason = reason; +} + +QString QXmppMucAdminIq::Item::role() const +{ + return m_role; +} + +void QXmppMucAdminIq::Item::setRole(const QString &role) +{ + m_role = role; +} + +QList<QXmppMucAdminIq::Item> QXmppMucAdminIq::items() const +{ + return m_items; +} + +void QXmppMucAdminIq::setItems(const QList<QXmppMucAdminIq::Item> &items) +{ + m_items = items; +} + +bool QXmppMucAdminIq::isMucAdminIq(const QDomElement &element) +{ + QDomElement queryElement = element.firstChildElement("query"); + return (queryElement.namespaceURI() == ns_muc_admin); +} + +void QXmppMucAdminIq::parse(const QDomElement &element) +{ + QXmppStanza::parse(element); + setTypeFromStr(element.attribute("type")); + + QDomElement queryElement = element.firstChildElement("query"); + QDomElement child = queryElement.firstChildElement("item"); + while (!child.isNull()) + { + QXmppMucAdminIq::Item item; + item.setAffiliation(element.attribute("affiliation")); + item.setJid(element.attribute("jid")); + item.setNick(element.attribute("nick")); + item.setRole(element.attribute("role")); + item.setReason(child.firstChildElement("reason").text()); + m_items << item; + child = child.nextSiblingElement("item"); + } +} +void QXmppMucAdminIq::toXmlElementFromChild(QXmlStreamWriter *writer) const +{ + writer->writeStartElement("query"); + helperToXmlAddAttribute(writer, "xmlns", ns_muc_admin); + foreach (const QXmppMucAdminIq::Item &item, m_items) + { + writer->writeStartElement("item"); + helperToXmlAddAttribute(writer, "jid", item.jid()); + helperToXmlAddAttribute(writer, "affiliation", item.affiliation()); + helperToXmlAddAttribute(writer, "nick", item.nick()); + helperToXmlAddAttribute(writer, "role", item.role()); + if (!item.reason().isEmpty()) + helperToXmlAddTextElement(writer, "reason", item.reason()); + writer->writeEndElement(); + } + writer->writeEndElement(); +} + QXmppDataForm QXmppMucOwnerIq::form() const { return m_form; |
