QXmpp  Version: 1.15.1
QXmppThumbnail.h
1 // SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPTHUMBNAIL_H
6 #define QXMPPTHUMBNAIL_H
7 
8 #include "QXmppConstants_p.h"
9 #include "QXmppGlobal.h"
10 
11 #include <optional>
12 
13 #include <QSharedDataPointer>
14 
15 class QDomElement;
16 class QMimeType;
17 class QXmlStreamWriter;
18 class QXmppThumbnailPrivate;
19 
20 class QXMPP_EXPORT QXmppThumbnail
21 {
22 public:
25  QXmppThumbnail(QXmppThumbnail &&) noexcept;
26  ~QXmppThumbnail();
27 
28  QXmppThumbnail &operator=(const QXmppThumbnail &);
29  QXmppThumbnail &operator=(QXmppThumbnail &&) noexcept;
30 
31  const QString &uri() const;
32  void setUri(const QString &newUri);
33 
34  const QMimeType &mediaType() const;
35  void setMediaType(const QMimeType &);
36 
37  std::optional<uint32_t> width() const;
38  void setWidth(std::optional<uint32_t>);
39 
40  std::optional<uint32_t> height() const;
41  void setHeight(std::optional<uint32_t>);
42 
44  static constexpr std::tuple XmlTag = { u"thumbnail", QXmpp::Private::ns_thumbs };
45  bool parse(const QDomElement &);
46  void toXml(QXmlStreamWriter *writer) const;
48 
49 private:
50  QSharedDataPointer<QXmppThumbnailPrivate> d;
51 };
52 
53 #endif // QXMPPTHUMBNAIL_H
Definition: QXmppThumbnail.h:20