2018-02-28 09:10:42 +00:00
|
|
|
#ifndef ROOMLISTMODEL_H
|
|
|
|
#define ROOMLISTMODEL_H
|
|
|
|
|
2018-02-28 13:11:42 +00:00
|
|
|
#include <QtCore/QAbstractListModel>
|
2018-07-07 09:38:20 +00:00
|
|
|
#include "room.h"
|
|
|
|
#include "connection.h"
|
2018-02-28 09:10:42 +00:00
|
|
|
|
2018-03-14 09:11:45 +00:00
|
|
|
class RoomListModel: public QAbstractListModel
|
2018-02-28 13:11:42 +00:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
2018-03-14 09:11:45 +00:00
|
|
|
Q_PROPERTY(QMatrixClient::Connection *connection READ getConnection WRITE setConnection)
|
2018-03-02 11:58:55 +00:00
|
|
|
|
2018-03-06 11:11:39 +00:00
|
|
|
public:
|
2018-07-07 09:38:20 +00:00
|
|
|
RoomListModel(QObject* parent=0);
|
|
|
|
virtual ~RoomListModel();
|
2018-02-28 13:11:42 +00:00
|
|
|
|
2018-07-07 09:38:20 +00:00
|
|
|
QMatrixClient::Connection* getConnection() {return m_connection;}
|
2018-03-14 09:11:45 +00:00
|
|
|
void setConnection(QMatrixClient::Connection* connection);
|
2018-02-28 09:10:42 +00:00
|
|
|
|
2018-07-07 09:38:20 +00:00
|
|
|
Q_INVOKABLE QMatrixClient::Room* roomAt(int row);
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
|
|
|
|
Q_INVOKABLE int rowCount(const QModelIndex& parent=QModelIndex()) const override;
|
2018-02-28 09:10:42 +00:00
|
|
|
|
2018-03-14 09:11:45 +00:00
|
|
|
QHash<int, QByteArray> roleNames() const;
|
2018-02-28 09:10:42 +00:00
|
|
|
|
2018-03-06 11:11:39 +00:00
|
|
|
private slots:
|
2018-07-07 09:38:20 +00:00
|
|
|
void namesChanged(QMatrixClient::Room* room);
|
|
|
|
void unreadMessagesChanged(QMatrixClient::Room* room);
|
|
|
|
void addRoom(QMatrixClient::Room* room);
|
2018-02-28 09:10:42 +00:00
|
|
|
|
2018-03-06 11:11:39 +00:00
|
|
|
private:
|
2018-07-08 05:25:46 +00:00
|
|
|
QMatrixClient::Connection* m_connection = nullptr;
|
2018-07-07 09:38:20 +00:00
|
|
|
QList<QMatrixClient::Room*> m_rooms;
|
2018-03-14 09:11:45 +00:00
|
|
|
|
2018-07-07 09:38:20 +00:00
|
|
|
signals:
|
|
|
|
void connectionChanged();
|
2018-02-28 09:10:42 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // ROOMLISTMODEL_H
|