2018-09-09 02:12:45 +00:00
|
|
|
#ifndef ACCOUNTLISTMODEL_H
|
|
|
|
#define ACCOUNTLISTMODEL_H
|
|
|
|
|
|
|
|
#include "controller.h"
|
|
|
|
|
|
|
|
#include <QAbstractListModel>
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
class AccountListModel : public QAbstractListModel {
|
|
|
|
Q_OBJECT
|
|
|
|
Q_PROPERTY(Controller* controller READ controller WRITE setController NOTIFY
|
|
|
|
controllerChanged)
|
|
|
|
public:
|
2018-09-09 13:13:43 +00:00
|
|
|
enum EventRoles {
|
|
|
|
NameRole = Qt::UserRole + 1,
|
|
|
|
AccountIDRole,
|
|
|
|
AvatarRole,
|
|
|
|
ConnectionRole
|
|
|
|
};
|
2018-09-09 02:12:45 +00:00
|
|
|
|
|
|
|
AccountListModel(QObject* parent = nullptr);
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex& index, int role = NameRole) const override;
|
|
|
|
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
|
|
|
|
|
|
|
|
QHash<int, QByteArray> roleNames() const override;
|
|
|
|
|
|
|
|
Controller* controller() { return m_controller; }
|
|
|
|
void setController(Controller* value);
|
|
|
|
|
|
|
|
private:
|
|
|
|
Controller* m_controller;
|
|
|
|
QVector<Connection*> m_connections;
|
|
|
|
|
2018-09-09 23:03:43 +00:00
|
|
|
void connectConnectionSignals(Connection* conn);
|
2018-09-09 02:12:45 +00:00
|
|
|
signals:
|
|
|
|
void controllerChanged();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // ACCOUNTLISTMODEL_H
|