From 2a856cc4a2edc2496eed674f7c2912619738522a Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Wed, 14 Sep 2022 00:06:51 +0200 Subject: Add extra class for HttpFileSource instead of using QUrl Before just QUrl was used, which was okay. This should make it better recognizable and it makes clear it is only used for HTTP urls. --- src/base/QXmppHttpFileSource.cpp | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/base/QXmppHttpFileSource.cpp (limited to 'src/base/QXmppHttpFileSource.cpp') diff --git a/src/base/QXmppHttpFileSource.cpp b/src/base/QXmppHttpFileSource.cpp new file mode 100644 index 00000000..77870160 --- /dev/null +++ b/src/base/QXmppHttpFileSource.cpp @@ -0,0 +1,64 @@ +// SPDX-FileCopyrightText: 2022 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QXmppHttpFileSource.h" + +#include "QXmppConstants_p.h" + +#include +#include + +/// +/// \class QXmppHttpFileSource +/// +/// Represents an HTTP File source for file sharing. +/// +/// \since QXmpp 1.5 +/// + +/// Default constructor. +QXmppHttpFileSource::QXmppHttpFileSource() = default; + +/// Default constructor. +QXmppHttpFileSource::QXmppHttpFileSource(QUrl url) + : m_url(std::move(url)) +{ +} + +QXMPP_PRIVATE_DEFINE_RULE_OF_SIX(QXmppHttpFileSource) + +/// +/// Returns the HTTP url. +/// +const QUrl &QXmppHttpFileSource::url() const +{ + return m_url; +} + +/// +/// Sets the HTTP url. +/// +void QXmppHttpFileSource::setUrl(QUrl url) +{ + m_url = std::move(url); +} + +/// \cond +bool QXmppHttpFileSource::parse(const QDomElement &el) +{ + if (el.tagName() == "url-data" && el.namespaceURI() == ns_url_data) { + m_url = QUrl(el.attribute("target")); + return true; + } + return false; +} + +void QXmppHttpFileSource::toXml(QXmlStreamWriter *writer) const +{ + writer->writeStartElement("url-data"); + writer->writeDefaultNamespace(ns_url_data); + writer->writeAttribute("target", m_url.toString()); + writer->writeEndElement(); +} +/// \endcond -- cgit v1.2.3