From c7021968d9326bd5ea13325fcd56b03d266ea549 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 29 Jan 2025 14:43:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D1=83=D1=8E=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D1=83?= =?UTF-8?q?=20AssignTask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructorsandtraineeswidget.cpp | 57 +++++++++++++ .../instructorsandtraineeswidget.h | 8 ++ .../instructorsandtraineeswidget.ui | 76 ++++++++++++------ InstructorsAndTrainees/resources.qrc | 1 + .../resources/icons/assignTask.png | Bin 0 -> 8693 bytes .../tasks/ammtaskswidget.cpp | 15 +++- InstructorsAndTrainees/tasks/ammtaskswidget.h | 7 ++ .../tasks/fimtaskswidget.cpp | 15 +++- InstructorsAndTrainees/tasks/fimtaskswidget.h | 10 ++- 9 files changed, 162 insertions(+), 27 deletions(-) create mode 100644 InstructorsAndTrainees/resources/icons/assignTask.png diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index 0f4d0a7..30a33ec 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -52,6 +52,13 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : ammTasksWidget = new AMMtasksWidget(connectorToServer, AMMtasksWidget::TypeList::listCommon, this); fimTasksWidget = new FIMtasksWidget(connectorToServer, FIMtasksWidget::TypeList::listCommon, this); + connect(this, &InstructorsAndTraineesWidget::signal_AssignTaskFIMtoTrainee, fimTasksWidget, &FIMtasksWidget::slot_AssignTaskFIMtoTrainee); + connect(this, &InstructorsAndTraineesWidget::signal_AssignTaskAMMtoTrainee, ammTasksWidget, &AMMtasksWidget::slot_AssignTaskAMMtoTrainee); + + connect(fimTasksWidget, &FIMtasksWidget::signal_currentItemChanged, this, &InstructorsAndTraineesWidget::slot_currentItemChanged); + connect(ammTasksWidget, &AMMtasksWidget::signal_currentItemChanged, this, &InstructorsAndTraineesWidget::slot_currentItemChanged); + + connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fimTasksWidget, &FIMtasksWidget::slot_NeedUpdateUI); connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksAMM, ammTasksWidget, &AMMtasksWidget::slot_NeedUpdateUI); connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, fimTasksWidget, &FIMtasksWidget::slot_traineeSelected); @@ -97,6 +104,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : //ui->btnAuthorizationInstructor->setEnabled(false); + ui->btnAssignTask->setEnabled(false); + updateMyStyleSheet(); } @@ -264,6 +273,26 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state) } } +void InstructorsAndTraineesWidget::slot_currentItemChanged() +{ + int index = ui->tabWidget->currentIndex(); + + if(index == 0) + { + if(ammTasksWidget->getAccessAssignTask()) + ui->btnAssignTask->setEnabled(true); + else + ui->btnAssignTask->setEnabled(false); + } + else if(index == 1) + { + if(fimTasksWidget->getAccessAssignTask()) + ui->btnAssignTask->setEnabled(true); + else + ui->btnAssignTask->setEnabled(false); + } +} + bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent) { DialogAuthorizationInstructor dlg(parent); @@ -378,3 +407,31 @@ void InstructorsAndTraineesWidget::on_btnSetVersion_clicked() { connectorToServer->showVersionSelect(); } + +void InstructorsAndTraineesWidget::on_btnAssignTask_clicked() +{ + int index = ui->tabWidget->currentIndex(); + + if(index == 0) + Q_EMIT signal_AssignTaskAMMtoTrainee(); + else if(index == 1) + Q_EMIT signal_AssignTaskFIMtoTrainee(); +} + +void InstructorsAndTraineesWidget::on_tabWidget_currentChanged(int index) +{ + if(index == 0) + { + if(ammTasksWidget->getAccessAssignTask()) + ui->btnAssignTask->setEnabled(true); + else + ui->btnAssignTask->setEnabled(false); + } + else if(index == 1) + { + if(fimTasksWidget->getAccessAssignTask()) + ui->btnAssignTask->setEnabled(true); + else + ui->btnAssignTask->setEnabled(false); + } +} diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.h b/InstructorsAndTrainees/instructorsandtraineeswidget.h index 37ea7df..0849baa 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.h +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.h @@ -51,6 +51,7 @@ public Q_SLOTS: void checkDeLoginResult(ServerDeAuthorization * serverDeAuth); void slot_ConnectedToServer(bool state); + void slot_currentItemChanged(); Q_SIGNALS: //сигнал об изменении языка интерфейса @@ -60,6 +61,9 @@ Q_SIGNALS: //сигнал о блокировке авторизации void signal_BlockAutorization(bool block); + void signal_AssignTaskAMMtoTrainee(); + void signal_AssignTaskFIMtoTrainee(); + private Q_SLOTS: void on_btnConnectionToServer_clicked(); void on_btnAuthorizationInstructor_clicked(); @@ -67,6 +71,10 @@ private Q_SLOTS: void on_btnSetVersion_clicked(); + void on_btnAssignTask_clicked(); + + void on_tabWidget_currentChanged(int index); + private: //Авторизация инструктора локальная bool authorizationInstructorDialog(QWidget* parent = nullptr); diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.ui b/InstructorsAndTrainees/instructorsandtraineeswidget.ui index 8c36119..a47deef 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.ui +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.ui @@ -242,32 +242,60 @@ Tasks - - - - 1 - - - - AMM - - - - + + + + + + 1 + + + + AMM + + + + + + + + + + FIM + + + + + + + + + + + + + + + Assign task + + + + :/resources/icons/assignTask.png:/resources/icons/assignTask.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + - - - - FIM - - - - - - - - + + diff --git a/InstructorsAndTrainees/resources.qrc b/InstructorsAndTrainees/resources.qrc index d15df9e..4417e39 100644 --- a/InstructorsAndTrainees/resources.qrc +++ b/InstructorsAndTrainees/resources.qrc @@ -41,5 +41,6 @@ resources/icons/procedure.png resources/icons/malfunction.png resources/icons/762.gif + resources/icons/assignTask.png diff --git a/InstructorsAndTrainees/resources/icons/assignTask.png b/InstructorsAndTrainees/resources/icons/assignTask.png new file mode 100644 index 0000000000000000000000000000000000000000..cd877894a13f271029a58f0cdfba670227cad5ba GIT binary patch literal 8693 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 @@ -32,6 +33,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty preparationTreeWidget(); ui->btnAssignTaskToTrainee->setEnabled(false); + Q_EMIT signal_currentItemChanged(); ui->btnUpdateTasks->setVisible(false); if(type == TypeList::listForTrainee) @@ -118,6 +120,7 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, type = "PM"; code = PMmodul->pmCode(); ui->btnAssignTaskToTrainee->setEnabled(false); + accessAssignTask = false; } else { @@ -125,13 +128,18 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, type = "DM"; code = DMmodul->dmCode(); ui->btnAssignTaskToTrainee->setEnabled(true); + accessAssignTask = true; } ui->label->setText(type + " Code"); ui->editCode->setText(code); } else + { ui->btnAssignTaskToTrainee->setEnabled(false); + accessAssignTask = false; + } + Q_EMIT signal_currentItemChanged(); } void AMMtasksWidget::slot_NeedUpdateUI() @@ -232,6 +240,11 @@ void AMMtasksWidget::on_btnUpdateTasks_clicked() } void AMMtasksWidget::on_btnAssignTaskToTrainee_clicked() +{ + slot_AssignTaskAMMtoTrainee(); +} + +void AMMtasksWidget::slot_AssignTaskAMMtoTrainee() { QTreeWidgetItem *current = treeWidget->currentItem(); diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.h b/InstructorsAndTrainees/tasks/ammtaskswidget.h index 6d91e35..6d4c46e 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.h @@ -35,6 +35,7 @@ public: loginTraineeSelected = ""; idTraineeSelected = 0; } + bool getAccessAssignTask(){return accessAssignTask;} public: void resizeEvent(QResizeEvent *event) override; @@ -43,6 +44,8 @@ private Q_SLOTS: void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void on_btnUpdateTasks_clicked(); void on_btnAssignTaskToTrainee_clicked(); +public Q_SLOTS: + void slot_AssignTaskAMMtoTrainee(); public Q_SLOTS: //Слот обработки сигнала необходимости обновления интерфейса @@ -52,6 +55,9 @@ public Q_SLOTS: void slot_UpdateTasksAMMforTrainee(int trainee_id); +Q_SIGNALS: + void signal_currentItemChanged(); + private: Module* searchModuleByID(int id); void preparationTreeWidget(); @@ -79,6 +85,7 @@ private: QThread* threadAnimation; TaskTreePreparation* taskTreePreparation; WaitAnimationWidget *waitAnimationWidget; + bool accessAssignTask; }; #endif // AMMTASKSWIDGET_H diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index dcbcabd..095d9c3 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -18,7 +18,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty loginTraineeSelected(""), idTraineeSelected(0), threadAnimation(nullptr), - waitAnimationWidget(nullptr) + waitAnimationWidget(nullptr), + accessAssignTask(false) { ui->setupUi(this); @@ -32,6 +33,7 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty preparationTreeWidget(); ui->btnAssignTaskToTrainee->setEnabled(false); + Q_EMIT signal_currentItemChanged(); ui->btnUpdateTasks->setVisible(false); if(type == TypeList::listForTrainee) @@ -102,11 +104,17 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, code = task->title; ui->btnAssignTaskToTrainee->setEnabled(true); + accessAssignTask = true; } else + { ui->btnAssignTaskToTrainee->setEnabled(false); + accessAssignTask = false; + } ui->editCode->setText(code); + + Q_EMIT signal_currentItemChanged(); } void FIMtasksWidget::loadFIMtasksFromXML(QByteArray array) @@ -362,6 +370,11 @@ void FIMtasksWidget::on_btnUpdateTasks_clicked() } void FIMtasksWidget::on_btnAssignTaskToTrainee_clicked() +{ + slot_AssignTaskFIMtoTrainee(); +} + +void FIMtasksWidget::slot_AssignTaskFIMtoTrainee() { QTreeWidgetItem *current = treeWidget->currentItem(); diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.h b/InstructorsAndTrainees/tasks/fimtaskswidget.h index d396b5b..663ea67 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.h +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.h @@ -39,6 +39,7 @@ public: loginTraineeSelected = ""; idTraineeSelected = 0; } + bool getAccessAssignTask(){return accessAssignTask;} public: void resizeEvent(QResizeEvent *event) override; @@ -46,8 +47,9 @@ public: private Q_SLOTS: void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void on_btnUpdateTasks_clicked(); - void on_btnAssignTaskToTrainee_clicked(); +public Q_SLOTS: + void slot_AssignTaskFIMtoTrainee(); public Q_SLOTS: //Слот обработки сигнала необходимости обновления интерфейса @@ -57,6 +59,10 @@ public Q_SLOTS: void slot_UpdateTasksFIMforTrainee(int trainee_id); +Q_SIGNALS: + void signal_currentItemChanged(); + + private: TaskAmmFim* getTaskByID(int id); void loadFIMtasksFromXML(QByteArray array); @@ -86,6 +92,8 @@ private: QThread* threadAnimation; WaitAnimationWidget *waitAnimationWidget; + + bool accessAssignTask; }; #endif // FIMTASKSWIDGET_H