#include #include #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 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); }