mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Формируются списки подпроцедур 1 ур в сервере
This commit is contained in:
@@ -43,6 +43,7 @@ bool DocsUpdater::slot_update()
|
||||
|
||||
deleteAllModulsAMM();
|
||||
listTasksAMM.clear();
|
||||
subProcMap.clear();
|
||||
|
||||
domElementParserAMM(manifestElement, nullptr);
|
||||
|
||||
@@ -147,11 +148,32 @@ void DocsUpdater::domElementParserAMM(QDomElement element, Module* moduleParent)
|
||||
//Активность
|
||||
//QString canplay = nodeMap.namedItem("canplay").nodeValue();
|
||||
|
||||
//Обновление Активности
|
||||
|
||||
//Обновление Активности и построение списка подпроцедур 1го уровня
|
||||
/*
|
||||
QString dmCode = DMmodulParent->dmCode();
|
||||
|
||||
QString canplay = defineCanplayByScenXML(dmCode);
|
||||
|
||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||
*/
|
||||
|
||||
QString dmCode = DMmodulParent->dmCode();
|
||||
QString canplay = "";
|
||||
QList<SubProc> listSubProc;
|
||||
if(processingScenXML(dmCode, canplay, listSubProc))
|
||||
{
|
||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||
|
||||
subProcMap.insert(dmCode, listSubProc);
|
||||
}
|
||||
else
|
||||
{
|
||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||
}
|
||||
}
|
||||
else
|
||||
DMmodulParent->setLangStructEng(nodeMap.namedItem("techName").nodeValue(),
|
||||
@@ -236,9 +258,11 @@ ModeList DocsUpdater::parseCanplay(QString canplay)
|
||||
return modeList;
|
||||
}
|
||||
|
||||
QString DocsUpdater::defineCanplayByScenXML(QString dmCode)
|
||||
bool DocsUpdater::processingScenXML(const QString dmCode, QString &canplay, QList<SubProc> &listSubProc)
|
||||
{
|
||||
QString canplay = "";
|
||||
listSubProc.clear();
|
||||
|
||||
canplay = "";
|
||||
QString signDemo = "-";
|
||||
QString signTrain = "-";
|
||||
QString signExam = "-";
|
||||
@@ -247,43 +271,82 @@ QString DocsUpdater::defineCanplayByScenXML(QString dmCode)
|
||||
QString nameScenXMLFile = "/" + dmCode + ".xml";
|
||||
QString pathScenXMLFile = updateController->getPathScensFile(nameScenXMLFile);
|
||||
|
||||
|
||||
QDomDocument docScenDOM;
|
||||
if(! Tools::loadXMLtoDOM(pathScenXMLFile, &docScenDOM))
|
||||
return canplay;
|
||||
return false;
|
||||
|
||||
QDomElement scenarioElement = docScenDOM.firstChildElement("scenario");
|
||||
if(scenarioElement.isNull())
|
||||
return canplay;
|
||||
return false;
|
||||
|
||||
|
||||
QDomElement demoElement = scenarioElement.firstChildElement("demo");
|
||||
if(!demoElement.isNull())
|
||||
{
|
||||
//canplay
|
||||
if(demoElement.toElement().attribute("canplay") == "True")
|
||||
signDemo = "+";
|
||||
|
||||
//subProc
|
||||
selectSubProc(demoElement, listSubProc);
|
||||
}
|
||||
|
||||
QDomElement trainElement = scenarioElement.firstChildElement("train");
|
||||
if(!trainElement.isNull())
|
||||
{
|
||||
//canplay
|
||||
if(trainElement.toElement().attribute("canplay") == "True")
|
||||
signTrain = "+";
|
||||
|
||||
//subProc
|
||||
selectSubProc(trainElement, listSubProc);
|
||||
}
|
||||
|
||||
QDomElement examElement = scenarioElement.firstChildElement("exam");
|
||||
if(!examElement.isNull())
|
||||
{
|
||||
//canplay
|
||||
if(examElement.toElement().attribute("canplay") == "True")
|
||||
signExam = "+";
|
||||
|
||||
//subProc
|
||||
selectSubProc(examElement, listSubProc);
|
||||
}
|
||||
|
||||
QDomElement autoElement = scenarioElement.firstChildElement("auto");
|
||||
if(!autoElement.isNull())
|
||||
{
|
||||
//canplay
|
||||
if(autoElement.toElement().attribute("canplay") == "True")
|
||||
signAuto = "+";
|
||||
|
||||
//subProc
|
||||
//Из этого режима не берем!
|
||||
}
|
||||
|
||||
canplay = QString("%1/%2/%3/%4").arg(signDemo, signTrain, signExam, signAuto);
|
||||
|
||||
return canplay;
|
||||
return true;
|
||||
}
|
||||
|
||||
void DocsUpdater::selectSubProc(QDomElement &modeElement, QList<SubProc> &listSubProc)
|
||||
{
|
||||
QDomNodeList nodeList = modeElement.elementsByTagName("node");
|
||||
for(int i = 0; i < nodeList.count(); i++)
|
||||
{
|
||||
QDomNode node = nodeList.at(i);
|
||||
if(node.toElement().attribute("type") == "Subproc")
|
||||
{
|
||||
QDomElement subProcElement = node.firstChildElement("subproc");
|
||||
if(!subProcElement.isNull())
|
||||
{
|
||||
SubProc subProc;
|
||||
subProc.dmCode = subProcElement.toElement().attribute("dmCode");
|
||||
subProc.title = subProcElement.toElement().attribute("title");
|
||||
|
||||
listSubProc.append(subProc);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user