28#define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(4, 0, 0)
30#include "UsersModel.h"
31#include "UsersModelPrivate.h"
33#include <QtCore/QString>
39UsersModel::UsersModel(QObject *parent) :
40 QAbstractListModel(parent),
41 d_ptr(new UsersModelPrivate(this))
44 QHash<int, QByteArray> roles = roleNames();
45 roles[NameRole] =
"name";
46 roles[RealNameRole] =
"realName";
47 roles[LoggedInRole] =
"loggedIn";
48 roles[BackgroundRole] =
"background";
49 roles[BackgroundPathRole] =
"backgroundPath";
50 roles[SessionRole] =
"session";
51 roles[HasMessagesRole] =
"hasMessages";
52 roles[ImagePathRole] =
"imagePath";
53 roles[UidRole] =
"uid";
56 connect(d_ptr, &UsersModelPrivate::dataChanged,
this, [
this](
int i) {
57 QModelIndex index = createIndex(i, 0);
58 Q_EMIT dataChanged(index, index);
62int UsersModel::rowCount(
const QModelIndex &parent)
const
64 Q_D(
const UsersModel);
66 if (parent.isValid()) {
69 return d->entries.size();
73QVariant UsersModel::data(
const QModelIndex &index,
int role)
const
75 Q_D(
const UsersModel);
77 if (!index.isValid()) {
81 int row = index.row();
84 return d->entries[row].real_name;
85 case Qt::DecorationRole:
87 case UsersModel::NameRole:
88 return d->entries[row].username;
89 case UsersModel::RealNameRole:
90 return d->entries[row].real_name;
91 case UsersModel::SessionRole:
92 return d->entries[row].session;
93 case UsersModel::LoggedInRole:
94 return d->entries[row].is_active;
95 case UsersModel::BackgroundRole:
96 return QPixmap(d->entries[row].background);
97 case UsersModel::BackgroundPathRole:
98 return d->entries[row].background;
99 case UsersModel::HasMessagesRole:
100 return d->entries[row].has_messages;
101 case UsersModel::ImagePathRole:
103 case UsersModel::UidRole:
104 return d->entries[row].uid;