fix conductor properties xml load

This commit is contained in:
Martin Marmsoler
2021-03-07 14:07:47 +01:00
parent 5d3710c4b2
commit 755bcf640d
3 changed files with 26 additions and 7 deletions

View File

@@ -22,6 +22,10 @@
#include <QtDebug>
#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

View File

@@ -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;

View File

@@ -967,7 +967,6 @@ void Conductor::pointsToSegments(const QList<QPointF>& 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);
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()));