From 28de2cc6c931560a1316f8c238f7336c5f3d7d6f Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 20 Aug 2025 12:26:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=9A=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=BE=D1=87=D0=BA=D0=B8=20=D0=BE=D0=B1=D1=83=D1=87=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InstructorsAndTrainees/CMakeLists.txt | 5 +- .../trainees/personalcardtrainee.cpp | 36 +++ .../trainees/personalcardtrainee.h | 30 +++ .../trainees/personalcardtrainee.ui | 229 ++++++++++++++++++ .../trainees/viewertrainees.cpp | 26 ++ .../trainees/viewertrainees.h | 1 + 6 files changed, 326 insertions(+), 1 deletion(-) create mode 100644 InstructorsAndTrainees/trainees/personalcardtrainee.cpp create mode 100644 InstructorsAndTrainees/trainees/personalcardtrainee.h create mode 100644 InstructorsAndTrainees/trainees/personalcardtrainee.ui diff --git a/InstructorsAndTrainees/CMakeLists.txt b/InstructorsAndTrainees/CMakeLists.txt index 427d04c..5886249 100644 --- a/InstructorsAndTrainees/CMakeLists.txt +++ b/InstructorsAndTrainees/CMakeLists.txt @@ -28,7 +28,10 @@ add_library(InstructorsAndTrainees SHARED trainees/viewertrainees.h trainees/viewertrainees.ui trainees/traineesview.cpp - trainees/traineesview.h + trainees/traineesview.h + trainees/personalcardtrainee.cpp + trainees/personalcardtrainee.h + trainees/personalcardtrainee.ui instructors/viewerinstructors.cpp instructors/viewerinstructors.h diff --git a/InstructorsAndTrainees/trainees/personalcardtrainee.cpp b/InstructorsAndTrainees/trainees/personalcardtrainee.cpp new file mode 100644 index 0000000..829511b --- /dev/null +++ b/InstructorsAndTrainees/trainees/personalcardtrainee.cpp @@ -0,0 +1,36 @@ +#include "personalcardtrainee.h" +#include "ui_personalcardtrainee.h" + +PersonalCardTrainee::PersonalCardTrainee(ConnectorToServer* connectorToServer, int id_trainee, QWidget *parent) : + QWidget(parent), + connectorToServer(connectorToServer), + id_trainee(id_trainee), + ui(new Ui::PersonalCardTrainee) +{ + ui->setupUi(this); + + loadInfo(); +} + +PersonalCardTrainee::~PersonalCardTrainee() +{ + delete ui; +} + +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"))); + + QList listTasksAMM = connectorToServer->getListTasksAMMforTrainee(id_trainee); + QList listTasksFIM = connectorToServer->getListTasksFIMforTrainee(id_trainee); + + ui->lblCntAMM->setText(QString::number(listTasksAMM.count())); + ui->lblCntFIM->setText(QString::number(listTasksFIM.count())); +} diff --git a/InstructorsAndTrainees/trainees/personalcardtrainee.h b/InstructorsAndTrainees/trainees/personalcardtrainee.h new file mode 100644 index 0000000..8a30a47 --- /dev/null +++ b/InstructorsAndTrainees/trainees/personalcardtrainee.h @@ -0,0 +1,30 @@ +#ifndef PERSONALCARDTRAINEE_H +#define PERSONALCARDTRAINEE_H + +#include"connectortoserver.h" +#include + +namespace Ui { +class PersonalCardTrainee; +} + +class PersonalCardTrainee : public QWidget +{ + Q_OBJECT + +public: + explicit PersonalCardTrainee(ConnectorToServer* connectorToServer, int id_trainee, QWidget *parent = nullptr); + ~PersonalCardTrainee(); + +private: + void loadInfo(); + +private: + ConnectorToServer* connectorToServer; + int id_trainee; + +private: + Ui::PersonalCardTrainee *ui; +}; + +#endif // PERSONALCARDTRAINEE_H diff --git a/InstructorsAndTrainees/trainees/personalcardtrainee.ui b/InstructorsAndTrainees/trainees/personalcardtrainee.ui new file mode 100644 index 0000000..be8e6f9 --- /dev/null +++ b/InstructorsAndTrainees/trainees/personalcardtrainee.ui @@ -0,0 +1,229 @@ + + + PersonalCardTrainee + + + + 0 + 0 + 537 + 300 + + + + Form + + + + + + + + + + Trainee + + + + + + + + Name + + + + + + + + 32 + 32 + + + + + + + :/resources/icons/circleGray.png + + + true + + + + + + + + + + + Last login time + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Assigned FIM + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Assigned AMM + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Time of operation + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Last time of exit + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 0 + 0 + + + + + 300 + 0 + + + + + 320 + 16777215 + + + + QFrame::Box + + + <Здесь будет мессенджер> + + + Qt::AlignCenter + + + + + + + + + + + QFrame::Box + + + <Здесь будут задачи> + + + true + + + Qt::AlignCenter + + + false + + + + + + + + + + + + diff --git a/InstructorsAndTrainees/trainees/viewertrainees.cpp b/InstructorsAndTrainees/trainees/viewertrainees.cpp index 26d0f39..41b082b 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.cpp +++ b/InstructorsAndTrainees/trainees/viewertrainees.cpp @@ -1,5 +1,6 @@ #include "editortrainees.h" #include "viewertrainees.h" +#include "personalcardtrainee.h" #include "ui_viewertrainees.h" ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, QWidget *parent) : @@ -11,6 +12,7 @@ ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, QWidget *pa ui->setupUi(this); connect(treeWidget, &QTreeWidget::currentItemChanged, this, &ViewerTrainees::on_treeWidget_currentItemChanged); + connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &ViewerTrainees::on_itemDoubleClicked); ui->horizontalLayout_11->addWidget(treeWidget); @@ -154,6 +156,30 @@ void ViewerTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, } } +void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column) +{ + if(item == nullptr) + return; + + if(item->childCount() == 0) + {//Выбран обучаемый + QString login = item->text(ColumnsTreeTrainees::clmn_Login); + if(login != "") + { + int id_trainee = connectorToServer->getIdTraineeByLogin(login); + + PersonalCardTrainee cardTrainee(connectorToServer, id_trainee, this); + + QDialog* dialog = new QDialog(this); + QHBoxLayout *layout = new QHBoxLayout(dialog); + layout->addWidget(&cardTrainee); + dialog->setWindowTitle(tr("Personal card trainee")); + dialog->setMinimumSize(1600, 800); + dialog->exec(); + } + } +} + void ViewerTrainees::updateButtons() { if(authComplited) diff --git a/InstructorsAndTrainees/trainees/viewertrainees.h b/InstructorsAndTrainees/trainees/viewertrainees.h index 45b3edf..8e6f9b0 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.h +++ b/InstructorsAndTrainees/trainees/viewertrainees.h @@ -36,6 +36,7 @@ public Q_SLOTS: void on_btnEditorTrainees_clicked(); private Q_SLOTS: void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + void on_itemDoubleClicked(QTreeWidgetItem *item, int column); public Q_SLOTS: //слот обработки сигнала об изменении вкладки диалога в мессенджере