aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppFileShare.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/QXmppFileShare.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/QXmppFileShare.cpp')
-rw-r--r--src/base/QXmppFileShare.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/base/QXmppFileShare.cpp b/src/base/QXmppFileShare.cpp
index 8d73dbe5..c8975ba1 100644
--- a/src/base/QXmppFileShare.cpp
+++ b/src/base/QXmppFileShare.cpp
@@ -6,6 +6,7 @@
#include "QXmppConstants_p.h"
#include "QXmppFileMetadata.h"
+#include "QXmppHttpFileSource.h"
#include <optional>
@@ -42,7 +43,7 @@ class QXmppFileSharePrivate : public QSharedData
{
public:
QXmppFileMetadata metadata;
- QVector<QUrl> httpSources;
+ QVector<QXmppHttpFileSource> httpSources;
QXmppFileShare::Disposition disposition = Disposition::Inline;
};
/// \endcond
@@ -92,12 +93,12 @@ void QXmppFileShare::setMetadata(const QXmppFileMetadata &metadata)
d->metadata = metadata;
}
-const QVector<QUrl> &QXmppFileShare::httpSources() const
+const QVector<QXmppHttpFileSource> &QXmppFileShare::httpSources() const
{
return d->httpSources;
}
-void QXmppFileShare::setHttpSources(const QVector<QUrl> &newHttpSources)
+void QXmppFileShare::setHttpSources(const QVector<QXmppHttpFileSource> &newHttpSources)
{
d->httpSources = newHttpSources;
}
@@ -123,8 +124,9 @@ bool QXmppFileShare::parse(const QDomElement &el)
for (auto urlEl = sources.firstChildElement("url-data");
!urlEl.isNull();
urlEl = urlEl.nextSiblingElement("url-data")) {
- if (urlEl.namespaceURI() == "http://jabber.org/protocol/url-data") {
- d->httpSources.append(QUrl(urlEl.attribute("target")));
+ QXmppHttpFileSource source;
+ if (source.parse(urlEl)) {
+ d->httpSources.push_back(std::move(source));
}
}
return true;
@@ -140,10 +142,7 @@ void QXmppFileShare::toXml(QXmlStreamWriter *writer) const
d->metadata.toXml(writer);
writer->writeStartElement("sources");
for (const auto &source : d->httpSources) {
- writer->writeStartElement("url-data");
- writer->writeDefaultNamespace(ns_url_data);
- writer->writeAttribute("target", source.toString());
- writer->writeEndElement();
+ source.toXml(writer);
}
writer->writeEndElement();
writer->writeEndElement();