aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppHttpFileSource.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-09-14 00:06:51 +0200
committerLinus Jahn <lnj@kaidan.im>2022-09-14 00:38:06 +0200
commit2a856cc4a2edc2496eed674f7c2912619738522a (patch)
tree525b779d26b2b631513db2e38c237e0ef00cc5f0 /src/base/QXmppHttpFileSource.cpp
parentf672197ba23de12ca6639dccce339c0205a87be5 (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.cpp64
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