diff options
Diffstat (limited to 'src/base/QXmppFileMetadata.h')
| -rw-r--r-- | src/base/QXmppFileMetadata.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/base/QXmppFileMetadata.h b/src/base/QXmppFileMetadata.h new file mode 100644 index 00000000..e45e6506 --- /dev/null +++ b/src/base/QXmppFileMetadata.h @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2022 Jonah BrĂ¼chert <jbb@kaidan.im> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef QXMPPFILEMETADATA_H +#define QXMPPFILEMETADATA_H + +#include "QXmppGlobal.h" +#include "QXmppHash.h" + +#include <optional> + +#include <QMimeType> +#include <QSharedDataPointer> + +class QDomElement; +class QDateTime; +class QXmlStreamWriter; +class QXmppThumbnail; +class QXmppFileMetadataPrivate; + +class QXMPP_EXPORT QXmppFileMetadata +{ +public: + QXmppFileMetadata(); + + /// \cond + bool parse(const QDomElement &el); + void toXml(QXmlStreamWriter *writer) const; + /// \endcond + + const std::optional<QDateTime> &lastModified() const; + void setLastModified(const std::optional<QDateTime> &date); + + const std::optional<QString> &description() const; + void setDescription(const std::optional<QString> &description); + + const QVector<QXmppHash> &hashes() const; + void setHashes(const QVector<QXmppHash> &hashes); + + std::optional<uint32_t> height() const; + void setHeight(std::optional<uint32_t> height); + + std::optional<uint32_t> length() const; + void setLength(std::optional<uint32_t> length); + + const std::optional<QMimeType> &mediaType() const; + void setMediaType(std::optional<QMimeType> mediaType); + + std::optional<QString> filename() const; + void setFilename(std::optional<QString>); + + std::optional<uint64_t> size() const; + void setSize(std::optional<uint64_t> size); + + const std::optional<QXmppThumbnail> &thumbnail() const; + void setThumbnail(const std::optional<QXmppThumbnail> &thumbnail); + + std::optional<uint32_t> width() const; + void setWidth(std::optional<uint32_t> width); + +private: + QSharedDataPointer<QXmppFileMetadataPrivate> d; +}; + +#endif |
