From ce4e3e0a953e65220babe9c79ddefdb5e0f4a7b8 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 27 Nov 2024 09:42:52 +0300 Subject: [PATCH] first after fork install --- .../docTasks/doctaskswidget.cpp | 176 ++++++++++++++++++ .../docTasks/doctaskswidget.h | 34 ++++ .../docTasks/doctaskswidget.ui | 43 +++++ .../docTasks/module.cpp | 124 ++++++++++++ .../InstructorsAndTrainees/docTasks/module.h | 106 +++++++++++ .../InstructorsAndTrainees/icons/docTasks.png | Bin 0 -> 1488 bytes 6 files changed, 483 insertions(+) create mode 100644 DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp create mode 100644 DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h create mode 100644 DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.ui create mode 100644 DB_IaT/InstructorsAndTrainees/docTasks/module.cpp create mode 100644 DB_IaT/InstructorsAndTrainees/docTasks/module.h create mode 100644 DB_IaT/InstructorsAndTrainees/icons/docTasks.png diff --git a/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp new file mode 100644 index 0000000..f0c5fa2 --- /dev/null +++ b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.cpp @@ -0,0 +1,176 @@ +#include +#include +#include +#include +#include "doctaskswidget.h" +#include "ui_doctaskswidget.h" + +DocTasksWidget::DocTasksWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::DocTasksWidget) +{ + ui->setupUi(this); + treeWidget = new QTreeWidget(); + ui->horizontalLayout_2->addWidget(treeWidget); + treeWidget->setStyleSheet(QStringLiteral("font-size: 10pt;" + "font-family: Tahoma;")); + + loadDocTasksFromXML(); +} + +DocTasksWidget::~DocTasksWidget() +{ + deleteAllModuls(); + delete ui; +} + +void DocTasksWidget::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") + { + QString modelIdentCode = nodeMap.namedItem("modelIdentCode").nodeValue(); + QString pmIssuer = nodeMap.namedItem("pmIssuer").nodeValue(); + QString pmNumber = nodeMap.namedItem("pmNumber").nodeValue(); + QString pmVolume = nodeMap.namedItem("pmVolume").nodeValue(); + + module = new PM(); + + PM* PMmodul = static_cast(module); + + PMmodul->initialize(modelIdentCode, pmIssuer, pmNumber, pmVolume); + + if(moduleParent) + { + PM* PMmodulParent = static_cast(moduleParent); + PMmodulParent->addChildModule(module); + } + } + else if(name == "dm") + { + QString modelIdentCode = nodeMap.namedItem("modelIdentCode").nodeValue(); + QString systemDiffCode = nodeMap.namedItem("systemDiffCode").nodeValue(); + QString systemCode = nodeMap.namedItem("systemCode").nodeValue(); + QString subSystemCode = nodeMap.namedItem("subSystemCode").nodeValue(); + QString subSubSystemCode = nodeMap.namedItem("subSubSystemCode").nodeValue(); + QString assyCode = nodeMap.namedItem("assyCode").nodeValue(); + QString disassyCode = nodeMap.namedItem("disassyCode").nodeValue(); + QString disassyCodeVariant = nodeMap.namedItem("disassyCodeVariant").nodeValue(); + QString infoCode = nodeMap.namedItem("infoCode").nodeValue(); + QString infoCodeVariant = nodeMap.namedItem("infoCodeVariant").nodeValue(); + QString itemLocationCode = nodeMap.namedItem("itemLocationCode").nodeValue(); + + module = new DM(); + + DM* PMmodul = static_cast(module); + + PMmodul->initialize(modelIdentCode, + systemDiffCode, + systemCode, + subSystemCode, + subSubSystemCode, + assyCode, + disassyCode, + disassyCodeVariant, + infoCode, + infoCodeVariant, + itemLocationCode); + + if(moduleParent) + { + PM* PMmodulParent = static_cast(moduleParent); + PMmodulParent->addChildModule(module); + } + } + else if(name == "rus" || name == "eng") + { + if(moduleParent) + { + if(moduleParent->getType() == ModuleType::TYPE_PM) + {//PM + QString title = nodeMap.namedItem("title").nodeValue(); + + PM* PMmodulParent = static_cast(moduleParent); + + if(name == "rus") + PMmodulParent->setLangStructRus(title); + else + PMmodulParent->setLangStructEng(title); + } + else + {//DM + QString techName = nodeMap.namedItem("techName").nodeValue(); + QString infoName = nodeMap.namedItem("infoName").nodeValue(); + QString pdf = nodeMap.namedItem("pdf").nodeValue(); + QString bookmark = nodeMap.namedItem("bookmark").nodeValue(); + QString xml = nodeMap.namedItem("xml").nodeValue(); + + DM* DMmodulParent = static_cast(moduleParent); + + if(name == "rus") + DMmodulParent->setLangStructRus(techName, infoName, pdf, bookmark, xml); + else + DMmodulParent->setLangStructEng(techName, infoName, pdf, bookmark, xml); + } + } + + } + + DomElementParser(childElement, module); + + if(moduleParent == nullptr) + listAllModules.append(module); + + }while (! (childElement = childElement.nextSiblingElement()).isNull()); +} + +void DocTasksWidget::loadDocTasksFromXML() +{ + QDomDocument docTasksDOM; + QString xmlFileName = "./docs.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 manifestElement = docTasksDOM.firstChildElement("manifest"); + if(manifestElement.isNull()) + return; + + deleteAllModuls(); + + DomElementParser(manifestElement, nullptr); + } +} + +void DocTasksWidget::deleteAllModuls() +{ + for(Module* module: listAllModules) + { + if(module->getType() == ModuleType::TYPE_PM) + delete static_cast(module); + else + delete static_cast(module); + } + listAllModules.clear(); +} + diff --git a/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h new file mode 100644 index 0000000..92dd9c7 --- /dev/null +++ b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.h @@ -0,0 +1,34 @@ +#ifndef DOCTASKSWIDGET_H +#define DOCTASKSWIDGET_H + +#include +#include +#include +#include "module.h" + +namespace Ui { +class DocTasksWidget; +} + +class DocTasksWidget : public QWidget +{ + Q_OBJECT + +public: + explicit DocTasksWidget(QWidget *parent = nullptr); + ~DocTasksWidget(); + +private: + void DomElementParser(QDomElement element, Module* moduleParent); + void loadDocTasksFromXML(); + + void deleteAllModuls(); + +private: + Ui::DocTasksWidget *ui; + QTreeWidget* treeWidget; + + QList listAllModules; +}; + +#endif // DOCTASKSWIDGET_H diff --git a/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.ui b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.ui new file mode 100644 index 0000000..eb6c97c --- /dev/null +++ b/DB_IaT/InstructorsAndTrainees/docTasks/doctaskswidget.ui @@ -0,0 +1,43 @@ + + + DocTasksWidget + + + + 0 + 0 + 400 + 300 + + + + + Tahoma + 10 + + + + Form + + + + + + + + Document + + + + + + + + + + + + + + + diff --git a/DB_IaT/InstructorsAndTrainees/docTasks/module.cpp b/DB_IaT/InstructorsAndTrainees/docTasks/module.cpp new file mode 100644 index 0000000..797e563 --- /dev/null +++ b/DB_IaT/InstructorsAndTrainees/docTasks/module.cpp @@ -0,0 +1,124 @@ +#include "module.h" + +Module::Module(): + type (ModuleType::TYPE_PM), + parentModule(nullptr) +{ + +} + +Module::~Module() +{ + +} + + + +PM::PM(): + modelIdentCode (""), + pmIssuer (""), + pmNumber (""), + pmVolume ("") +{ + type = ModuleType::TYPE_PM; + + langRus.title = ""; + langEng.title = ""; +} + +PM::~PM() +{ + for(Module* module: listChildModules) + { + if(module->getType() == ModuleType::TYPE_PM) + delete static_cast(module); + else + delete static_cast(module); + } + listChildModules.clear(); +} + +void PM::initialize(QString modelIdentCode, QString pmIssuer, QString pmNumber, QString pmVolume) +{ + this->modelIdentCode = modelIdentCode; + this->pmIssuer = pmIssuer; + this->pmNumber = pmNumber; + this->pmVolume = pmVolume; +} + +void PM::setLangStructRus(QString title) +{ + langRus.title = title; +} + +void PM::setLangStructEng(QString title) +{ + langEng.title = title; +} + +void PM::addChildModule(Module *childModule) +{ + listChildModules.append(childModule); +} + + + +DM::DM(): + modelIdentCode (""), + systemDiffCode (""), + systemCode (""), + subSystemCode (""), + subSubSystemCode (""), + assyCode (""), + disassyCode (""), + disassyCodeVariant (""), + infoCode (""), + infoCodeVariant (""), + itemLocationCode ("") +{ + type = ModuleType::TYPE_DM; + + setLangStructRus("", "", "", "", ""); + setLangStructEng("", "", "", "", ""); +} + +DM::~DM() +{ + +} + +void DM::initialize(QString modelIdentCode, QString systemDiffCode, QString systemCode, + QString subSystemCode, QString subSubSystemCode, QString assyCode, + QString disassyCode, QString disassyCodeVariant, QString infoCode, + QString infoCodeVariant, QString itemLocationCode) +{ + this->modelIdentCode = modelIdentCode; + this->systemDiffCode = systemDiffCode; + this->systemCode = systemCode; + this->subSystemCode = subSystemCode; + this->subSubSystemCode = subSubSystemCode; + this->assyCode = assyCode; + this->disassyCode = disassyCode; + this->disassyCodeVariant = disassyCodeVariant; + this->infoCode = infoCode; + this->infoCodeVariant = infoCodeVariant; + this->itemLocationCode = itemLocationCode; +} + +void DM::setLangStructRus(QString techName, QString infoName, QString pdf, QString bookmark, QString xml) +{ + langRus.techName = techName; + langRus.infoName = infoName; + langRus.pdf = pdf; + langRus.bookmark = bookmark; + langRus.xml = xml; +} + +void DM::setLangStructEng(QString techName, QString infoName, QString pdf, QString bookmark, QString xml) +{ + langEng.techName = techName; + langEng.infoName = infoName; + langEng.pdf = pdf; + langEng.bookmark = bookmark; + langEng.xml = xml; +} diff --git a/DB_IaT/InstructorsAndTrainees/docTasks/module.h b/DB_IaT/InstructorsAndTrainees/docTasks/module.h new file mode 100644 index 0000000..8c04bf6 --- /dev/null +++ b/DB_IaT/InstructorsAndTrainees/docTasks/module.h @@ -0,0 +1,106 @@ +#ifndef MODULE_H +#define MODULE_H +#include +#include + +enum ModuleType +{ + TYPE_PM = 0, + TYPE_DM = 1 +}; + +class Module +{ +public: + Module(); + ~Module(); + + ModuleType getType(){ return type; }; + void setParentModule(Module* parentModule){ this->parentModule = parentModule; }; + +protected: + ModuleType type; + Module* parentModule; +}; + + +class PM : public Module +{ +public: + struct pmLangStruct + { + QString title; + }; + +public: + PM(); + ~PM(); + +public: + void initialize(QString modelIdentCode, QString pmIssuer, QString pmNumber, QString pmVolume); + void setLangStructRus(QString title); + void setLangStructEng(QString title); + void addChildModule(Module* childModule); + +private: + QString modelIdentCode; + QString pmIssuer; + QString pmNumber; + QString pmVolume; + + pmLangStruct langRus; + pmLangStruct langEng; + + QList listChildModules; +}; + + +class DM : public Module +{ +public: + struct dmLangStruct + { + QString techName; + QString infoName; + QString pdf; + QString bookmark; + QString xml; + }; + +public: + DM(); + ~DM(); + +public: + void initialize(QString modelIdentCode, + QString systemDiffCode, + QString systemCode, + QString subSystemCode, + QString subSubSystemCode, + QString assyCode, + QString disassyCode, + QString disassyCodeVariant, + QString infoCode, + QString infoCodeVariant, + QString itemLocationCode); + void setLangStructRus(QString techName, QString infoName, QString pdf, QString bookmark, QString xml); + void setLangStructEng(QString techName, QString infoName, QString pdf, QString bookmark, QString xml); + +private: + QString modelIdentCode; + QString systemDiffCode; + QString systemCode; + QString subSystemCode; + QString subSubSystemCode; + QString assyCode; + QString disassyCode; + QString disassyCodeVariant; + QString infoCode; + QString infoCodeVariant; + QString itemLocationCode; + + dmLangStruct langRus; + dmLangStruct langEng; +}; + +#endif // MODULE_H diff --git a/DB_IaT/InstructorsAndTrainees/icons/docTasks.png b/DB_IaT/InstructorsAndTrainees/icons/docTasks.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9248ddca16a0fe0fceb0dacea758683bfc5663 GIT binary patch literal 1488 zcmV;>1uy!EP)~5FsLep)RUr)!#wW#_rt%=^xBo_WqW@0^{P11@SC!rYHLU0vo%5}!TQvXXQ>y7I+}@|{1i zK>!d}lyw!tHNa^BPQx|8X#q|{whC;ya-}Mw(eCbw@iRT=s^U9#@vVySZ$6Gz#dqk` zc-iAMKLT6>oEG3TYTf|LA~=Tw2M$z>_x1Hv)!_e)&m94F3Dx$XfWywz!F-=e-3Zd;P;a$E3UoS6{&(O)m zE|H60LrXsd4CFuy-o`zs&HF*9tgxa1e+dF#$uf7v#Uvwwz=$aFlPGemSfp;5Vzn8A z``=EJ880q6p1xloeZRo;&ly^dgpvKrv(+dhNe-Stdpf%4criIlF*!_j;v%7r4-h>; zOAbo|beO;RW<}wRwQJex^&$bk<@20RB=}R)IIAce*EA%v^2g?;Zq8qPura`nS6gY= zvJOEKnEc}jgFg&26HhbNJI&^!>+L!Y)6nNH-W!b4yyFmohHVIfOloq7@xgQCQ)46t zP804t34&CX$FiAzN#d?35|L$2G&a)d^AQk5R8izbRpn$PLRgX*6Gg6z_C1!kl_fJ? zB+%fe=iM%%9T7Z!1;r~9ZExh@d)=rZFWFd;jrfhJmeJ|h&}jqIsI zQdC0Gm)Uyob3E!gwA4Lv@qSAlOXWAEl4Ea%Lio#EpkEX@Twf2sRjItY3z7Ua3qadz zt$2LOlDNmG(DC{<01^XPTfW?*YXC&sjv#pgOX89zK(ym+0J5>mmOPdQ#Dr2cYExCq zliR&s048kZLjJJ^K%}+7GAHtUDVCekZ29zbsnuYl-7+T_=>R}WTR%InG(el3(`JRa zJttGQ%=ia}Hp^EjM>k42y8Y%A)6i!1Rm#!lh%Iw04QQEVzMacio;*AoYqlwX0BUn- z*iVi;w#=Ej^8^5IgYDfJCAbNI)a0OL&dk(p03^Tlht-w_bQ-1J=uIX`&;DMBlwt5) zG6}$*GVy;Sw7oQy2EHGrkSQ*S=hFp-ejF*~w)<@Pyp6j77$5i=y)d&RuH{pV5A_0| zHd#O3vov6@uJfE}GNoyJ5|48;lObgoqz!``nGB!COr6dGJe&zAvvbGnGb-D5V9FodHezk?S^*Pfzmug%3$QypEPnp%-RI zJh;Y4-$&$UV#swZsLef=JQa71rGT@F!kEQvZlhuFj;67;%oHfMYfMWUjP*{FjV&Dk zP+AeT91bG~mbO=J*O*awN^;;dTIya|KDn-iP{;d-p3sum+^(^TldTRou4!BsMXpK` z6M!xVL=A)8vpsLO09qu-FS7aQdXj?~5(C*%wKrf*gG8v!M|hXdb^){yq9;hW^CY== zKiSyjQnfdAWd8=dk*-qDTP%R)HQ6;HnI_%3PPe|CT5k_Qg!-L6>UY`?^W_mrc$@a& qZQA#rPOtfYgRTKi3vl7WS^N#Z&