#include #include #include "instructorsview.h" InstructorsView::InstructorsView(DataBaseInstructors* dbInstructors, TypeView type, bool adminMode, QWidget *parent): CommonView(type, adminMode, parent), dbInstructors(dbInstructors) { } void InstructorsView::preparationTreeWidget(QTreeWidget* tree) { treeWidget = tree; if(treeWidget == nullptr) return; treeWidget->setColumnCount(7); reSetHeadTreeWidget(); treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;")); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_ID, 50); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Instructor, 250); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Login, 100); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Password, 100); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Administrator, 100); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 80); treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 80); if(typeView == TypeView::onlyView) {//onlyView treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); //treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Login, true); treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Password, true); treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true); treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Administrator, true); } else {//control if(adminMode) { archiveVisible = true; notLoggedInVisible = true; } else { treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true); } } } void InstructorsView::loadInstructorsFromDB() { if(treeWidget == nullptr) return; //Обновление дерева treeWidget->clear(); //Инструкторы QList listInstructors; listInstructors = dbInstructors->getListInstructors(); for(Instructor instructor : listInstructors) { QTreeWidgetItem *ItemInstructor = new QTreeWidgetItem(treeWidget); ItemInstructor->setText(ColumnsTreeInsructors::clmn_ID, QString::number(instructor.getID())); ItemInstructor->setText(ColumnsTreeInsructors::clmn_Instructor, instructor.getName()); ItemInstructor->setText(ColumnsTreeInsructors::clmn_Login, instructor.getLogin()); ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, instructor.getPassword()); //Сокрытие пароля ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******")); if(instructor.getArchived()) {//Архивный ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("yes")); ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/instructorArchive.png"))); setItemColorArchive(ItemInstructor); } else {//Не Архивный ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("no")); ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/instructor.png"))); setItemColorNoArchive(ItemInstructor); } if(instructor.getIsAdmin()) {//Админ ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("yes")); ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/icons/admin.png"))); } else {//Не Админ ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("no")); } if(instructor.getLoggedIn()) {//Залогинен ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("yes")); ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/icons/circleGreen.png"))); } else {//Не Залогинен ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("no")); ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, 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(ColumnsTreeInsructors::clmn_Instructor, 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("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged"), tr("ID")}; treeWidget->setHeaderLabels(listHeaders); }