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/QXmppFileShare.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/QXmppFileShare.cpp')
| -rw-r--r-- | src/base/QXmppFileShare.cpp | 17 |
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(); |
