summary refs log tree commit diff
path: root/src/InviteesModel.h
diff options
context:
space:
mode:
authorJoseph Donofry <joedonofry@gmail.com>2021-08-10 19:29:58 -0400
committerJoseph Donofry <joedonofry@gmail.com>2021-08-10 19:29:58 -0400
commitc91e771d538d99c9353b779ac4dd0d93a77cca6b (patch)
treea0b583cf945b5cd09622ccb68b9fc8ad0e369794 /src/InviteesModel.h
parentMerge remote-tracking branch 'nheko-im/master' into video_player_enhancements (diff)
parentProtect against replay attacks (diff)
downloadnheko-c91e771d538d99c9353b779ac4dd0d93a77cca6b.tar.xz
Merge origin/master and fix conflicts
Diffstat (limited to 'src/InviteesModel.h')
-rw-r--r--src/InviteesModel.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/InviteesModel.h b/src/InviteesModel.h
new file mode 100644

index 00000000..a4e19ebb --- /dev/null +++ b/src/InviteesModel.h
@@ -0,0 +1,63 @@ +// SPDX-FileCopyrightText: 2021 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef INVITEESMODEL_H +#define INVITEESMODEL_H + +#include <QAbstractListModel> +#include <QVector> + +class Invitee : public QObject +{ + Q_OBJECT + +public: + Invitee(const QString &mxid, QObject *parent = nullptr); + +signals: + void userInfoLoaded(); + +private: + const QString mxid_; + QString displayName_; + QString avatarUrl_; + + friend class InviteesModel; +}; + +class InviteesModel : public QAbstractListModel +{ + Q_OBJECT + + Q_PROPERTY(int count READ rowCount NOTIFY countChanged) + +public: + enum Roles + { + Mxid, + DisplayName, + AvatarUrl, + }; + + InviteesModel(QObject *parent = nullptr); + + Q_INVOKABLE void addUser(QString mxid); + + QHash<int, QByteArray> roleNames() const override; + int rowCount(const QModelIndex & = QModelIndex()) const override + { + return (int)invitees_.size(); + } + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + QStringList mxids(); + +signals: + void accept(); + void countChanged(); + +private: + QVector<Invitee *> invitees_; +}; + +#endif // INVITEESMODEL_H