28 #define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(4, 0, 0) 30 #include "UsersModel.h" 31 #include "UsersModelPrivate.h" 32 #include <QtCore/QDir> 33 #include <QtCore/QString> 34 #include <QtGui/QIcon> 39 UsersModel::UsersModel(QObject *parent) :
40 QAbstractListModel(parent),
41 d_ptr(new UsersModelPrivate(this))
46 QHash<int, QByteArray> roles = roleNames();
47 roles[NameRole] =
"name";
48 roles[RealNameRole] =
"realName";
49 roles[LoggedInRole] =
"loggedIn";
50 roles[BackgroundRole] =
"background";
51 roles[BackgroundPathRole] =
"backgroundPath";
52 roles[SessionRole] =
"session";
53 roles[HasMessagesRole] =
"hasMessages";
54 roles[ImagePathRole] =
"imagePath";
57 connect(d_ptr, &UsersModelPrivate::dataChanged,
this, [
this](
int i) {
58 QModelIndex index = createIndex(i, 0);
59 Q_EMIT dataChanged(index, index);
63 int UsersModel::rowCount(
const QModelIndex &parent)
const 65 Q_D(
const UsersModel);
67 if (parent.isValid()) {
70 return d->entries.size();
74 QVariant UsersModel::data(
const QModelIndex &index,
int role)
const 76 Q_D(
const UsersModel);
78 if (!index.isValid()) {
82 int row = index.row();
85 return d->entries[row].real_name;
86 case Qt::DecorationRole:
88 case UsersModel::NameRole:
89 return d->entries[row].username;
90 case UsersModel::RealNameRole:
91 return d->entries[row].real_name;
92 case UsersModel::SessionRole:
93 return d->entries[row].session;
94 case UsersModel::LoggedInRole:
95 return d->entries[row].is_active;
96 case UsersModel::BackgroundRole:
97 return QPixmap(d->entries[row].background);
98 case UsersModel::BackgroundPathRole:
99 return d->entries[row].background;
100 case UsersModel::HasMessagesRole:
101 return d->entries[row].has_messages;
102 case UsersModel::ImagePathRole: