summary refs log tree commit diff
path: root/src/ImagePackListModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ImagePackListModel.h')
-rw-r--r--src/ImagePackListModel.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/ImagePackListModel.h b/src/ImagePackListModel.h
new file mode 100644

index 00000000..0a044690 --- /dev/null +++ b/src/ImagePackListModel.h
@@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2021 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include <QAbstractListModel> +#include <QQmlEngine> +#include <QSharedPointer> + +class SingleImagePackModel; +class ImagePackListModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum Roles + { + DisplayName = Qt::UserRole, + AvatarUrl, + FromAccountData, + FromCurrentRoom, + StateKey, + RoomId, + }; + + ImagePackListModel(const std::string &roomId, 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; + + Q_INVOKABLE SingleImagePackModel *packAt(int row); + +private: + std::string room_id; + + std::vector<QSharedPointer<SingleImagePackModel>> packs; +};