mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-22 01:10:53 +01:00
WIP
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user