iFacilityProject/iFacility/viewmodels/administrationviewmodel.cpp

64 lines
1.7 KiB
C++

#include "administrationviewmodel.h"
AdministrationViewModel::AdministrationViewModel(QObject *parent) : QAbstractTableModel(parent) {
}
int AdministrationViewModel::rowCount(const QModelIndex &/*parent*/) const {
return mUserData.length();
}
int AdministrationViewModel::columnCount(const QModelIndex &/*parent*/) const {
return 4;
}
QVariant AdministrationViewModel::headerData(int section, Qt::Orientation orientation,
int role) const {
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
switch (section) {
case 0:
return QString("UID");
case 1:
return QString("Login");
case 2:
return QString("Full name");
case 3:
return QString("Status");
}
}
return QVariant();
}
QVariant AdministrationViewModel::data(const QModelIndex &index, int role) const {
if (role == Qt::DisplayRole) {
auto usr = mUserData[index.row()];
int col = index.column();
switch (col) {
case 0:
return usr.uID();
case 1:
return usr.getLogin();
case 2:
return usr.getFullName();
case 3:
return usr.getUserType() == UserType::ADMINISTRATOR? "Administrator" : "Dispatcher";
}
return "UNKNOWN FIELD";
}
return QVariant();
}
void AdministrationViewModel::invalidateData() {
beginResetModel();
mUserData.clear();
foreach (auto u, Database::instance()->getUsersByType(UserType::ADMINISTRATOR)) {
mUserData += *u;
}
foreach (auto u, Database::instance()->getUsersByType(UserType::DISPATCHER)) {
mUserData += *u;
}
endResetModel();
}