diff --git a/InstructorsAndTrainees/commonview.cpp b/InstructorsAndTrainees/commonview.cpp index e30c9c4..89f1347 100644 --- a/InstructorsAndTrainees/commonview.cpp +++ b/InstructorsAndTrainees/commonview.cpp @@ -1,12 +1,15 @@ #include "commonview.h" #include #include +#include +#include CommonView::CommonView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent): QWidget(parent), connectorToServer(connectorToServer), treeWidget(nullptr), + TypeUserDB(User::TypeUserDBInstructor), typeView(type), archiveVisible(false), notLoggedInVisible(true), @@ -48,3 +51,115 @@ void CommonView::setItemColor(QTreeWidgetItem *item, QColor color) for (int i = 0; i < item->columnCount(); i++) item->setBackground(i, color); } + +int CommonView::calculateWidth_0Column() +{ + int widthHeader = treeWidget->width() - 10; + int width0Column = 0; + int widthSB = 0; + if(treeWidget->verticalScrollBar()->isVisible()) + widthSB = treeWidget->verticalScrollBar()->size().width(); + int cntColumns = treeWidget->columnCount(); + int widthRightColumns = 0; + for (int i = 1; i < cntColumns; i++) + { + if(! treeWidget->isColumnHidden(i)) + {//Колонка не скрыта + int w = listWidthColumn.at(i); + widthRightColumns += w; + } + } + width0Column = widthHeader - widthRightColumns - widthSB; + + return width0Column; +} + +void CommonView::setWidthColumnsTree() +{ + listWidthColumn.clear(); + + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Name, 100); + listWidthColumn.append(100); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Login, 100); + listWidthColumn.append(100); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Password, 100); + listWidthColumn.append(100); + + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Class, 100); + listWidthColumn.append(100); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Computer, 100); + listWidthColumn.append(100); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_IP_address, 100); + listWidthColumn.append(100); + + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Administrator, 140); + listWidthColumn.append(140); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Archived, 100); + listWidthColumn.append(100); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Logged, 120); + listWidthColumn.append(120); + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_ID, 100); + listWidthColumn.append(100); + + treeWidget->setColumnWidth(ColumnsTreeUsers::clmn_Name, calculateWidth_0Column()); +} + +void CommonView::reSetHeadTreeWidget() +{ + QStringList listHeaders = {tr("Name"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Administrator"), tr("Archived"), tr("Logged"), tr("ID")}; + treeWidget->setHeaderLabels(listHeaders); +} + +void CommonView::preparationTreeWidget() +{ + mtxTreeWidget.lock(); + + treeWidget->setColumnCount(clmn_count); + + reSetHeadTreeWidget(); + + if(typeView == TypeView::onlyView) + {//onlyView + archiveVisible = false; + + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Password, true); + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Archived, true); + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Administrator, true); + } + else + {//control + archiveVisible = true; + + if(adminMode) + { +#ifdef PROJECT_TYPE_DEBUG + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_ID, false); +#else + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_ID, true); +#endif + } + else + { + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_ID, true); + } + } + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Class, true); + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Computer, true); + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_IP_address, true); + if(TypeUserDB == User::TypeUserDBTrainee) + treeWidget->setColumnHidden(ColumnsTreeUsers::clmn_Administrator, true); + + treeWidget->setSortingEnabled(true); + treeWidget->sortItems(ColumnsTreeUsers::clmn_Name, Qt::SortOrder::AscendingOrder); + + mtxTreeWidget.unlock(); +} + +void CommonView::resizeEvent(QResizeEvent *event) +{ + setWidthColumnsTree(); + + QSize size = event->size(); + waitAnimationWidget->resize(size); +} diff --git a/InstructorsAndTrainees/commonview.h b/InstructorsAndTrainees/commonview.h index a7756dc..edcc235 100644 --- a/InstructorsAndTrainees/commonview.h +++ b/InstructorsAndTrainees/commonview.h @@ -27,10 +27,27 @@ public: objGroup }; +protected: + enum ColumnsTreeUsers{ + clmn_Name = 0, + clmn_Login, + clmn_Password, + clmn_Class, + clmn_Computer, + clmn_IP_address, + clmn_Administrator, + clmn_Archived, + clmn_Logged, + clmn_ID, + clmn_count + }; + public: CommonView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent = nullptr); ~CommonView(); + void resizeEvent(QResizeEvent *event) override; + public: void setAdminMode(bool adminMode) { @@ -67,9 +84,20 @@ protected: void setItemColor(QTreeWidgetItem* item, QColor color); + void preparationTreeWidget(); + +private: + int calculateWidth_0Column(); + void setWidthColumnsTree(); + +protected: + void reSetHeadTreeWidget(); + protected: ConnectorToServer* connectorToServer; QTreeWidget* treeWidget; + QList listWidthColumn; + QString TypeUserDB; QMutex mtxTreeWidget; TypeView typeView; bool archiveVisible; diff --git a/InstructorsAndTrainees/instructors/dialogredactorinstructors.cpp b/InstructorsAndTrainees/instructors/dialogredactorinstructors.cpp index b78c355..07dc108 100644 --- a/InstructorsAndTrainees/instructors/dialogredactorinstructors.cpp +++ b/InstructorsAndTrainees/instructors/dialogredactorinstructors.cpp @@ -18,7 +18,7 @@ DialogRedactorInstructors::DialogRedactorInstructors(ConnectorToServer* connecto layout->addWidget(editorInstructors); this->setWindowTitle(tr("Editor of instructors")); this->setMinimumSize(1400, 700); - this->setWindowState(Qt::WindowMaximized); + //this->setWindowState(Qt::WindowMaximized); this->setModal(true); } diff --git a/InstructorsAndTrainees/instructors/editorinstructors.cpp b/InstructorsAndTrainees/instructors/editorinstructors.cpp index a57a27a..77e8010 100644 --- a/InstructorsAndTrainees/instructors/editorinstructors.cpp +++ b/InstructorsAndTrainees/instructors/editorinstructors.cpp @@ -112,7 +112,7 @@ void EditorInstructors::on_btnDeleteInstructor_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); + int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); if(connectorToServer->isAdminInstructor(id)) {//Это Админ! @@ -145,7 +145,7 @@ void EditorInstructors::on_btnToOrFromArchive_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); + int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); Instructor instructor = connectorToServer->getInstructor(id); if(instructor.getID() == 0) @@ -194,7 +194,7 @@ void EditorInstructors::on_btnEdit_clicked() if(treeItemParent == nullptr) {//Выбран Инструктор - int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt(); + int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); if(connectorToServer->isLoggedInInstructor(id)) {//Инструктор залогирован! @@ -252,7 +252,7 @@ void EditorInstructors::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current if(treeItemParent == nullptr) {//Выбран инструктор - int id = current->text(ColumnsTreeInsructors::clmn_ID).toInt(); + int id = current->text(ColumnsTreeUsers::clmn_ID).toInt(); lastCurrentID = id; diff --git a/InstructorsAndTrainees/instructors/instructorsview.cpp b/InstructorsAndTrainees/instructors/instructorsview.cpp index c8d496a..1dc884c 100644 --- a/InstructorsAndTrainees/instructors/instructorsview.cpp +++ b/InstructorsAndTrainees/instructors/instructorsview.cpp @@ -1,51 +1,14 @@ #include #include #include +#include #include "instructorsview.h" InstructorsView::InstructorsView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent): CommonView(connectorToServer, type, parent) { typeObject = TypeObject::objInstructor; -} - -void InstructorsView::resizeEvent(QResizeEvent *event) -{ - int width = treeWidget->width(); - - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_ID, 50); - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Login, 100); - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Password, 100); - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Administrator, 140); - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 100); - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 120); - - int widthInstructor; - - if(typeView == TypeView::onlyView) - {//onlyView - widthInstructor = width - (220 + 10 + 20); - } - else - {//control - if(adminMode) - { -#ifdef PROJECT_TYPE_DEBUG - widthInstructor = width - (610 + 10 + 20); -#else - widthInstructor = width - (560 + 10 + 20); -#endif - } - else - widthInstructor = width - (480 + 10 + 20); - } - if(widthInstructor < 250) - widthInstructor = 250; - - treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Instructor, widthInstructor); - - QSize size = event->size(); - waitAnimationWidget->resize(size); + TypeUserDB = User::TypeUserDBInstructor; } void InstructorsView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee) @@ -59,47 +22,6 @@ void InstructorsView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee) } } -void InstructorsView::preparationTreeWidget() -{ - mtxTreeWidget.lock(); - - treeWidget->setColumnCount(clmn_count); - - reSetHeadTreeWidget(); - - if(typeView == TypeView::onlyView) - {//onlyView - archiveVisible = false; - - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Password, true); - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true); - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Administrator, true); - } - else - {//control - archiveVisible = true; - - if(adminMode) - { -#ifdef PROJECT_TYPE_DEBUG - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, false); -#else - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); -#endif - } - else - { - treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true); - } - } - - treeWidget->setSortingEnabled(true); - treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder); - - mtxTreeWidget.unlock(); -} - void InstructorsView::loadInstructorsFromDB() { mtxTreeWidget.lock(); @@ -116,46 +38,46 @@ void InstructorsView::loadInstructorsFromDB() { 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(ColumnsTreeUsers::clmn_ID, QString::number(instructor.getID())); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Name, instructor.getName()); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Login, instructor.getLogin()); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Password, instructor.getPassword()); //Сокрытие пароля - ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******")); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Password, QStringLiteral("******")); if(instructor.getArchived()) {//Архивный - ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("yes")); - ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/archive.png"))); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Archived, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/archive.png"))); setItemColorArchive(ItemInstructor); } else {//Не Архивный - ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("no")); - ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/instructor.png"))); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Archived, tr("no")); + ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/instructor.png"))); setItemColorNoArchive(ItemInstructor); } if(instructor.getIsAdmin()) {//Админ - ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("yes")); - ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/admin.png"))); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Administrator, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/admin.png"))); } else {//Не Админ - ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("no")); + ItemInstructor->setText(ColumnsTreeUsers::clmn_Administrator, tr("no")); } if(instructor.getLoggedIn()) {//Залогинен - //ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("yes")); - ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png"))); + //ItemInstructor->setText(ColumnsTreeUsers::clmn_Logged, tr("yes")); + ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png"))); } else {//Не Залогинен - //ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("no")); - ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + //ItemInstructor->setText(ColumnsTreeUsers::clmn_Logged, tr("no")); + ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); } //Скрываем архивных (при необходимости) @@ -181,26 +103,20 @@ void InstructorsView::loadInstructorsFromDB() setCurrentInstructor(lastCurrentID); - treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder); + treeWidget->sortItems(ColumnsTreeUsers::clmn_Name, Qt::SortOrder::AscendingOrder); mtxTreeWidget.unlock(); waitAnimationWidget->hideWithStop(); } -void InstructorsView::reSetHeadTreeWidget() -{ - QStringList listHeaders = {tr("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged"), tr("ID")}; - treeWidget->setHeaderLabels(listHeaders); -} - void InstructorsView::setCurrentInstructor(int id) { for(int i = 0; i < treeWidget->topLevelItemCount(); i++) { QTreeWidgetItem * item = treeWidget->topLevelItem(i); if(item != nullptr) - if(item->text(ColumnsTreeInsructors::clmn_ID).toInt() == id) + if(item->text(ColumnsTreeUsers::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(item); return; diff --git a/InstructorsAndTrainees/instructors/instructorsview.h b/InstructorsAndTrainees/instructors/instructorsview.h index 71de18a..a5735b0 100644 --- a/InstructorsAndTrainees/instructors/instructorsview.h +++ b/InstructorsAndTrainees/instructors/instructorsview.h @@ -13,32 +13,13 @@ class InstructorsView: public CommonView public: InstructorsView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent = nullptr); -protected: - enum ColumnsTreeInsructors{ - clmn_Instructor = 0, - clmn_Login, - clmn_Password, - clmn_Administrator, - clmn_Archived, - clmn_Logged, - clmn_ID, - clmn_count - }; - -public: - void resizeEvent(QResizeEvent *event) override; - public Q_SLOTS: //Слот обработки сигнала необходимости обновления интерфейса void slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee); protected: virtual void updateButtons(){}; - void preparationTreeWidget(); void loadInstructorsFromDB(); - - void reSetHeadTreeWidget(); - void setCurrentInstructor(int id); }; diff --git a/InstructorsAndTrainees/instructors/viewerinstructors.cpp b/InstructorsAndTrainees/instructors/viewerinstructors.cpp index cc197cc..7d5b231 100644 --- a/InstructorsAndTrainees/instructors/viewerinstructors.cpp +++ b/InstructorsAndTrainees/instructors/viewerinstructors.cpp @@ -82,7 +82,7 @@ void ViewerInstructors::on_treeWidgetItemClicked(QTreeWidgetItem *item, int colu //if(current->childCount() == 0) {//Выбран обучаемый - QString login = item->text(ColumnsTreeInsructors::clmn_Login); + QString login = item->text(ColumnsTreeUsers::clmn_Login); //if(login != "") { int newCurrentID = connectorToServer->getIdInstructorByLogin(login); diff --git a/InstructorsAndTrainees/trainees/dialogredactortrainees.cpp b/InstructorsAndTrainees/trainees/dialogredactortrainees.cpp index 65f4f44..fccf8de 100644 --- a/InstructorsAndTrainees/trainees/dialogredactortrainees.cpp +++ b/InstructorsAndTrainees/trainees/dialogredactortrainees.cpp @@ -18,7 +18,7 @@ DialogRedactorTrainees::DialogRedactorTrainees(ConnectorToServer* connectorToSer layout->addWidget(editorTraineesGroups); this->setWindowTitle(tr("Editor of trainees")); this->setMinimumSize(1400, 700); - this->setWindowState(Qt::WindowMaximized); + //this->setWindowState(Qt::WindowMaximized); this->setModal(true); } diff --git a/InstructorsAndTrainees/trainees/editortrainees.cpp b/InstructorsAndTrainees/trainees/editortrainees.cpp index 7b80c55..0e643db 100644 --- a/InstructorsAndTrainees/trainees/editortrainees.cpp +++ b/InstructorsAndTrainees/trainees/editortrainees.cpp @@ -115,7 +115,7 @@ void EditorTrainees::on_btnDeleteGroup_clicked() QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); if(treeItemParent == nullptr) {//Выбрана группа - int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); if(connectorToServer->getListTraineesInGroup(id_group).count() > 0) { @@ -143,7 +143,7 @@ void EditorTrainees::on_btnNewTrainee_clicked() QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); if(treeItemParent == nullptr) {//Выбрана группа. Можно добавить Обучаемого - int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); Trainee trainee; Trainee trainee_edit; @@ -219,8 +219,8 @@ void EditorTrainees::on_btnDeleteTrainee_clicked() if(treeItemParent != nullptr) {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); - int id_group = treeItemParent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); + int id_group = treeItemParent->text(ColumnsTreeUsers::clmn_ID).toInt(); if(connectorToServer->isLoggedInTrainee(id_trainee)) {//Обучаемый залогирован! @@ -247,7 +247,7 @@ void EditorTrainees::on_btnToOrFromArchiveTrainee_clicked() if(treeItemParent != nullptr) {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); Trainee trainee = connectorToServer->getTrainee(id_trainee); if(trainee.getID() == 0) @@ -288,7 +288,7 @@ void EditorTrainees::on_btnEdit_clicked() if(treeItemParent == nullptr) {//Выбрана группа - int id_group = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); Group group = connectorToServer->getGroup(id_group); if(group.getID() == 0) @@ -305,7 +305,7 @@ void EditorTrainees::on_btnEdit_clicked() else {//Выбран обучаемый - int id_trainee = treeItemCurrent->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_trainee = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt(); if(connectorToServer->isLoggedInTrainee(id_trainee)) {//Обучаемый залогирован! @@ -388,7 +388,7 @@ void EditorTrainees::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q QTreeWidgetItem *treeItemParent = current->parent(); if(treeItemParent == nullptr) {//Выбрана группа - int id_group = current->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = current->text(ColumnsTreeUsers::clmn_ID).toInt(); lastCurrentID = id_group; typeObject = TypeObject::objGroup; @@ -423,7 +423,7 @@ void EditorTrainees::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current, Q } else {//Выбран обучаемый - int id_trainee = current->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_trainee = current->text(ColumnsTreeUsers::clmn_ID).toInt(); lastCurrentID = id_trainee; typeObject = TypeObject::objTrainee; diff --git a/InstructorsAndTrainees/trainees/traineesview.cpp b/InstructorsAndTrainees/trainees/traineesview.cpp index 4047f95..e4d3d2e 100644 --- a/InstructorsAndTrainees/trainees/traineesview.cpp +++ b/InstructorsAndTrainees/trainees/traineesview.cpp @@ -6,47 +6,7 @@ TraineesView::TraineesView(ConnectorToServer* connectorToServer, TypeView type, CommonView(connectorToServer, type, parent) { typeObject = TypeObject::objTrainee; -} - -void TraineesView::resizeEvent(QResizeEvent *event) -{ - int width = treeWidget->width(); - - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_ID, 50); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Login, 100); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Password, 100); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Class, 100); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Computer, 100); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_IP_address, 130); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 100); - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 120); - - int widthTrainee; - - if(typeView == TypeView::onlyView) - {//onlyView - widthTrainee = width - (220 + 10 + 20); - } - else - {//control - if(adminMode) - { -#ifdef PROJECT_TYPE_DEBUG - widthTrainee = width - (470 + 10 + 20); -#else - widthTrainee = width - (420 + 10 + 20); -#endif - } - else - widthTrainee = width - (440 + 10 + 20); - } - if(widthTrainee < 250) - widthTrainee = 250; - - treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Trainee, widthTrainee); - - QSize size = event->size(); - waitAnimationWidget->resize(size); + TypeUserDB = User::TypeUserDBTrainee; } void TraineesView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee) @@ -60,54 +20,6 @@ void TraineesView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee) } } -void TraineesView::preparationTreeWidget() -{ - mtxTreeWidget.lock(); - - treeWidget->setColumnCount(clmn_count); - - reSetHeadTreeWidget(); - - if(typeView == TypeView::onlyView) - {//onlyView - archiveVisible = false; - - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Password, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true); - - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Class, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Computer, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_IP_address, true); - } - else - {//control - archiveVisible = true; - - if(adminMode) - { -#ifdef PROJECT_TYPE_DEBUG - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, false); -#else - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true); -#endif - } - else - { - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true); - } - - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Class, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Computer, true); - treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_IP_address, true); - } - - treeWidget->setSortingEnabled(true); - treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder); - - mtxTreeWidget.unlock(); -} - void TraineesView::loadTraineesFromDB() { mtxTreeWidget.lock(); @@ -127,9 +39,9 @@ void TraineesView::loadTraineesFromDB() //Группа int cntChildsNotArchived = 0; QTreeWidgetItem *ItemGroup = new QTreeWidgetItem(treeWidget); - ItemGroup->setText(ColumnsTreeTrainees::clmn_ID, QString::number(group.getID())); - ItemGroup->setText(ColumnsTreeTrainees::clmn_Trainee, group.getName()); - ItemGroup->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/group.png"))); + ItemGroup->setText(ColumnsTreeUsers::clmn_ID, QString::number(group.getID())); + ItemGroup->setText(ColumnsTreeUsers::clmn_Name, group.getName()); + ItemGroup->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/group.png"))); setItemColor(ItemGroup, QColor(220, 220, 220)); //ItemGroup->set Property("greenButton", QVariant(true)); @@ -143,40 +55,40 @@ void TraineesView::loadTraineesFromDB() QTreeWidgetItem *ItemTrainee = new QTreeWidgetItem(); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_ID, QString::number(trainee.getID())); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Trainee, trainee.getName()); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Login, trainee.getLogin()); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, trainee.getPassword()); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Class, trainee.getComputer().getClassroom().getName()); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Computer, trainee.getComputer().getName()); - ItemTrainee->setText(ColumnsTreeTrainees::clmn_IP_address, trainee.getComputer().getIpAddress()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_ID, QString::number(trainee.getID())); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Name, trainee.getName()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Login, trainee.getLogin()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Password, trainee.getPassword()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Class, trainee.getComputer().getClassroom().getName()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Computer, trainee.getComputer().getName()); + ItemTrainee->setText(ColumnsTreeUsers::clmn_IP_address, trainee.getComputer().getIpAddress()); //Сокрытие пароля - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******")); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Password, QStringLiteral("******")); if(trainee.getArchived()) {//Архивный - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("yes")); - ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/archive.png"))); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Archived, tr("yes")); + ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/archive.png"))); setItemColorArchive(ItemTrainee); } else {//Не Архивный - ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("no")); - ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/trainee.png"))); + ItemTrainee->setText(ColumnsTreeUsers::clmn_Archived, tr("no")); + ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/trainee.png"))); setItemColorNoArchive(ItemTrainee); cntChildsNotArchived++; } if(trainee.getLoggedIn()) {//Залогинен - //ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("yes")); - ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png"))); + //ItemTrainee->setText(ColumnsTreeUsers::clmn_Logged, tr("yes")); + ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png"))); } else {//Не Залогинен - //ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("no")); - ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + //ItemTrainee->setText(ColumnsTreeUsers::clmn_Logged, tr("no")); + ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); } ItemGroup->addChild(ItemTrainee); @@ -215,19 +127,13 @@ void TraineesView::loadTraineesFromDB() else setCurrentTrainee(lastCurrentID); - treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder); + treeWidget->sortItems(ColumnsTreeUsers::clmn_Name, Qt::SortOrder::AscendingOrder); mtxTreeWidget.unlock(); waitAnimationWidget->hideWithStop(); } -void TraineesView::reSetHeadTreeWidget() -{ - QStringList listHeaders = {tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("ID")}; - treeWidget->setHeaderLabels(listHeaders); -} - void TraineesView::setCurrentGroup(int id) { typeObject = TypeObject::objGroup; @@ -236,7 +142,7 @@ void TraineesView::setCurrentGroup(int id) { QTreeWidgetItem * item = treeWidget->topLevelItem(i); if(item != nullptr) - if(item->text(ColumnsTreeTrainees::clmn_ID).toInt() == id) + if(item->text(ColumnsTreeUsers::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(item); return; @@ -263,7 +169,7 @@ void TraineesView::setCurrentTrainee(int id) { QTreeWidgetItem * itemChild = item->child(j); if(itemChild != nullptr) - if(itemChild->text(ColumnsTreeTrainees::clmn_ID).toInt() == id) + if(itemChild->text(ColumnsTreeUsers::clmn_ID).toInt() == id) { treeWidget->setCurrentItem(itemChild); return; diff --git a/InstructorsAndTrainees/trainees/traineesview.h b/InstructorsAndTrainees/trainees/traineesview.h index dab045a..4840aac 100644 --- a/InstructorsAndTrainees/trainees/traineesview.h +++ b/InstructorsAndTrainees/trainees/traineesview.h @@ -13,34 +13,13 @@ class TraineesView: public CommonView public: TraineesView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent = nullptr); -protected: - enum ColumnsTreeTrainees{ - clmn_Trainee = 0, - clmn_Login, - clmn_Password, - clmn_Class, - clmn_Computer, - clmn_IP_address, - clmn_Archived, - clmn_Logged, - clmn_ID, - clmn_count - }; - -public: - void resizeEvent(QResizeEvent *event) override; - public Q_SLOTS: //Слот обработки сигнала необходимости обновления интерфейса void slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee); protected: virtual void updateButtons(){}; - void preparationTreeWidget(); void loadTraineesFromDB(); - - void reSetHeadTreeWidget(); - void setCurrentGroup(int id); void setCurrentTrainee(int id); }; diff --git a/InstructorsAndTrainees/trainees/viewertrainees.cpp b/InstructorsAndTrainees/trainees/viewertrainees.cpp index 699771a..71f15f7 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.cpp +++ b/InstructorsAndTrainees/trainees/viewertrainees.cpp @@ -116,7 +116,7 @@ void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column) if(item->childCount() == 0) {//Выбран обучаемый - QString login = item->text(ColumnsTreeTrainees::clmn_Login); + QString login = item->text(ColumnsTreeUsers::clmn_Login); if(login != "") { int id_trainee = connectorToServer->getIdTraineeByLogin(login); @@ -145,7 +145,7 @@ void ViewerTrainees::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) {//Выбран обучаемый typeObject = TypeObject::objTrainee; - QString login = item->text(ColumnsTreeTrainees::clmn_Login); + QString login = item->text(ColumnsTreeUsers::clmn_Login); //if(login != "") { int newCurrentID = connectorToServer->getIdTraineeByLogin(login); @@ -162,7 +162,7 @@ void ViewerTrainees::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) {//Выбрана группа typeObject = TypeObject::objGroup; - int id_group = item->text(ColumnsTreeTrainees::clmn_ID).toInt(); + int id_group = item->text(ColumnsTreeUsers::clmn_ID).toInt(); lastCurrentID = id_group; typeObject = TypeObject::objGroup;