diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-09-14 00:06:51 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-09-14 00:38:06 +0200 |
| commit | 2a856cc4a2edc2496eed674f7c2912619738522a (patch) | |
| tree | 525b779d26b2b631513db2e38c237e0ef00cc5f0 /src/base/QXmppHttpFileSource.cpp | |
| parent | f672197ba23de12ca6639dccce339c0205a87be5 (diff) | |
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.
Diffstat (limited to 'src/base/QXmppHttpFileSource.cpp')
| -rw-r--r-- | src/base/QXmppHttpFileSource.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
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 <lnj@kaidan.im> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QXmppHttpFileSource.h" + +#include "QXmppConstants_p.h" + +#include <QDomElement> +#include <QXmlStreamWriter> + +/// +/// \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 |
