mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
130 lines
3.9 KiB
C++
130 lines
3.9 KiB
C++
#include <QHeaderView>
|
||
#include <QTranslator>
|
||
#include "instructorsview.h"
|
||
|
||
InstructorsView::InstructorsView(DataBaseInstructors* db, TypeView type, bool adminMode, QWidget *parent):
|
||
CommonView(type, adminMode, parent),
|
||
dbInstructors(db)
|
||
{
|
||
|
||
}
|
||
|
||
void InstructorsView::preparationTreeWidget(QTreeWidget* tree)
|
||
{
|
||
treeWidget = tree;
|
||
|
||
if(treeWidget == nullptr)
|
||
return;
|
||
|
||
treeWidget->setColumnCount(7);
|
||
|
||
reSetHeadTreeWidget();
|
||
|
||
treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
|
||
|
||
treeWidget->setColumnWidth(0, 50);
|
||
treeWidget->setColumnWidth(1, 250);
|
||
treeWidget->setColumnWidth(2, 100);
|
||
treeWidget->setColumnWidth(3, 100);
|
||
treeWidget->setColumnWidth(4, 100);
|
||
treeWidget->setColumnWidth(5, 80);
|
||
treeWidget->setColumnWidth(6, 80);
|
||
|
||
if(typeView == TypeView::onlyView)
|
||
{//onlyView
|
||
treeWidget->setColumnHidden(2, true);
|
||
treeWidget->setColumnHidden(3, true);
|
||
treeWidget->setColumnHidden(5, true);
|
||
}
|
||
else
|
||
{//control
|
||
treeWidget->setColumnHidden(5, true);
|
||
}
|
||
}
|
||
|
||
void InstructorsView::loadInstructorsFromDB()
|
||
{
|
||
dbInstructors->LoadInstructorsPSQL();
|
||
|
||
if(treeWidget == nullptr)
|
||
return;
|
||
|
||
//Обновление дерева
|
||
treeWidget->clear();
|
||
|
||
//Инструкторы
|
||
QList<Instructor> listInstructors;
|
||
listInstructors = dbInstructors->getListInstructors();
|
||
for(Instructor instructor : listInstructors)
|
||
{
|
||
QTreeWidgetItem *ItemInstructor = new QTreeWidgetItem(treeWidget);
|
||
|
||
ItemInstructor->setText(0, QString::number(instructor.getID()));
|
||
ItemInstructor->setText(1, instructor.getName());
|
||
ItemInstructor->setText(2, instructor.getLogin());
|
||
ItemInstructor->setText(3, instructor.getPassword());
|
||
|
||
if(instructor.getArchived())
|
||
{//Архивный
|
||
ItemInstructor->setText(5, tr("yes"));
|
||
ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/instructorArchive.png")));
|
||
setItemColorArchive(ItemInstructor);
|
||
}
|
||
else
|
||
{//Не Архивный
|
||
ItemInstructor->setText(5, tr("no"));
|
||
ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/instructor.png")));
|
||
setItemColorNoArchive(ItemInstructor);
|
||
}
|
||
|
||
if(instructor.getIsAdmin())
|
||
{//Админ
|
||
ItemInstructor->setText(4, tr("yes"));
|
||
ItemInstructor->setIcon(1, QIcon(QStringLiteral(":/icons/admin.png")));
|
||
}
|
||
else
|
||
{//Не Админ
|
||
ItemInstructor->setText(4, tr("no"));
|
||
}
|
||
|
||
if(instructor.getLoggedIn())
|
||
{//Залогинен
|
||
ItemInstructor->setText(6, tr("yes"));
|
||
ItemInstructor->setIcon(6, QIcon(QStringLiteral(":/icons/circleGreen.png")));
|
||
}
|
||
else
|
||
{//Не Залогинен
|
||
ItemInstructor->setText(6, tr("no"));
|
||
ItemInstructor->setIcon(6, QIcon(QStringLiteral(":/icons/circleGray.png")));
|
||
}
|
||
|
||
//Скрываем архивных (при необходимости)
|
||
if(instructor.getArchived())
|
||
if(! archiveVisible)
|
||
ItemInstructor->setHidden(true);
|
||
|
||
//Скрываем незалогиненых (при необходимости)
|
||
if(! instructor.getLoggedIn())
|
||
if(! notLoggedInVisible)
|
||
ItemInstructor->setHidden(true);
|
||
}
|
||
|
||
treeWidget->setSortingEnabled(true);
|
||
treeWidget->sortItems(1, Qt::SortOrder::AscendingOrder);
|
||
treeWidget->expandAll();
|
||
|
||
if(typeView == TypeView::control)
|
||
{
|
||
QTreeWidgetItem * item = treeWidget->topLevelItem(0);
|
||
if(item != nullptr)
|
||
treeWidget->setCurrentItem(item);
|
||
}
|
||
}
|
||
|
||
void InstructorsView::reSetHeadTreeWidget()
|
||
{
|
||
QStringList listHeaders = {tr("ID"), tr("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged")};
|
||
treeWidget->setHeaderLabels(listHeaders);
|
||
}
|
||
|