#include #include "traineesview.h" TraineesView::TraineesView(DataBaseTrainees* db, TypeView type, QWidget *parent): CommonView(type, parent), dbTrainees(db) { } void TraineesView::preparationTreeWidget(QTreeWidget *tree) { treeWidget = tree; if(treeWidget == nullptr) return; treeWidget->setColumnCount(9); reSetHeadTreeWidget(); treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;")); treeWidget->setColumnWidth(0, 250); treeWidget->setColumnWidth(1, 100); treeWidget->setColumnWidth(2, 100); treeWidget->setColumnWidth(3, 130); treeWidget->setColumnWidth(4, 130); treeWidget->setColumnWidth(5, 130); treeWidget->setColumnWidth(6, 80); treeWidget->setColumnWidth(7, 80); treeWidget->setColumnWidth(8, 100); if(typeView == TypeView::onlyView) {//onlyView treeWidget->setColumnHidden(1, true); treeWidget->setColumnHidden(2, true); treeWidget->setColumnHidden(6, true); treeWidget->setColumnHidden(8, true); } else {//control treeWidget->setColumnHidden(6, true); } } void TraineesView::loadTraineesFromDB() { //dbTrainees->LoadTraineesGroupsPSQL(); if(treeWidget == nullptr) return; //Обновление дерева treeWidget->clear(); for(Group group : dbTrainees->getListGroups()) { //Группа QTreeWidgetItem *ItemGroup = new QTreeWidgetItem(treeWidget); ItemGroup->setText(0, group.getName()); ItemGroup->setIcon(0, QIcon(QStringLiteral(":/icons/group.png"))); QColor color = dbTrainees->getColorGroup(/*group.getColor()*/Group::color0); setItemColor(ItemGroup, color); //Обучаемые QList listTrainees; listTrainees = dbTrainees->getListTraineesInGroup(group.getName()); for(Trainee trainee : listTrainees) { QTreeWidgetItem *ItemTrainee = new QTreeWidgetItem(); ItemTrainee->setText(0, trainee.getName()); ItemTrainee->setText(1, trainee.getLogin()); ItemTrainee->setText(2, trainee.getPassword()); ItemTrainee->setText(3, trainee.getLearnClass()); ItemTrainee->setText(4, trainee.getComputer()); ItemTrainee->setText(5, trainee.getIpAddress()); if(trainee.getArchived()) {//Архивный ItemTrainee->setText(6, tr("yes")); ItemTrainee->setIcon(0, QIcon(QStringLiteral(":/icons/traineeArchive.png"))); setItemColorArchive(ItemTrainee); } else {//Не Архивный ItemTrainee->setText(6, tr("no")); ItemTrainee->setIcon(0, QIcon(QStringLiteral(":/icons/trainee.png"))); setItemColorNoArchive(ItemTrainee); } if(trainee.getLoggedIn()) {//Залогинен ItemTrainee->setText(7, tr("yes")); ItemTrainee->setIcon(7, QIcon(QStringLiteral(":/icons/circleGreen.png"))); } else {//Не Залогинен ItemTrainee->setText(7, tr("no")); ItemTrainee->setIcon(7, QIcon(QStringLiteral(":/icons/circleGray.png"))); } ItemTrainee->setText(8, QString(trainee.getTasks().join(QStringLiteral(";")))); ItemGroup->addChild(ItemTrainee); //Скрываем архивных (при необходимости) if(trainee.getArchived()) if(!archiveVisible) ItemTrainee->setHidden(true); //Скрываем незалогиненых (при необходимости) if(! trainee.getLoggedIn()) if(! notLoggedInVisible) ItemTrainee->setHidden(true); } } treeWidget->setSortingEnabled(true); treeWidget->sortItems(0, Qt::SortOrder::AscendingOrder); treeWidget->expandAll(); if(typeView == TypeView::control) { QTreeWidgetItem * item = treeWidget->topLevelItem(0); if(item != nullptr) treeWidget->setCurrentItem(item); } } void TraineesView::reSetHeadTreeWidget() { QStringList listHeaders = {tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("Tasks")}; treeWidget->setHeaderLabels(listHeaders); }