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

index 00000000..4bcc4e9d --- /dev/null +++ b/src/InviteesModel.h
@@ -0,0 +1,56 @@ +#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 + +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(); + +private: + QVector<Invitee *> invitees_; +}; + +#endif // INVITEESMODEL_H