Changeset View
Changeset View
Standalone View
Standalone View
src/matrix-room-member-list-model.hpp
| /* | /* | ||||
| * This file is part of kazv. | * This file is part of kazv. | ||||
| * SPDX-FileCopyrightText: 2020-2023 tusooa <tusooa@kazv.moe> | * SPDX-FileCopyrightText: 2020-2023 tusooa <tusooa@kazv.moe> | ||||
| * SPDX-License-Identifier: AGPL-3.0-or-later | * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
| */ | */ | ||||
| #pragma once | #pragma once | ||||
| #include <kazv-defs.hpp> | #include <kazv-defs.hpp> | ||||
| #include <QObject> | #include <QObject> | ||||
| #include <QQmlEngine> | #include <QQmlEngine> | ||||
| #include <QAbstractListModel> | #include <QAbstractListModel> | ||||
| #include <lager/extra/qt.hpp> | #include <lager/extra/qt.hpp> | ||||
| #include <lager/state.hpp> | |||||
| #include <client/room/room.hpp> | #include <client/room/room.hpp> | ||||
| class MatrixRoomMember; | class MatrixRoomMember; | ||||
| class MatrixRoomMemberListModel : public QAbstractListModel | class MatrixRoomMemberListModel : public QAbstractListModel | ||||
| { | { | ||||
| Q_OBJECT | Q_OBJECT | ||||
| QML_ELEMENT | QML_ELEMENT | ||||
| QML_UNCREATABLE("") | QML_UNCREATABLE("") | ||||
| lager::state<std::string, lager::automatic_tag> m_filter; | |||||
| lager::reader<Kazv::EventList> m_members; | lager::reader<Kazv::EventList> m_members; | ||||
| int m_internalCount; | int m_internalCount; | ||||
| public: | public: | ||||
| explicit MatrixRoomMemberListModel(lager::reader<Kazv::EventList> members, QObject *parent = 0); | explicit MatrixRoomMemberListModel(lager::reader<Kazv::EventList> members, QString filter = QString(), QObject *parent = 0); | ||||
| ~MatrixRoomMemberListModel() override; | ~MatrixRoomMemberListModel() override; | ||||
| LAGER_QT_CURSOR(QString, filter); | |||||
| LAGER_QT_READER(int, count); | LAGER_QT_READER(int, count); | ||||
| int rowCount(const QModelIndex &index) const override; | int rowCount(const QModelIndex &index) const override; | ||||
| QVariant data(const QModelIndex &index, int role) const override; | QVariant data(const QModelIndex &index, int role) const override; | ||||
| Q_INVOKABLE MatrixRoomMember *at(int index) const; | Q_INVOKABLE MatrixRoomMember *at(int index) const; | ||||
| private Q_SLOTS: | private Q_SLOTS: | ||||
| void updateInternalCount(); | void updateInternalCount(); | ||||
| }; | }; | ||||