diff --git a/sources/conductorproperties.cpp b/sources/conductorproperties.cpp index 0af11f042..8844f6414 100644 --- a/sources/conductorproperties.cpp +++ b/sources/conductorproperties.cpp @@ -22,6 +22,10 @@ #include #include "qetxml.h" + +namespace { + const QString conductorPropertiesXmlName = "conductorProperties"; +} /** Constructeur par defaut */ @@ -263,7 +267,7 @@ bool SingleLineProperties::valideXml(QDomElement& e) { multifilaire noir dont le texte est "_" */ ConductorProperties::ConductorProperties() : - PropertiesInterface("defaultconductor") + PropertiesInterface(xmlTagName()) {} /** @@ -413,6 +417,11 @@ bool ConductorProperties::valideXml(QDomElement& e) { return true; } +QString ConductorProperties::xmlTagName() +{ + return conductorPropertiesXmlName; +} + /** @param settings Parametres a ecrire @param prefix prefixe a ajouter devant les noms des parametres diff --git a/sources/conductorproperties.h b/sources/conductorproperties.h index 1e35f2b65..1e6bb369c 100644 --- a/sources/conductorproperties.h +++ b/sources/conductorproperties.h @@ -121,9 +121,8 @@ class ConductorProperties: public PropertiesInterface SingleLineProperties singleLineProperties; // methods - void toXmlPriv(QDomElement&) const override; - bool fromXmlPriv(const QDomElement &) override; static bool valideXml(QDomElement& element); + static QString xmlTagName(); void toSettings(QSettings &, const QString & = QString()) const override; void fromSettings(QSettings &, const QString & = QString()) override; static QString typeToString(ConductorType); @@ -135,6 +134,10 @@ class ConductorProperties: public PropertiesInterface bool operator==(const ConductorProperties &) const; bool operator!=(const ConductorProperties &) const; + private: + void toXmlPriv(QDomElement&) const override; + bool fromXmlPriv(const QDomElement &) override; + private: void readStyle(const QString &); QString writeStyle() const; diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp index e1187fa31..e4ae22548 100644 --- a/sources/qetgraphicsitem/conductor.cpp +++ b/sources/qetgraphicsitem/conductor.cpp @@ -967,7 +967,6 @@ void Conductor::pointsToSegments(const QList& points_list) { */ bool Conductor::fromXmlPriv(const QDomElement &dom_element) { - // TODO: seems to short! double x=0, y=0; QETXML::propertyDouble(dom_element, "x", &x); QETXML::propertyDouble(dom_element, "y", &y); @@ -976,8 +975,16 @@ bool Conductor::fromXmlPriv(const QDomElement &dom_element) bool return_ = pathFromXml(dom_element); m_text_item -> fromXml(dom_element); - ConductorProperties pr; - pr.fromXml(dom_element); + + auto prs = QETXML::findInDomElement(dom_element, ConductorProperties::xmlTagName()); + ConductorProperties pr; + if (!prs.isEmpty()) { + pr.fromXml(prs.first()); + } else { + // legacy + // added in 0.9 remove in later version! + pr.fromXml(dom_element); + } //Load Sequential Values if (dom_element.hasAttribute("sequ_1") || dom_element.hasAttribute("sequf_1") || dom_element.hasAttribute("seqt_1") || dom_element.hasAttribute("seqtf_1") || dom_element.hasAttribute("seqh_1") || dom_element.hasAttribute("sequf_1")) @@ -1044,7 +1051,7 @@ void Conductor::toXmlPriv(QDomElement& dom_element) const { dom_element.appendChild(dom_seq); // Export the properties and text - m_properties. toXml(doc); + dom_element.appendChild(m_properties. toXml(doc)); if(m_text_item->wasMovedByUser()) { dom_element.setAttribute("userx", QString::number(m_text_item->pos().x()));