summary refs log tree commit diff
path: root/src/ImagePackModel.h
diff options
context:
space:
mode:
authorJoseph Donofry <joedonofry@gmail.com>2021-07-19 14:12:28 -0400
committerJoseph Donofry <joedonofry@gmail.com>2021-07-19 14:12:28 -0400
commita4754e79d2e5d8c3a490cd01989abd25dd360646 (patch)
tree44114ff7e7527346792931e69908f02109a366ec /src/ImagePackModel.h
parentImport and update lurkki's branch (diff)
parentFix reaction button again (diff)
downloadnheko-a4754e79d2e5d8c3a490cd01989abd25dd360646.tar.xz
Merge remote-tracking branch 'nheko-im/master' into video_player_enhancements
Diffstat (limited to 'src/ImagePackModel.h')
-rw-r--r--src/ImagePackModel.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/ImagePackModel.h b/src/ImagePackModel.h
new file mode 100644

index 00000000..937014ec --- /dev/null +++ b/src/ImagePackModel.h
@@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2021 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include <QAbstractListModel> + +#include <mtx/events/mscs/image_packs.hpp> + +class ImagePackModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum Roles + { + Url = Qt::UserRole, + ShortCode, + Body, + PackName, + OriginalRow, + }; + + ImagePackModel(const std::string &roomId, bool stickers, QObject *parent = nullptr); + QHash<int, QByteArray> roleNames() const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role) const override; + + mtx::events::msc2545::PackImage imageAt(int row) + { + if (row < 0 || static_cast<size_t>(row) >= images.size()) + return {}; + return images.at(static_cast<size_t>(row)).image; + } + +private: + std::string room_id; + + struct ImageDesc + { + QString shortcode; + QString packname; + + mtx::events::msc2545::PackImage image; + }; + + std::vector<ImageDesc> images; +};