#include "userform.h" #include "ui_userform.h" #include #include #include "../data/core-data.h" #include "../service.h" UserForm::UserForm(QWidget *parent) : AutoForm(parent), ui(new Ui::UserForm) { ui->setupUi(this); registerBinding(ui->login); registerBinding(ui->password); registerBinding(ui->name); registerBinding(ui->isAdmin); registerBinding(ui->active); } UserForm::~UserForm() { delete ui; } void UserForm::bindOtherToUi() { Service srv; QList > roles = this->entity()->listRoles(); ui->tableWidget->setRowCount(srv.all().count()); ui->tableWidget->setColumnCount(1); int i = 0; foreach(QSharedPointer r,srv.all()) { auto it = std::find_if(ALL(roles),[r](QSharedPointer role){return r->id() == role->id();}); QTableWidgetItem * ti; ti = new QTableWidgetItem; ti->setText(r->name()); ti->setCheckState(it == roles.end() ? Qt::Unchecked : Qt::Checked); ti->setData(Qt::UserRole,r->id()); ui->tableWidget->setItem(i,0,ti); i++; } } bool UserForm::bindOtherToData() { Service srv; this->entity()->clearRoles(); for(int i = 0;i < ui->tableWidget->rowCount() ;i++){ if(ui->tableWidget->item(i,0)->checkState()== Qt::Checked) { this->entity()->addRole(srv.loadById(ui->tableWidget->item(i,0)->data(Qt::UserRole).toInt())); } } return true; }