mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Вынес подготовку дерева FIM в отдельный поток
This commit is contained in:
@@ -3,26 +3,50 @@
|
||||
#include "tasktreepreparation.h"
|
||||
|
||||
|
||||
TaskTreePreparation::TaskTreePreparation(QObject *parent) :
|
||||
TaskAMMFIMTreePreparation::TaskAMMFIMTreePreparation(TypeListTreeAMMFIM type, QObject *parent) :
|
||||
QObject(parent),
|
||||
listAllModulesAMM(nullptr),
|
||||
listTaskAmmFim(nullptr),
|
||||
flagStop(false)
|
||||
flagStop(false),
|
||||
type(type)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
||||
qDebug() << "TaskAMMFIMTreePreparation init thread ID " << QThread::currentThreadId();
|
||||
}
|
||||
|
||||
TaskTreePreparation::~TaskTreePreparation()
|
||||
TaskAMMFIMTreePreparation::~TaskAMMFIMTreePreparation()
|
||||
{
|
||||
deleteAllModulsAMM();
|
||||
deleteAllTaskFIM();
|
||||
}
|
||||
|
||||
void TaskTreePreparation::stopParser()
|
||||
void TaskAMMFIMTreePreparation::stopParser()
|
||||
{
|
||||
flagStop = true;
|
||||
}
|
||||
|
||||
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidgetAMM(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
||||
TaskAmmFim* TaskAMMFIMTreePreparation::getTaskFIMbyID(int id)
|
||||
{
|
||||
for(int i = 0; i < listTaskFIM.count(); i++)
|
||||
{/*Задачи*/
|
||||
TaskAmmFim* task = listTaskFIM.at(i);
|
||||
if(task->id == id)
|
||||
return task;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Module* TaskAMMFIMTreePreparation::getModuleAMMbyID(int id)
|
||||
{
|
||||
Module* ptrModule = nullptr;
|
||||
|
||||
for(Module* module: listAllModulesAMM)
|
||||
{
|
||||
ptrModule = module->getModuleByID(id);
|
||||
if(ptrModule)
|
||||
return ptrModule;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QTreeWidgetItem *TaskAMMFIMTreePreparation::addModuleToTreeWidgetAMM(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
||||
{
|
||||
QTreeWidgetItem* itemModule = nullptr;
|
||||
|
||||
@@ -71,7 +95,7 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidgetAMM(Module *module, b
|
||||
return itemModule;
|
||||
}
|
||||
|
||||
void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||
void TaskAMMFIMTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||
{
|
||||
deleteAllModulsAMM();
|
||||
|
||||
@@ -86,9 +110,9 @@ void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||
domElementParserAMM(manifestElement, nullptr);
|
||||
}
|
||||
|
||||
void TaskTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||
void TaskAMMFIMTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||
{
|
||||
deleteAllTaskAmmFim();
|
||||
deleteAllTaskFIM();
|
||||
|
||||
QDomDocument docTasksDOM;
|
||||
|
||||
@@ -104,6 +128,10 @@ void TaskTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||
|
||||
do
|
||||
{/*task*/
|
||||
|
||||
if(flagStop)
|
||||
return;
|
||||
|
||||
QString name = taskElement.nodeName();
|
||||
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
||||
|
||||
@@ -159,41 +187,34 @@ void TaskTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||
}
|
||||
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
||||
}
|
||||
listTaskAmmFim->append(task);
|
||||
listTaskFIM.append(task);
|
||||
}
|
||||
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void TaskTreePreparation::deleteAllTaskAmmFim()
|
||||
void TaskAMMFIMTreePreparation::deleteAllTaskFIM()
|
||||
{
|
||||
//if(type == TypeList::listOneTask)
|
||||
//return;
|
||||
|
||||
for(TaskAmmFim* task: *listTaskAmmFim)
|
||||
for(TaskAmmFim* task: listTaskFIM)
|
||||
delete task;
|
||||
|
||||
listTaskAmmFim->clear();
|
||||
listTaskFIM.clear();
|
||||
}
|
||||
|
||||
|
||||
void TaskTreePreparation::deleteAllModulsAMM()
|
||||
void TaskAMMFIMTreePreparation::deleteAllModulsAMM()
|
||||
{
|
||||
if(listAllModulesAMM == nullptr)
|
||||
return;
|
||||
|
||||
for(Module* module: *listAllModulesAMM)
|
||||
for(Module* module: listAllModulesAMM)
|
||||
{
|
||||
if(module->getType() == ModuleType::TYPE_PM)
|
||||
delete static_cast<PM*>(module);
|
||||
else
|
||||
delete static_cast<DM*>(module);
|
||||
}
|
||||
listAllModulesAMM->clear();
|
||||
listAllModulesAMM.clear();
|
||||
}
|
||||
|
||||
void TaskTreePreparation::domElementParserAMM(QDomElement element, Module* moduleParent)
|
||||
void TaskAMMFIMTreePreparation::domElementParserAMM(QDomElement element, Module* moduleParent)
|
||||
{
|
||||
QString name;
|
||||
|
||||
@@ -296,23 +317,20 @@ void TaskTreePreparation::domElementParserAMM(QDomElement element, Module* modul
|
||||
domElementParserAMM(childElement, module);
|
||||
|
||||
if(moduleParent == nullptr)
|
||||
listAllModulesAMM->append(module);
|
||||
listAllModulesAMM.append(module);
|
||||
|
||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
||||
}
|
||||
|
||||
|
||||
void TaskTreePreparation::slot_prepareAMMListItems(QByteArray array, QList<Module*>* listAllModules, bool flOnlyActive)
|
||||
void TaskAMMFIMTreePreparation::slot_prepareAMMListItems(QByteArray array, bool flOnlyActive)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation::slot_prepareAMMListItems thread ID " << QThread::currentThreadId();
|
||||
|
||||
this->listAllModulesAMM = listAllModules;
|
||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareAMMListItems thread ID " << QThread::currentThreadId();
|
||||
|
||||
loadAMMtasksFromXML(array);
|
||||
|
||||
listItems.clear();
|
||||
|
||||
for(Module* module : *this->listAllModulesAMM)
|
||||
for(Module* module : listAllModulesAMM)
|
||||
{
|
||||
QTreeWidgetItem* item = addModuleToTreeWidgetAMM(module, flOnlyActive);
|
||||
listItems.append(item);
|
||||
@@ -321,13 +339,9 @@ void TaskTreePreparation::slot_prepareAMMListItems(QByteArray array, QList<Modul
|
||||
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||
}
|
||||
|
||||
void TaskTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<Module *> *listAllModules)
|
||||
void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation::slot_prepareAMMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||
|
||||
this->listAllModulesAMM = listAllModules;
|
||||
|
||||
//loadAMMtasksFromList(listTask);
|
||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||
|
||||
listItems.clear();
|
||||
|
||||
@@ -376,17 +390,15 @@ void TaskTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> l
|
||||
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||
}
|
||||
|
||||
void TaskTreePreparation::slot_prepareFIMListItems(QByteArray array, QList<TaskAmmFim *> *listTaskAmmFim)
|
||||
void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation::slot_prepareFIMListItems thread ID " << QThread::currentThreadId();
|
||||
|
||||
this->listTaskAmmFim = listTaskAmmFim;
|
||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareFIMListItems thread ID " << QThread::currentThreadId();
|
||||
|
||||
loadFIMtasksFromXML(array);
|
||||
|
||||
listItems.clear();
|
||||
|
||||
for(TaskAmmFim* taskPtr : *this->listTaskAmmFim)
|
||||
for(TaskAmmFim* taskPtr : listTaskFIM)
|
||||
{/*Задачи*/
|
||||
TaskAmmFim task = *taskPtr;
|
||||
|
||||
@@ -422,7 +434,6 @@ void TaskTreePreparation::slot_prepareFIMListItems(QByteArray array, QList<TaskA
|
||||
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||
itemTask->setToolTip(0, task.title);
|
||||
|
||||
//treeWidget->addTopLevelItem(itemTask);
|
||||
|
||||
for (int j = 0; j < task.malfunctionList.count(); j++)
|
||||
{/*Неисправности*/
|
||||
@@ -431,7 +442,7 @@ void TaskTreePreparation::slot_prepareFIMListItems(QByteArray array, QList<TaskA
|
||||
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
|
||||
|
||||
itemMalfunction->setText(0, malfunction.description);
|
||||
//if(type == TypeList::listCommon) //TODO
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
{
|
||||
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
|
||||
itemMalfunction->setCheckState(0, Qt::Checked);
|
||||
@@ -463,11 +474,9 @@ void TaskTreePreparation::slot_prepareFIMListItems(QByteArray array, QList<TaskA
|
||||
Q_EMIT signal_listFIMItemsReady(listItems);
|
||||
}
|
||||
|
||||
void TaskTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask, QList<TaskAmmFim *> *listTaskAmmFim)
|
||||
void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask)
|
||||
{
|
||||
qDebug() << "TaskTreePreparation::slot_prepareFIMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||
|
||||
this->listTaskAmmFim = listTaskAmmFim;
|
||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||
|
||||
listItems.clear();
|
||||
|
||||
@@ -477,7 +486,7 @@ void TaskTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> l
|
||||
TaskAmmFim* taskNew = nullptr;
|
||||
taskNew = new TaskAmmFim();
|
||||
*taskNew = task;
|
||||
this->listTaskAmmFim->append(taskNew);
|
||||
listTaskFIM.append(taskNew);
|
||||
|
||||
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
||||
|
||||
@@ -511,7 +520,6 @@ void TaskTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> l
|
||||
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||
itemTask->setToolTip(0, task.title);
|
||||
|
||||
//treeWidget->addTopLevelItem(itemTask);
|
||||
|
||||
for (int j = 0; j < task.malfunctionList.count(); j++)
|
||||
{/*Неисправности*/
|
||||
@@ -520,7 +528,7 @@ void TaskTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> l
|
||||
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
|
||||
|
||||
itemMalfunction->setText(0, malfunction.description);
|
||||
//if(type == TypeList::listCommon) //TODO
|
||||
if(type == TypeListTreeAMMFIM::listCommon)
|
||||
{
|
||||
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
|
||||
itemMalfunction->setCheckState(0, Qt::Checked);
|
||||
|
||||
Reference in New Issue
Block a user