mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
123 lines
3.9 KiB
C++
123 lines
3.9 KiB
C++
#include <QDomDocument>
|
|
#include <QFile>
|
|
#include <QMessageBox>
|
|
#include "fimtaskswidget.h"
|
|
#include "ui_fimtaskswidget.h"
|
|
#include "tasksAmmFim.h"
|
|
|
|
FIMtasksWidget::FIMtasksWidget(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::FIMtasksWidget)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
loadTasksAmmFimFromXML();
|
|
updateListWidget();
|
|
}
|
|
|
|
FIMtasksWidget::~FIMtasksWidget()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void FIMtasksWidget::loadTasksAmmFimFromXML()
|
|
{
|
|
QDomDocument docTasksDOM;
|
|
QString xmlFileName = "./tasksFIM.xml";
|
|
QFile xmlInFile(xmlFileName);
|
|
if (!xmlInFile.open(QFile::ReadOnly | QFile::Text))
|
|
{
|
|
QMessageBox::critical(nullptr, tr("Attention!"), tr("The file could not be opened ") + xmlFileName);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
docTasksDOM.setContent(xmlInFile.readAll());
|
|
xmlInFile.close();
|
|
|
|
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
|
if(RRJTasksElement.isNull())
|
|
return;
|
|
|
|
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
|
if(taskElement.isNull())
|
|
return;
|
|
|
|
do
|
|
{/*task*/
|
|
QString name = taskElement.nodeName();
|
|
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
|
|
|
if(name == "task")
|
|
{
|
|
TaskAmmFim task;
|
|
|
|
task.initialize(nodeMap.namedItem("id").nodeValue().toInt(),
|
|
nodeMap.namedItem("type").nodeValue(),
|
|
nodeMap.namedItem("title").nodeValue(),
|
|
nodeMap.namedItem("status").nodeValue(),
|
|
nodeMap.namedItem("created").nodeValue(),
|
|
nodeMap.namedItem("changed").nodeValue());
|
|
|
|
QDomElement malfunctionElement = taskElement.firstChildElement();
|
|
if(malfunctionElement.isNull())
|
|
break;
|
|
|
|
do
|
|
{/*malfunction*/
|
|
QString name = malfunctionElement.nodeName();
|
|
QDomNamedNodeMap nodeMap = malfunctionElement.attributes();
|
|
|
|
if(name == "malfunction")
|
|
{
|
|
Malfunction malfunction;
|
|
|
|
malfunction.initialize(nodeMap.namedItem("dmCode").nodeValue(),
|
|
nodeMap.namedItem("num").nodeValue(),
|
|
nodeMap.namedItem("description").nodeValue());
|
|
|
|
QDomElement signElement = malfunctionElement.firstChildElement();
|
|
if(signElement.isNull())
|
|
break;
|
|
|
|
do
|
|
{/*malfunctionSign*/
|
|
QString name = signElement.nodeName();
|
|
QDomNamedNodeMap nodeMap = signElement.attributes();
|
|
|
|
if(name == "malfunctionSign")
|
|
{
|
|
MalfunctionSign sign;
|
|
|
|
sign.initialize(nodeMap.namedItem("type").nodeValue().toInt(),
|
|
nodeMap.namedItem("description").nodeValue());
|
|
|
|
malfunction.addMalfunctionSign(sign);
|
|
}
|
|
|
|
}while(! (signElement = signElement.nextSiblingElement()).isNull());
|
|
|
|
task.addMalfunction(malfunction);
|
|
}
|
|
|
|
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
|
|
|
listTaskAmmFim.append(task);
|
|
}
|
|
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
|
}
|
|
}
|
|
|
|
void FIMtasksWidget::updateListWidget()
|
|
{
|
|
for(TaskAmmFim taskFim : listTaskAmmFim)
|
|
{
|
|
addTaskFimToListWidget(taskFim);
|
|
}
|
|
}
|
|
|
|
void FIMtasksWidget::addTaskFimToListWidget(TaskAmmFim taskFim)
|
|
{
|
|
|
|
}
|