aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppMucIq.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-06-07 12:12:06 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-06-07 12:12:06 +0000
commit4cec473eb18b22bd1e06146f061dcc22679120e3 (patch)
tree65ea592c314d4f8a265acd706f15d57c92ed85d3 /source/QXmppMucIq.cpp
parent5cc6867063c060abe3748240813bff865f731a69 (diff)
downloadqxmpp-4cec473eb18b22bd1e06146f061dcc22679120e3.tar.gz
add QXmppMucAdminIq to administer chat room members
Diffstat (limited to 'source/QXmppMucIq.cpp')
-rw-r--r--source/QXmppMucIq.cpp103
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;