diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-18 13:42:38 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-18 13:42:38 +0000 |
| commit | c913e78592620d195eea725e13bd6821789a5b76 (patch) | |
| tree | 9f2511a7c2fe09e685960cecc1683a1cc8c74988 /source/QXmppMessage.cpp | |
| parent | c12a2d1eca2d73d0842584724629e00dbbc52952 (diff) | |
| download | qxmpp-c913e78592620d195eea725e13bd6821789a5b76.tar.gz | |
move parsing of XMPP messages to QXmppMessage
Diffstat (limited to 'source/QXmppMessage.cpp')
| -rw-r--r-- | source/QXmppMessage.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/QXmppMessage.cpp b/source/QXmppMessage.cpp index 9fb0037b..cd8c905c 100644 --- a/source/QXmppMessage.cpp +++ b/source/QXmppMessage.cpp @@ -24,6 +24,7 @@ #include "QXmppMessage.h" #include "QXmppUtils.h" +#include <QDomElement> #include <QXmlStreamWriter> QXmppMessage::QXmppMessage(const QString& from, const QString& to, const @@ -108,6 +109,30 @@ void QXmppMessage::setTypeFromStr(const QString& str) } } +void QXmppMessage::parse(QDomElement &element) +{ + setFrom(element.attribute("from")); + setTo(element.attribute("to")); + setTypeFromStr(element.attribute("type")); + setBody(unescapeString( + element.firstChildElement("body").text())); + setSubject(unescapeString( + element.firstChildElement("subject").text())); + setThread(element.firstChildElement("thread").text()); + + QDomElement errorElement = element. + firstChildElement("error"); + if(!errorElement.isNull()) + { + QXmppStanza::Error error = parseError(errorElement); + setError(error); + } + + QDomElement xElement = element.firstChildElement("x"); + if(!xElement.isNull()) + setExtension(QXmppElement(xElement)); +} + void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const { |
