mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Перенес парсинг taskAMM.XML в отдельный поток
This commit is contained in:
@@ -11,10 +11,17 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, QWidget *pa
|
|||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::AMMtasksWidget),
|
ui(new Ui::AMMtasksWidget),
|
||||||
connectorToServer(connectorToServer),
|
connectorToServer(connectorToServer),
|
||||||
loginTraineeSelected("")
|
treeWidget(nullptr),
|
||||||
|
loginTraineeSelected(""),
|
||||||
|
threadPreparation(nullptr),
|
||||||
|
threadAnimation(nullptr),
|
||||||
|
taskTreePreparation(nullptr),
|
||||||
|
waitAnimationWidget(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
qDebug() << "AMMtasksWidget init thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
treeWidget = new QTreeWidget();
|
treeWidget = new QTreeWidget();
|
||||||
ui->horizontalLayout_1->addWidget(treeWidget);
|
ui->horizontalLayout_1->addWidget(treeWidget);
|
||||||
|
|
||||||
@@ -24,8 +31,6 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, QWidget *pa
|
|||||||
|
|
||||||
ui->btnAssignTaskToTrainee->setEnabled(false);
|
ui->btnAssignTaskToTrainee->setEnabled(false);
|
||||||
|
|
||||||
qDebug() << "AMMtasksWidget init thread ID " << QThread::currentThreadId();
|
|
||||||
|
|
||||||
threadPreparation = new QThread();
|
threadPreparation = new QThread();
|
||||||
taskTreePreparation = new TaskTreePreparation();
|
taskTreePreparation = new TaskTreePreparation();
|
||||||
taskTreePreparation->moveToThread(threadPreparation);
|
taskTreePreparation->moveToThread(threadPreparation);
|
||||||
@@ -34,16 +39,17 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, QWidget *pa
|
|||||||
connect(this, &AMMtasksWidget::signal_prepareListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareListItems);
|
connect(this, &AMMtasksWidget::signal_prepareListItems, taskTreePreparation, &TaskTreePreparation::slot_prepareListItems);
|
||||||
connect(taskTreePreparation, &TaskTreePreparation::signal_listItemsReady, this, &AMMtasksWidget::slot_listItemsReady);
|
connect(taskTreePreparation, &TaskTreePreparation::signal_listItemsReady, this, &AMMtasksWidget::slot_listItemsReady);
|
||||||
|
|
||||||
|
threadAnimation = new QThread();
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
waitAnimationWidget->setParent(this);
|
waitAnimationWidget->setParent(this);
|
||||||
waitAnimationWidget->initialize(movie,this);
|
waitAnimationWidget->initialize(movie,this);
|
||||||
waitAnimationWidget->moveToThread(threadPreparation);
|
waitAnimationWidget->moveToThread(threadAnimation);
|
||||||
|
threadAnimation->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
AMMtasksWidget::~AMMtasksWidget()
|
AMMtasksWidget::~AMMtasksWidget()
|
||||||
{
|
{
|
||||||
deleteAllModuls();
|
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,10 +115,8 @@ void AMMtasksWidget::loadTasksAMM()
|
|||||||
waitAnimationWidget->showWithPlay();
|
waitAnimationWidget->showWithPlay();
|
||||||
|
|
||||||
QByteArray array = connectorToServer->getListTaskAmmArray();
|
QByteArray array = connectorToServer->getListTaskAmmArray();
|
||||||
loadAMMtasksFromXML(array);
|
|
||||||
|
|
||||||
//fillTree();
|
signal_prepareListItems(array, &listAllModules);
|
||||||
signal_prepareListItems(listAllModules);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
||||||
@@ -121,141 +125,11 @@ void AMMtasksWidget::slot_listItemsReady(QList<QTreeWidgetItem *> listItems)
|
|||||||
treeWidget->clear();
|
treeWidget->clear();
|
||||||
|
|
||||||
for(QTreeWidgetItem * item : listItems)
|
for(QTreeWidgetItem * item : listItems)
|
||||||
{
|
|
||||||
treeWidget->addTopLevelItem(item);
|
treeWidget->addTopLevelItem(item);
|
||||||
}
|
|
||||||
|
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::domElementParser(QDomElement element, Module* moduleParent)
|
|
||||||
{
|
|
||||||
QString name;
|
|
||||||
|
|
||||||
QDomElement childElement = element.firstChildElement();
|
|
||||||
if(childElement.isNull())
|
|
||||||
return;
|
|
||||||
|
|
||||||
Module* module = nullptr;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
name = childElement.nodeName();
|
|
||||||
|
|
||||||
QDomNamedNodeMap nodeMap = childElement.attributes();
|
|
||||||
|
|
||||||
if(name == "pm")
|
|
||||||
{
|
|
||||||
module = new PM();
|
|
||||||
PM* PMmodul = static_cast<PM*>(module);
|
|
||||||
|
|
||||||
PMmodul->initialize(nodeMap.namedItem("modelIdentCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("pmIssuer").nodeValue(),
|
|
||||||
nodeMap.namedItem("pmNumber").nodeValue(),
|
|
||||||
nodeMap.namedItem("pmVolume").nodeValue());
|
|
||||||
|
|
||||||
if(moduleParent)
|
|
||||||
{
|
|
||||||
PMmodul->setParentModule(moduleParent);
|
|
||||||
|
|
||||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
|
||||||
PMmodulParent->addChildModule(module);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(name == "dm")
|
|
||||||
{
|
|
||||||
module = new DM();
|
|
||||||
DM* DMmodul = static_cast<DM*>(module);
|
|
||||||
|
|
||||||
DMmodul->initialize(nodeMap.namedItem("modelIdentCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("systemDiffCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("systemCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("subSystemCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("subSubSystemCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("assyCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("disassyCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("disassyCodeVariant").nodeValue(),
|
|
||||||
nodeMap.namedItem("infoCode").nodeValue(),
|
|
||||||
nodeMap.namedItem("infoCodeVariant").nodeValue(),
|
|
||||||
nodeMap.namedItem("itemLocationCode").nodeValue());
|
|
||||||
|
|
||||||
if(moduleParent)
|
|
||||||
{
|
|
||||||
DMmodul->setParentModule(moduleParent);
|
|
||||||
|
|
||||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
|
||||||
PMmodulParent->addChildModule(module);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(name == "rus" || name == "eng")
|
|
||||||
{
|
|
||||||
if(moduleParent)
|
|
||||||
{
|
|
||||||
if(moduleParent->getType() == ModuleType::TYPE_PM)
|
|
||||||
{//PM
|
|
||||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
|
||||||
|
|
||||||
if(name == "rus")
|
|
||||||
PMmodulParent->setLangStructRus(nodeMap.namedItem("title").nodeValue());
|
|
||||||
else
|
|
||||||
PMmodulParent->setLangStructEng(nodeMap.namedItem("title").nodeValue());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{//DM
|
|
||||||
DM* DMmodulParent = static_cast<DM*>(moduleParent);
|
|
||||||
|
|
||||||
if(name == "rus")
|
|
||||||
DMmodulParent->setLangStructRus(nodeMap.namedItem("techName").nodeValue(),
|
|
||||||
nodeMap.namedItem("infoName").nodeValue(),
|
|
||||||
nodeMap.namedItem("pdf").nodeValue(),
|
|
||||||
nodeMap.namedItem("bookmark").nodeValue(),
|
|
||||||
nodeMap.namedItem("xml").nodeValue());
|
|
||||||
else
|
|
||||||
DMmodulParent->setLangStructEng(nodeMap.namedItem("techName").nodeValue(),
|
|
||||||
nodeMap.namedItem("infoName").nodeValue(),
|
|
||||||
nodeMap.namedItem("pdf").nodeValue(),
|
|
||||||
nodeMap.namedItem("bookmark").nodeValue(),
|
|
||||||
nodeMap.namedItem("xml").nodeValue());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
domElementParser(childElement, module);
|
|
||||||
|
|
||||||
if(moduleParent == nullptr)
|
|
||||||
listAllModules.append(module);
|
|
||||||
|
|
||||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
|
||||||
}
|
|
||||||
|
|
||||||
void AMMtasksWidget::loadAMMtasksFromXML(QByteArray array)
|
|
||||||
{
|
|
||||||
deleteAllModuls();
|
|
||||||
|
|
||||||
QDomDocument docTasksDOM;
|
|
||||||
|
|
||||||
docTasksDOM.setContent(array);
|
|
||||||
|
|
||||||
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
|
||||||
if(manifestElement.isNull())
|
|
||||||
return;
|
|
||||||
|
|
||||||
domElementParser(manifestElement, nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AMMtasksWidget::deleteAllModuls()
|
|
||||||
{
|
|
||||||
for(Module* module: listAllModules)
|
|
||||||
{
|
|
||||||
if(module->getType() == ModuleType::TYPE_PM)
|
|
||||||
delete static_cast<PM*>(module);
|
|
||||||
else
|
|
||||||
delete static_cast<DM*>(module);
|
|
||||||
}
|
|
||||||
listAllModules.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
Module *AMMtasksWidget::searchModuleByID(int id)
|
Module *AMMtasksWidget::searchModuleByID(int id)
|
||||||
{
|
{
|
||||||
Module* ptrModule = nullptr;
|
Module* ptrModule = nullptr;
|
||||||
@@ -288,63 +162,6 @@ void AMMtasksWidget::reSetHeadTreeWidget()
|
|||||||
treeWidget->setHeaderLabels(listHeaders);
|
treeWidget->setHeaderLabels(listHeaders);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMMtasksWidget::fillTree()
|
|
||||||
{
|
|
||||||
//Обновление дерева
|
|
||||||
treeWidget->clear();
|
|
||||||
|
|
||||||
for(Module* module : listAllModules)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
|
||||||
treeWidget->addTopLevelItem(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QTreeWidgetItem* AMMtasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* parentItem)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* itemModule = nullptr;
|
|
||||||
|
|
||||||
QString text;
|
|
||||||
QString ID = QString::number(module->getID());
|
|
||||||
|
|
||||||
if(parentItem)
|
|
||||||
{
|
|
||||||
itemModule = new QTreeWidgetItem();
|
|
||||||
parentItem->addChild(itemModule);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//itemModule = new QTreeWidgetItem(treeWidget);
|
|
||||||
itemModule = new QTreeWidgetItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(module->getType() == ModuleType::TYPE_PM)
|
|
||||||
{
|
|
||||||
PM* PMmodul = static_cast<PM*>(module);
|
|
||||||
text = PMmodul->getLangStructRus().title;
|
|
||||||
|
|
||||||
for(Module* module : PMmodul->getListChildModules())
|
|
||||||
{
|
|
||||||
addModuleToTreeWidget(module, itemModule);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DM* DMmodul = static_cast<DM*>(module);
|
|
||||||
text = DMmodul->getLangStructRus().techName;
|
|
||||||
|
|
||||||
//itemModule->setFlags(itemModule->flags() | Qt::ItemIsUserCheckable);
|
|
||||||
//itemModule->setCheckState(0, Qt::Checked);
|
|
||||||
itemModule->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
|
||||||
}
|
|
||||||
|
|
||||||
itemModule->setText(ColumnsTree::clmn_PMorDM, text);
|
|
||||||
itemModule->setText(ColumnsTree::clmn_ID, ID);
|
|
||||||
|
|
||||||
return itemModule;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void AMMtasksWidget::on_btnUpdateTasks_clicked()
|
void AMMtasksWidget::on_btnUpdateTasks_clicked()
|
||||||
{
|
{
|
||||||
connectorToServer->sendQueryTasksXML("amm");
|
connectorToServer->sendQueryTasksXML("amm");
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ public:
|
|||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||||
void on_btnUpdateTasks_clicked();
|
void on_btnUpdateTasks_clicked();
|
||||||
|
|
||||||
void on_btnAssignTaskToTrainee_clicked();
|
void on_btnAssignTaskToTrainee_clicked();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
@@ -48,21 +47,13 @@ public Q_SLOTS:
|
|||||||
void slot_traineeSelected(QString login);
|
void slot_traineeSelected(QString login);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadAMMtasksFromXML(QByteArray array);
|
|
||||||
void domElementParser(QDomElement element, Module* moduleParent);
|
|
||||||
void deleteAllModuls();
|
|
||||||
Module* searchModuleByID(int id);
|
Module* searchModuleByID(int id);
|
||||||
|
|
||||||
void preparationTreeWidget();
|
void preparationTreeWidget();
|
||||||
void reSetHeadTreeWidget();
|
void reSetHeadTreeWidget();
|
||||||
|
|
||||||
void fillTree();
|
|
||||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr);
|
|
||||||
|
|
||||||
void loadTasksAMM();
|
void loadTasksAMM();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_prepareListItems(QList<Module*> listAllModules);
|
void signal_prepareListItems(QByteArray array, QList<Module*>* listAllModules);
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
void slot_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
@@ -76,6 +67,7 @@ private:
|
|||||||
QString loginTraineeSelected;
|
QString loginTraineeSelected;
|
||||||
|
|
||||||
QThread* threadPreparation;
|
QThread* threadPreparation;
|
||||||
|
QThread* threadAnimation;
|
||||||
TaskTreePreparation* taskTreePreparation;
|
TaskTreePreparation* taskTreePreparation;
|
||||||
WaitAnimationWidget *waitAnimationWidget;
|
WaitAnimationWidget *waitAnimationWidget;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,11 +2,18 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include "tasktreepreparation.h"
|
#include "tasktreepreparation.h"
|
||||||
|
|
||||||
TaskTreePreparation::TaskTreePreparation(QObject *parent) : QObject(parent)
|
TaskTreePreparation::TaskTreePreparation(QObject *parent) :
|
||||||
|
QObject(parent),
|
||||||
|
listAllModules(nullptr)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskTreePreparation init thread ID " << QThread::currentThreadId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskTreePreparation::~TaskTreePreparation()
|
||||||
|
{
|
||||||
|
deleteAllModuls();
|
||||||
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem)
|
QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTreeWidgetItem *parentItem)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* itemModule = nullptr;
|
QTreeWidgetItem* itemModule = nullptr;
|
||||||
@@ -14,16 +21,10 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTre
|
|||||||
QString text;
|
QString text;
|
||||||
QString ID = QString::number(module->getID());
|
QString ID = QString::number(module->getID());
|
||||||
|
|
||||||
|
itemModule = new QTreeWidgetItem();
|
||||||
|
|
||||||
if(parentItem)
|
if(parentItem)
|
||||||
{
|
|
||||||
itemModule = new QTreeWidgetItem();
|
|
||||||
parentItem->addChild(itemModule);
|
parentItem->addChild(itemModule);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//itemModule = new QTreeWidgetItem(treeWidget);
|
|
||||||
itemModule = new QTreeWidgetItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(module->getType() == ModuleType::TYPE_PM)
|
if(module->getType() == ModuleType::TYPE_PM)
|
||||||
{
|
{
|
||||||
@@ -51,13 +52,148 @@ QTreeWidgetItem *TaskTreePreparation::addModuleToTreeWidget(Module *module, QTre
|
|||||||
return itemModule;
|
return itemModule;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskTreePreparation::slot_prepareListItems(QList<Module *> listAllModules)
|
void TaskTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||||
|
{
|
||||||
|
deleteAllModuls();
|
||||||
|
|
||||||
|
QDomDocument docTasksDOM;
|
||||||
|
|
||||||
|
docTasksDOM.setContent(array);
|
||||||
|
|
||||||
|
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
||||||
|
if(manifestElement.isNull())
|
||||||
|
return;
|
||||||
|
|
||||||
|
domElementParser(manifestElement, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::deleteAllModuls()
|
||||||
|
{
|
||||||
|
if(listAllModules == nullptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for(Module* module: *listAllModules)
|
||||||
|
{
|
||||||
|
if(module->getType() == ModuleType::TYPE_PM)
|
||||||
|
delete static_cast<PM*>(module);
|
||||||
|
else
|
||||||
|
delete static_cast<DM*>(module);
|
||||||
|
}
|
||||||
|
listAllModules->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::domElementParser(QDomElement element, Module* moduleParent)
|
||||||
|
{
|
||||||
|
QString name;
|
||||||
|
|
||||||
|
QDomElement childElement = element.firstChildElement();
|
||||||
|
if(childElement.isNull())
|
||||||
|
return;
|
||||||
|
|
||||||
|
Module* module = nullptr;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
name = childElement.nodeName();
|
||||||
|
|
||||||
|
QDomNamedNodeMap nodeMap = childElement.attributes();
|
||||||
|
|
||||||
|
if(name == "pm")
|
||||||
|
{
|
||||||
|
module = new PM();
|
||||||
|
PM* PMmodul = static_cast<PM*>(module);
|
||||||
|
|
||||||
|
PMmodul->initialize(nodeMap.namedItem("modelIdentCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("pmIssuer").nodeValue(),
|
||||||
|
nodeMap.namedItem("pmNumber").nodeValue(),
|
||||||
|
nodeMap.namedItem("pmVolume").nodeValue());
|
||||||
|
|
||||||
|
if(moduleParent)
|
||||||
|
{
|
||||||
|
PMmodul->setParentModule(moduleParent);
|
||||||
|
|
||||||
|
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||||
|
PMmodulParent->addChildModule(module);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(name == "dm")
|
||||||
|
{
|
||||||
|
module = new DM();
|
||||||
|
DM* DMmodul = static_cast<DM*>(module);
|
||||||
|
|
||||||
|
DMmodul->initialize(nodeMap.namedItem("modelIdentCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("systemDiffCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("systemCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("subSystemCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("subSubSystemCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("assyCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("disassyCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("disassyCodeVariant").nodeValue(),
|
||||||
|
nodeMap.namedItem("infoCode").nodeValue(),
|
||||||
|
nodeMap.namedItem("infoCodeVariant").nodeValue(),
|
||||||
|
nodeMap.namedItem("itemLocationCode").nodeValue());
|
||||||
|
|
||||||
|
if(moduleParent)
|
||||||
|
{
|
||||||
|
DMmodul->setParentModule(moduleParent);
|
||||||
|
|
||||||
|
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||||
|
PMmodulParent->addChildModule(module);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(name == "rus" || name == "eng")
|
||||||
|
{
|
||||||
|
if(moduleParent)
|
||||||
|
{
|
||||||
|
if(moduleParent->getType() == ModuleType::TYPE_PM)
|
||||||
|
{//PM
|
||||||
|
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||||
|
|
||||||
|
if(name == "rus")
|
||||||
|
PMmodulParent->setLangStructRus(nodeMap.namedItem("title").nodeValue());
|
||||||
|
else
|
||||||
|
PMmodulParent->setLangStructEng(nodeMap.namedItem("title").nodeValue());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{//DM
|
||||||
|
DM* DMmodulParent = static_cast<DM*>(moduleParent);
|
||||||
|
|
||||||
|
if(name == "rus")
|
||||||
|
DMmodulParent->setLangStructRus(nodeMap.namedItem("techName").nodeValue(),
|
||||||
|
nodeMap.namedItem("infoName").nodeValue(),
|
||||||
|
nodeMap.namedItem("pdf").nodeValue(),
|
||||||
|
nodeMap.namedItem("bookmark").nodeValue(),
|
||||||
|
nodeMap.namedItem("xml").nodeValue());
|
||||||
|
else
|
||||||
|
DMmodulParent->setLangStructEng(nodeMap.namedItem("techName").nodeValue(),
|
||||||
|
nodeMap.namedItem("infoName").nodeValue(),
|
||||||
|
nodeMap.namedItem("pdf").nodeValue(),
|
||||||
|
nodeMap.namedItem("bookmark").nodeValue(),
|
||||||
|
nodeMap.namedItem("xml").nodeValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
domElementParser(childElement, module);
|
||||||
|
|
||||||
|
if(moduleParent == nullptr)
|
||||||
|
listAllModules->append(module);
|
||||||
|
|
||||||
|
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskTreePreparation::slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskTreePreparation::slot_prepareListItems thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
|
this->listAllModules = listAllModules;
|
||||||
|
|
||||||
|
loadAMMtasksFromXML(array);
|
||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
for(Module* module : listAllModules)
|
for(Module* module : *this->listAllModules)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
QTreeWidgetItem* item = addModuleToTreeWidget(module);
|
||||||
listItems.append(item);
|
listItems.append(item);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QTreeWidgetItem>
|
#include <QTreeWidgetItem>
|
||||||
|
#include <QDomElement>
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
|
|
||||||
class TaskTreePreparation : public QObject
|
class TaskTreePreparation : public QObject
|
||||||
@@ -10,18 +11,23 @@ class TaskTreePreparation : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit TaskTreePreparation(QObject *parent = nullptr);
|
explicit TaskTreePreparation(QObject *parent = nullptr);
|
||||||
|
~TaskTreePreparation();
|
||||||
|
|
||||||
public:
|
private:
|
||||||
QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr);
|
QTreeWidgetItem* addModuleToTreeWidget(Module* module, QTreeWidgetItem* parentItem = nullptr);
|
||||||
|
void loadAMMtasksFromXML(QByteArray array);
|
||||||
|
void domElementParser(QDomElement element, Module* moduleParent);
|
||||||
|
void deleteAllModuls();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_prepareListItems(QList<Module*> listAllModules);
|
void slot_prepareListItems(QByteArray array, QList<Module*>* listAllModules);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
void signal_listItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QTreeWidgetItem*> listItems;
|
QList<QTreeWidgetItem*> listItems;
|
||||||
|
QList<Module*>* listAllModules;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TASKTREEPREPARATION_H
|
#endif // TASKTREEPREPARATION_H
|
||||||
|
|||||||
Reference in New Issue
Block a user