From 9720d62c6d626fc8ef14e0fb1964ba8686e603b1 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 15 Apr 2010 07:49:58 +0000 Subject: add a "parse" method to QXmppRosterIq --- source/QXmppRosterIq.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'source/QXmppRosterIq.cpp') diff --git a/source/QXmppRosterIq.cpp b/source/QXmppRosterIq.cpp index 1c5a4997..46fa6bc1 100644 --- a/source/QXmppRosterIq.cpp +++ b/source/QXmppRosterIq.cpp @@ -21,11 +21,12 @@ * */ +#include +#include #include "QXmppRosterIq.h" #include "QXmppConstants.h" #include "QXmppUtils.h" -#include QXmppRosterIq::QXmppRosterIq(QXmppIq::Type type) : QXmppIq(type) @@ -53,6 +54,30 @@ QList QXmppRosterIq::items() const return m_items; } +void QXmppRosterIq::parse(const QDomElement &element) +{ + QXmppStanza::parse(element); + setTypeFromStr(element.attribute("type")); + + QDomElement itemElement = element. + firstChildElement("query"). + firstChildElement("item"); + while(!itemElement.isNull()) + { + QXmppRosterIq::Item item; + item.setName(itemElement.attribute("name")); + item.setBareJid(itemElement.attribute("jid")); + item.setSubscriptionTypeFromStr( + itemElement.attribute("subscription")); + item.setSubscriptionStatus( + itemElement.attribute("ask")); + item.addGroup( + itemElement.firstChildElement("group").firstChildElement().text()); + m_items.append(item); + itemElement = itemElement.nextSiblingElement(); + } +} + void QXmppRosterIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { writer->writeStartElement("query"); -- cgit v1.2.3