mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
refact1
This commit is contained in:
236
LibInstructorsAndTrainees/trainees/viewertrainees.cpp
Normal file
236
LibInstructorsAndTrainees/trainees/viewertrainees.cpp
Normal file
@@ -0,0 +1,236 @@
|
||||
#include "editortrainees.h"
|
||||
#include "viewertrainees.h"
|
||||
#include "personalcardtrainee.h"
|
||||
#include "dialogcardtrainee.h"
|
||||
#include "ui_viewertrainees.h"
|
||||
|
||||
ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, MessangerController* messangerController, QWidget *parent) :
|
||||
TraineesView(connectorToServer, CommonView::TypeView::onlyView, parent),
|
||||
ammTasksWidgetCommon(nullptr),
|
||||
fimTasksWidgetCommon(nullptr),
|
||||
messangerController(messangerController),
|
||||
dlgRedactor(nullptr),
|
||||
dlgCardTrainee(nullptr),
|
||||
ui(new Ui::ViewerTrainees)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &ViewerTrainees::on_itemDoubleClicked);
|
||||
connect(treeWidget, &QTreeWidget::itemClicked, this, &ViewerTrainees::on_treeWidgetItemClicked);
|
||||
|
||||
ui->horizontalLayout_1->addWidget(treeWidget);
|
||||
|
||||
ammTasksWidgetCommon = new AMMtasksWidget(connectorToServer, TypeListTreeAMMFIM::listCommon, /*this*/nullptr);
|
||||
fimTasksWidgetCommon = new FIMtasksWidget(connectorToServer, TypeListTreeAMMFIM::listCommon, /*this*/nullptr);
|
||||
|
||||
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fimTasksWidgetCommon, &FIMtasksWidget::slot_NeedUpdateUI);
|
||||
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, ammTasksWidgetCommon, &AMMtasksWidget::slot_NeedUpdateUI);
|
||||
connect(this, &ViewerTrainees::signal_traineeSelected, fimTasksWidgetCommon, &FIMtasksWidget::slot_traineeSelected);
|
||||
connect(this, &ViewerTrainees::signal_traineeSelected, ammTasksWidgetCommon, &AMMtasksWidget::slot_traineeSelected);
|
||||
|
||||
preparationTreeWidget();
|
||||
setNotLoggedInVisible(true);
|
||||
|
||||
ui->btnEditorTrainees->setVisible(false);
|
||||
}
|
||||
|
||||
ViewerTrainees::~ViewerTrainees()
|
||||
{
|
||||
if(ammTasksWidgetCommon)
|
||||
{
|
||||
delete ammTasksWidgetCommon;
|
||||
ammTasksWidgetCommon = nullptr;
|
||||
}
|
||||
|
||||
if(fimTasksWidgetCommon)
|
||||
{
|
||||
delete fimTasksWidgetCommon;
|
||||
fimTasksWidgetCommon = nullptr;
|
||||
}
|
||||
|
||||
if(dlgRedactor)
|
||||
{
|
||||
dlgRedactor->close();
|
||||
delete dlgRedactor;
|
||||
dlgRedactor = nullptr;
|
||||
}
|
||||
|
||||
if(dlgCardTrainee)
|
||||
dlgCardTrainee->close();
|
||||
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ViewerTrainees::setAuthComplited(bool authComplited)
|
||||
{
|
||||
this->authComplited = authComplited;
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
void ViewerTrainees::deactivate()
|
||||
{
|
||||
if(dlgRedactor)
|
||||
{
|
||||
dlgRedactor->close();
|
||||
delete dlgRedactor;
|
||||
dlgRedactor = nullptr;
|
||||
}
|
||||
|
||||
if(dlgCardTrainee)
|
||||
dlgCardTrainee->close();
|
||||
|
||||
CommonView::deactivate();
|
||||
|
||||
ammTasksWidgetCommon->deactivate();
|
||||
fimTasksWidgetCommon->deactivate();
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
void ViewerTrainees::changeEvent(QEvent *event)
|
||||
{
|
||||
// В случае получения события изменения языка приложения
|
||||
if (event->type() == QEvent::LanguageChange)
|
||||
{// переведём окно заново
|
||||
ui->retranslateUi(this);
|
||||
|
||||
reSetHeadTreeWidget();
|
||||
slot_NeedUpdateUI(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewerTrainees::slot_receiveMessage(ClientMessage clientMessage)
|
||||
{
|
||||
int id_trainee = clientMessage.fromId.toInt();
|
||||
|
||||
mtxmapNewMsg.lock();
|
||||
mapNewMsg.insert(id_trainee, true);
|
||||
mtxmapNewMsg.unlock();
|
||||
|
||||
slot_NeedUpdateUI(false, true);
|
||||
}
|
||||
|
||||
void ViewerTrainees::on_btnEditorTrainees_clicked()
|
||||
{
|
||||
connectorToServer->sendQueryBlockAuth(true);
|
||||
|
||||
dlgRedactor = new DialogRedactorTrainees(connectorToServer, adminMode, this);
|
||||
dlgRedactor->exec();
|
||||
|
||||
if(dlgRedactor)
|
||||
{
|
||||
delete dlgRedactor;
|
||||
dlgRedactor = nullptr;
|
||||
}
|
||||
|
||||
if(authComplited)
|
||||
loadTraineesFromDB();
|
||||
|
||||
connectorToServer->sendQueryBlockAuth(false);
|
||||
}
|
||||
|
||||
void ViewerTrainees::on_btnPersonalCard_clicked()
|
||||
{
|
||||
if(lastCurrentID && typeObject == TypeObject::objTrainee)
|
||||
{
|
||||
dlgCardTrainee = new DialogCardTrainee(connectorToServer, messangerController, lastCurrentID, ammTasksWidgetCommon, fimTasksWidgetCommon, this);
|
||||
dlgCardTrainee->exec();
|
||||
|
||||
ammTasksWidgetCommon->setParent(this);
|
||||
fimTasksWidgetCommon->setParent(this);
|
||||
|
||||
if(dlgCardTrainee)
|
||||
{
|
||||
delete dlgCardTrainee;
|
||||
dlgCardTrainee = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column)
|
||||
{
|
||||
if(item == nullptr)
|
||||
return;
|
||||
|
||||
if(item->childCount() == 0)
|
||||
{//Выбран обучаемый
|
||||
QString login = item->text(ColumnsTreeUsers::clmn_Login);
|
||||
if(login != "")
|
||||
{
|
||||
int id_trainee = connectorToServer->getIdTraineeByLogin(login);
|
||||
|
||||
dlgCardTrainee = new DialogCardTrainee(connectorToServer, messangerController, id_trainee, ammTasksWidgetCommon, fimTasksWidgetCommon, this);
|
||||
dlgCardTrainee->exec();
|
||||
|
||||
ammTasksWidgetCommon->setParent(this);
|
||||
fimTasksWidgetCommon->setParent(this);
|
||||
|
||||
if(dlgCardTrainee)
|
||||
{
|
||||
delete dlgCardTrainee;
|
||||
dlgCardTrainee = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ViewerTrainees::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column)
|
||||
{
|
||||
if(item == nullptr)
|
||||
return;
|
||||
|
||||
if(item->childCount() == 0)
|
||||
{//Выбран обучаемый
|
||||
typeObject = TypeObject::objTrainee;
|
||||
|
||||
QString login = item->text(ColumnsTreeUsers::clmn_Login);
|
||||
//if(login != "")
|
||||
{
|
||||
int newCurrentID = connectorToServer->getIdTraineeByLogin(login);
|
||||
|
||||
//if(newCurrentID == lastCurrentID)
|
||||
//return;
|
||||
|
||||
lastCurrentID = newCurrentID;
|
||||
|
||||
mtxmapNewMsg.lock();
|
||||
if(mapNewMsg.contains(newCurrentID))
|
||||
{//Есть непрочитанные сообщения от него
|
||||
if(mapNewMsg.value(newCurrentID))
|
||||
{
|
||||
for (int i = 0; i < ColumnsTreeUsers::clmn_count; i++)
|
||||
{
|
||||
item->setBackground(i, QBrush(Qt::GlobalColor::white));
|
||||
}
|
||||
mapNewMsg.take(newCurrentID);
|
||||
}
|
||||
}
|
||||
mtxmapNewMsg.unlock();
|
||||
|
||||
Q_EMIT signal_traineeSelected(newCurrentID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{//Выбрана группа
|
||||
typeObject = TypeObject::objGroup;
|
||||
|
||||
int id_group = item->text(ColumnsTreeUsers::clmn_ID).toInt();
|
||||
|
||||
lastCurrentID = id_group;
|
||||
typeObject = TypeObject::objGroup;
|
||||
|
||||
QString login = "";
|
||||
Q_EMIT signal_traineeSelected(0);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewerTrainees::updateButtons()
|
||||
{
|
||||
if(authComplited)
|
||||
{
|
||||
ui->btnEditorTrainees->setEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->btnEditorTrainees->setEnabled(false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user