From c0e76a9646b63f8135b6a4c5774c353fc7842c83 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 15 Apr 2010 08:04:38 +0000 Subject: move QXmppRosterIq parsing out of QXmppStream --- source/QXmppRosterIq.cpp | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) (limited to 'source/QXmppRosterIq.cpp') diff --git a/source/QXmppRosterIq.cpp b/source/QXmppRosterIq.cpp index 46fa6bc1..4ae4fa13 100644 --- a/source/QXmppRosterIq.cpp +++ b/source/QXmppRosterIq.cpp @@ -28,22 +28,6 @@ #include "QXmppConstants.h" #include "QXmppUtils.h" -QXmppRosterIq::QXmppRosterIq(QXmppIq::Type type) - : QXmppIq(type) -{ - -} - -QXmppRosterIq::QXmppRosterIq(const QString& type) - : QXmppIq(type) -{ -} - -QXmppRosterIq::~QXmppRosterIq() -{ - -} - void QXmppRosterIq::addItem(const Item& item) { m_items.append(item); @@ -54,6 +38,11 @@ QList QXmppRosterIq::items() const return m_items; } +bool QXmppRosterIq::isRosterIq(const QDomElement &element) +{ + return (element.firstChildElement("query").namespaceURI() == ns_roster); +} + void QXmppRosterIq::parse(const QDomElement &element) { QXmppStanza::parse(element); @@ -71,8 +60,14 @@ void QXmppRosterIq::parse(const QDomElement &element) itemElement.attribute("subscription")); item.setSubscriptionStatus( itemElement.attribute("ask")); - item.addGroup( - itemElement.firstChildElement("group").firstChildElement().text()); + + QDomElement groupElement = itemElement.firstChildElement("group"); + while(!groupElement.isNull()) + { + item.addGroup(groupElement.text()); + groupElement = groupElement.nextSiblingElement("group"); + } + m_items.append(item); itemElement = itemElement.nextSiblingElement(); } -- cgit v1.2.3