This commit is contained in:
Martin Marmsoler
2020-10-11 13:19:20 +02:00
parent 70ef559874
commit b69dea1747
3 changed files with 32 additions and 10 deletions

View File

@@ -928,6 +928,8 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
// The first element must be a diagram // The first element must be a diagram
if (root.tagName() != "diagram") return(false); if (root.tagName() != "diagram") return(false);
qDebug() << "Diagram: " << root.attribute("title");
// Read attributes of this diagram // Read attributes of this diagram
if (consider_informations) { if (consider_informations) {
// Version of diagram // Version of diagram
@@ -1023,6 +1025,7 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
} }
int state = 0; int state = 0;
qDebug() << "Element from collection: " << element_location;
Element *nvel_elmt = ElementFactory::Instance() -> createElement(element_location, nullptr, &state); Element *nvel_elmt = ElementFactory::Instance() -> createElement(element_location, nullptr, &state);
if (state) if (state)
{ {

View File

@@ -118,7 +118,7 @@ int DiagramContext::count() {
/** /**
* @brief DiagramContext::keyMustShow * @brief DiagramContext::keyMustShow
* @return the value pairs with key, if key no found, return false * @return the value pairs with key, if key not found, return false
*/ */
bool DiagramContext::keyMustShow(const QString &key) const { bool DiagramContext::keyMustShow(const QString &key) const {
if (m_content_show.contains(key)) if (m_content_show.contains(key))

View File

@@ -418,6 +418,7 @@ bool Element::buildFromXml(const QDomElement &xml_def_elmt, int *state)
{ {
//Minor workaround to find if there is a "input" tagg as label. //Minor workaround to find if there is a "input" tagg as label.
//If not, we set the tagg "label" to the first "input. //If not, we set the tagg "label" to the first "input.
// TODO: Remove in later version begin
QList <QDomElement> input_field; QList <QDomElement> input_field;
bool have_label = false; bool have_label = false;
for (QDomElement input_node = node.firstChildElement("input") ; !input_node.isNull() ; input_node = input_node.nextSiblingElement("input")) for (QDomElement input_node = node.firstChildElement("input") ; !input_node.isNull() ; input_node = input_node.nextSiblingElement("input"))
@@ -429,8 +430,11 @@ bool Element::buildFromXml(const QDomElement &xml_def_elmt, int *state)
have_label = true; have_label = true;
} }
} }
if(!have_label && !input_field.isEmpty()) if(!have_label && !input_field.isEmpty()) {
qDebug() << input_field.first().attribute("text");
input_field.first().setAttribute("tagg", "label"); input_field.first().setAttribute("tagg", "label");
}
// TODO: Remove in later version end
//Parse the definition //Parse the definition
for (QDomNode n = node.firstChild() ; !n.isNull() ; n = n.nextSibling()) for (QDomNode n = node.firstChild() ; !n.isNull() ; n = n.nextSibling())
@@ -717,15 +721,20 @@ bool Element::fromXml(QDomElement &e, QHash<int, Terminal *> &table_id_adr, bool
setRotation(90*read_ori); setRotation(90*read_ori);
} }
//Befor load the dynamic text field, // TODO: elementInformations are not read from the diagram section or? Yes see below
//#######################################################################################################################
//#### START #######################################################################################################
//#######################################################################################################################
//Before load the dynamic text field,
//we remove the dynamic text field created from the description of this element, to avoid doublons. //we remove the dynamic text field created from the description of this element, to avoid doublons.
for(DynamicElementTextItem *deti : m_dynamic_text_list) for(DynamicElementTextItem *deti : m_dynamic_text_list)
delete deti; delete deti;
m_dynamic_text_list.clear(); m_dynamic_text_list.clear();
//************************// //************************//
//***Dynamic texts item***// //***Dynamic texts item***//
//************************// //************************//
// Texts in diagram section
for (const QDomElement& qde : QET::findInDomElement(e, "dynamic_texts", DynamicElementTextItem::xmlTagName())) for (const QDomElement& qde : QET::findInDomElement(e, "dynamic_texts", DynamicElementTextItem::xmlTagName()))
{ {
DynamicElementTextItem *deti = new DynamicElementTextItem(this); DynamicElementTextItem *deti = new DynamicElementTextItem(this);
@@ -733,20 +742,24 @@ bool Element::fromXml(QDomElement &e, QHash<int, Terminal *> &table_id_adr, bool
deti->fromXml(qde); deti->fromXml(qde);
} }
// TODO: remove in later version begin
//************************// //************************//
//***Element texts item***// //***Element texts item***//
//************************// //************************//
QList<QDomElement> inputs = QET::findInDomElement(e, "inputs", "input"); // Inputs in diagram section
QList<QDomElement> inputs = QET::findInDomElement(e, "inputs", "input"); // Inputs in diagram section
//First case, we check for the text item converted to dynamic text item //First case, we check for the text item converted to dynamic text item
const QList <DynamicElementTextItem *> conv_deti_list = m_converted_text_from_xml_description.keys(); const QList <DynamicElementTextItem *> conv_deti_list = m_converted_text_from_xml_description.keys(); // Texts in element definition (elements collection)
QList <DynamicElementTextItem *> successfully_converted; QList <DynamicElementTextItem *> successfully_converted;
const QList <QDomElement> dom_inputs = inputs; const QList <QDomElement> dom_inputs = inputs;
for (DynamicElementTextItem *deti : conv_deti_list)
for (DynamicElementTextItem *deti : conv_deti_list) // Texts from element definition (elements collection)
{ {
for(const QDomElement& dom_input : dom_inputs) for(const QDomElement& dom_input : dom_inputs) // Inputs in diagram section
{ {
//we use the same method used in ElementTextItem::fromXml to compar and know if the input dom element is for one of the text stored. //we use the same method used in ElementTextItem::fromXml to compar and know if the input dom element is for one of the text stored.
//The comparaison is made from the text position : if the position of the text is the same as the position stored in 'input' dom element //The comparaison is made from the text position : if the position of the text is the same as the position stored in 'input' dom element
@@ -817,7 +830,7 @@ bool Element::fromXml(QDomElement &e, QHash<int, Terminal *> &table_id_adr, bool
group->fromXml(qde); group->fromXml(qde);
} }
//load informations //load elementInformations from diagram section
DiagramContext dc; DiagramContext dc;
dc.fromXml(e.firstChildElement("elementInformations"), "elementInformation"); dc.fromXml(e.firstChildElement("elementInformations"), "elementInformation");
/** /**
@@ -991,6 +1004,12 @@ bool Element::fromXml(QDomElement &e, QHash<int, Terminal *> &table_id_adr, bool
} }
} }
} }
// TODO: remove in later version end
//#######################################################################################################################
//#### END #######################################################################################################
//#######################################################################################################################
m_state = QET::GIOK; m_state = QET::GIOK;
return(true); return(true);
} }