Добавил виджет FIM

This commit is contained in:
krivoshein
2024-12-28 11:58:32 +03:00
parent fc1b58e743
commit fd362fc8ef
14 changed files with 412 additions and 6 deletions

View File

@@ -0,0 +1,122 @@
#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)
{
}