diff options
Diffstat (limited to 'source/QXmppStanza.cpp')
| -rw-r--r-- | source/QXmppStanza.cpp | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/source/QXmppStanza.cpp b/source/QXmppStanza.cpp index 039dafe9..c83bfaa8 100644 --- a/source/QXmppStanza.cpp +++ b/source/QXmppStanza.cpp @@ -26,7 +26,7 @@ #include "QXmppUtils.h"
#include "QXmppConstants.h"
-#include <QTextStream>
+#include <QXmlStreamWriter>
int QXmppStanza::s_uniqeIdNo = 0;
@@ -217,38 +217,33 @@ void QXmppStanza::Error::setConditionFromStr(const QString& type) setCondition(static_cast<QXmppStanza::Error::Condition>(-1));
}
-QString QXmppStanza::Error::toXml() const
+void QXmppStanza::Error::toXml( QXmlStreamWriter *writer ) const
{
- QString data;
QString cond = getConditionStr();
QString type = getTypeStr();
if(cond.isEmpty() && type.isEmpty())
- return data;
+ return;
- QTextStream stream(&data);
-
- stream << "<error";
- helperToXmlAddAttribute(stream, "type", type);
- stream << ">";
+ writer->writeStartElement("error");
+ helperToXmlAddAttribute(writer,"type", type);
if(!cond.isEmpty())
{
- stream << "<" << cond;
- helperToXmlAddAttribute(stream, "xmlns", ns_stanza);
- stream << "/>";
+ writer->writeStartElement(cond);
+ helperToXmlAddAttribute(writer,"xmlns", ns_stanza);
+ writer->writeEndElement();
}
if(!m_text.isEmpty())
{
- stream << "<text";
- helperToXmlAddAttribute(stream, "xml:lang", "en");
- helperToXmlAddAttribute(stream, "xmlns", ns_stanza);
- stream << ">";
- stream << m_text;
- stream << "</text>";
+ writer->writeStartElement("text");
+ helperToXmlAddAttribute(writer,"xml:lang", "en");
+ helperToXmlAddAttribute(writer,"xmlns", ns_stanza);
+ writer->writeCharacters(m_text);
+ writer->writeEndElement();
}
- stream << "</error>";
- return data;
+
+ writer->writeEndElement();
}
|
