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";
55 roles[UidRole] =
"uid";
58 connect(d_ptr, &UsersModelPrivate::dataChanged,
this, [
this](
int i) {
59 QModelIndex index = createIndex(i, 0);
60 Q_EMIT dataChanged(index, index);
64 int UsersModel::rowCount(
const QModelIndex &parent)
const 66 Q_D(
const UsersModel);
68 if (parent.isValid()) {
71 return d->entries.size();
75 QVariant UsersModel::data(
const QModelIndex &index,
int role)
const 77 Q_D(
const UsersModel);
79 if (!index.isValid()) {
83 int row = index.row();
86 return d->entries[row].real_name;
87 case Qt::DecorationRole:
89 case UsersModel::NameRole:
90 return d->entries[row].username;
91 case UsersModel::RealNameRole:
92 return d->entries[row].real_name;
93 case UsersModel::SessionRole:
94 return d->entries[row].session;
95 case UsersModel::LoggedInRole:
96 return d->entries[row].is_active;
97 case UsersModel::BackgroundRole:
98 return QPixmap(d->entries[row].background);
99 case UsersModel::BackgroundPathRole:
100 return d->entries[row].background;
101 case UsersModel::HasMessagesRole:
102 return d->entries[row].has_messages;
103 case UsersModel::ImagePathRole:
105 case UsersModel::UidRole:
106 return d->entries[row].uid;