19 #include "UsersModel.h"
20 #include <QLightDM/UsersModel>
21 #include <QtCore/QSortFilterProxyModel>
28 class MangleModel :
public QSortFilterProxyModel
33 explicit MangleModel(QObject* parent=0);
35 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
38 MangleModel::MangleModel(QObject* parent)
39 : QSortFilterProxyModel(parent)
41 setSourceModel(
new QLightDM::UsersModel(
this));
44 QVariant MangleModel::data(
const QModelIndex &index,
int role)
const
46 QVariant variantData = QSortFilterProxyModel::data(index, role);
49 if (role == QLightDM::UsersModel::RealNameRole && variantData.toString().isEmpty()) {
50 variantData = QSortFilterProxyModel::data(index, QLightDM::UsersModel::NameRole);
51 }
else if (role == QLightDM::UsersModel::BackgroundPathRole && variantData.toString().startsWith(
'#')) {
52 const QString stringData =
"data:image/svg+xml,<svg><rect width='100%' height='100%' fill='" + variantData.toString() +
"'/></svg>";
53 variantData = stringData;
61 UsersModel::UsersModel(QObject* parent)
62 : UnitySortFilterProxyModelQML(parent)
64 setModel(
new MangleModel(
this));
65 setSortCaseSensitivity(Qt::CaseInsensitive);
66 setSortLocaleAware(
true);
67 setSortRole(QLightDM::UsersModel::RealNameRole);
71 #include "UsersModel.moc"