Files
RRJServer/InstructorsAndTrainees/trainees/personalcardtrainee.cpp

128 lines
4.4 KiB
C++

#include "personalcardtrainee.h"
#include "ui_personalcardtrainee.h"
PersonalCardTrainee::PersonalCardTrainee(ConnectorToServer* connectorToServer, MessangerController* messangerController, int id_trainee, AMMtasksWidget* ammTasksWidgetIn, FIMtasksWidget* fimTasksWidgetIn, QWidget *parent) :
QWidget(parent),
connectorToServer(connectorToServer),
messangerController(messangerController),
id_trainee(id_trainee),
ammTasksWidget_personal(nullptr),
fimTasksWidget_personal(nullptr),
ammTasksWidget_common(ammTasksWidgetIn),
fimTasksWidget_common(fimTasksWidgetIn),
messangerWidget(nullptr),
ui(new Ui::PersonalCardTrainee)
{
ui->setupUi(this);
loadInfo();
ui->lblName->setObjectName("PersonalCard_lblName");
ui->lblLoginIn->setVisible(false);
ammTasksWidget_personal = new AMMtasksWidget(connectorToServer, TypeListTreeAMMFIM::listForTrainee, this);
fimTasksWidget_personal = new FIMtasksWidget(connectorToServer, TypeListTreeAMMFIM::listForTrainee, this);
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMMforTrainee, ammTasksWidget_personal, &AMMtasksWidget::slot_UpdateTasksAMMforTrainee);
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIMforTrainee, fimTasksWidget_personal, &FIMtasksWidget::slot_UpdateTasksFIMforTrainee);
connect(ammTasksWidget_personal, &AMMtasksWidget::signal_countTasksAMMforTraineeChanged, this, &PersonalCardTrainee::slot_countTasksAMMforTraineeChanged);
connect(fimTasksWidget_personal, &FIMtasksWidget::signal_countTasksFIMforTraineeChanged, this, &PersonalCardTrainee::slot_countTasksFIMforTraineeChanged);
connect(connectorToServer, &ConnectorToServer::signal_UpdateDB, this, &PersonalCardTrainee::slot_NeedUpdateUI);
fimTasksWidget_personal->slot_traineeSelected(id_trainee);
ammTasksWidget_personal->slot_traineeSelected(id_trainee);
ui->verticalLayout_AMMpersonal->addWidget(ammTasksWidget_personal);
ui->verticalLayout_FIMpersonal->addWidget(fimTasksWidget_personal);
ui->verticalLayout_AMMcommon->addWidget(ammTasksWidget_common);
ui->verticalLayout_FIMcommon->addWidget(fimTasksWidget_common);
ui->groupBox_Messenger->setMaximumWidth(500);
ui->groupBox_Messenger->setMinimumWidth(500);
ui->groupBox_Messenger->setMinimumHeight(400);
ammTasksWidget_personal->setMinimumWidth(700);
fimTasksWidget_personal->setMinimumWidth(700);
/* Messanger*/
Trainee trainee = connectorToServer->getTrainee(id_trainee);
messangerWidget = messangerController->newWidget(this, &trainee, ui->verticalLayout_Messenger);
}
PersonalCardTrainee::~PersonalCardTrainee()
{
if(ammTasksWidget_personal)
{
delete ammTasksWidget_personal;
ammTasksWidget_personal = nullptr;
}
if(fimTasksWidget_personal)
{
delete fimTasksWidget_personal;
fimTasksWidget_personal = nullptr;
}
messangerController->deleteWidget(messangerWidget);
//ui->verticalLayout_AMMcommon->removeWidget(ammTasksWidget_common);
//ui->verticalLayout_FIMcommon->removeWidget(fimTasksWidget_common);
delete ui;
}
void PersonalCardTrainee::closeEvent(QCloseEvent *event)
{
fimTasksWidget_personal->closeDlgCheckTask();
ammTasksWidget_personal->closeDlgCheckTask();
ammTasksWidget_common->closeDlgListSubProc();
}
void PersonalCardTrainee::loadInfo()
{
Trainee trainee = connectorToServer->getTrainee(id_trainee);
ui->lblName->setText(trainee.getName());
if(trainee.getLoggedIn())
ui->lblLoginIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
else
ui->lblLoginIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png")));
TimingOfTrainee timing = trainee.getTiming();
ui->lblTimeOperation->setText(timing.getOperatingTimeS());
ui->lblLoginTime->setText(timing.getEntryTimeS());
ui->lblTimeExit->setText(timing.getExitTimeS());
}
void PersonalCardTrainee::slot_countTasksAMMforTraineeChanged(int trainee_id, int count)
{
if(id_trainee == trainee_id)
{
ui->lblCntAMM->setText(QString::number(count));
}
}
void PersonalCardTrainee::slot_countTasksFIMforTraineeChanged(int trainee_id, int count)
{
if(id_trainee == trainee_id)
{
ui->lblCntFIM->setText(QString::number(count));
}
}
void PersonalCardTrainee::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
{
if(treeTrainee)
{
loadInfo();
}
}