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";
58 QDir bgdir = QDir(QStringLiteral(
"/usr/share/demo-assets/shell/backgrounds/"));
59 QStringList backgrounds = bgdir.entryList(QDir::Files | QDir::NoDotAndDotDot);
61 for (
int i = 0, j = 0; i < d->entries.size(); i++) {
62 Entry &entry = d->entries[i];
63 if (entry.background.isNull() && !backgrounds.isEmpty()) {
64 entry.background = bgdir.filePath(backgrounds[j++]);
65 if (j >= backgrounds.length()) {
72 UsersModel::~UsersModel()
77 int UsersModel::rowCount(
const QModelIndex &parent)
const
79 Q_D(
const UsersModel);
81 if (parent.isValid()) {
84 return d->entries.size();
88 QVariant UsersModel::data(
const QModelIndex &index,
int role)
const
90 Q_D(
const UsersModel);
92 if (!index.isValid()) {
96 int row = index.row();
99 return d->entries[row].real_name;
100 case Qt::DecorationRole:
102 case UsersModel::NameRole:
103 return d->entries[row].username;
104 case UsersModel::RealNameRole:
105 return d->entries[row].real_name;
106 case UsersModel::SessionRole:
107 return d->entries[row].session;
108 case UsersModel::LoggedInRole:
109 return d->entries[row].is_active;
110 case UsersModel::BackgroundRole:
111 return QPixmap(d->entries[row].background);
112 case UsersModel::BackgroundPathRole:
113 return d->entries[row].background;
114 case UsersModel::HasMessagesRole:
115 return d->entries[row].has_messages;
116 case UsersModel::ImagePathRole: