aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppStreamInitiationIq.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-12 14:50:20 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-12 14:50:20 +0200
commitc9b81bc66f2449fe4ca1d55259d6f70178f1a91d (patch)
treeb8f9fa1bc49cfe1a04cf6d1026ee821ee932c279 /src/base/QXmppStreamInitiationIq.cpp
parentef8fce0bb434c5fdc22630a0890a3c0fa4c7cc1f (diff)
downloadqxmpp-c9b81bc66f2449fe4ca1d55259d6f70178f1a91d.tar.gz
QXmppTransferManager: use actual data forms instead of manually parsing them
Diffstat (limited to 'src/base/QXmppStreamInitiationIq.cpp')
-rw-r--r--src/base/QXmppStreamInitiationIq.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/base/QXmppStreamInitiationIq.cpp b/src/base/QXmppStreamInitiationIq.cpp
index 9b34bb59..361701ec 100644
--- a/src/base/QXmppStreamInitiationIq.cpp
+++ b/src/base/QXmppStreamInitiationIq.cpp
@@ -27,6 +27,16 @@
#include "QXmppStreamInitiationIq.h"
#include "QXmppUtils.h"
+QXmppDataForm QXmppStreamInitiationIq::featureForm() const
+{
+ return m_featureForm;
+}
+
+void QXmppStreamInitiationIq::setFeatureForm(const QXmppDataForm &form)
+{
+ m_featureForm = form;
+}
+
QString QXmppStreamInitiationIq::mimeType() const
{
return m_mimeType;
@@ -87,7 +97,11 @@ void QXmppStreamInitiationIq::parseElementFromChild(const QDomElement &element)
QDomElement itemElement = siElement.firstChildElement();
while (!itemElement.isNull())
{
- m_siItems.append(QXmppElement(itemElement));
+ if (itemElement.tagName() == "feature" && itemElement.namespaceURI() == ns_feature_negotiation) {
+ m_featureForm.parse(itemElement.firstChildElement());
+ } else {
+ m_siItems.append(QXmppElement(itemElement));
+ }
itemElement = itemElement.nextSiblingElement();
}
}
@@ -102,6 +116,12 @@ void QXmppStreamInitiationIq::toXmlElementFromChild(QXmlStreamWriter *writer) co
helperToXmlAddAttribute(writer, "profile", ns_stream_initiation_file_transfer);
foreach (const QXmppElement &item, m_siItems)
item.toXml(writer);
+ if (!m_featureForm.isNull()) {
+ writer->writeStartElement("feature");
+ writer->writeAttribute("xmlns", ns_feature_negotiation);
+ m_featureForm.toXml(writer);
+ writer->writeEndElement();
+ }
writer->writeEndElement();
}
/// \endcond