#include #include #include #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) { }