From 9fa05f589c6a973d10dbfc3a3fd7f2514cf379f2 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 15 Feb 2010 15:02:21 +0000 Subject: make it possible to get/set QXmppElement value --- source/QXmppElement.cpp | 22 ++++++++++++++++++---- source/QXmppElement.h | 4 ++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/QXmppElement.cpp b/source/QXmppElement.cpp index 2dcb87ad..3820f35e 100644 --- a/source/QXmppElement.cpp +++ b/source/QXmppElement.cpp @@ -47,11 +47,14 @@ QXmppElement::QXmppElement(const QDomElement &element) m_attributes.insert(attr.name(), attr.value()); } - QDomElement childElement = element.firstChildElement(); - while (!childElement.isNull()) + QDomNode childNode = element.firstChild(); + while (!childNode.isNull()) { - m_children.append(QXmppElement(childElement)); - childElement = childElement.nextSiblingElement(); + if (childNode.isElement()) + m_children.append(QXmppElement(childNode.toElement())); + else if (childNode.isText()) + m_value += childNode.toText().data(); + childNode = childNode.nextSibling(); } } @@ -95,6 +98,16 @@ void QXmppElement::setTagName(const QString &tagName) m_tagName = tagName; } +QString QXmppElement::value() const +{ + return m_value; +} + +void QXmppElement::setValue(const QString &value) +{ + m_value = value; +} + void QXmppElement::toXml(QXmlStreamWriter *writer) const { if (isNull()) @@ -103,6 +116,7 @@ void QXmppElement::toXml(QXmlStreamWriter *writer) const writer->writeStartElement(m_tagName); foreach (const QString &attr, m_attributes.keys()) helperToXmlAddAttribute(writer, attr, m_attributes.value(attr)); + writer->writeCharacters(m_value); foreach (const QXmppElement &child, m_children) child.toXml(writer); writer->writeEndElement(); diff --git a/source/QXmppElement.h b/source/QXmppElement.h index 416487cb..d684ddd3 100644 --- a/source/QXmppElement.h +++ b/source/QXmppElement.h @@ -47,6 +47,9 @@ public: QString tagName() const; void setTagName(const QString &type); + QString value() const; + void setValue(const QString &text); + bool isNull() const; void toXml(QXmlStreamWriter *writer) const; @@ -54,6 +57,7 @@ private: QMap m_attributes; QList m_children; QString m_tagName; + QString m_value; }; #endif -- cgit v1.2.3