mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
135 lines
4.3 KiB
C++
135 lines
4.3 KiB
C++
#include <QHeaderView>
|
||
#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(8);
|
||
|
||
reSetHeadTreeWidget();
|
||
|
||
treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 12pt;"));
|
||
|
||
treeWidget->setColumnWidth(0, 200);
|
||
treeWidget->setColumnWidth(1, 130);
|
||
treeWidget->setColumnWidth(2, 130);
|
||
treeWidget->setColumnWidth(3, 130);
|
||
treeWidget->setColumnWidth(4, 130);
|
||
treeWidget->setColumnWidth(5, 130);
|
||
treeWidget->setColumnWidth(6, 130);
|
||
treeWidget->setColumnWidth(7, 100);
|
||
|
||
if(typeView == TypeView::onlyView)
|
||
{//onlyView
|
||
treeWidget->setColumnHidden(1, true);
|
||
treeWidget->setColumnHidden(2, true);
|
||
treeWidget->setColumnHidden(5, true);
|
||
treeWidget->setColumnHidden(7, true);
|
||
}
|
||
else
|
||
{//control
|
||
treeWidget->setColumnHidden(5, 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<Trainee> 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());
|
||
|
||
if(trainee.getArchived())
|
||
{//Архивный
|
||
ItemTrainee->setText(5, tr("yes"));
|
||
ItemTrainee->setIcon(0, QIcon(QStringLiteral(":/icons/traineeArchive.png")));
|
||
setItemColorArchive(ItemTrainee);
|
||
}
|
||
else
|
||
{//Не Архивный
|
||
ItemTrainee->setText(5, tr("no"));
|
||
ItemTrainee->setIcon(0, QIcon(QStringLiteral(":/icons/trainee.png")));
|
||
setItemColorNoArchive(ItemTrainee);
|
||
}
|
||
|
||
if(trainee.getLoggedIn())
|
||
{//Залогинен
|
||
ItemTrainee->setText(6, tr("yes"));
|
||
ItemTrainee->setIcon(6, QIcon(QStringLiteral(":/icons/circleGreen.png")));
|
||
}
|
||
else
|
||
{//Не Залогинен
|
||
ItemTrainee->setText(6, tr("no"));
|
||
ItemTrainee->setIcon(6, QIcon(QStringLiteral(":/icons/circleGray.png")));
|
||
}
|
||
|
||
ItemTrainee->setText(7, trainee.getWhatItDoes());
|
||
|
||
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("Archived"), tr("Logged"), tr("Tasks")};
|
||
treeWidget->setHeaderLabels(listHeaders);
|
||
}
|