#ifndef ROOMLISTMODEL_H #define ROOMLISTMODEL_H #include #include #include "libqmatrixclient/connection.h" #include "libqmatrixclient/room.h" namespace QMatrixClient { class Connection; class Room; } class RoomListModel : public QAbstractListModel { Q_OBJECT public: explicit RoomListModel(QMatrixClient::Connection* m_connection = 0); ~RoomListModel(); enum RoomModelRoles { NameRole, ValueRole, AvatarRole }; QHash roleNames() const; Q_INVOKABLE QMatrixClient::Room* roomAt(int row); QVariant data(const QModelIndex& index, int role) const override; Q_INVOKABLE int rowCount(const QModelIndex& parent=QModelIndex()) const override; signals: public slots: private slots: void namesChanged(QMatrixClient::Room* room); void unreadMessagesChanged(QMatrixClient::Room* room); void addRoom(QMatrixClient::Room* room); private: QMatrixClient::Connection* m_connection; QList m_rooms; }; #endif // ROOMLISTMODEL_H