From 910acdc87f49c773ea43f6079df2ea01459ea187 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 2 Apr 2025 14:46:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=90=D0=9C=D0=9C=20=D0=BC=D0=B5=D0=B4?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InstructorsAndTrainees/resources.qrc | 1 + .../resources/icons/filter.png | Bin 0 -> 9147 bytes .../tasks/ammtaskswidget.cpp | 28 ++++++++++++-- InstructorsAndTrainees/tasks/ammtaskswidget.h | 10 ++++- .../tasks/ammtaskswidget.ui | 35 ++++++++++++++++++ InstructorsAndTrainees/tasks/module.cpp | 16 +++++++- InstructorsAndTrainees/tasks/module.h | 8 +++- .../tasks/tasktreepreparation.cpp | 16 +++++--- .../tasks/tasktreepreparation.h | 4 +- 9 files changed, 102 insertions(+), 16 deletions(-) create mode 100644 InstructorsAndTrainees/resources/icons/filter.png diff --git a/InstructorsAndTrainees/resources.qrc b/InstructorsAndTrainees/resources.qrc index 8dcfa09..d2a1133 100644 --- a/InstructorsAndTrainees/resources.qrc +++ b/InstructorsAndTrainees/resources.qrc @@ -43,5 +43,6 @@ resources/icons/762.gif resources/icons/assignTask.png resources/icons/delete.png + resources/icons/filter.png diff --git a/InstructorsAndTrainees/resources/icons/filter.png b/InstructorsAndTrainees/resources/icons/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4e679d17771b4aa9492804474dd7e0af0d6bc5 GIT binary patch literal 9147 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 literal 0 HcmV?d00001 diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 3525353..0c93034 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -19,7 +19,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty threadAnimation(nullptr), taskTreePreparation(nullptr), waitAnimationWidget(nullptr), - accessAssignTask(false) + accessAssignTask(false), + flOnlyActive(false) { ui->setupUi(this); @@ -55,6 +56,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty ui->btnDelete->setEnabled(false); if(type == TypeList::listCommon) ui->btnDelete->setVisible(false); + else + ui->btnOnlyActive->setVisible(false); } AMMtasksWidget::~AMMtasksWidget() @@ -186,16 +189,17 @@ void AMMtasksWidget::slot_UpdateTasksAMMforTrainee(int trainee_id) } } -void AMMtasksWidget::loadTasksAMM() +void AMMtasksWidget::loadTasksAMM(bool flRequestFromDB) { //Обновление дерева treeWidget->clear(); waitAnimationWidget->showWithPlay(); - QByteArray array = connectorToServer->getListTaskAmmArray(); + if(flRequestFromDB) + /*QByteArray array*/arrayAMM = connectorToServer->getListTaskAmmArray(); - signal_prepareListItems(array, &listAllModules); + emit signal_prepareListItems(/*array*/arrayAMM, &listAllModules, flOnlyActive); } void AMMtasksWidget::slot_listItemsReady(QList listItems) @@ -306,3 +310,19 @@ void AMMtasksWidget::on_btnDelete_clicked() } } } + +void AMMtasksWidget::on_btnOnlyActive_clicked() +{ + if(ui->btnOnlyActive->isChecked()) + { + flOnlyActive = true; + //slot_listItemsReady(listItemsALL, listItemsACTIVE); + } + else + { + flOnlyActive = false; + //slot_listItemsReady(listItemsALL, listItemsACTIVE); + } + //connectorToServer->sendQueryTasksXML("amm"); + loadTasksAMM(false); +} diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.h b/InstructorsAndTrainees/tasks/ammtaskswidget.h index ede4bf9..10f3232 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.h @@ -50,6 +50,8 @@ private Q_SLOTS: void on_btnDelete_clicked(); + void on_btnOnlyActive_clicked(); + public Q_SLOTS: void slot_AssignTaskAMMtoTrainee(); @@ -68,10 +70,10 @@ private: Module* searchModuleByID(int id); void preparationTreeWidget(); void reSetHeadTreeWidget(); - void loadTasksAMM(); + void loadTasksAMM(bool flRequestFromDB = true); Q_SIGNALS: - void signal_prepareListItems(QByteArray array, QList* listAllModules); + void signal_prepareListItems(QByteArray array, QList* listAllModules, bool flOnlyActive); void signal_prepareListItemsForTrainee(QList listTask, QList* listAllModules); public Q_SLOTS: void slot_listItemsReady(QList listItems); @@ -92,6 +94,10 @@ private: TaskTreePreparation* taskTreePreparation; WaitAnimationWidget *waitAnimationWidget; bool accessAssignTask; + + bool flOnlyActive; + + QByteArray arrayAMM; }; #endif // AMMTASKSWIDGET_H diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.ui b/InstructorsAndTrainees/tasks/ammtaskswidget.ui index 7ae0b02..9d5f36d 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.ui @@ -40,8 +40,43 @@ + + + + + 50 + 50 + + + + Active + + + + :/resources/icons/filter.png:/resources/icons/filter.png + + + + 32 + 32 + + + + true + + + Qt::ToolButtonTextUnderIcon + + + + + + 50 + 50 + + Delete diff --git a/InstructorsAndTrainees/tasks/module.cpp b/InstructorsAndTrainees/tasks/module.cpp index c7c5c32..6a7e716 100644 --- a/InstructorsAndTrainees/tasks/module.cpp +++ b/InstructorsAndTrainees/tasks/module.cpp @@ -5,7 +5,8 @@ int Module::lastID = 0; Module::Module(): type (ModuleType::TYPE_PM), parentModule(nullptr), - ID(0) + ID(0), + isActive(false) { ID = ++lastID; } @@ -38,6 +39,19 @@ Module *Module::getModuleByID(int id) return nullptr; } +void Module::setIsActiveTrue() +{ + this->isActive = true; + + if(parentModule) + parentModule->setIsActiveTrue(); +} + +bool Module::getIsActive() +{ + return this->isActive; +} + PM::PM(): diff --git a/InstructorsAndTrainees/tasks/module.h b/InstructorsAndTrainees/tasks/module.h index 3c5ca8e..009a328 100644 --- a/InstructorsAndTrainees/tasks/module.h +++ b/InstructorsAndTrainees/tasks/module.h @@ -20,11 +20,15 @@ public: void setParentModule(Module* parentModule){ this->parentModule = parentModule; }; Module* getModuleByID(int id); + void setIsActiveTrue(); + bool getIsActive(); + protected: ModuleType type; Module* parentModule; int ID; static int lastID; + bool isActive; }; @@ -47,7 +51,7 @@ public: void setLangStructEng(QString title); void addChildModule(Module* childModule); QList getListChildModules(); - QString pmCode(); + QString pmCode(); private: QString modelIdentCode; @@ -106,7 +110,7 @@ private: QString disassyCodeVariant; QString infoCode; QString infoCodeVariant; - QString itemLocationCode; + QString itemLocationCode; dmLangStruct langRus; dmLangStruct langEng; diff --git a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp index cf93f37..c7980c9 100644 --- a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp +++ b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp @@ -21,13 +21,16 @@ void TaskTreePreparation::stopParser() flagStop = true; } -QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem) +QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem) { QTreeWidgetItem* itemModule = nullptr; if(flagStop) return itemModule; + if(flOnlyActive && !module->getIsActive()) + return nullptr; + QString text = ""; QString ID = QString::number(module->getID()); QString code = ""; @@ -45,7 +48,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTre for(Module* module : PMmodul->getListChildModules()) { - addModuleToTreeWidget(module, itemModule); + addModuleToTreeWidget(module, flOnlyActive, itemModule); } } else @@ -158,6 +161,10 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa PM* PMmodulParent = static_cast(moduleParent); PMmodulParent->addChildModule(module); } + + //Активность + if(nodeMap.namedItem("active").nodeValue() == "true") + module->setIsActiveTrue(); } else if(name == "rus" || name == "eng") { @@ -201,7 +208,7 @@ void TaskTreePreparation::domElementParser(QDomElement element, Module* modulePa }while (! (childElement = childElement.nextSiblingElement()).isNull()); } -void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList* listAllModules) +void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList* listAllModules, bool flOnlyActive) { qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId(); @@ -213,7 +220,7 @@ void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList for(Module* module : *this->listAllModules) { - QTreeWidgetItem* item = addModuleToTreeWidget(module); + QTreeWidgetItem* item = addModuleToTreeWidget(module, flOnlyActive); listItems.append(item); } @@ -230,7 +237,6 @@ void TaskTreePreparation::slot_prepareListItemsForTrainee(QList list listItems.clear(); - for(TaskAmmFim task : listTask) { QTreeWidgetItem* item = nullptr; diff --git a/InstructorsAndTrainees/tasks/tasktreepreparation.h b/InstructorsAndTrainees/tasks/tasktreepreparation.h index 047da7a..8cb0847 100644 --- a/InstructorsAndTrainees/tasks/tasktreepreparation.h +++ b/InstructorsAndTrainees/tasks/tasktreepreparation.h @@ -25,13 +25,13 @@ public: void stopParser(); private: - QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr); + QTreeWidgetItem* addModuleToTreeWidget(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr); void loadAMMtasksFromXML(QByteArray array); void domElementParser(QDomElement element, Module* moduleParent); void deleteAllModuls(); public Q_SLOTS: - void slot_prepareListItems(QByteArray array, QList* listAllModules); + void slot_prepareListItems(QByteArray array, QList* listAllModules, bool flOnlyActive); void slot_prepareListItemsForTrainee(QList listTask, QList* listAllModules); Q_SIGNALS: