mirror of https://github.com/Nheko-Reborn/nheko
parent
07259b9cb7
commit
a3c4fece7e
@ -0,0 +1,28 @@ |
||||
#include "UsersModel.h" |
||||
|
||||
#include "Cache.h" |
||||
#include "CompletionModelRoles.h" |
||||
|
||||
#include <QPixmap> |
||||
|
||||
UsersModel::UsersModel(const std::string &roomId, QObject *parent) |
||||
: QAbstractListModel(parent) |
||||
{ |
||||
roomMembers_ = cache::getMembers(roomId, 0, 9999); |
||||
} |
||||
|
||||
QVariant |
||||
UsersModel::data(const QModelIndex &index, int role) const |
||||
{ |
||||
if (hasIndex(index.row(), index.column(), index.parent())) { |
||||
switch (role) { |
||||
case CompletionModel::CompletionRole: |
||||
case CompletionModel::SearchRole: |
||||
case Qt::DisplayRole: |
||||
return roomMembers_[index.row()].display_name; |
||||
case Avatar: |
||||
return roomMembers_[index.row()].avatar; |
||||
} |
||||
} |
||||
return {}; |
||||
} |
@ -0,0 +1,24 @@ |
||||
#pragma once |
||||
|
||||
#include <QAbstractListModel> |
||||
|
||||
class RoomMember; |
||||
|
||||
class UsersModel : public QAbstractListModel |
||||
{ |
||||
public: |
||||
enum Roles |
||||
{ |
||||
Avatar = Qt::UserRole // QImage avatar
|
||||
}; |
||||
|
||||
UsersModel(const std::string &roomId, QObject *parent = nullptr); |
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override |
||||
{ |
||||
return (parent == QModelIndex()) ? roomMembers_.size() : 0; |
||||
} |
||||
QVariant data(const QModelIndex &index, int role) const override; |
||||
|
||||
private: |
||||
std::vector<RoomMember> roomMembers_; |
||||
}; |
Loading…
Reference in new issue