Newer
Older
#ifndef USERMODEL_H
#define USERMODEL_H
#include <QAbstractListModel>
#include <QSharedPointer>
#include <QMultiMap>
#include <QSet>
#include <QDebug>
#include "repos/entities/rocketchatuser.h"
class UserModel: public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(QString currentChannel READ getCurrent WRITE setCurrent NOTIFY currentChannelChanged)
enum UserRoles {
UserName = Qt::UserRole + 1,
UserId
};
public:
UserModel( QObject *parent = 0 );
int rowCount( const QModelIndex &parent = QModelIndex() ) const;
QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
bool insertUser(QString,QSharedPointer<RocketChatUser>);
QString getCurrent() const;
void setCurrent(const QString &value);
void onCurrentChannelChanged(const QString &newText);
protected:
QHash<int, QByteArray> roleNames() const;
QSet<QString> duplicateCheck;
QMultiMap<QString, QSharedPointer<RocketChatUser>> userMap;
QString current;
signals:
void currentChannelChanged(const QString &newText);
void countChanged();
};
#endif // USERMODEL_H