diff --git a/InstructorsAndTrainees/CMakeLists.txt b/InstructorsAndTrainees/CMakeLists.txt index 2f416b3..b5fb663 100644 --- a/InstructorsAndTrainees/CMakeLists.txt +++ b/InstructorsAndTrainees/CMakeLists.txt @@ -80,6 +80,9 @@ add_library(InstructorsAndTrainees SHARED tasks/fimtaskswidget.ui tasks/tasktreepreparation.cpp tasks/tasktreepreparation.h + tasks/dialogchecktask.cpp + tasks/dialogchecktask.h + tasks/dialogchecktask.ui #tasks/tasksAmmFim.cpp #tasks/tasksAmmFim.h widgets/newversionwidget.cpp diff --git a/InstructorsAndTrainees/resources.qrc b/InstructorsAndTrainees/resources.qrc index d2a1133..2228176 100644 --- a/InstructorsAndTrainees/resources.qrc +++ b/InstructorsAndTrainees/resources.qrc @@ -44,5 +44,6 @@ resources/icons/assignTask.png resources/icons/delete.png resources/icons/filter.png + resources/icons/check.png diff --git a/InstructorsAndTrainees/resources/icons/check.png b/InstructorsAndTrainees/resources/icons/check.png new file mode 100644 index 0000000..3163b36 Binary files /dev/null and b/InstructorsAndTrainees/resources/icons/check.png differ diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 87da14c..24f5a02 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -54,10 +54,15 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty ui->btnDelete->setObjectName("btnDelete"); ui->btnDelete->setEnabled(false); + ui->btnCheck->setObjectName("btnCheck"); + ui->btnCheck->setEnabled(false); + ui->btnOnlyActive->setObjectName("btnOnlyActive"); if(type == TypeList::listCommon) ui->btnDelete->setVisible(false); else ui->btnOnlyActive->setVisible(false); + + ui->btnCheck->setVisible(false); } AMMtasksWidget::~AMMtasksWidget() @@ -89,13 +94,13 @@ void AMMtasksWidget::resizeEvent(QResizeEvent *event) treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50); treeWidget->setColumnWidth(ColumnsTree::clmn_code, 250); - treeWidget->setColumnWidth(ColumnsTree::clmn_status, 50); + treeWidget->setColumnWidth(ColumnsTree::clmn_status, 70); int widthPMorDM; if(type == TypeList::listCommon) widthPMorDM = width - (250 + 10); else - widthPMorDM = width - (300 + 10); + widthPMorDM = width - (370 + 10); treeWidget->setColumnWidth(ColumnsTree::clmn_PMorDM, widthPMorDM); } @@ -239,7 +244,10 @@ void AMMtasksWidget::preparationTreeWidget() reSetHeadTreeWidget(); if(type == TypeList::listCommon) + { treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTree::clmn_status, true); + } } void AMMtasksWidget::reSetHeadTreeWidget() @@ -327,3 +335,8 @@ void AMMtasksWidget::on_btnOnlyActive_clicked() //connectorToServer->sendQueryTasksXML("amm"); loadTasksAMM(false); } + +void AMMtasksWidget::on_btnCheck_clicked() +{ + +} diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.h b/InstructorsAndTrainees/tasks/ammtaskswidget.h index 10f3232..735485a 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.h @@ -52,6 +52,8 @@ private Q_SLOTS: void on_btnOnlyActive_clicked(); + void on_btnCheck_clicked(); + public Q_SLOTS: void slot_AssignTaskAMMtoTrainee(); diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.ui b/InstructorsAndTrainees/tasks/ammtaskswidget.ui index 9d5f36d..31c259b 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.ui @@ -69,6 +69,32 @@ + + + + + 50 + 50 + + + + Check + + + + :/resources/icons/check.png:/resources/icons/check.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.cpp b/InstructorsAndTrainees/tasks/dialogchecktask.cpp new file mode 100644 index 0000000..0a4df0b --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.cpp @@ -0,0 +1,31 @@ +#include "dialogchecktask.h" +#include "ui_dialogchecktask.h" + +DialogCheckTask::DialogCheckTask(QWidget *parent) : + QWidget(parent), + ui(new Ui::DialogCheckTask), + fimTasksWidget(nullptr) +{ + ui->setupUi(this); + + fimTasksWidget = new FIMtasksWidget(nullptr, FIMtasksWidget::TypeList::listOneTask, this); + + ui->verticalLayout->addWidget(fimTasksWidget); +} + +DialogCheckTask::~DialogCheckTask() +{ + delete fimTasksWidget; + delete ui; +} + +void DialogCheckTask::setTask(TaskAmmFim* task) +{ + this->task = *task; + fimTasksWidget->setOneTaskFim(&this->task); +} + +TaskAmmFim DialogCheckTask::getTask() +{ + return this->task; +} diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.h b/InstructorsAndTrainees/tasks/dialogchecktask.h new file mode 100644 index 0000000..0be7f07 --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.h @@ -0,0 +1,33 @@ +#ifndef DIALOGCHECKTASK_H +#define DIALOGCHECKTASK_H + +#include +#include "tasksAmmFim.h" +#include "fimtaskswidget.h" + +namespace Ui { +class DialogCheckTask; +} + +class DialogCheckTask : public QWidget +{ + Q_OBJECT + +public: + explicit DialogCheckTask(QWidget *parent = nullptr); + ~DialogCheckTask(); + +public: + void setTask(TaskAmmFim* task); + TaskAmmFim getTask(); + +private: + TaskAmmFim task; + +private: + Ui::DialogCheckTask *ui; +private: + FIMtasksWidget* fimTasksWidget; +}; + +#endif // DIALOGCHECKTASK_H diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.ui b/InstructorsAndTrainees/tasks/dialogchecktask.ui new file mode 100644 index 0000000..8d2ffc9 --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.ui @@ -0,0 +1,80 @@ + + + DialogCheckTask + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + + + ID + + + + + + + Title + + + + + + + Status + + + + + + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index c9090aa..58528a3 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -7,6 +7,7 @@ #include "fimtaskswidget.h" #include "ui_fimtaskswidget.h" #include "tasksAmmFim.h" +#include "dialogchecktask.h" FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList type, QWidget *parent) : QWidget(parent), @@ -44,8 +45,18 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty ui->btnDelete->setObjectName("btnDelete"); ui->btnDelete->setEnabled(false); + ui->btnCheck->setObjectName("btnCheck"); + ui->btnCheck->setEnabled(false); if(type == TypeList::listCommon) + { ui->btnDelete->setVisible(false); + ui->btnCheck->setVisible(false); + } + else if(type == TypeList::listOneTask) + { + ui->btnDelete->setVisible(false); + ui->btnCheck->setVisible(false); + } } FIMtasksWidget::~FIMtasksWidget() @@ -65,6 +76,12 @@ FIMtasksWidget::~FIMtasksWidget() delete ui; } +void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task) +{ + listTaskAmmFim.append(task); + fillTree(); +} + void FIMtasksWidget::resizeEvent(QResizeEvent *event) { QSize size = event->size(); @@ -73,13 +90,13 @@ void FIMtasksWidget::resizeEvent(QResizeEvent *event) int width = treeWidget->width(); treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50); - treeWidget->setColumnWidth(ColumnsTree::clmn_status, 50); + treeWidget->setColumnWidth(ColumnsTree::clmn_status, 70); int widthTitle; if(type == TypeList::listCommon) widthTitle = width - (0 + 10); else - widthTitle = width - (50 + 10); + widthTitle = width - (120 + 10); treeWidget->setColumnWidth(ColumnsTree::clmn_Title, widthTitle); } @@ -102,6 +119,7 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, if(current == nullptr) { ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); return; } @@ -119,12 +137,18 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, accessAssignTask = true; ui->btnDelete->setEnabled(true); + + if(task->status != "new") + ui->btnCheck->setEnabled(true); + else + ui->btnCheck->setEnabled(false); } else { accessAssignTask = false; ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); } Q_EMIT signal_currentItemChanged(); @@ -268,7 +292,14 @@ void FIMtasksWidget::fillTree() QTreeWidgetItem * item = treeWidget->topLevelItem(0); if(item != nullptr) + { treeWidget->setCurrentItem(item); + + if(type == TypeList::listOneTask) + { + treeWidget->expandAll(); + } + } } void FIMtasksWidget::prepareListTasksForTrainee(QList listTask) @@ -291,7 +322,10 @@ void FIMtasksWidget::preparationTreeWidget() reSetHeadTreeWidget(); if(type == TypeList::listCommon) + { treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTree::clmn_status, true); + } } void FIMtasksWidget::reSetHeadTreeWidget() @@ -369,6 +403,9 @@ TaskAmmFim* FIMtasksWidget::getTaskByID(int id) void FIMtasksWidget::deleteAllTaskAmmFim() { + if(type == TypeList::listOneTask) + return; + for(TaskAmmFim* task: listTaskAmmFim) delete task; @@ -446,3 +483,32 @@ void FIMtasksWidget::on_btnDelete_clicked() } } } + +void FIMtasksWidget::on_btnCheck_clicked() +{ + QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem(); + + if(treeItemCurrent != nullptr) + { + QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); + if(treeItemParent == nullptr) + {//Выбрана задача + + int id = treeItemCurrent->text(ColumnsTree::clmn_ID).toInt(); + + TaskAmmFim* task = getTaskByID(id); + + DialogCheckTask dlg(this); + + dlg.setTask(task); + + QDialog* dialog = new QDialog(this); + QHBoxLayout *layout = new QHBoxLayout(dialog); + layout->addWidget(&dlg); + dialog->setWindowTitle(tr("Check Task")); + dialog->setMinimumSize(1600, 800); + dialog->setStyleSheet(this->styleSheet()); + dialog->exec(); + } + } +} diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.h b/InstructorsAndTrainees/tasks/fimtaskswidget.h index 94d556d..df65fe5 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.h +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.h @@ -18,7 +18,8 @@ public: enum TypeList { listCommon = 0, - listForTrainee + listForTrainee, + listOneTask }; private: @@ -43,6 +44,8 @@ public: } bool getAccessAssignTask(){return accessAssignTask;} + void setOneTaskFim(TaskAmmFim* task); + public: void resizeEvent(QResizeEvent *event) override; protected: @@ -54,6 +57,8 @@ private Q_SLOTS: void on_btnDelete_clicked(); + void on_btnCheck_clicked(); + public Q_SLOTS: void slot_AssignTaskFIMtoTrainee(); diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.ui b/InstructorsAndTrainees/tasks/fimtaskswidget.ui index 03e934d..f47f06a 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.ui @@ -34,8 +34,40 @@ + + + + + 50 + 50 + + + + Check + + + + :/resources/icons/check.png:/resources/icons/check.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + + + + 50 + 50 + + Delete